这个例子展示了如何线性化一个发动机转速模型为多个输出条件。
打开模型。
mdl =“scdspeed”;open_system (mdl)
对于这个例子,你会发现从火花推进和节流角度输入到发动机输出速度的线性模型。你可以在三种速度条件下这样做:2000、3000和4000 rpm。
创建一个由三个工作点规范组成的数组。
Opspec = operspec(mdl,[3 1]);
由于Simulink万博1manbetx®模型没有任何根级导入,opspec
不包含任何输出规范。属性可以在模型中为给定的信号添加输出规范addoutputspec
函数。
增加输出规格的rad/s到rpm块的输出。
opspec = addoutputspec (opspec,“scdspeed / rad / / s rpm”1);
对于每个规范,指出输出值是已知的,并指定输出值。设置已知的转速值为2000、3000和4000转/分钟。
opspec (1) .Outputs。= 1;opspec (1) .Outputs。y = 2000;opspec .Outputs(2)。= 1;opspec .Outputs(2)。y = 3000;opspec (3) .Outputs。= 1;opspec (3) .Outputs。y = 4000;
查看第三种工况的规格对象。
opspec (3)
ans = scdspeed模型的工作点规范。(t=0时的时变分量)---------- < 强x > < /强> < >强知道< /强> < >强稳态< /强> < >强Min < /强> <强> Max < /强> < >强dxMin < /强> < >强dxMax < /强> <强> __ < /强> <强> ___ < /强> <强劲 >___________ 强> <强> ___ < /强> <强> ___ < /强> <强> ___ < /强> <强> ___ < / >强(1)。scdspeed/Vehicle Dynamics/w = T//J w0 = 209 rad//s 209.48 false true -Inf Inf Inf Inputs(参数参数说明参数取值)---------- u Known Min Max _ _____ ____ ___ (1.) scdspeed/Throttle扰动0 false -Inf Inf Outputs:---------- < 强> y < /强> < >强知道< /强> < >强Min < /强> <强> Max < /强> <强> ___ < /强> <强> ___ < /强> <强> ___ < /强> <强> ___ < / >强(1)scdspeed / rad / / s 4000 rpm真正负无穷到正无穷
使用。查找满足这些规范的工作点findop
函数。
选择= findopOptions (“DisplayReport”,“关闭”);op = findop (mdl opspec,选择);
查看第三种操作条件的结果工作点。
op (3)
ans = scdspeed模型的工作点。(时变组件评估在时间t = 0) : ---------- < 强x > < /强> <强> __ < / >强(1)scdspeed /油门&歧管/进气歧管/ p0 = 0.543条0.4731 (2)scdspeed /车辆动力学/ w = T / / J w0 = 209 rad / / s 418.88输入 : ---------- < 强> u < /强> <强> __ < / >强(1)scdspeed /节流扰动5.8292
为了线性化模型,首先指定在油门和Spark Advance块的输出处的线性化输入点。
io (1) = linio (“scdspeed /油门(度)”,1,“输入”);io (2) = linio (scdspeed /点火提前的,1,“输入”);
接下来,指定线性化输出点在rad/s到rpm块的输出。
io (3) = linio (“scdspeed / rad / / s rpm”,1,“输出”);
将每个操作条件的模型线性化。
sys =线性化(mdl op, io);
绘制得到的线性模型的波德幅度响应。
bodemag(系统)
关闭模式。
bdclose (mdl)