Этот пример показывает, как найти рабочие точки для нескольких спецификаций рабочей точки с помощью команды 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
. Выходное значение для каждой рабочей точки совпадает с известным значением, заданным в соответствующей спецификации рабочей точки.