Simulink中embedded MATLAB函数的使用详解
4星 · 超过85%的资源 需积分: 37 183 浏览量
更新于2024-09-13
收藏 28KB DOCX 举报
"对embedded matlab function的使用中文说明"
嵌入式MATLAB功能(Embedded MATLAB Function)是MATLAB Simulink环境中的一种模块,允许用户在Simulink模型中直接使用MATLAB代码来实现自定义的功能。这一特性使得用户可以利用MATLAB的强大计算能力,同时结合Simulink的系统级建模优势。在MATLAB 2010版本中,这一功能得到了广泛的应用。
一、嵌入式MATLAB功能简介
Embedded MATLAB Function模块位于Simulink的“User-Defined Functions”库中,它允许用户编写MATLAB代码,这些代码会在运行时被编译成高效的目标代码。这个功能使用的是一种受限的MATLAB子集,称为embedded MATLAB subset。不在这个子集内的函数需要通过`eml.extrinsic`声明或者使用`feval`函数来调用。这样的设计是为了确保代码能够在Simulink环境中高效执行。
二、使用嵌入式MATLAB功能的简单示例
以下是一个简单的例子,展示了如何使用Embedded MATLAB Function模块计算输入数据的均值和标准差。在这个例子中,Constant模块提供了输入数据[2345]。
代码如下:
```matlab
function[mean,stdev]=stats(vals)
%#eml
% 计算输入值的统计平均值和标准差。
eml.extrinsic('plot');
len=length(vals);
mean=avg(vals,len);
stdev=sqrt(sum(((vals-mean).^2))/len);
plot(vals,'-+');
function mean=avg(array,size)
mean=sum(array)/size;
```
1. 函数定义
函数`stats`接受一个输入参数`vals`,并返回两个输出`mean`和`stdev`。在Simulink模型中,这些输入和输出会直接显示在模块的接口上,方便与其他模块连接。
2. 编译指令
`%#eml`是编译指令,指示Simulink编译器将这段代码按照embedded MATLAB subset的规则处理。这有助于确保代码按照预期的方式编译和执行。
三、代码解释
1. 输入和输出
函数`stats`的定义部分明确了输入和输出。`mean`和`stdev`是计算结果,`vals`是输入数据。在Simulink模型中,你可以直接看到这些接口,便于与其他模块连接。
2. `eml.extrinsic`声明
`eml.extrinsic('plot')`用于声明外部函数`plot`,因为`plot`不在embedded MATLAB subset内。这样声明后,Simulink知道在运行时需要调用MATLAB引擎来执行`plot`函数。
3. 内部函数
`avg`是一个内部辅助函数,用于计算平均值。通过这种方式,我们可以将复杂逻辑分解为更小的、易于管理的部分。
通过这个例子,我们可以看到Embedded MATLAB Function如何在Simulink中集成MATLAB代码,实现复杂的计算任务。它允许用户充分利用MATLAB的灵活性和强大功能,同时保持Simulink的可视化和系统级建模的优势。在实际应用中,可以根据需要编写更复杂的算法,并在Simulink模型中直接调用,提高模型的可扩展性和复用性。
2021-11-19 上传
2021-11-19 上传
2021-06-01 上传
2022-07-15 上传
2021-07-10 上传
2021-05-27 上传
点击了解资源详情
点击了解资源详情
2013-04-03 上传
encorelemon123
- 粉丝: 3
- 资源: 2
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析