主要内容

线性化发动机转速模型

这个例子展示了如何线性化多个输出条件下的发动机转速模型。

发动机转速模型

打开模型。

mdl =“scdspeed”;open_system (mdl)

对于本例,您将找到从火花推进和油门角度输入到输出发动机转速的线性模型。你可以在三种速度条件下这样做:2000,3000和4000rpm。

寻找工作点

创建一个包含三个工作点规格的数组。

Opspec = operspec(mdl,[3 1]);

由于Simulink金宝app®模型没有任何根级导入,opspec不包含任何输出规范。方法可以为模型中的给定信号添加输出规范addoutputspec函数。

在rad/s to rpm块的输出中添加一个输出规范。

Opspec = addoutputspec(Opspec,'scdspeed/rad//s to rpm'1);

对于每个规范,指出输出值是已知的,并指定输出值。将已知转速设置为2000rpm、3000rpm和4000rpm。

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已知稳态分钟马克斯dxMin dxMax  ___________ ___________ ___________ ___________ ___________ ___________ ___________ ( 1) scdspeed /油门&歧管/进气歧管/ p0 = 0.543条0.543假真的负无穷到正无穷负无穷到正无穷(2)scdspeed /车辆动力学/ w = T / / J w0 = 209 rad / / s 209.48假真负无穷到正无穷负无穷到正无穷输入:---------- 你知道最小最大  _____ _____ _____ _____ ( 1) scdspeed /油门扰动0错误负无穷到正无穷输出 : ---------- y已知的最小最大  _____ _____ _____ _____ ( 1) scdspeed / rad / / s 4000 rpm真正负无穷到正无穷

搜索符合这些规范的操作点findop函数。

opt = findopOptions(“DisplayReport”“关闭”);Op = findop(mdl,opspec,opt);

查看第三个操作条件的结果工作点。

op (3)
ans =模型scdspeed的工作点。(时间t=0时评估的时变组件)状态:---------- x _______ (1.) scdspeed/油门和歧管/进气歧管/p0 = 0.543 bar 0.4731 (2.) scdspeed/车辆动力学/w = t //J w0 = 209 rad//s 418.879输入:---------- u ______ (1.) scdspeed/油门扰动5.8292

线性化模型

为了线性化模型,首先在油门和Spark Advance模块的输出处指定线性化输入点。

Io (1) = linio(“scdspeed /油门(度)”, 1“输入”);Io (2) = linio(scdspeed /点火提前的, 1“输入”);

接下来,在rad/s to rpm块的输出处指定线性化输出点。

Io (3) = linio('scdspeed/rad//s to rpm', 1“输出”);

对每个操作条件的模型进行线性化。

Sys =线性化(mdl,op,io);

绘制得到的线性模型的波德震级响应。

bodemag(系统)

关闭模型。

bdclose (mdl)

另请参阅

|||

相关的话题