线性化发动机转速模型
这个例子展示了如何线性化多个输出条件下的发动机转速模型。
发动机转速模型
打开模型。
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)