打开APP
userphoto
未登录

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

开通VIP
怎样生成我想要的 C 代码系列(8)
userphoto

2022.09.17 广东

关注

在上两个帖子里,介绍了用 Simulink 框图以及 Stateflow 的形式来表达常用的循环控制诸如 for 、while 以及,do while。其实也就是使用 Simulink 库里相应的模块,以及使用 Stateflow 流程图向导。

那在这一篇,介绍使用 MATLAB Function 的方式。

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

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

循环逻辑

要得到:      

    y1 = 0;

    for(inx = 0; inx <10; inx++)

    {

     y1 = u1[inx] + y1;

    }

或者  

    while(flag && (num_iter <= 100)

    {

     flag = func ();

     num_iter ++;

    }

怎么做:

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

MATLAB Function 里面直接写代码

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代码系列 | MATLAB Function实现数学运算
怎样生成我想要的C代码系列 | Simulink子系统如何生成单独的子函数?
基于模型的嵌入式C代码的实现与验证 测控论文 自动化论文 测控技术文库
控制策略模型建模规范(总则)
MATLAB Simulink和Stateflow的控制算法建模指南-MAB 5.0 1-100页(MAAB)
Simulink中任务调度实现方法浅谈
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服