Python and MATLAB codebase for performing second-order system identification from time-domain data of a decreasing step response. Both discrete and continuous time estimation methods are available. Uncertainties given at the 95% confidence level. Code was originally developed to characterize dynamics of pressure sensor apparatuses through decreasing step response testing.
- functions.py
- matplotlib.pyplot
- matplotlib.SpanSelector
- numpy
- pandas
- scipy
- Control Systems Toolbox
- csv_crop_prgrm.py (crop time-domain data to obtain portion of response that carries the dynamic chracteristics.)
- second_order_approx_w_LS.py or 2_order_LS_w_2_zero.py (Perform OLS fit of discrete-time 2nd order model to cropped time-domain data considering either a single zero or two zeroes, outputs estimated parameters.)
- ct_param_est_from_dt_param_est.m or ct_param_est_from_dt_param_est_2_zeroes.m (Convert discrete-time transfer function estimated in 2. to continuous-time, also obtain step response data of simulated transfer function for comparison to experimental data. Use for either one or two zeroes.)
- lsim_prgrm.m (Obtain simulation data of the response of the estimated model to the same input applied to the real system.)
- second_order_approx_Tr_and_OS.py (Estimate natural frequency and damping ratio from response charactersitics obtained from cropped time-domain data.)
- second_order_response_from_dr_and_wn.m (Calculating general second-order TF parameters from estimated nat. freq and damping ratio. Also obtaining frequency response data.)
- lsim_prgrm.m (Obtain simulation data of the response of the estimated model to the same input applied to the real system.)