关于的集成外部C代码到Simulink模型分析和介绍

我原来写了一些很漂亮的 c 函数,写得非常不错,想把它集成到 simulink 环境中来,怎么办?
点击末尾的 “阅读原文” 下载本文的案例模型
集成外部c代码到simulink模型
要得到:
把自己编写的 c 函数集成到 simulink 模型中
怎么做:
simulink 提供了多种方法来集成外部的 c 代码。从简单到复杂来看,可以:
使用 stateflow;
使用 matlab function 模块;
使用 legacy code tool 构造 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 是固定的表格参数。
在matlab function模块中,需要使用到coder.ceval调用这段代码,引用传递使用 coder.rref:
跟 stateflow 类似,在 matlab function 中也需要对 m 脚本里用到的各个变量名做一个说明。
3. 在workspace 里定义数据对象
再来看 simulink 模型,它现在有 4 个信号:
我希望控制这 4 个信号的名字以及定义方式,所以新建这 4 个信号对应的数据对象。另外,也给之前的 3 个参数定义对应的数据对象。
4.并把该模型生成代码
ctrl + b,得到如下所示,两句函数调用的语句:
另外,为了保证模型的正确编译链接,生成代码之前还需要在源文件中 include 手写的 .h 文件。如图,要在模型.h 文件中增加这一行 include 的代码。
那这一行 include 是怎么加进去的呢?如下页面得到:
总结
使用 stateflow 以及 matlab function 模块可以很方便的集成外部的 c 代码。

人工智能技术如何改善任何规模企业的营销
如何将手机内容无线投射到大屏幕,让小屏变大屏?
小米6什么时候上市?小米6最新消息:小米6发生变数,难道后者才是真的吗,是不是现货?
皮革低温耐折试验机的注意事项有哪些
封装基板微盲孔成孔技术详解
关于的集成外部C代码到Simulink模型分析和介绍
携手飞腾创新打造高品质国产“芯”工业主板
商业AI与工业AI的差异 工业AI的架构分析
手机里的射频与天线是一回事吗
AMD发布EPYC 3000嵌入式处理器
华为nova2发布:拍照影音功能是亮点,这是要抢OV的饭碗
苹果基带芯片已推迟到2026年初
IDT推出首款针对4G基站的可变增益放大器F1240和F1241
在5G量子世界中怎样思考人工智能
接触式反无人机和非接触式反无人机方法介绍
如何设计一个谐振的等效变压电路?变压器机组下为什么要铺设石子?
台式万用表故障维修处理方法汇总
算力芯片需求激起制造环节千层浪
工业还有很长的路要走
技术 | 铝电解电容为什么不能承受反向电压?