基于Simulink_Stateflow模型的嵌入式软件开发研究

合集下载

Simulink及基于模型设计的嵌入式应用_孙忠潇

Simulink及基于模型设计的嵌入式应用_孙忠潇

20
Copyright 2014 FUJITSU LIMITED
基于模型的嵌入式设计及应用
代码自动生成
初次尝试,先使用ert.tlc作为系统目标文件生成嵌入式C代码 ert.tlc会启动代码生成过程,将模块转化为C代码 未经过任何优化的代码可读性不强
21
Copyright 2014 FUJITSU LIMITED组件之一,它提 供一个动态系统建模、仿真和综合分析的集成环境。
@Matlab2013b:simulink opens the Simulink® Library
Browser.
@Hyowinner:Simulink = Simu + Link Simu -> Simulation ->仿真 ->具象化逻辑及结果 Link -> 连接 ->模块与库连接 ->设计与需求连接
17
Copyright 2014 FUJITSU LIMITED
基于模型的嵌入式设计及应用
需求与模型关联
通过rmi setup注册Active-X controls后Simulink Model菜单栏增加了需求追踪功能 追加了链接之后,文档中出现Simulink的小图标,能够从需求文档链接到模型;每当 需求出现了变更可以通过链接检查是否及时反映到所设计的模型中,以保持一致性
More about Simulink:to be continued
Simulink是什么
Matlab 上手容易,一般从调用简单 的绘图函数或矩阵创建开始 Simulink 要求整体把握,理有点难度, 一开始就要面对整个系统
Matlab 学科分支多,理论深度达, 后期依靠的是学术理论造诣
Simulink Simulink运行机制与流程的 理解,会加速应用的熟练度

汽车电子软件开发流程 ISO 26262说明书

汽车电子软件开发流程 ISO 26262说明书

符合ISO 26262的汽车电子软件开发流程董淑成**************************MathWorks中国ISO 26262(2011)高完整性软件开发标准和基于模型的设计01219901995200020052010基于模型设计的应用标准生效的年份DO-178B (1992)NASA-GB-8719.13(2004)IEC 61508(1998)DO-178C(2011)IEC 61508(2010)EN 50128(2001)EN 50128(2011)IEC 61511(2003)软件开发标准里出现基于模型的设计为什么?大纲▪ISO 26262软件开发项目的启动▪符合ISO 26262的软件开发过程软件开发ISO 26262定义的软件开发过程系统集成和测试系统设计软件需求验证软件集成和测试软件单元测试软件单元设计及实现软件需求定义软件架构设计系统测试软件测试软件测试软件测试设计验证设计验证设计验证软件开发ISO 26262的软件项目启动系统集成和测试系统设计软件需求验证软件集成和测试软件单元测试软件单元设计及实现软件需求定义软件架构设计系统测试软件测试软件测试软件测试设计验证设计验证设计验证1.软件开发计划2.软件验证计划3.编程、建模语言的选择4.编码、建模标准5.工具的选择6.工具应用指南建模/编程语言的选择及相关标准▪建模或者编程语言的选择标准–明确的定义–支持嵌入式实时软件和运行时错误处理–支持模块化、抽象及结构化▪语言本身不能涵盖的上述标准应通过相应的指导或开发环境涵盖TopicsASILA B C D 1a Enforcement of low complexity++++++++ 1b Use of Language subsets++++++++ 1c Enforcement of strong typing++++++++ 1d Use of defensive implementation technique O+++++ 1e Use of established design principles+++++ 1f Use of unambiguous graphical representation+++++++ 1g Use of style guides+++++++ 1h Use of naming conventions++++++++▪通常,汽车电子软件选择C语言–基础软件手工编写C代码–控制策略软件通过Simulink建模并自动生成代码C代码•建模/编码标准要涵盖的内容Simulink/Stateflow建模标准▪汽车行业建模标准(MAAB)–专门为汽车行业Simulink用户制定▪高完整性系统建模标准–专门为民航、火车、汽车等高完整性系统建模制定设计工具/验证工具的选择 工具的分类及资质审核TI 2TI 1TD 3TD 1TD 2TCL 3TCL 2TCL 1工具错误的检测工具置信水平高中无/ 低增加审核需求工具的影响ASIL 为TCL2级的资质审核无需额外的资质审核为TCL3级的资质审核工具分类工具资质审核UC 1..n 软件工具有引入错误或者不能检出错误的可能工具的功能/用例TÜV SÜD认证的工具▪Embedded Coder™功能:生产针对嵌入式优化的C和C++代码▪Simulink® Verification and Validation™功能:验证模型和模型生成的代码▪Simulink® Design Verifier™功能:定位设计错误,生成测试用例,并根据需求对设计进行验证▪Polyspace® Client™ for C/C++功能:证明源代码没有运行期错误▪Polyspace® Server™ for C/C++功能:在计算机集群执行代码验证并发布度量开发工具的应用指南▪除了选择开发工具之外,还要提供开发工具的应用指南▪Embedded Coder等工具具有非常详实的用户手册需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成汽车电子软件的现状和复杂软件开发的困境▪GM汽车上的代码量▪软件工程师的工作效率▪解决复杂软件开发效率低下的途径–模块化开发模块化的原则和目标▪模块划分的一般原则–从功能上–高内聚–低耦合▪模块划分的目标–简化设计–便于分工–便于测试–便于后期维护▪In order to avoid failures resulting from high complexity, the software architecture design shall exhibit the following properties,–Modularity;–Encapsulation; and–Simplicity.ISO 26262软件架构设计原则▪软件架构设计原则MethodsASILA B C D1a Hierarchical structure of software components++++++++ 1b Restricted size of software components++++++++ 1c Restricted size of interfaces++++ 1d High cohesion within each software component+++++++ 1e Restricted coupling between software components+++++++ 1f Appropriate scheduling properties++++++++ 1g Restricted use of interrupts+++++软件的层次化结构设计▪模块如何划分–从功能上划分组件▪以发动机为例,分为:点火、进气、油量计算、怠速、巡航等▪模型实现上model reference发动机控制点火控制进气计算燃油控制怠速控制巡航控制其他–对复杂组件进一步划分为单元模块▪以发动机的怠速控制为例,分为暖机怠速、闭环速度控制、扭矩请求等单元▪模型实现上model reference系统级组件级单元级单元模块的设计不建议使用Model Reference.基于模型的嵌入式软件开发需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成Simulink建模语言▪使用建模语言的子集▪Simulink和Stateflow之间的选择–如果算法是复杂的逻辑运算,使用Stateflow;–如果算法主要是数据运算,使用Simulink;▪Stateflow的flow chart和state chart之间的选择–如果算法本质上是计算工作状态或者离散状态,使用state chart;–如果算法本质上是if-then-else结构,使用flow chart或者真值表;ISO 26262软件单元的设计原则▪Example: Parallel states should not appear at the top level of a state-chart.--Misra Modeling GuidelineMethodsASILABCD1a One entry and one exit point in subprograms and functions++++++++1b No dynamic objects or variables, or else online test during their creation +++++++1c Initialization of variables++++++++1d No multiple use of variable names+++++++1e Avoid global variables or else justify their usage ++++++………1h No hidden data flow or control flow +++++++1jNo recursions++++++▪软件单元的设计和实现原则模型复杂度监测对单元模块进行复杂度监测–Model advisor–圈复杂度Simulink模型的平台化开发▪Model Variants–通过配置不同的参数选择不同的被引用模型–比如,K_Param== CLASS_A,选择Model_A.mdl;K_Param== CLASS_B,选择Model_B.mdl–支持生成条件编译的代码▪System Variants基于模型的嵌入式软件开发需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成软件开发ISO 26262定义的软件开发过程系统集成和测试系统设计软件需求验证软件集成和测试软件单元测试软件单元设计及实现软件需求定义软件架构设计系统测试软件测试软件测试软件测试设计验证设计验证设计验证MAAB及相关规范的检查▪Model Advisor实现建模规范检查▪定制检查集▪定制检查项模型评审▪模型和需求的双向追溯–模型→需求–需求→模型▪Simulink Report Generator生成报告–为非Simulink用户生成报告▪Simulink Report Generator实现不同版本模型比较使用Simulink Design Verifier检查逻辑错误▪设定生成测试用例目标为MC/DC100%覆盖▪生成测试用例▪逻辑错误导致无法生成100%覆盖的测试用例,并提示错误逻辑使用Simulink Design Verifier检查数据错误▪通过算术运算分析定位错误–数据溢出–被零除▪证明没有错误的运算演示Simulink Design Verifier检查错误单元模块的功能测试▪仿真测试▪覆盖率分析模型测试的覆盖率要求▪对单元软件测试的结构覆盖率要求–覆盖率达到分支覆盖率100%–MC/DC 要求▪对软件架构测试的覆盖率要求MethodsASILABCD1a Statement coverage ++++++1b Branch coverage+++++++1cMC/DC (Modified Conditional/Decision Coverage)+++++MethodsASILABCD1a Function coverage ++++++1bCall coverage++++++模型的集成测试▪模型的组件级集成测试▪模型的系统级测试–模型在环测试–快速原型▪不同组件之间的接口测试▪不同组件功能上是否冲突基于模型的嵌入式软件开发需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成代码生成的前提条件 模型经过充分验证模型符合建模标准功能测试覆盖率足够高模型不含有无效逻辑模型不含有数据错误GenerateCode数据对象和数据字典▪使用数据对象定义数据属性Properties (属性)Classes (类)Package (包)SimulinkSignal DataTypeData Storage ClassMin/Max ParameterData TypeData Storage ClassmodelName = 'f14';dictionaryName = 'myNewDictionary.sldd ‘;dictionaryObj =Simulink.data.dictionary.create(dictionaryName);set_param(modelName,'DataDictionary',dictionaryName);▪使用数据字典管理数据对象数据字典管理数据按照组件划分进行数据管理代码生成工具配置1. 通过系统目标文件设定回调函数2. 在代码生成设置的回调函数里固化设置软件工具除确定id 和版本号之外,还需要确定配置等效性测试▪SIL测试/PIL测试都是等效性测试–验证生成的代码和用于代码生成的模型具有相同的行为属性–PIL除等效性验证之外,还可以用来测量运行时间▪等效性测试的测试用例–功能测试的测试用例–Simulink Design Verifier自动生成▪模型覆盖率和代码覆盖率的比较代码的集成和集成测试▪代码集成的两种方式–单元模型的代码生成,代码级别做集成–模型级别集成,然后生成代码▪软硬件的系统级集成–硬件在环测试–台架测试–实车测试Plant model uController models1s2s3+Plant Model in PC uControllers1s2s3+基于模型的嵌入式软件开发需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成MathWorksChange the world byAccelerating the paceof discovery, innovation, development, and learningin engineering and science。

Stateflow系统建模在车身控制软件开发的应用

Stateflow系统建模在车身控制软件开发的应用

Stateflow系统建模在车身控制软件开发的应用作者:何璟来源:《中国新通信》2013年第02期【摘要】采用Stateflow系统建模可使车身控制软件开发的效率大大提高,同时达到软件便于仿真和升级维护的要求。

本文主要以汽车车内照明灯的控制为例,较为详细的介绍了在Stateflow下系统模型的建立和验证,并简要说明系统模型的软件代码生成。

可视化的建模、验证和调试方式表明,Stateflow系统建模可以有效的应用于车身控制系统的软件开发。

【关键词】Stateflow车身控制状态转移MATLAB软件产品是用来解决工程与科学实际问题的应用软件,广泛应用于航空航天、汽车、兵器与国防工业、通信、大学教育以及金融财经等多个行业。

Stateflow作为其中一个产品模块,是集成于Simulink中的图形化设计与开发工具,主要针对控制系统中的复杂控制逻辑进行建模和仿真,适应于对事件响应的动态变换系统设计。

Stateflow涉及的功能包括:控制对象建模、状态逻辑切换、复杂逻辑的可视化编程、嵌入式系统集成等。

本文主要介绍利用Stateflow针对车身控制软件开发中涉及的功能逻辑进行系统建模以及进行时序仿真,并最终生成可直接用于嵌入式系统开发的软件代码。

一、车身控制模块的介绍车身控制系统包括汽车安全、舒适性控制和信息通信系统,主要用于增强汽车的安全性、驾驶的方便性和乘坐的舒适性。

车身控制技术发展至今,已形成模块化和系统化,即众多的电器控制功能已整合到一个(或几个)功能强大的控制模块中,即我们常说的车身控制模块(BCM)。

车身控制模块主要涉及中央防盗门锁、室内灯、电动车窗、玻璃除霜、雨刮器、遥控、转向灯、前后组合灯、雾灯、喇叭、天窗、座椅、后视镜等控制。

二、系统模型的建立车身控制模块包括了许多不同的功能模块,各个功能都可以用建模来实现,最后集成到一起,形成一个完整的车身控制系统。

下面将以汽车车内照明灯的控制为例详细介绍控制软件的模型建立。

Simulink及基于模型设计的嵌入式应用_孙忠潇(1)讲解

Simulink及基于模型设计的嵌入式应用_孙忠潇(1)讲解

->模型与代码连接
->你我与Matlab/Simulink连接
3
Copyright 2014 FUJITSU LIMITED
Simulink是什么
模块库 模型
波形
普遍认识 从Simulink Browser里选择模块,建 立模型并且进行仿真。
4 Copyright 2014 FUJITSU LIMITED
12
Copyright 2014 FUJITSU LIMITED
基于模型的嵌入式设计及应用
基于模型设计
Model Based Design,基于模型设计是一种流程,较之传统软件开发流程而言, 使开发者能够更快捷、以更少的成本花费进行开发。适用范围包括信号处理,控制 系统,通信行业。表述系统的模型是整个开发流程的中心,贯穿需求,设计,实施 与测试。模型本身就是一个可执行的规格书,开发者修改优化模型就是对设计的修 缮,无需到实施之后通过测试再进行系统验证,可以通过仿真在早期设计时期就及 时进行正确性验证,并且在实施阶段,特别是对于嵌入式软件,代码由模型生成。
Copyright 2014 FUJITSU LIMITED
Simulink能够做什么
视频处理
跟Matlab一样功能强大,具有动态系统仿真的功能,包含信号处理,图像视频处理, 数值运算,控制系统等等各个方面。
视频帧差分使能录像仿真
7
Copyright 2014 FUJITSU LIMITED
Simulink能够做什么
音乐播放器
Simulink作为功能强大的动态仿真工具,通过模型建立,运行仿真,甚至自定义模块 应用于信号处理音频处理,数值运算,控制系统等等各个方面。
使用自带模块搭建 音频解析器,方便 快捷。 稍作加工即可实现: 播放开始后进行音 量调节、暂停、继 续以及播放停止等 动作。 构成音乐播放器

基于Simulink—TargetLink的AMT电控系统软件开发

基于Simulink—TargetLink的AMT电控系统软件开发

基于Simulink—TargetLink的AMT电控系统软件开发【摘要】利用Simulink-TargetLink开发AMT电控系统软件,具有模块功能定义明确、算法实现与验证方便快捷、模型数据统一管理、自动定标、代码自动生成等优点,极大地提高系统软件开发效率和开发质量。

【关键词】TargetLink;AMT;软件开发前言现代汽车电控系统功能越来越复杂,要求电控单元开发周期越来越短,采用传统的开发方式已难以满足车辆电控系统软件开发的要求。

因此应采用规范的软件开发平台,以提高软件开发效率和质量。

Simulink基于模型的设计以及Targetlink代码生成工具,目前在汽车电控单元开发中广泛使用。

本文主要介绍应用Simulink和TargetLink进行的AMT电控系统(以下简称TCU)软件开发的方法和流程。

1.AMT电控系统底层驱动软件AMT电控系统硬件采用Freescale公司的MC9S12DP256微处理器,电控系统底层驱动软件主要是对MCU寄存器操作,得到最底层输入信号并控制最末级输出信号,在电控系统开发周期内它们变化不大,且用Simulink不容易实现,故采用传统方法用手工编写,它们包括:I/O,A/D,转速,定时器,中断,CAN 通信等。

2.信号处理与控制策略信号输入、控制策略以及控制量输出在Simulink环境下进行编写。

2.1 模拟输入信号处理为了保证电控系统稳定可靠运行,必须对信号(数字I/O,模拟输入等)进行处理,如开关输入信号消抖以减小外界干扰、模拟输入信号高低限检查以判断是否故障,在出现故障时用什么值来替代输入信号等,它也是系统故障诊断的依据。

对于任何数字输入信号,由I/O信号处理状态机得到处理后的I/O值。

采用stateflow可以方便地实现模拟输入和数字输入的信号处理算法建模。

2.2 基于Simulink的控制策略车辆行驶时,TCU根据当前车辆运行状态确定变速箱的目标档位,并控制执行机构完成下面动作:离合器分离→摘空挡→选档→换档→离合器结合,实现自动换档,同时控制发动机的扭矩和转速以提高AMT的换档品质。

基于量子框架和Stateflow模型的嵌入式系统软件设计

基于量子框架和Stateflow模型的嵌入式系统软件设计

·44·兵工自动化Ordnance Industry Automation2018-1137(11)doi: 10.7690/bgzdh.2018.11.009基于量子框架和Stateflow模型的嵌入式系统软件设计刘芮滦,邓 杨,史伟娜,刘 志(中国工程物理研究院电子工程研究所,四川绵阳 621000)摘要:基于模型的设计是目前嵌入式系统软件设计的发展趋势,对嵌入式系统建模和根据模型自动生成代码是其关键技术。

量子框架作为一种事件驱动型的基础框架,可以作为嵌入式软件运行的支撑平台。

Stateflow模型适用于描述嵌入式系统的逻辑控制功能,利用RTW工具可以直接从该模型自动生成C代码。

以某飞行控制系统为应用实例设计其活动对象和事件,针对时序控制功能建立Stateflow模型并进行仿真,最后自动生成C代码与量子框架集成,从而实现飞行控制系统的软件设计。

研究表明:量子框架较好地支持了Stateflow模型自动生成的代码,两者结合可以实现基于模型的设计在嵌入式系统软件设计中的应用。

关键词:嵌入式系统;基于模型的设计;量子框架;Stateflow;自动代码生成中图分类号:TP391.9 文献标志码:AEmbedded System Software Design Based on Quantum Frame and Stateflow ModelLiu Ruiluan, Deng Yang, Shi Weina, Liu Zhi(Institute of Electronic Engineering, China Academy of Engineering Physics, Mianyang 621000, China) Abstract: Model-based design is nowadays the development trend of the embedded system software design, and modeling the embedded system and auto code generation by models are the key technologies. Quantum framework, as an event driven framework, can be used as a supporting platform for embedded software. Stateflow model is suitable for describing the logic control function of embedded system, and the C code can be automatically generated from the model directly by using the RTW tool. In this paper, a flight control system is used as an example to design the active objects and events, and the Stateflow model of the sequential control function is established and simulated, finally the C code is automatically generated and integrated with the quantum framework. In this way, the software of flight control system is designed. The research shows that the quantum framework can support the codes generated by Stateflow model automatically, and the combination of them can realize the application of model-based design in embedded system software design.Keywords: embedded system; model-based design; quantum frame; Stateflow; auto code generation0 引言嵌入式系统大量应用于航空航天、国防军工等安全关键领域,随着嵌入式系统软件规模和复杂度的急速增长,嵌入式系统软件设计、开发及验证面临新的挑战。

基于Simulink模型的嵌入式代码生成PPT课件

第17页/共31页
9. 可以看到代码变得简单了,但是还有一个k还是结构体变量,我 们继续优化,我们删除原来的变量 k,添加一个MPT Parameter, 命名为k,值为3
第18页/共31页
10. 设置k的参数内联,并再次Building(Ctrl+b),生成代码
第19页/共31页
11. 代码生成如下
在各个信号线上双击,添加信号名,x,y和z
第12页/共31页
4.添加信号对象和信号名关联起来,添加MPT Signal的信号对 象x,y,z
第13页/共31页
5.添加x,y,z信号对象后,需要关联信号名
第14页/共31页
6. 关联信号名,在信号线上右键,点击Signal Properties…
第21页/共31页
----代码生成的优化设置 1.可以设置产生代码的一些限定条件和执行效率。
第22页/共31页
----模型级算法函数的原型的控制 1.我们可以自定义生成的代码函数原型,包括函数名,输入参数,
输出参数等,使其符合我们的上层调用接口
第23页/共31页
2.我们可以自定义生成的代码函数原型,包括函数名,输入参数, 输出参数等,使其符合我们的上层调用接口
第11页共31页首先将demomodel1mdl文件中所有模块选中点editcreatesubsyetem生成子模块便于管理在各个信号线上双击添加信号名xy和z第12页共31页添加信号对象和信号名关联起来添加mptsignal的信号对添加xyz信号对象后需要关联信号名第14页共31页关联信号名在信号线上右键点击signalproperties
第30页/共31页
谢谢您的观看!
第31页/共31页
第15页/共31页

基于MatlabSimulinkStateflow的模数混合信号系统的精准行为模拟


音:白色噪音及1/f噪音);Jl址:连接外围积分电容
的I/o PAD的漏电电流。在包括这些参数后,再重
复以上的推导,我们会得到:
B一垦‰±一K±儿垦1+!f二呲kR堡4-
Vo,1一% RC
%一%+I址R T1
, —o7、
由此可见转换器中的非理想因素会影响到它的
最终性能。为了去除或减小这些非理想因素的影
数转换器是通过两个阶段来实现模/数转换的。第 一阶段为测量(Measurement)阶段即T1时间段,开 关Sz由连接(此时转换器处于回零状态)到断开,
U通过开关S,连到积分器的输入并开始持续
2“T。触(其中Tdock是转换器工作时钟周期)的积分。 第二阶段为求值(Evaluation)阶段即疋时间段,开
关S1断开V’m并连到‰,同时计数器(Counter)开
始计数。由于Tc触%与K相对于虚拟地极是极
T性脚相的反输的出,Ⅵ所。以向在与这第一一阶阶段段Kf相对反的的积方分向使移得动IN。—
当Ⅵ。穿过虚拟地极的电压值时,触发比较器的输出 极性发生变化(由‘0’到‘1’或相反)并由此使得计数 器停止计数并输出最终结果(假设为B=612_1+ 岛2-2+‘一+&21)。此后转换器又循环回到第一阶段。
收稿日期:2009—07—14 修改日期:2009—08-21 作者简介:赵明越(1986一),男,山东济南人,09年毕业于山东交通学院信息工程系,电子信息专业,zmyl9861123@gmail.eom;
朱伟(1986一),女,河北唐山人,09年毕业于山东交通学院信息工程系电子信息专业,现在济南大学攻读研究生。
f 1.Department.of Information Engineering,Shandong Jiaotong University.,Jinan 250357,China 1

基于Simulink的嵌入式软件可靠性虚拟仿真测试方法

基于Simulink的嵌入式软件可靠性虚拟仿真测试方法作者:尚京威陈平来源:《科技与创新》2017年第02期摘要:嵌入式软件的可靠性测试是一短极为耗费时间和人力的测试过程。

针对软件可靠性存在的问题,提出了一种嵌入式软件可靠性测试的虚拟仿真测试方法,能增强对软件场景的描述,实时监控软件中的数据,并通过已知故障模式高效、快速地获得失效时间,以期为嵌入式软件可靠性相关研究提供验证支持和数据支持。

关键词:虚拟仿真;失效数据;Simulink;MTTF中图分类号:TP311 文献标识码:A DOI:10.15913/ki.kjycx.2017.02.106嵌入式软件的可靠性测试是一个极为耗费时间和人力的测试过程。

传统的软件可靠性测试的方法是构造剖面,按照剖面生成测试用例,按照测试用例的顺序进行测试,过程为:可靠性分析→修改→再测试→再分析→再修改。

只有在测试样本(测试数据)非常丰富的情况下,随机抽样产生的测试数据才能更加准确地体现出软件的使用分布,但是测试数据的增加势必造成剖面的增大,从而使研究所需的数据收集变得非常困难,进而造成现有的软件中可靠性数据只是数学推导,无法广泛试验。

1 现有软件可靠性测试的局限性目前,广泛采用的软件可靠性测试方法主要是对软件的使用情况进行建模,构建出可靠性测试剖面,比如操作剖面、马尔科夫剖面、使用剖面等,并基于测试剖面开展测试工作。

由于可靠性测试剖面中除了包含软件怎样被使用外,还包含着软件使用的分布情况,因此,通过基于测试剖面的随机抽样生成的测试数据不仅可以体现出用户怎么使用软件,还能体现使用随时间分布的特性,可用于软件的可靠性定量评估,获得的软件的MTTF或故障率等软件可靠性评估结果。

2 可靠性测试虚拟仿真测试研究2.1 Simulink建模的场景剖面利用Simulink建模的场景剖面可分为系统场景及软件场景2个部分:①系统场景主要以软件所在的自主控制系统及其中所包含的各个交联系统为描述对象,对全系统的运行状态、影响系统运行状态转变的环境因素及外界激励进行描述;②软件场景主要以软件自身为描述对象,对软件自身的运行状态及其可能的输入输出进行描述。

基于SimulinkStateflow的车身控制模块开发

申请上海交通大学硕士学位论文上海交通大学学位论文基于Simulink/Stateflow的车身控制模块开发DEVELOPMENT OF VEHICLE-BODY CONTROL MODULES BASED ON SIMULINK/STATEFLOW硕士姓名:胡益汀专业:电子与通信工程学号:1070342060研究方向:软件建模及仿真指导导师:王军锋教授上海交通大学电子信息学院2011年9月基于Simulink/Stateflow的车身控制模块开发摘要随着越来越多的厂商加入汽车电子的阵营,如何高质量、高效率的开发汽车电子产品,迅速占领市场,成了众厂商共同面临的问题。

在这种情况下,使用Simulink/Stateflow对汽车电子控制模块建模,并用Real-Time Workshop Embedded Coder生成特定硬件目标的嵌入式代码,这种开发方式在业内逐渐推广,并流行起来。

在深入学习和研究Stateflow建模和Real-Time Workshop自动生成代码机制的基础上,本文详述了MATLAB中几个重要组件的功能及特点,以及自动生成代码的流程。

对于Real-Time Workshop的两种不同应用:快速仿真和嵌入式代码生成,文中也作了详细的介绍。

车身控制模块是汽车的一个通用部件,本文以它为例介绍了系统建模及生成代码的整个过程。

在开发过程中还涉及到了几个重要方面,包括模型的调试、模型测试用例的编写、代码覆盖率检查、定制代码格式等,文中对于这些内容都作了详细描述。

除了车身控制模块,汽车上其他系统控制模块的开发流程也与之类似,因此一个完善的软件开发流程对于汽车电子零配件厂商来说至关重要。

本文详细介绍了基于Simulink/Stateflow的软件开发流程,对于众厂商具有一定的实用价值。

关键词:Stateflow建模,自动代码生成,车身控制模块DEVELOPMENT OF VEHICLE-BODY CONTROL MODULES BASED ON SIMULINK/STATEFLOWABSTRACTAs more and more companies start to design the electronic control units for the automobile,they are all thinking about designing the products with high quality and efficiency,and grabbing the market as soon as possible.Under this circumstances,modeling the electronic control units with Simulink/Stateflow,and generating the code with Real-Time Workshop Embedded Coder for specific hardware,becomes a popular design pattern for these companies.Based on the deeply study and research of Stateflow and Real-Time Workshop,this thesis introduces several important tools and the process of code generation in MATLAB.It also describes the two different applications of Real-Time Workshop:Rapid Simulation and Generate Embedded Code.Body Control Module is an important part of the automobile,this thesis introduces the process of modeling and code generation for BCM. Besides this,it also describes the process of model debugging,writing the test case,checking the code coverage,and defining the specific code format.There are a lot of control modules in the vehicle,they have different functions but can be designed in the same process.Based on this thesis, automobile OEM companies can improve their software development process and design more reliable products.KEY WORDSWORDS::Stateflow,Code Generation,Body Control Module目录第一章概述 (1)1.1研究背景及意义 (1)1.2国内外的研究状况 (1)1.3论文的主要工作 (2)第二章Real-Time Workshop及Stateflow开发环境 (3)2.1产品概述 (3)2.2Real-Time Workshop的主要功能和特点 (4)2.2.1Real-Time Workshop的主要功能 (4)2.2.2Real-Time Workshop的主要特点 (4)2.3Stateflow的主要功能和特点 (6)2.3.1Stateflow的主要功能 (6)2.3.2Stateflow的主要特点 (6)2.4Real-Time Workshop Embedded Coder的主要功能和特点 (7)2.4.1RTW Embedded Coder的主要功能 (7)2.4.2RTW Embedded Coder的主要特点 (8)2.5Real-Time Workshop的应用 (9)第三章Real-Time Workshop自动代码生成过程简介 (10)3.1Real-Time Workshop代码格式介绍 (10)3.2GRT与ERT目标代码的比较 (11)3.3Real-Time Workshop创建程序的过程 (13)3.4生成代码过程中产生的文件 (15)第四章构建车身控制模块的系统模型 (17)4.1BCM(Body Control Module)简介 (17)4.2基于Stateflow的车窗模型 (18)4.2.1车窗的功能需求 (18)4.2.2建立车窗模型 (20)4.2.3Stateflow建模的要点 (22)4.3Stateflow模型的验证 (26)4.3.1建立用于仿真的Simulink车窗模型 (26)4.3.2测试用例的编写 (28)4.3.3对模型进行调试 (30)4.3.3.1Stateflow调试器 (30)4.3.3.2设置断点 (32)4.3.3.3调试过程 (34)4.4代码覆盖率检查 (34)4.4.1常用的代码覆盖测试准则 (34)4.4.2车窗模型的覆盖率检查 (35)第五章生成定制的嵌入式代码 (39)5.1TLC目标语言 (39)5.1.1TLC文件分类 (39)5.1.2TLC语法简介 (39)5.2修改TLC文件 (41)5.2.1修改全局函数的函数名 (42)5.2.2修改代码中引用的头文件 (43)5.3配置Simulink模型 (44)5.4生成代码 (47)第六章结束语 (51)参考文献 (52)致谢 (53)攻读学位期间发表的学术论文目录 (54)第一章概述1.1研究背景及意义随着现今社会的进步和发展,汽车产业在工业领域所占的比重越来越大,然后汽车电子面临着市场需求的多样性和和设计开发高效性之间的矛盾。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 台 , 根 据 数 学 求 最 优 解 的 方 法 , 可 以 得 出 问 题 的 最 优 解 是 67. 5。
遗传算法的参数分别选为: 对于双种群, 主种群和次种群规 模 均 选 为 30, 主 种 群 的 选 择 算 子 采 用 期 望 值 法 , 交 叉 率 Pc=0.6、 变异率 Pm=0.01; 次种群的选 择 算 子 采 用 赌 轮 法 , 交 叉 率 Pc=0.8、 变异率 Pm=0.05; 种群间个体迁移率为 Pt=0.382; 世代之间交换率 Pg=2( 即 采 用 隔 代 人 口 迁 移 法 ) ; 对 于 普 通 遗 传 算 法 种 群 规 模 选 为 60, 交叉率 Pc=0.8、变异率 Pm=0.05。设定两组的运算, 均迭代 50 次。
80
福建电脑
2008 年第 1 期
实现了模型的所有功能。
图 3 RTW 选项
图 4 TLC 的选择 4. 模型代码运行
下 图 介 绍 了 如 生 成 代 码 如 何 通 过 TLC 被 编 译 并 下 放 到 目 标环境运行的原理:
图 5 编译目标代码过程
模型代码生成并编译为指定平台可执行文件后, 只要目标 环境平台配置得当, 就可以将生成的可执行文件下放到目标环 境运行了。
运算结果如下表所示, 从响应曲线可以看出, 双种群的平均 值 73.25, 普通遗传算法的平均值是 68.565, 由此可以的出结论, 在参数( 种群规模, 交叉, 变异概率) 大致相同的情况下, 应用本 文提出的算法可以更好接近最优化解。
6. 结论 本文提出的算法实行的是一种动态次种群中迁入新的个
本文所描 上 最 广 泛 应 用 的 动 态 系 统 仿 真 软 件 Simulink。 它 与 State- flow、RTW( Real- Time Workshop) 及 面 向 特 殊 应 用 领 域 的 相 关 产 品 一 起 , 提 供 了 不 同 于 传 统 的 、综 合 的 、灵 活 的 、高 效 的 、基 于 模 型的设计方法。 1.2 工具介绍 1.2.1 Simulink/Stateflow 介绍:
在实验中我们使用了普通 ERT 方式生成代码, 其 编 译 器 默 认使用是 Matlab 自带的 Lcc。使用此编译器编译模型生成 的 代 码 文 件 testmodel.c 可 实 现 EXE 文 件 的 生 成 ( 生 成 代 码 中 有 make 文件可用, 工具可选择直接生成可执行文件) 。并可用于本 地环境运行( 因为普通 ert.tlc 不是针对具体 目 标 环 境 生 成 的 , 而 仅仅是提供 ERT 代码的格式样板, 不含与特定操 作 系 统 和 编 译 器有关内容, 所以编译生成后可直接本地运行) 。 5. 总结
本节主要介绍在 Matlab 下用 Simulink/Stateflow 工具建立模 型, 模型中包含了 Simulink 模块, 并使用了 Stateflow 状态图控制 各状态间的转移。下面建立一个简单的仿真模型 Testmodel.mdl, 实现的功能如下: ( 模型如图 1)
1)系统初始输入 1, 系统的输入值在 1 和- 1 之间变换
Simulink 是基于 MATLAB 的框图设计环 境 , 可 以 用 来 对 各 种 动 态 系 统 进 行 建 模 、分 析 和 仿 真 , 它 的 建 模 范 围 广 泛 , 可 以 针 对任何能够用数学来描述的系统进行建模, 例如航空航天动力 学系统、卫星控制制导系统、通讯系统、船舶及汽车等等 , 其中了 包 括 连 续 、离 散 , 条 件 执 行 , 事 件 驱 动 , 单 速 率 、多 速 率 和 混 杂 系 统 等 等 。 Simulink 提 供 了 利 用 鼠 标 拖 放 的 方 法 建 立 系 统 框 图 模型的图形界 面 , 而 且 Simulink 还 提 供 了 丰 富 的 功 能 块 以 及 不 同的专业模块 集 合 , 利 用 Simulink 几 乎 可 以 做 到 不 书 写 一 行 代 码完成整个动态系统的建模工作。
由 于 基 于 模 型 的 Matlab 开 发 流 程 总 是 欠 缺 和 工 程 实 现 的 有效连接, 系统级的设计产物无法和硬件产品直接挂钩, 所以工 程师无法直接应用 Simulink 模型的宝贵资源。为了改善设计流 程中的这一缺陷, MATLAB 产品体系中加入了连接工程实现的 桥梁 - 实时 代 码 生 成 工 具 Real- Time Workshop ( RTW) 。RTW 使用户可以直接将 Simulink 框图模型转化为实时标准 C 代码, 进 而 为 快 速 原 型 系 统 、半 物 理 仿 真 系 统 或 者 产 品 提 供 设 计 输 入 , 使仿真与实际应用紧密结合。 2. 建立 Simulink/Stateflow 模型
体, 参与到主种群中进行竞争, 运用黄金分割点来进行优化, 克 服了传统遗传算法算法由于受到种群规模的限制而导致的早熟 或易陷入局部最优的问题, 它增加了迭代过程中模式的多样性, 有效地增强了算法的寻优能力和搜索速度。通过比较, 结果表 明, 优化后的遗传算法在解决货物配送问题上的有效性是很明 显的。根据同样的道理, 本文提出的方法也可以运用到其他的最 优解的问题上, 例如在用于分析非线性系统的稳定性时, 也是可 行的。
2008 年第 1 期
福建电脑
79
基于 Simulink/Stateflow 模型的嵌入式软件开发研究
任书明, 揭金良, 石开强
( 成都理工大学 信息工程学院 四川 成都 610054 )
【摘 要】: 当前在控制领域内使用 Simulink/Stateflow 建模并以 RTW 生成 指 定 代 码 的 方 式 代 替 传 统 嵌 入 式 软 件 开 发 方 法已形成趋势。这是由于基于 Simulink 模型的嵌入式软件开发大大节省了软件开发的人力、物力和时间成本。本文针对在 Matlab 环境下如何使用 Simulink/Stateflow 建立模型, 实现嵌入式软件开发的过程进行了详细介绍。
2) 用 scope 显示输入的值
图 1 搭建的 Simulink 模型图
图 2 Chart 状态机图 Testmodel.mdl 中 用 Target1 和 Target2 模 块 持 续 产 生 常 量 1 和- 1;Switch 模 块 用 于 选 择 输 入 到 Stateflow 状 态 图 ( Chart) 中 的 值。Chart 中有两个状态, 一个状态为:onStateOne, 另一状态为 offStateOne, 转换条件如上图所示。 3. 定制并生成代码 3.1 TLC 文件介绍 鉴于嵌入式软件开发主要是以应用为导向的, 所以就不同 的嵌入式平台生成的代码规范等也不尽相同。那如何在模型设 计并验证通过后生成针对具体平台下的嵌入式代码呢? 这就引 入了与具体平台( 如操作系统和编译器等) 进行结合的工作。如: 在 Matlab 环境下生成支持 VxWorks 等系统的代码。 生成特定平台下定制代码的工作主要是由一个被称之为 TLC( Target Language Compiler) 的文件完成的。在其中设定了生 成代码的模板, 格式, 编译器等内容。由于篇幅问题, 在此不作具 体介绍( 详见 Matlab 下的 TLC 文档) 。 我们在此以生成普通 ERT 代码指代特定操作系统 , 如 需 要 生 成 指 定 操 作 系 统 代 码 只 需 要 更 换 为 具 体 平 台 相 关 联 的 TLC 文件即可。TLC 的选择如( 图 3、4) 所示: 3.2 模型普通 ERT 代码生成 在 生 成 ERT 代 码 时 可 以 通 过 替 换 TLC 文 件 的 方 式 实 现 有 针对性地生成用于不同平台代码的工作。而这大大方便了不同 平台下的软件开发差异性带来的问题。如上内容介绍, 生成代码 的工作主要是由 RTW 实现, 下图描述了具体代码生成的步骤: 第 一 步: 选 择 图 3 中 的 Solver 中 的 Solver Options 为 Fixed Step 第二步: 如图 4 所示选择 ert.tlc 文件; 第三步: 点 击 图 3 中 的 Build 按 钮 生 成 并 编 译 代 码 ; ( 普 通 ert.tlc 使用 lcc 编译器, 如果只生代码可以选中前面的 Generate code only 选项) 通过以上三步可以生成 ert.tlc 所定制的 代 码 。 生 成 代 码 中
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
( 上接第 73 页)
5. 实例应用 为了验证本文提出的新的改建算法的有效搜索能力, 分别
用本文中改进的遗传算法和普通的遗传算法进行了仿真结果比
较, 并做了进一步的探讨。 选取一定量的配送目的地, 本文中选取 6 个, 运送车辆选为
【关键词】: Simulink, Stateflow, RTW, 模型
1.引 言 1.1 模型开发的意义
鉴于软件工程化思想的引入和盛行, 软件业发展潮流逐渐 趋于工程化, 流水化。Matlab 环境下集成的 Simulink/Stateflow 模 型 设 计 和 使 用 RTW 生 成 目 标 代 码 的 软 件 设 计 方 案 便 是 这 一 大 背景的产物。
Matlab 集成了一组完整的、紧密集成的工具, 形成了支持整 个 工 程 设 计 流 程 的 、无 缝 集 成 的 嵌 入 式 控 制 系 统 设 计 解 决 方 案 。 这 一 解 决 方 案 可 以 使 用 户 方 便 的 穿 梭 于 建 模 、仿 真 、验 证 与 实 施 之间而无须重写代码或改变软件环境。用户花费在编程与代码 调试方面的时间显著减少 , 而留出更多的时间探索新思想、开发 先 进 的 技 术 、降 低 应 用 成 本 并 提 高 产 品 质 量 。
Stateflow 是一个交互式的设计工具, 它基于有限状态机 的 理论, 可以用来对复杂的事件驱动系统进行建模和仿真。 Stateflow 与 Simulink 和 MATLAB 紧 密 集 成 , 可 以 将 Stateflow 创建的复杂控制逻辑有效地结合到 Simulink 的模型中。 1.2.2 RTW 介绍:
相关文档
最新文档