没有预编程解析雅可比矩阵的块使用数值摄动线性化。您可以修改应用程序的状态大小和输入信号扰动水平。
这个例子演示了如何在磁球模型中改变磁球厂块的扰动水平。改变摄动水平就会改变线性化结果。
对于这个模型,状态值和输入信号值都是双精度值。该模型中状态和输入信号的默认扰动大小为 ,在那里 为扰动状态或输入信号的工作点值。
在改变扰动水平之前打开模型。
open_system (“magball”)
将状态的微扰水平改为 ,在那里 是状态值。
blockname =“magball /磁球工厂”;set_param (blockname“StatePerturbationForJacobian”,“e - 1”);
将该块的输入信号的扰动电平更改为 ,在那里 为输入信号值,先获取块端口句柄并获取该句柄到输入端口值。
ph = get_param (blockname,“PortHandles”);p_in = ph.Inport (1);
然后,设置输入端口扰动水平。
set_param (p_in“PerturbationForJacobian”,“1 e - 3”);
要获取块状态的当前扰动级别,请使用以下代码。
statePerturb = get_param (blockname,“StatePerturbationForJacobian”);
要获得块输入信号的当前扰动水平,请使用以下代码。
inputPerturb = get_param (p_in,“PerturbationForJacobian”);
当相应的状态或输入信号扰动水平为其默认值时,两者均为statePerturb
和inputPerturb
是“汽车”
.
双精度状态和输入信号的默认扰动大小为 式中,x为扰动状态或输入信号的工作点值。对于单精度状态和输入信号,默认扰动大小为 .
要恢复块状态的默认扰动级别,请使用以下代码。
set_param (blockname“StatePerturbationForJacobian”,“汽车”);
若要恢复块输入信号的默认扰动级别,请使用以下代码。
set_param (p_in“PerturbationForJacobian”,“汽车”);
需要整数输入端口进行索引的自定义块在不支持输入值的小扰动时可能存在线性化问题。金宝app为了解决这个问题,尝试将这样一个块的扰动级别设置为零,这将使块的线性化增益为1。