В этом примере показано, как найти рабочие точки для нескольких спецификаций рабочих точек с помощью findop
команда. Можно пакетно линеаризировать модель с помощью рабочих точек и изучить изменение поведения модели.
Каждый раз, когда вы звоните findop
программное обеспечение компилирует модель Simulink. Чтобы найти рабочие точки для нескольких спецификаций, можно дать findop
массив спецификаций рабочих точек вместо повторного вызова findop
в цикле for. Программное обеспечение использует компиляцию одной модели, чтобы вычислить несколько рабочих точек, что эффективно, особенно для моделей, которые дорого повторно компилироваться.
Откройте модель Simulink.
sys = 'scdspeed';
open_system(sys)
Создайте массив объектов спецификаций рабочих точек по умолчанию.
opspec = operspec(sys,3);
Чтобы найти установившиеся рабочие точки, в которых выход блока рад/с в об/мин фиксирован, добавьте известную выходную спецификацию к каждому объекту спецификации рабочей точки.
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;
Также можно сконфигурировать спецификации рабочих точек с помощью Model Linearizer и экспортировать спецификации в рабочее пространство 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
. Выходное значение для каждой рабочей точки совпадает с известным значением, заданным в соответствующей спецификации рабочей точки.