Этот пример показывает, как найти рабочие точки для нескольких спецификаций рабочей точки с помощью команды findop. Можно обработать в пакетном режиме, линеаризуют модель с помощью рабочих точек и изучают изменение в поведении модели.
Каждый раз, когда вы вызываете findop, программное обеспечение компилирует модель Simulink. Чтобы найти рабочие точки для нескольких спецификаций, можно дать findop массив спецификаций рабочей точки, вместо того, чтобы неоднократно вызвать findop в цикле for. Программное обеспечение использует одну образцовую компиляцию, чтобы вычислить несколько рабочих точек, который эффективен, специально для моделей, которые являются дорогими, чтобы неоднократно перекомпилировать.
Откройте модель Simulink.
sys = 'scdspeed';
open_system(sys)

Создайте массив объектов спецификации рабочей точки по умолчанию.
opspec = operspec(sys,3);
Чтобы найти установившиеся рабочие точки, в которых фиксируется вывод rad/s к блоку об/мин, добавьте известную выходную спецификацию в каждый объект спецификации рабочей точки.
opspec = addoutputspec(opspec,[sys '/rad//s to rpm'],1); for i = 1:3 opspec(i).Outputs(1).Known = true; end
Задайте различные известные выходные значения для каждой спецификации рабочей точки.
opspec(1).Outputs(1).y = 1500; opspec(2).Outputs(1).y = 2000; opspec(3).Outputs(1).y = 2500;
Также можно сконфигурировать спецификации рабочей точки с помощью Linear Analysis Tool и экспортировать спецификации в рабочее пространство MATLAB. Для получения дополнительной информации смотрите Спецификации Импорта и Экспорта для Поиска Рабочей точки.
Найдите рабочие точки, которые соответствуют каждой из трех выходных спецификаций. findop вычисляет все рабочие точки с помощью одной образцовой компиляции.
ops = findop(sys,opspec);
Operating point search report 1:
---------------------------------
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.596 dx: 3.41e-09 (0)
(2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s
x: 157 dx: -5.57e-07 (0)
Inputs:
----------
(1.) scdspeed/Throttle perturbation
u: -1.61 [-Inf Inf]
Outputs:
----------
(1.) scdspeed/rad//s to rpm
y: 1.5e+03 (1.5e+03)
Operating point search report 2:
---------------------------------
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)
Operating point search report 3:
---------------------------------
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.511 dx: 1.33e-08 (0)
(2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s
x: 262 dx: -7.83e-08 (0)
Inputs:
----------
(1.) scdspeed/Throttle perturbation
u: 1.5 [-Inf Inf]
Outputs:
----------
(1.) scdspeed/rad//s to rpm
y: 2.5e+03 (2.5e+03)
ops является вектором рабочих точек для модели scdspeed, которые соответствуют спецификациям в opspec. Выходное значение для каждой рабочей точки совпадает с известным значением, заданным в соответствующей спецификации рабочей точки.