主要内容

发动机速度模型的线性化

此示例显示如何线性化发动机速度模型。

一代经营点

打开模型。

SCDSPEED

该示例生成输出发动机速度的线性模型,以及在输入的火花前进和节流阀之间。Findop命令将在2000,3000和4000 RPM的稳态条件下计算操作点。

使用命令创建操作点规范对象

opspec = operspec('scdspeed'
模型SCDSPEED的操作点规范。(在时间t = 0评估的时变组分)状态:----------(1.)SCDSPEED /油门&歧管/进气歧管/ P0 = 0.543 BAR规范:DX = 0,初始猜测:0.543(2.)SCDSPEED /车辆动态/ W = T // J W0 = 209 RAD // S Spec:DX = 0,初始猜测:209输入:----------(1.)SCDSPEED/油门扰动初始猜测:0输出:无----------

接下来,指定所需的操作条件。将车辆动态的第一个输出端口固定为2000,3000和4000 RPM。使用命令addoutputspec来执行此操作。

opspec = addoutputspec(opspec,'scdspeed / rad / s到rpm',1);

设置第一个操作规范

opspec.output.known = 1;opspec.outputs.y = 2000;

搜索符合此规范的操作点

OP(1)=查找('scdspeed',opspec);
操作点搜索报告:------------------------------------操作点搜索模型SCDSPEED的报告。(在时间t = 0评估的时变组分)成功满足操作点规范。各国:---------(1.)SCDSPEED /油门和歧管/进气歧管/ P0 = 0.543 BAR X:0.544 DX:2.66E-13(0)(2.)SCDSPEED /车辆动态/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 rpm的剩余工作点

opspec.outputs.y = 3000;OP(2)=查找('scdspeed',opspec);opspec.outputs.y = 4000;OP(3)=查找('scdspeed',opspec);
操作点搜索报告:------------------------------------操作点搜索模型SCDSPEED的报告。(在时间t = 0评估的时变组分)成功满足操作点规范。州:---------(1.)SCDSPEED /油门和歧管/进气歧管/ P0 = 0.543 BAR X:0.49 DX:-5.14E-15(0)(2.)SCDSPEED /车辆动态/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 /油门(度)',1,'输入');IO(2)= Linio('SCDSPEED / SPARK ADVAIN',1,'输入');IO(3)= Linio('scdspeed / rad / s到rpm',1,'输出');

线性化模型,并对每个条件绘制Bode幅度响应。

sys =线性化('scdspeed',op,io);Bodemag(SYS)

关闭模型。

bdclose('scdspeed'