实现MATLAB函数动态仿真模块与MATLAB函数块
MATLAB函数块使您能够在Simulink中定义自定义函数®利用MATLAB进行建模®语言。MATLAB函数块支持C/ c++代码生成仿真软件编码器™和嵌入式编码®.
在以下情况使用这些块:
您有一个现有的MATLAB函数,它可以为自定义功能建模,或者您可以很容易地创建这样的函数。
您的模型需要在Simulink图形化语言中不能或不能捕获的自定义功能。
您会发现使用MATLAB函数比使用Simulink框图更容易为定制功能建模。
您想要建模的自定义功能不包括连续或离散的动态状态。要对动态状态建模,可以使用s函数。看到创建和配置MATLAB s函数.
计算均值和标准差MATLAB函数块
本示例从一个模型开始,该模型包含MATLAB函数块,并指导您如何自定义块,以计算值向量的平均值和标准差。
打开模型
该模型call_stats_block1
包括一个空的MATLAB函数块和示例所需的块。打开模型。
程序的MATLAB函数块
程序块计算一个值的矢量的平均值和标准差。
打开MATLAB函数块编辑器,双击MATLAB函数块。控件中出现一个默认函数MATLAB函数块编辑器有两个变量:一个输入参数和一个输出参数。
通过编辑函数声明语句来定义函数的输入和输出:
函数[mean, stdev] = stats(vals)
这个语句定义了一个函数
统计数据
有三个变量。该语句定义了一个输入参数,瓦尔斯
和两个输出参数,的意思是
而且方差
.在函数声明语句之后的新一行,添加以下代码:
%计算统计平均值和标准val值的%偏差。len =长度(val);意味着= avg (val, len);方差=√总和(vals-avg (vals, len)) ^ 2)) / len);情节(瓦尔斯,”——+”);函数均值= avg(array,size) /size;
退出。该块更新端口名称。函数输出
的意思是
而且方差
对应于块输出端口的意思是而且方差函数输入瓦尔斯
对应于块输入端口瓦尔斯.完成到的连接MATLAB函数块如图所示。
将模型保存为
call_stats_block2
.
检查属性MATLAB函数块变量
中的变量的属性可以检查和管理MATLAB函数块。看到创建和定义MATLAB函数块变量.在本例中,验证输入参数瓦尔斯
继承其类型和大小属性:
双击MATLAB函数块。
打开符号窗格和属性检查器。在函数选项卡上,单击编辑数据.
的符号控件中的变量名的名字列。的类型列确定函数参数的端口分配以及它在函数声明语句中的出现位置。在这个例子中,
瓦尔斯
分配给一个输入端口。的意思是
而且方差
分配给输出端口。如果你改变类型项,函数声明语句也会更改。检查属性
瓦尔斯
.在符号窗格中,单击的行瓦尔斯
.的属性检查器更新以显示属性瓦尔斯
.的范围属性匹配类型列。只有一些属性可以被继承:大小,单位,复杂性,类型.变量指示它们继承这些属性大小是
-1
,单位是继承
,复杂性是继承了
,类型是继承:和Simulink一样
.在这个例子中,瓦尔斯
使用这些值大小而且类型.
检查其他的MATLAB函数控件中选择变量来阻塞变量符号窗格。
默认情况下,新定义的输入和输出变量继承它们的大小、单位、复杂度和类型。如果希望变量使用特定的大小、单位或类型,可以显式指定这些属性。例如,输入3 [2]
在大小属性将变量指定为2×3
矩阵。有关更多信息,请参见定义和修改变量数据类型而且指定MATLAB函数块变量的大小.
构建函数
在中输入代码后MATLAB函数块,您可以检查代码中的错误并构建函数。看到调试MATLAB函数块.
当你建立一个模型时,MATLAB使用一个编译器来编译你的MATLAB函数块代码。如果您的系统上安装了多个支持matlab的编译器,则可以使用墨西哥人设置
命令。看到改变默认的编译器.要查看支持的编译器列表,请打开支持和兼容的编译器,单击对应于您的操作系统的选项卡,找到仿真软件产品家族表,和去对于模型引用,加速器模式,快速加速器模式,和MATLAB函数块列。
在仿真软件中,单击运行模拟模型。该软件构建MATLAB函数块,当它构建模型并将函数中的数据输出给这两个函数时显示块。
为代码生成准备块
从包含的模型生成独立的C/ c++代码MATLAB函数块,用仿真软件编码器或嵌入式编码器。
为模拟和代码生成构建选择支持的编译器
要查看支持的编译器列表,请打开支持和兼容的编译器,单击对应于您的操作系统的选项卡,找到仿真软件产品家族表,和去仿真软件编码器列。
为MATLAB函数块
如果你有执照仿真软件编码器或嵌入式编码器,您可以从模型生成代码。生成代码:
在
call_stats_block2
模型中,双击MATLAB函数块。打开仿真软件编码器或嵌入式编码器应用程序。
在C代码选项卡,构建编译和构建示例模型。
如果你得到一个与
变步
,打开“配置参数”窗口,单击解算器在左窗格中。下解算器的选择,设置类型来固定步
然后再次生成代码。要了解固定步长和可变步长求解器之间的更多区别,请参见固定步长vs变步长求解器.
另请参阅
MATLAB函数|MATLAB函数块编辑器|add_block