主要内容

指定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作为控制器块的线性化。

  1. 在Simuli金宝appnk模型中,右键单击饱和块,并选择线性分析>指定所选块线性化

  2. 在“块线性化规范”对话框中,选择使用下列方法之一指定块线性化

  3. 在下拉列表中选择配置功能

  4. 在文本框中输入函数名mySaturationLinearizationFcn

  5. 将饱和度限制指定为函数的参数。在参数值列中,输入变量名satlimit

  6. 参数名称列时,输入相应的描述性名称SaturationLimit

  7. 点击好吧

或者,您也可以通过编程方式定义配置函数。

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,即配置函数中指定的线性化值。

相关的话题