我是靠谱客的博主 多情唇膏,最近开发中收集的这篇文章主要介绍和simulink c代码生成s-function相关的一些心得,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

工作原因需要将一个一部分的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相关的一些心得所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部