В этом примере показано, как линеаризировать модель скорости вращения двигателя.
Откройте модель.
scdspeed
Этот пример генерирует линейные модели выхода скорости вращения двигателя и между входами Усовершенствования Spark и Угла Throttle. Команда FINDOP вычисляет рабочие точки в установившемся состоянии условий на 2000, 3000 и 4000 об/мин.
Создайте объект спецификации рабочей точки с помощью команды
opspec = operspec('scdspeed')
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 ----------
Затем задайте требуемые рабочие условия. Исправьте первый выходной порт Динамика Аппарата в 2000, 3000 и 4000 об/мин. Для этого используйте команду ADDOUTPUTSPEC.
opspec = addoutputspec(opspec,'scdspeed/rad//s to rpm',1);
Установите первую рабочую спецификацию
opspec.Output.Known = 1; opspec.Outputs.y = 2000;
Поиск рабочей точки, которая соответствует этой спецификации
op(1) = findop('scdspeed',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)
Теперь найдите оставшиеся рабочие точки с частотой 3000 и 4000 об/мин
opspec.Outputs.y = 3000; op(2) = findop('scdspeed',opspec); opspec.Outputs.y = 4000; op(3) = findop('scdspeed',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.49 dx: -5.14e-15 (0) (2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s x: 314 dx: 4.57e-13 (0) Inputs: ---------- (1.) scdspeed/Throttle perturbation u: 2.94 [-Inf Inf] Outputs: ---------- (1.) scdspeed/rad//s to rpm y: 3e+03 (3e+03) 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.473 dx: 1.13e-11 (0) (2.) scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s x: 419 dx: -1.49e-10 (0) Inputs: ---------- (1.) scdspeed/Throttle perturbation u: 5.83 [-Inf Inf] Outputs: ---------- (1.) scdspeed/rad//s to rpm y: 4e+03 (4e+03)
Теперь рабочие точки готовы к линеаризации. Сначала задайте вход и выходные точки с помощью команд:
io(1) = linio('scdspeed/throttle (degrees)',1,'input'); io(2) = linio('scdspeed/Spark Advance',1,'input'); io(3) = linio('scdspeed/rad//s to rpm',1,'output');
Линеаризируйте модель и постройте график характеристики величины Бода для каждого условия.
sys = linearize('scdspeed',op,io);
bodemag(sys)
Закройте модель.
bdclose('scdspeed')