В этом примере показано, как линеаризовать модель скорости вращения двигателя для нескольких выходных условий.
Откройте модель.
mdl = 'scdspeed';
open_system(mdl)

В данном примере вы находите линейные модели от усовершенствования искры и регулируете угловые входные параметры к выходной скорости вращения двигателя. Вы делаете так для трех условий скорости: 2000, 3000, и 4 000 об/мин.
Создайте массив трех технических требований рабочей точки.
opspec = operspec(mdl,[3 1]);
Поскольку модель Simulink® не имеет никакого импорта корневого уровня, opspec не содержит выходных технических требований. Можно добавить выходные технические требования для данного сигнала в модели с помощью addoutputspec функция.
Добавьте выходную спецификацию в выход rad/s с блоком об/мин.
opspec = addoutputspec(opspec,'scdspeed/rad//s to rpm',1);
Для каждой спецификации укажите, что выходное значение известно, и задайте выходное значение. Установите известные значения скорости к 2 000, 3000, и 4 000 об/мин.
opspec(1).Outputs.Known = 1; opspec(1).Outputs.y = 2000; opspec(2).Outputs.Known = 1; opspec(2).Outputs.y = 3000; opspec(3).Outputs.Known = 1; opspec(3).Outputs.y = 4000;
Просмотрите объект технических требований для третьих условий работы.
opspec(3)
ans =
Operating point specification for the Model scdspeed.
(Time-Varying Components Evaluated at time t=0)
States:
----------
<strong>x</strong> <strong>Known</strong> <strong>SteadyState</strong> <strong>Min</strong> <strong>Max</strong> <strong>dxMin</strong> <strong>dxMax</strong>
<strong>______</strong> <strong>_____</strong> <strong>___________</strong> <strong>____</strong> <strong>___</strong> <strong>_____</strong> <strong>_____</strong>
(1.) scdspeed/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar
0.543 false true -Inf Inf -Inf Inf
(2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s
209.48 false true -Inf Inf -Inf Inf
Inputs:
----------
<strong>u</strong> <strong>Known</strong> <strong>Min</strong> <strong>Max</strong>
<strong>_</strong> <strong>_____</strong> <strong>____</strong> <strong>___</strong>
(1.) scdspeed/Throttle perturbation
0 false -Inf Inf
Outputs:
----------
<strong>y</strong> <strong>Known</strong> <strong>Min</strong> <strong>Max</strong>
<strong>____</strong> <strong>_____</strong> <strong>____</strong> <strong>___</strong>
(1.) scdspeed/rad//s to rpm
4000 true -Inf Inf
Ищите рабочие точки, которые выполняют этим техническим требованиям с помощью findop функция.
opt = findopOptions('DisplayReport','off'); op = findop(mdl,opspec,opt);
Просмотрите получившуюся рабочую точку для третьих условий работы.
op(3)
ans =
Operating point for the Model scdspeed.
(Time-Varying Components Evaluated at time t=0)
States:
----------
<strong>x</strong>
<strong>______</strong>
(1.) scdspeed/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar
0.4731
(2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s
418.88
Inputs:
----------
<strong>u</strong>
<strong>______</strong>
(1.) scdspeed/Throttle perturbation
5.8292
Чтобы линеаризовать модель, сначала задайте точки ввода линеаризации при выходных параметрах дросселя и блоков Усовершенствования Spark.
io(1) = linio('scdspeed/throttle (degrees)',1,'input'); io(2) = linio('scdspeed/Spark Advance',1,'input');
Затем задайте выходную точку линеаризации при выходе rad/s с блоком об/мин.
io(3) = linio('scdspeed/rad//s to rpm',1,'output');
Линеаризуйте модель для каждых из условий работы.
sys = linearize(mdl,op,io);
Постройте Предвещать ответ величины для получившихся линейных моделей.
bodemag(sys)

Закройте модель.
bdclose(mdl)
operspec | findop | linio | linearize