Этот пример показывает, как линеаризовать модель скорости вращения двигателя.
Откройте модель.
scdspeed
Этот пример генерирует линейные модели выходной скорости вращения двигателя и между входными параметрами Усовершенствование Spark и Угол Дросселя. Команда FINDOP вычисляет рабочие точки при условиях устойчивого состояния в 2 000, 3000, и 4 000 об/мин.
Создайте объект спецификации рабочей точки использование команды
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, и 4 000 об/мин. Используйте команду 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 и 4 000 об/мин
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')