指定d矩阵系统块线性化使用函数
此示例展示如何使用函数为饱和块指定自定义线性化。
打开Simulin金宝appk模型。
mdl =“configSatBlockFcn”;open_system (mdl)
在该模型中,饱和块的极限为-satlimit
而且satlimit
。
定义饱和限制,这是饱和块的线性化函数所需的参数。
Satlimit = 10;
利用模型中定义的线性分析点在模型工作点处对模型进行线性化。这样做将返回饱和块的线性化。
IO = getlinio(mdl);Linsys =线性化(mdl,io)
linsys = D = Constant Saturation 0.5静态增益。
在模型工作点,饱和块的输入为10。这个值在饱和边界上。在这个值处,饱和块线性化为1。
假设当输入落在饱和边界上时,您希望块线性化到0.5的过渡值。编写一个函数,定义饱和块线性化以这样的方式表现。本例中使用mySaturationLinearizationFcn.m
。
函数blocklin = mySaturationLinearizationFcn(BlockData)此函数自定义饱和块的线性化。的块的%线性化如下% BLOCKLIN = 0时|U| >饱和限制当|U| <饱和限制时,% BLOCKLIN = 1当U =饱和极限时,% bloclin = 0.5获取块参数中指定的饱和限制。satlimit = BlockData.Parameters.Value;根据块的输入信号电平计算线性化。如果abs(blockdata . input . values) > satlimit blocklin = 0;elseifabs(blockdata . input . values) < satlimit blocklin = 1;其他的Blocklin = 0.5;结束
该配置函数根据块输入信号的电平定义饱和块线性化。对于超出饱和限制的输入值,块线性化为零。在限定范围内,块线性化为1。对于边界值,块线性化到插值值0.5。函数的输入BlockData是在配置饱和块的线性化以使用该函数时软件自动创建的结构。配置函数从该数据结构中读取饱和限制。
函数的输入,BlockData
,是软件每次线性化块时自动创建的结构。当您指定块线性化配置函数时,软件自动通过BlockData
对函数。如果您的配置函数需要其他参数,您可以配置块以在BlockData。参数
字段。
指定mySaturationLinearizationFcn
作为控制器块的线性化。
在Simuli金宝appnk模型中,右键单击饱和块,并选择线性分析>指定所选块线性化。
在“块线性化规范”对话框中,选择使用下列方法之一指定块线性化。
在下拉列表中选择
配置功能
。在文本框中输入函数名
mySaturationLinearizationFcn
。将饱和度限制指定为函数的参数。在参数值列中,输入变量名
satlimit
。在参数名称列时,输入相应的描述性名称
SaturationLimit
。点击好吧。
或者,您也可以通过编程方式定义配置函数。
satblk =“configSatBlockFcn /饱和度”;set_param (satblk“SCDEnableBlockLinearizationSpecification”,“上”= struct(“规范”,“mySaturationLinearizationFcn”,...“类型”,“函数”,...“ParameterNames”,“SaturationLimit”,...“ParameterValues”,“satlimit”);set_param (satblk“SCDBlockLinearizationSpecification”代表)
再次线性化模型。现在,线性化使用饱和块的自定义线性化。
Linsys_cust =线性化(mdl,io)
linsys_cust = D = Constant Saturation 0.5静态增益。
在模型工作点,饱和块的输入为10。因此,块线性化到0.5,即配置函数中指定的线性化值。