主要内容

延迟模型的线性化

这个例子展示了如何线性化一个有延迟的Simulink模型。金宝app

具有连续延迟的模型的线性化

您可以使用以下选项之一线性化带有连续时间金宝app延迟块的Simulink模型,如传输延迟、可变传输延迟和可变时间延迟:

  • 利用延迟的Pade近似,通过线性化得到一个合理的线性系统。

  • 计算延迟精确表示的线性化。当您需要从线性化模型中的准确仿真和频率响应时使用此选项,并且在评估Pade近似的准确性时。

默认情况下,Simuli金宝appnk Control Design在Simulink模型中使用Pade近似的延迟块。

要打开本例中使用的发动机转速模型,输入

模型=“scdspeed”;open_system(模型);

发动机转速模型在动力冲程延迟感应子系统中包含一个名为dM/dt的可变传输延迟模块。为了方便,您可以通过输入将块的路径存储在MATLAB变量中

DelayBlock ='scdspeed/感应功率行程延迟/dM//dt延迟'

要使用第一阶近似计算线性化,请使用以下技术之一来将Pade近似的顺序设置为1:

  • 在“变量传输延迟块”对话框中,在PACE订单(用于线性化)字段。

  • 在命令行处,输入以下命令:

set_param(devileblock,“PadeOrder”' 1 ');

接下来,指定线性化I/O节流角度为输入,发动机转速为输出,通过运行:

io (1) = linio ('SCDSPEED /油门(度)',1,“输入”);io (2) = linio ('scdspeed / rad / s到rpm',1,“输出”);

使用以下linearize命令计算线性化:

sys_1st_order_approx =线性化(模型、io);

您可以通过将PACE顺序设置为2来计算使用二阶近似的线性化:

set_param(devileblock,“PadeOrder”' 2 ');sys_2nd_order_approx = linearize(模型,io);

要使用精确的延迟表示来计算线性模型,请在Linoptions对象中设置“MedualExActdelayModel”属性,以开启:

选择= linearizeOptions;opt.UseExactDelayModel =“上”

使用以下线性化命令对模型进行线性化:

sys_exact =线性化(模型,io,选择);

比较Pade近似模型和精确线性化模型的Bode响应,运行如下:

p = bodeoptions ('cstprefs');p.grid =“上”;p.PhaseMatching =“上”;p.XLimMode = {“手动”};p.xlim = {[0.1 1000]};f =图;BODE(sys_1st_order_approx,sys_2nd_order_approx,sys_exact,p);h =图例('sys_1st_order_approx'“sys_2nd_order_approx”“sys_exact”...'地点'“西南”);h.Interpreter =“没有”

在一阶近似情况下,相位开始发散到50 rad/s左右,发散到100 rad/s左右。

关闭Simulink金宝app模型。

bdclose(模型)

不同延迟模型的线性化

当使用离散延迟块线性化模型时,例如(Integer) delay和Unit delay块使用精确的延迟选项来考虑延迟,而不向模型动态添加状态。明确地考虑这些延迟可以提高具有许多离散延迟的系统的模拟性能,因为模型中的状态更少。

要打开一个离散系统的Si金宝appmulink模型,使用一个具有20个延迟状态的延迟块(用于本示例),运行以下程序。

模型='scdintegerdelay';open_system(模型)

默认情况下,线性化包括折叠到线性模型中的所有状态。设置线性化I / O和线性化模型如下:

io (1) = linio (的scdintegerdelay /步骤,1,“输入”);io (2) = linio (“scdintegerdelay /离散滤波器”,1,“输出”);sys_default =线性化(模型、io);

集成得到的模型可以看到它有21个状态(1 -离散滤波器,20 -整数延迟)。

大小(sys_default)
状态空间模型,包含1个输出,1个输入和21个状态。

你可以使用“UseExactDelayModel”属性线性化这个模型,如下所示:

选择= linearizeOptions;opt.UseExactDelayModel =“上”;sys_exact =线性化(模型,io,选择);

询问新的结果模型表明,它有一个状态和延迟是内部考虑的线性模型。

大小(sys_exact)
具有1个输出、1个输入和1个状态的状态空间模型。

运行两个线性化模型的阶跃响应仿真,通过运行以下命令来查看它们是否相同。

步骤(sys_default,sys_exact);h =图例('sys_default'“sys_exact”...'地点''东南');h.Interpreter =“没有”

关闭Simulink金宝app模型,清理图形。

bdclose(模型)关闭(f)

使用带有延迟的线性化模型

有关使用延迟操纵线性化模型的更多信息,请参阅指定时间延迟用延迟分析控制系统

另请参阅

|

相关话题