在Simulink中建模,生成C++代码,在vs平台下进行功能验证

引言

                前一阵看了一下无人驾驶汽车的局部路径跟踪算法,导师的想法是让先在我们的实验车辆上跑起来,但使用模型预测的C代码又不是简单就能够编出来的,因此就想到了使用基于模型设计的方法。
花了一下午的时间,简单的代码生成流程是实现了,在写笔记的时候想到自己收藏不如写出来,还能给后来者一个参考。

功能

               功能比较简单,就是利用simulink实现一个逻辑加法的功能,通过代码生成流程打包一个加法函数,在vs中利用控制台应用程序给出两个加数,调用C函数,输出运算结果。

环境

Matlab/Simulink R2014b,
 Visual Studio2010
Windows 7

过程

首先,在Simulink中搭建如下图所示的系统模型。(模型就是这么直接!)
在Simulink中建模,生成C++代码,在vs平台下进行功能验证_第1张图片

然后,通过ctr+E快捷键,调出参数配置界面;
在Simulink中建模,生成C++代码,在vs平台下进行功能验证_第2张图片
在参数配置方面,主要有两处需要重点配置,第一处是在Solver页面下,首先解算类型必须选固定点解算器,由于该模型没有连续状态,因此选择discrete方法;
在Simulink中建模,生成C++代码,在vs平台下进行功能验证_第3张图片
第二处是代码生成页面下,主要有以上五点需要修改,修改完之后,系统就被配置成了生成C++代码并将可以在VS2010中运行所需的全部相关文件压缩成Matlab当前工作文件夹下的battery压缩文件。
系统配置完毕之后,点击OK键退出配置界面。之后可以通过按下Ctr+B或者在Command Window中输入rtwbuild(gcs)来启动模型编译。编译成功则弹出Code Generation Report界面如下图所示。
在Simulink中建模,生成C++代码,在vs平台下进行功能验证_第4张图片
然后在Matlab当前工作文件夹下找到battery压缩文件,解压缩后将其中的全部头文件和源文件放到控制台应用程序中,然后在控制台应用程序的入口simulink工程直接对应的那个头文件即可调用生成的加法函数。添加完头文件和压缩文件的控制台应用程序如下图所示:
在Simulink中建模,生成C++代码,在vs平台下进行功能验证_第5张图片
该程序运行之后,通过键盘一次输入两个数字,然后系统调用加法函数,即可输出相加的结果。
效果图如下;

整个过程没有进行代码的编辑,因此极大的减少了编代码者的工作量。

你可能感兴趣的:(在Simulink中建模,生成C++代码,在vs平台下进行功能验证)