打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
怎样生成我想要的C代码系列 | MATLAB Function实现数学运算

作者简介

柚籽,MATLAB中文论坛(http://www.ilovematlab.cn) 超级版主,MATLAB/Simulink高级应用工程师,同济大学机械电子工程专业硕士学位,专注于物理系统的建模仿真,在论坛回答问题超过1700个,分享大量Simulink应用学习资源

上一篇介绍了用 Simulink 框图以及 Stateflow 的形式来表达常用的循环控制语句诸如 for 、while 以及,do while。

其实也就是使用 Simulink 库里相应的模块,以及使用 Stateflow 流程图向导。在这一篇,我们介绍使用 MATLAB Function 的方式。

其实,如果想在 Simulink 里嵌套使用 m 脚本来实现某些复杂的数学运算,用 MATLAB Function 也是一种很方便的途径。

点击末尾的 “阅读原文” 下载本文的案例模型

循环逻辑
  • 要得到:

y1 = 0;

    for(inx = 0; inx <10;>

    {

     y1 = u1[inx] + y1;

    }

或者  

    while(flag && (num_iter <=>

    {

     flag = func ();

     num_iter ++;

    }

  • 怎么做:

    • MATLAB Function 模块可以直接写相应的 m 脚本。

For循环

1. 简单模型

  • 直接把循环的脚本写进去就行了:

  • 得到代码:

2. 调用外部函数

  • 当 m 脚本里,如果有些运算需要调用到外部已有的 Simulink 函数时,跟 Stateflow 一样,也可以使用 function call 的形式。如下图,在 MATLAB Function 的数据管理界面上,将 func 设置为 function call 类型:


  • MATLAB Function 内部运行到 func; 这一句时,触发调用外部的 Trigger 子系统 func 计算输出,从而更新 func_flag 的值:

  • 生成的代码如图,这里做了模型配置把所有代码注释都去掉了:

总结

Simulink 提供了多种建模的方式

没有哪种是最好的,只有合适的

使用 MATLAB Function 模块,可以利用 m 脚本来方便的表达某些复杂的数学计算。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
怎样生成我想要的 C 代码系列(8)
怎样生成我想要的C代码系列 | Simulink子系统如何生成单独的子函数?
控制策略模型建模规范(其它)
基于模型的嵌入式C代码的实现与验证 测控论文 自动化论文 测控技术文库
MATLAB Simulink和Stateflow的控制算法建模指南-MAB 5.0 1-100页(MAAB)
Simulink中任务调度实现方法浅谈
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服