В этом примере показано, как линеаризовать модель Simulink® в основанных на времени снимках состояния рабочей точки. Пример использует модель динамики заполнения цилиндра со сжатым воздухом.
Откройте модель Simulink.
mdl = 'scdpneumaticlin';
open_system(mdl)
Симулируйте модель.
[t,x,y] = sim(mdl);
В этом примере закрывается давление предоставления, и система имеет начальное давление 0,2 МПа. Давление предоставления на уровне 0,7 МПа. В симуляции клапан сервомотора открыт 0.5e-4 m. Во время симуляции давление увеличивается с начального давления 0,2 МПа и в конечном счете обосновывается при давлении предоставления.
plot(t,y)
Вычислите рабочие точки в нескольких временах симуляции от 0 до 60 секунд в 10-секундных интервалах. findop
функция симулирует модель, берет снимок состояния условий модели в каждом времени симуляции и вычисляет рабочую точку для каждого снимка состояния.
op = findop(mdl,[0 10 20 30 40 50 60]);
Просмотрите рабочую точку во второй раз снимка состояния.
op(2)
ans = Operating point for the Model scdpneumaticlin. (Time-Varying Components Evaluated at time t=10.7245) States: ---------- <strong>x</strong> <strong>__________</strong> (1.) scdpneumaticlin/Cylinder Pressure Model/dPc//dt 3.1205e+05 (2.) scdpneumaticlin/Pipe Model/dPp//dt 3.1251e+05 Inputs: None ----------
Чтобы линеаризовать модель, сначала задайте точки ввода и вывода линеаризации. В данном примере линеаризуйте модель от открытия клапана сервомотора x
к выходному давлению.
io(1) = linio('scdpneumaticlin/x',1,'input'); io(2) = linio('scdpneumaticlin/Cylinder Pressure Model',1,'output');
Линеаризуйте модель для всех вычисленных снимков состояния. sys
массив моделей в пространстве состояний.
sys = linearize(mdl,op,io);
Чтобы видеть изменчивость в линеаризации, постройте частотные характеристики получившихся линейных систем.
bode(sys)
Закройте модель.
bdclose(mdl)
operspec
| findop
| linio
| linearize