Matlab代码生成(RTW)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab代码生成(RTW) 针对换挡省油提示系统项目代码生成过程如下:
双击红色TCU0模块,进入TCU0子模块:
选择Simulation/Configuration Parameters,打开配置参数界面:
配置Solver,选择Fixed-step,因为是离散变量操作;解码器Solver选择ode1(Euler),Fixed-step size选择0.004(4ms),与单片机执行周期对应;Tasking mode for periodic sample times:选择SingleTasking
配置Hardware Implementation:选择Infineon C16x
Real-time Workshop配置:系统目标文件选择ert.tlc;Language:选择C;使能生成文件Generate makefile;Make command:make_rtw;Template makefile:ert_default_tmf
Report:配置为全部使能
参数配置完成后,然后,主要对TCU模块进行定点数转换,右键TCU模块,选择Fixed-Point/Fixed-Point Advisor
选择Run/Run to failure,会自动进行定点数转换检测
定点数检测完成后,右键TCU模块,选择Real-Time Workshop/Build Subsystem
点击Build后,会自动生成代码,产生代码生成报告:
代码会保存在相应的目录下:
双击打开TUC0_ert_rtw,
将代码生成的C文件,HEX文件添加到单片机Keil程序中:
最后6个文件为matlab代码生成的头文件和C文件。
然后在单片机头文件中,调用一下四个头文件:
那么Keil编译是肯定能通过的。
生成代码在程序中调用:
首先在初始化程序中,调用TCU0_initialize(0),来完成生成代码的初始化过程。
在主程序中,每次给TCU0_U.Speed(车速),TCU0_U.throttle(油门开度),TCU0_U.Nee (转速)重新赋值,车辆上这三个值可以周期性的通过CAN采集到,然后通过生成代码TCU0_step()计算,便可得出期望档位TCU0_Y.gear,如下: