基于SimulinkStateflow模型的嵌入式软件开发研究精文档格式.docx
- 文档编号:20240708
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:6
- 大小:40.69KB
基于SimulinkStateflow模型的嵌入式软件开发研究精文档格式.docx
《基于SimulinkStateflow模型的嵌入式软件开发研究精文档格式.docx》由会员分享,可在线阅读,更多相关《基于SimulinkStateflow模型的嵌入式软件开发研究精文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
Simulink,Stateflow,RTW,模型
1.引言
1.1模型开发的意义
鉴于软件工程化思想的引入和盛行,软件业发展潮流逐渐趋于工程化,流水化。
Matlab环境下集成的Simulink/Stateflow模型设计和使用RTW生成目标代码的软件设计方案便是这一大背景的产物。
Matlab集成了一组完整的、紧密集成的工具,形成了支持整个工程设计流程的、无缝集成的嵌入式控制系统设计解决方案。
这一解决方案可以使用户方便的穿梭于建模、仿真、验证与实施之间而无须重写代码或改变软件环境。
用户花费在编程与代码调试方面的时间显著减少,而留出更多的时间探索新思想、开发先进的技术、降低应用成本并提高产品质量。
本文所描述的解决方案基于Matlab环境。
这一环境集成了世界上最广泛应用的动态系统仿真软件Simulink。
它与State-flow、RTW(Real-TimeWorkshop及面向特殊应用领域的相关产品一起,提供了不同于传统的、综合的、灵活的、高效的、基于模型的设计方法。
1.2工具介绍
1.2.1Simulink/Stateflow介绍:
Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车等等,其中了包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。
Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码完成整个动态系统的建模工作。
Stateflow是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。
Stateflow与Simulink和MATLAB紧密集成,可以将Stateflow创建的复杂控制逻辑有效地结合到Simulink的模型中。
1.2.2RTW介绍:
由于基于模型的Matlab开发流程总是欠缺和工程实现的有效连接,系统级的设计产物无法和硬件产品直接挂钩,所以工程师无法直接应用Simulink模型的宝贵资源。
为了改善设计流程中的这一缺陷,MATLAB产品体系中加入了连接工程实现的桥梁-实时代码生成工具Real-TimeWorkshop(RTW。
RTW使用户可以直接将Simulink框图模型转化为实时标准C代码,进而为快速原型系统、半物理仿真系统或者产品提供设计输入,使仿真与实际应用紧密结合。
2.建立Simulink/Stateflow模型
本节主要介绍在Matlab下用Simulink/Stateflow工具建立模型,模型中包含了Simulink模块,并使用了Stateflow状态图控制各状态间的转移。
下面建立一个简单的仿真模型Testmodel.mdl,实现的功能如下:
(模型如图1
1系统初始输入1,系统的输入值在1和-1之间变换
2用scope显示输入的值
图1搭建的Simulink模型图
图2Chart状态机图
Testmodel.mdl中用Target1和Target2模块持续产生常量1和-1;
Switch模块用于选择输入到Stateflow状态图(Chart中的值。
Chart中有两个状态,一个状态为:
onStateOne,另一状态为offStateOne,转换条件如上图所示。
3.定制并生成代码
3.1TLC文件介绍
鉴于嵌入式软件开发主要是以应用为导向的,所以就不同的嵌入式平台生成的代码规范等也不尽相同。
那如何在模型设计并验证通过后生成针对具体平台下的嵌入式代码呢?
这就引入了与具体平台(如操作系统和编译器等进行结合的工作。
如:
在Matlab环境下生成支持VxWorks等系统的代码。
生成特定平台下定制代码的工作主要是由一个被称之为TLC(TargetLanguageCompiler的文件完成的。
在其中设定了生成代码的模板,格式,编译器等内容。
由于篇幅问题,在此不作具体介绍(详见Matlab下的TLC文档。
我们在此以生成普通ERT代码指代特定操作系统,如需要生成指定操作系统代码只需要更换为具体平台相关联的TLC文件即可。
TLC的选择如(图3、4所示:
3.2模型普通ERT代码生成
在生成ERT代码时可以通过替换TLC文件的方式实现有针对性地生成用于不同平台代码的工作。
而这大大方便了不同平台下的软件开发差异性带来的问题。
如上内容介绍,生成代码的工作主要是由RTW实现,下图描述了具体代码生成的步骤:
第一步:
选择图3中的Solver中的SolverOptions为FixedStep
第二步:
如图4所示选择ert.tlc文件;
第三步:
点击图3中的Build按钮生成并编译代码;
(普通ert.tlc使用lcc编译器,如果只生代码可以选中前面的Generatecodeonly选项
通过以上三步可以生成ert.tlc所定制的代码。
生成代码中79
(上接第73页
!
5.实例应用
为了验证本文提出的新的改建算法的有效搜索能力,分别用本文中改进的遗传算法和普通的遗传算法进行了仿真结果比较,并做了进一步的探讨。
选取一定量的配送目的地,本文中选取6个,运送车辆选为2台,根据数学求最优解的方法,可以得出问题的最优解是67.5。
遗传算法的参数分别选为:
对于双种群,主种群和次种群规模均选为30,主种群的选择算子采用期望值法,交叉率Pc
=0.6、
变异率P
3.熊伟清,魏平.遗传算法的早熟现象研究[J].计算机应用研究.2001.9
4.王复兴.黄金分割在自动系统故障判断中的作用[J].自动化仪表.2001.(22
5.姜大立,杨四龙,杜文.车辆问题的遗传算法研究[J].系统工程理论与实践。
1999.19(6
6.郭宇春等.遗传算法及其应用.系统工程与电子工程[J].1998.7
7.扬智民,王旭,庄显义.遗传算法在自动控制领域中的应用综述[J].信息与控制.2000.29(4
8.邓正龙,何小荣,蒋兆贵等化工中的优化方法[M]北京:
化学工业出版社。
1992
9.席裕庚,柴天佑等.遗传算法综述[J].信息与控制.1996.13(6
实现了模型的所有功能。
图3RTW选项
图4TLC的选择
4.模型代码运行
下图介绍了如生成代码如何通过TLC被编译并下放到目标环境运行的原理:
图5编译目标代码过程
模型代码生成并编译为指定平台可执行文件后,只要目标环境平台配置得当,就可以将生成的可执行文件下放到目标环境运行了。
在实验中我们使用了普通ERT方式生成代码,其编译器默认使用是Matlab自带的Lcc。
使用此编译器编译模型生成的代码文件testmodel.c可实现EXE文件的生成(生成代码中有make文件可用,工具可选择直接生成可执行文件。
并可用于本地环境运行(因为普通ert.tlc不是针对具体目标环境生成的,而仅仅是提供ERT代码的格式样板,不含与特定操作系统和编译器有关内容,所以编译生成后可直接本地运行。
5.总结
由本文可鉴,通过模型设计的方式开发嵌入式软件可以大大节省项目在开发时间和人力上的投入,工程师可以将注意力集中在模型的设计和验证上,而屏蔽了各种应用中的实现细节(这些都由tlc文件来完成。
大量事实表明,RTW生成的代码在效率和代码可读性等方面足以与优秀的手写代码媲美。
以模型方式进行嵌入式软件的开发,在动辄上万行的系统中优势尤为明显。
参考文献:
1.TheMathWorksInc.Real-TimeWorkshopforUsersWithSimulink.User'
sGuideVersion6TheMathWorksInc,200609
2.MATLAB/SIMULINK在动态系统仿真中的应用聂春燕长春大学学报2001.02
3.基于MATLAB环境的实时仿真研究边新迎等微计算机信息2006年第22卷第7-1期
4.Real-TimeWorkshop?
EmbeddedCoderForUsewithReal-TimeWorkshop?
User'
sGuideVersion4TheMathWorksInc,2006
5.Stateflow?
andStateflow?
CoderForUsewithSimulink?
sGuideVersion6TheMathWorksInc,2006
0980
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SimulinkStateflow 模型 嵌入式 软件 开发 研究