概述
工作原因需要将一个一部分的c代码在simulink中运行并进行仿真测试,于是就使用了matlab自带的lct code工具。从中遇到了几个问题记录一下:
1. 首先是输入输出结构体的定义,如果输入和输出都是结构体,那么在c的header里面需要定义这些输入输出的数据类型,在matlab的workspace里面也需要定义相同的bus,同时将该bus的类型设置为imported,来源的header文件就是我们在c代码里定义的文件名。
2. 使用该方法需要定义输出函数为什么,如果定义的输入是结构体指针,那么在这个定义输出函数的输入里面要写成数组的第一个值
比方说我的函数输出是这个
int y = output(aaa *u1);
那我们在matlab里面设置就要把它写成 y=output(aaa u1[0]);
3.在仿真的时候发现在计算微分的时候出现了问题,一直都是0,随后发现在simulink模块的一个仿真周期下,这部分代码走了9次。。我在设置sample time的时候设置的参数和模型的仿真周期一致。后面的解决办法是设置了一个时间同步,即给c代码的输入增加一个接口,这个接口的量simulink chart输出一个随周期+1的值,c代码根据这个值来运行,如果这个值不加,则idle。
最后
以上就是多情唇膏为你收集整理的和simulink c代码生成s-function相关的一些心得的全部内容,希望文章能够帮你解决和simulink c代码生成s-function相关的一些心得所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复