Simulink中embedded MATLAB函数的使用详解
4星 · 超过85%的资源 需积分: 37 150 浏览量
更新于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 上传
2019-08-13 上传
2023-07-19 上传
2023-06-28 上传
2023-04-24 上传
2023-08-06 上传
2023-06-06 上传
2023-05-16 上传
encorelemon123
- 粉丝: 3
- 资源: 2
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍