simulink生成C代码.docx

上传人:b****8 文档编号:9609719 上传时间:2023-05-20 格式:DOCX 页数:10 大小:721.36KB
下载 相关 举报
simulink生成C代码.docx_第1页
第1页 / 共10页
simulink生成C代码.docx_第2页
第2页 / 共10页
simulink生成C代码.docx_第3页
第3页 / 共10页
simulink生成C代码.docx_第4页
第4页 / 共10页
simulink生成C代码.docx_第5页
第5页 / 共10页
simulink生成C代码.docx_第6页
第6页 / 共10页
simulink生成C代码.docx_第7页
第7页 / 共10页
simulink生成C代码.docx_第8页
第8页 / 共10页
simulink生成C代码.docx_第9页
第9页 / 共10页
simulink生成C代码.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

simulink生成C代码.docx

《simulink生成C代码.docx》由会员分享,可在线阅读,更多相关《simulink生成C代码.docx(10页珍藏版)》请在冰点文库上搜索。

simulink生成C代码.docx

simulink生成C代码

MATLAB控制系统仿真与嵌入式系统算法设计(原创)  

2009-01-2213:

25:

25|  分类:

 嵌入式系统与MATL|字号 订阅

摘要:

  在控制类产品设计中,从仿真到工程实现一直是工程师追求的目标,本文将用几个实列来讨论这一过程,因为相当一部分工程师对单片机系统、Keil比较熟练,因此我采用对项目Simulink建模仿真后,就如何生成C代码,然后配合Keil环境,从而以很小的工作代价把一些复杂的算法集成到单片机系统或嵌入式系统里运行,例子中包含有查询表、信号处理、模糊控制、神经网络、PID控制算法等。

我将一个一个列子的来叙述.

关键词:

模糊控制、查询表 

1.  引言

2.在Simulink环境下把查询表转化为8051兼容C代码

在我的文章如何在MATLAB下把模糊推理系统转化为查询表(原创) 里,已获得一水位模糊控制系统的查询表模型名叫Fuzzylookup,样子如下:

 

                     图1-1模糊逻辑生成的查询表模型

2.1设置Real-TimeWorkshop环境

点击Simulink\Tools\Real-TimeWorkshop\Options…, 

                            图1-2Real-TimeWorkshop设置1

在上图的设置窗中,选择Real-TimeWorkshop项按上图设置,设置好后,选择HardwareImplement…,设置如下,点击Apply。

 

 

                                图1-3Real-TimeWorkshop设置2

选择Solver项,设置如下,点击Apply。

                              图1-4Real-TimeWorkshop设置3 

 

1.2生成8051兼容C代码并查看生成报告

点击Simulink\Tools\Real-TimeWorkshop\BuildModel…,过几秒后,看到代码生成报告如下样子的界面:

                    图1-5Real-TimeWorkshop代码生成报告

 

1.3把生成8051兼容C代码放入Keil环境里编译成51可执行的代码

在Keil下创建一个项目,命名为LookupTable.Uv2,把上一步生成的所有代码文件拷贝到与LookupTable.Uv2同一个目录下,这个例子中需要把rtlibsrc.h从MATLAB安装目录下搜查出来也考到这个目录下,然后在Keil环境内,打开LookupTable.Uv2项目,把以上文件全部添加到SourceGroup1内,样子如下:

          图1-6Real-TimeWorkshop生成的代码导入Keil里

 

1.4稍修改生成的51代码和设置Keil环境为编译做准备.

修改代码和设置Keil环境的目的是让Keil能顺利编译文件,并能运行程序做测试,下面是代码修改的几个地方。

1.   ert_main.c内的主函数修改成如下样子:

                                     图1-7修改后的main()

                               

2. ert_main.c内的rt_OneStep()修改成如下样子:

 

 

                                图1-8修改后的rt_OneStep()

3.修改Fuzzylookup.c里的fuzzylookup_step函数,程序里增添了两行代码:

fuzzylookup_U.In1=-0.92;

fuzzylookup_U.In2=-0.06;

模拟传感器器送入的信号,用于测试是否程序执行后是否查询表输出值是正确的,样子如下:

                       图1-9修改后的fuzzylookup_step(void)

 

4.keil环境设置,因为查询表格的尺寸较大,所以单片机存储器模式设置成下面的样子,MemoryModel:

Large:

variablesinXDATA。

 

                         图1-10单片机存储模式设置

 

5.   编译项目,编译后可以看到项目占用的资源情况,这里暂时不考虑代码优化问题。

                                     图1-11Keil编译结果

6.   执行程序测试。

                              图1-12程序运行测试结果

7.结论

    以上的步骤就完成了一个MATALB下查询表转化为8051处理器可执行的代码.

SIMULINK里做嵌入式设计的流程(小结)

 Simulink与嵌入式代码自动化生成

终于可以在实物上实践了各种控制算法了使用图像识别技术的水位模糊控制装置1(构思)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2