Можно вычислить установившуюся рабочую точку модели Simulink ®, указав ограничения на состояния модели, выходные данные и входные данные, а также найдя рабочее условие модели, удовлетворяющее этим ограничениям. Дополнительные сведения об установившихся рабочих точках см. в разделах Сведения об рабочих точках и Вычислить установившиеся рабочие точки.
Чтобы найти операционную точку для модели Simulink, можно программно обрезать модель с помощью findop, как показано в этом примере.
Можно также обрезать модель в:
Менеджер по установившемуся состоянию. Дополнительные сведения см. в разделе Расчет рабочих точек из спецификаций с помощью диспетчера устойчивого состояния.
Линеаризатор модели. Дополнительные сведения см. в разделе Расчет рабочих точек по спецификациям с помощью линеаризатора модели.
В этом примере вычисляется рабочая точка в соответствии со спецификациями вывода. С помощью аналогичного подхода можно определить параметры состояния или ввода. Кроме того, можно определить комбинацию параметров состояния, вывода и ввода; то есть не нужно использовать, например, только государственные спецификации.
Дополнительные сведения об обрезке модели в соответствии со спецификациями см. в разделе Расчет установившихся рабочих точек по спецификациям.
Откройте модель Simulink.
mdl = 'scdspeed';
open_system(mdl)

Создайте спецификацию рабочей точки по умолчанию для модели.
opspec = operspec(mdl)
Operating point specification for the Model scdspeed. (Time-Varying Components Evaluated at time t=0) States: ---------- (1.) scdspeed/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar spec: dx = 0, initial guess: 0.543 (2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s spec: dx = 0, initial guess: 209 Inputs: ---------- (1.) scdspeed/Throttle perturbation initial guess: 0 Outputs: None ----------
Поскольку в модели нет выходов на корневом уровне, объект спецификации операционной точки по умолчанию не имеет выходных спецификаций.
В этом примере укажите известную установившуюся частоту вращения двигателя. Для этого добавьте выходную спецификацию на выходе блока rad/s в rpm.
opspec = addoutputspec(opspec,'scdspeed/rad//s to rpm',1);
Укажите известное значение 2000 об/мин для выходного ограничения.
opspec.Outputs(1).Known = 1; opspec.Outputs(1).y = 2000;
Просмотр обновленной спецификации рабочей точки.
opspec
Operating point specification for the Model scdspeed. (Time-Varying Components Evaluated at time t=0) States: ---------- (1.) scdspeed/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar spec: dx = 0, initial guess: 0.543 (2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s spec: dx = 0, initial guess: 209 Inputs: ---------- (1.) scdspeed/Throttle perturbation initial guess: 0 Outputs: ---------- (1.) scdspeed/rad//s to rpm spec: y = 2e+03
Найдите рабочую точку, соответствующую этим спецификациям.
op1 = findop(mdl,opspec);
Operating point search report:
---------------------------------
Operating point search report for the Model scdspeed.
(Time-Varying Components Evaluated at time t=0)
Operating point specifications were successfully met.
States:
----------
(1.) scdspeed/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar
x: 0.544 dx: 2.66e-13 (0)
(2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s
x: 209 dx: -8.48e-12 (0)
Inputs:
----------
(1.) scdspeed/Throttle perturbation
u: 0.00382 [-Inf Inf]
Outputs:
----------
(1.) scdspeed/rad//s to rpm
y: 2e+03 (2e+03)
Отчет поиска рабочей точки показывает, что спецификации были выполнены успешно, и что оба состояния находятся в устойчивом состоянии, как и ожидалось (dx = 0).
Можно также задать границы для выходных данных во время обрезки. Например, предположим, что известно о наличии устойчивого состояния между 1900 и 2100 об/мин. Чтобы ограничить скорость до этого диапазона, измените спецификации рабочих точек.
opspec.Outputs(1).Min = 1900; opspec.Outputs(1).Max = 2100;
В этом случае, поскольку значение вывода неизвестно, укажите выход как неизвестный. Можно также указать начальное предположение для выходного значения.
opspec.Outputs(1).Known = 0; opspec.Outputs(1).y = 2050;
Найдите рабочую точку, соответствующую этим спецификациям.
op2 = findop(mdl,opspec);
Operating point search report:
---------------------------------
Operating point search report for the Model scdspeed.
(Time-Varying Components Evaluated at time t=0)
Operating point specifications were successfully met.
States:
----------
(1.) scdspeed/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar
x: 0.544 dx: 2.99e-13 (0)
(2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s
x: 209 dx: -9.9e-13 (0)
Inputs:
----------
(1.) scdspeed/Throttle perturbation
u: 0.005 [-Inf Inf]
Outputs:
----------
(1.) scdspeed/rad//s to rpm
y: 2e+03 [1.9e+03 2.1e+03]
Отчет поиска в операционной точке показывает, что спецификации были выполнены успешно.
После обрезки модели можно выполнить следующие действия.
Линеаризация модели в результирующей рабочей точке. Дополнительные сведения см. в разделе Линеаризация в обрезанной рабочей точке.
Моделирование модели в результирующей рабочей точке. Дополнительные сведения см. в разделе Моделирование модели имитации в определенной рабочей точке.
addoutputspec | findop | operspec