Linearize the model.
io(1) = linio('scdpwmharddrive/Duty cycle',1,'input');
io(2) = linio('scdpwmharddrive/Hard Disk Model',1,'output');
sys = linearize(model,io)
sys =
D =
Duty cycle
position err 0
Static gain.
As expected, the PWM components cause the system to linearize to zero.
Turn the local solver back on for simulation.
set_param(SimscapeSolver,'UseLocalSolver','on')
Find Linear Model for PWM Component
You can estimate the frequency response of the PWM-driven current source and use the
result to identify a linear model for it. The current signal has a discrete sample time of
1e-7. Therefore, you need to use a sinestream signal with a fixed sample time as your
estimation input signal. Create a signal that has frequencies between 2,000 and 200,000
rad/s.
idinput = frest.createFixedTsSinestream(Ts,{2000,200000});
idinput.Amplitude = 0.1;
Define the input and output points for the PWM-driven circuit, and run the frequency
response estimation using the sinestream input signal.
pwm_io(1) = linio('scdpwmharddrive/Duty cycle',1,'input');
pwm_io(2) = linio('scdpwmharddrive/PWM driven converter',1,'openoutput');
sysfrd = frestimate(model,pwm_io,idinput);
To identify a second-order model using the frequency response data, use tfest from the
System Identification Toolbox. Then, compare the identified model to the original
frequency response data.
2 Linearization