В этом примере показано, как линеаризовать модель 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