[转载]把C语言转成Simulink s function
标签:
转载 |
分类: matlab |
我想用的s-function功能暂时比较简单,能够把我写的C语言转成相应的模块即可。阅读了好多文档,发现s function多种多样、分类以及写法都比较复杂。诸多探索之下,终于发现可以用S-Function Builder来实现我想要的功能。
1,以下是我的代码,一个加法运算。我发现,必须把数据类型处理成最基本的表达方式,如果有可能,可以用其他的定义形式。不过,不能够跟Simulink代码生成的数据类型冲突。按理来说应该能够通用,可是这个我试了好久最终没能够避开。
http://s16/middle/001NO4wDzy76Ml0RBw30f&690
2,指定s-function名称
http://s5/middle/001NO4wDzy76Ml0TiBef4&690
3,定义输入参数
http://s3/middle/001NO4wDzy76Ml0WJou32&690
4,定义输出参数
http://s3/middle/001NO4wDzy76Ml10hI662&6905,修改数据类型,使其与C代码中的一致。
http://s4/middle/001NO4wDzy76Ml12ikza3&6906,输入代码文件
http://s4/middle/001NO4wDzy76Ml16iKTe3&690
7,定义输出
http://s10/middle/001NO4wDzy76Ml19x0Jd9&6908,点击build生成C mex sfun
http://s16/middle/001NO4wDzy76Ml1bPnp8f&690
9,搭建模型并仿真
http://s16/middle/001NO4wDzy76Ml1Aq51ef&690
10,测试代码生成,这个1+1真的花费我不少时间
http://s13/middle/001NO4wDzy76Ml1D16Idc&69011,再试一个其他的测试
http://s2/middle/001NO4wDzy76Ml2c9rP01&690
12,结果似乎有一点不好解释,或许跟仿真设置有关,回头继续研究。

加载中…