用延迟线性化模型
这个例子展示了如何线性化包含延迟的Simulink®模型。金宝app
有关处理带有延迟的线性化模型的更多信息,请参见指定延时时间而且时滞控制系统分析.
连续时滞线性化模型
您可以使用下列选项之一,使用连续时间延迟金宝app块(如传输延迟、可变传输延迟和可变时间延迟)线性化Simulink模型。
使用延迟的Padé近似,通过线性化得到一个合理的线性系统。此选项是Simulink Control Design™软件使用的默认方法。金宝app
计算一个线性化,其中延迟被精确地表示。当您需要线性化模型的精确模拟和频率响应时,以及在评估Padé近似的准确性时,请使用此选项。
打开本例中使用的引擎速度模型。
模型=“scdspeed”;open_system(模型)
功率冲程延迟感应子系统包含一个名为dM/dt的可变传输延迟块。指定此块的路径。
DelayBlock =“scdspeed/感应功率行程延迟/dM//dt延迟”;
要使用一阶近似来计算线性化,请将Padé近似的阶数设置为1。对于可变传输延迟块,Pade秩序财产1
.
或者,在命令行中输入以下代码。
set_param (DelayBlock“PadeOrder”,' 1 ');
指定油门角作为线性化输入,发动机转速作为线性化输出。
Io (1) = linio(“scdspeed /油门(度)”, 1“输入”);Io (2) = linio('scdspeed/rad//s to rpm', 1“输出”);
线性化模型。
sysOrder1 =线性化(模型,io);
要使用二阶近似线性化模型,请将Padé的顺序设置为2
.
set_param (DelayBlock“PadeOrder”,' 2 ');sysOrder2 =线性化(模型,io);
要计算具有精确延迟表示的线性模型,请创建线性化选项对象并启用UseExactDelayModel
选择。
opt =线性化选项;opt.UseExactDelayModel =“上”;
使用指定的线性化选项对模型进行线性化。
sysExactDiscrete =线性化(model,io,opt);
比较Padé近似模型和精确线性化模型的Bode响应。
P = bodeoptions(“cstprefs”);p.Grid =“上”;p.PhaseMatching =“上”;p.XLimMode = {“手动”};p.XLim = {[0.1 1000]};波德(sysOrder1, sysOrder2 sysExactDiscrete p);传奇(“一阶”,二阶的,“准确”,“位置”,“西南”)
在一阶近似的情况下,相位在50 rad/s左右开始发散,在100 rad/s左右发散。
关闭Simulink金宝app模型。
bdclose(模型)
离散时滞线性化模型
当使用离散延迟块(如(整数)延迟块和单位延迟块)线性化模型时,使用精确的延迟选项来解释延迟,而不向模型动态添加状态。显式地考虑这些延迟可以提高具有许多离散延迟的系统的模拟性能,因为模型中的状态更少。
打开一个包含2金宝app0个延迟状态的延迟块的离散系统的Simulink模型。
模型=“scdintegerdelay”;open_system(模型)
默认情况下,线性化包括所有折叠到线性模型中的状态。设置线性化输入输出信号,对模型进行线性化。
Io (1) = linio(的scdintegerdelay /步骤, 1“输入”);Io (2) = linio(“scdintegerdelay /离散滤波器”, 1“输出”);sysDefault =线性化(模型,io);
查看模型大小。它有21个状态(1 -离散滤波器,20 -整数延迟)。
大小(sysDefault)
具有1个输出、1个输入和21个状态的状态空间模型。
使用精确的延迟表示线性化模型。
opt =线性化选项;opt.UseExactDelayModel =“上”;sysExactDiscrete =线性化(model,io,opt);
查看生成的模型大小。它有一个状态。延迟在线性化模型中被内部解释。
大小(sysExactDiscrete)
具有1个输出、1个输入和1个状态的状态空间模型。
使用阶跃响应比较模型的性能。模型产生了相同的反应。
步骤(sysDefault sysExactDiscrete)传说(“默认”,“准确”,“位置”,“东南”)
关闭Simulink金宝app模型。
bdclose(模型)