Simulink Control Design™ - MathWorks

(Tuis.) #1
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

Free download pdf