c调用matlab模型,关于的集成外部C代码到Simulink模型分析和介绍

编程入门 行业动态 更新时间:2024-10-04 17:26:51

c调用matlab<a href=https://www.elefans.com/category/jswz/34/1771358.html style=模型,关于的集成外部C代码到Simulink模型分析和介绍"/>

c调用matlab模型,关于的集成外部C代码到Simulink模型分析和介绍

我原来写了一些很漂亮的C函数,写得非常不错,想把它集成到Simulink环境中来,怎么办?

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

集成外部C代码到Simulink模型

要得到:

把自己编写的C函数集成到Simulink模型中

怎么做:

Simulink提供了多种方法来集成外部的C代码。从简单到复杂来看,可以:

使用Stateflow;

使用MATLABFunction模块;

使用LegacyCodeTool构造S-fcn模块;

自己写S-fcn

只介绍简单的方法

1.假设已有代码table1D.c以及table1D.h

table1D是个简单的1维查表函数。这是它的函数原型。第1、2个输入是表格数据,第3个输入是表格长度数据,第4个输入就是要查找的x,查到的结果作为返回值。

2.函数调用

我现在希望在Simulink环境下使用这个查表函数。当前的应用场景是:在给定表格的情况下,通过输入u查出相应的y出来。

在Stateflow中,参照.h文件里定义的函数原型直接调用这个函数:

然后如下图说明一下各个变量:u是这个Chart模块的输入,y是Chart的输出,uMap,yMap,n是固定的表格参数。

在MATLABFunction模块中,需要使用到coder.ceval调用这段代码,引用传递使用coder.rref:

跟Stateflow类似,在MATLABFunction中也需要对m脚本里用到的各个变量名做一个说明。

3.在Workspace里定义数据对象

再来看Simulink模型,它现在有4个信号:

我希望控制这4个信号的名字以及定义方式,所以新建这4个信号对应的数据对象。另外,也给之前的3个参数定义对应的数据对象。

4.并把该模型生成代码

Ctrl+B,得到如下所示,两句函数调用的语句:

另外,为了保证模型的正确编译链接,生成代码之前还需要在源文件中include手写的.h文件。如图,要在模型.h文件中增加这一行include的代码。

那这一行include是怎么加进去的呢?如下页面得到:

总结

使用Stateflow以及MATLABFunction模块可以很方便的集成外部的C代码。

更多推荐

c调用matlab模型,关于的集成外部C代码到Simulink模型分析和介绍

本文发布于:2024-02-28 05:32:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768584.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模型   代码   matlab   Simulink

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!