MatlabSimulinkStateflow控制算法建模规范方案中文
- 格式:doc
- 大小:885.50 KB
- 文档页数:32
1目的(1) 方便理解模型算法z模型可读性强z接口清晰z详细的记录(2) 提高建模效率z模型维护容易z模型修改方便z模型组件重用性强z模型之间调用方便z模型构架清晰(3) 提高仿真效率z仿真速度快z方便模型分析、监控(4) 方便模型测试z可追溯性强z模型测试方便(5) 方便生成代码z模型生成嵌入式代码方便z软件修改方便z生成的代码具有较强的鲁棒性2适用范围本建模规范适用于电动车整车控制策略开发阶段,快速原型模型的开发和维护。
预期读者对象为:熟悉整车结构,具有较强的Simulink/Stateflow建模能力,并熟悉整车控制思想的相关专业人员。
3术语和定义(无)。
4 控制策略建模规范4.1命名规则4.1.1文件名命名文件名命名可用字符:a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _。
4.1.2路径名命名路径名命名可用字符:a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _。
4.1.3子系统命名子系统命名可用字符:a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _。
不可用数字开头,不可用空格。
4.1.4输入、输出信号命名输入、输出信号命名可用字符:a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W XY Z 0 1 2 3 4 5 6 7 8 9 _。
simulink和stateflow建模方法
模型建模是系统分析与设计的重要步骤。
最重要的就是采用合适
的模型建模方法来做出合理的模型。
Simulink和Stateflow是功能强
大的模型化工具,它们分别用于控制和信号系统模型建模,通常用于
系统多层次模型建模和分析仿真。
Simulink是由The MathWorks开发的代表性工具,它是一个基于矩阵数学和符号计算引擎来构建、仿真和部署多媒体、通讯和控制应
用的平台。
Simulink使用图形图元和连线视图来建模,展示出循环模型、状态模型、控制系统等的控制模型建模的特点,简洁、直观、易
于学习,还可以以可视化的形式就仿真出来。
Stateflow可以帮助系统分析与实现建模。
它是一个基于MATLAB
的图形状态机模型建模及仿真工具,可以编写非线性系统模型,用来
描述、分析、仿真状态改变过程和事件触发规则。
它使用状态和转移
图绘制状态和事件。
它提供了实时决策、模型统一及执行等功能,使
得状态转换和规则运行非常明确地描述,方便实现。
总之,Simulink和Stateflow是要控制和信号系统的模型建模的优秀组合,既有简洁易懂的模型建模过程,又有高效灵活的仿真能力。
它们可以帮助系统工程师便利地构建多层次系统模型,开展系统分析
和设计。
SimulinkStateflow学习之MAAB建模规范分享(⼀)
前⾔:
1、建模是⼀种艺术;
2、模型丑的,作者也⼀定丑;
正⽂:
MAAB(MathWorks Automotive Advisory Board)是mathwork公司编写的Matlab/Simulink/Stateflow具体建模规范,该建模规范对于初学者来说⾮常有必要去认真研读。
该规范对模型的架构、层次划分、信号与模块等的使⽤⽅式均有说明。
最新的3.0版本⼀共136页15个章节。
这是官⽅下载地址:https:///solutions/automotive/standards/maab.html
⽹上也有⾮常多的解读⽂章,在此也也跟⼤家分享⼀下:
https:///j353838430/article/details/80261346 作者:@Tomato- ⽹站:CSDN 版权归作者所有
https:///question/54264226/answer/138618826 作者:@ ⽹站:知乎版权归作者所有
从⼀开始就培养良好的模型搭建习惯,能够在今后的⼯作与学习中成倍的增加效率。
MAB建模规范-Stateflow状态机建模规范规则ID:db、jm、hd、ar被用于Ver 1.0的规范。
na和jc用于从版本2.0到现在创建的规范NA-MAAB代表北美和欧洲。
J-MAAB代表日本StateflowStateflow blocks/data/events Statelfow的块/数据/事件db_0122:statflow和Simulink接口的信号和参数规则建议:NA-MAAB:aJMAAB: aMatlab版本:all规则a:【char】参数{Use Strong Data Typing with Simulink I/O}应选择,使强数据类型之间允许使用statflow图表和Simulink。
注意:只有当[Chart]属性{Action Language}设置为" C "时,{Use Strong Data Typing with Simulink I/O}才可用。
原因a:当不选中{Use Strong Data Typing with Simulink I/O}时,可以输入输出到[Chart]的Simulink信号数据类型设置为“double”类型。
因此,需要在输入之前和输出之后进行类型转换,这增加了块的数量,降低了可读性。
当不选中{Use Strong Data Typing with Simulink I/O}时,可以输入和输出到[Chart]的Simulink信号数据类型设置为“double”类型。
然而,[Chart]中的任何类型的输入数据都可以直接与该信号连接。
当这两个信号具有不同的数据类型时,将发生隐式数据类型转换。
通过选择{Use Strong Data Typing with Simulink I/O},隐式数据类型转换不会发生,并产生数据类型不一致错误。
这样可以防止由于数据类型的不同而产生误解,从而提高可读性。
db_0123:Stateflow端口名称规则建议:NA-MAAB:aJMAAB: aMatlab版本:all规则a:statflow输入/输出的名称应该与相连的信号相同。
MATLABSimulink控制系统建模最全资料Simulink 控制系统建模dSPACE 的软件环境主要由两⼤部分组成,⼀部分是实时代码的⽣成和下载软件RTI (Real Time Interface ),它是连接dSPACE 实时系统与MA TLAB/Simulink 的纽带,通过对RTW (Real time workshop )进⾏扩展,可以实现从Simulink 模型到dSPACE 实时硬件代码的⾃动下载。
另⼀部分为测试软件,其中包含了综合实验与测试环境ControlDesk 、⾃动试验及参数调整软件MLIB/MTRACE 、PC 与实时处理器通信软件CLIB 以及实时动画软件RealMotion 等。
连续模块库(Continuous)在连续模块(Continuous)库中包括了常见的连续模块,这些模块如图所⽰。
1. 积分模块(Integrator):功能:对输⼊变量进⾏积分。
说明:模块的输⼊可以是标量,也可以是⽮量;输⼊信号的维数必须与输⼊信号保持⼀致。
2. 微分模块(Derivative)功能:通过计算差分?u/ ?t 近似计算输⼊变量的微分。
3. 线性状态空间模块(State-Space)功能:⽤于实现以下数学⽅程描述的系统:+=+=Du Cx y Bu Ax x '4. 传递函数模块(Transfer Fcn)功能:⽤执⾏⼀个线性传递函数。
5. 零极点传递函数模块(Zero-Pole)功能:⽤于建⽴⼀个预先指定的零点、极点,并⽤延迟算⼦s 表⽰的连续。
6.存储器模块(Memory)功能:保持输出前⼀步的输⼊值。
7.传输延迟模块(Transport Delay)功能:⽤于将输⼊端的信号延迟指定的时间后再传输给输出信号。
8.可变传输延迟模块(Variable Transport Delay)功能:⽤于将输⼊端的信号进⾏可变时间的延迟。
离散模块库(Discrete)离散模块库(Discrete)主要⽤于建⽴离散采样的系统模型,包括的主要模块,如图所⽰。
建模流程Step1:打开matlab,点击Simulink。
Step2:点击Blank ModelStep3:打开Tools→Model ExplorerStep4:点击Base WorkspaceStep5:按模型功能规范设计好的输入输出添加Signal、Parameter,同时按功能规范定义数据类型,数据维度、参数值等Step6:添加完成后Base Workspace →export,保存为.mat文件待用Step7:Library Browser → Stateflow →chart,将Chart拖入simulink中,创建Stateflow模型Step8:打开Tools→Model Explorer,点击Chart,定义输入输出以及参数等,Step9:建立Stateflow模型,在将其全选,Ctrl+G生成subsystemStep10:在连接线上右键,选择propertiesStep11:选择需要绑定的信号,绑定后会出现一个符号Step12:根据需求搭建模型Step13:点击齿轮图标,设置求解器参数,选择定步长、离散。
采样时间单位为S,具体数值由模块调用周期决定。
Mil测试:Step1:点击Analysis→Test Harness→ Create for ’…’设置测试用例输入方式Step3:生成TestModel点击TestSequence,设置测试用例Step5:点击Assessment,设置判定条件,运行Step6:打开Test Manager,导入Test FileStep7:勾选图示选项,运行Step8:查看测试结果,生成测试报告。
控制策略模型建模规范(STATEFLOW)6.1. 基本行为和状态1. Stateflow模块中至少有两个状态,且要有默认状态,每个状态不能只有一个子状态。
2. Stateflow状态图嵌套不能多于3层。
3. 单一状态视图内的子状态个数控制在6个以内,最高不超过9个。
4. Stateflow中的逻辑,不使用MATLAB函数、指令、运算符。
5. 逻辑类型的信号禁止执行比较操作。
(使用if(logical type signal))6. 逻辑运算不能用于两个布尔值。
([true && false])7. 布尔类型的信号不能与数字0、1或逻辑值true、false进行比较操作。
8. 不同类型的数据禁止执行比较操作,如果需要必须首先执行显示类型转换的操作。
9. 禁止对两个浮点类型的数值执行严格的==或!=判断操作。
10. 禁止对无符号数执行取负操作[-]。
11. 如果需要翻转逻辑类型的信号,应使用布尔操作NOT。
12. 取反符号:~用于位操作按位取反,!用于逻辑取反操作。
6.2. 事件、变量设置1. 同一个变量在单个Stateflow范围内不应该有多重定义。
2. 未使用的事件和变量不允许出现在Stateflow图块中。
3. 并行的图块或状态机中不允许出现同名的局部数据。
4. Stateflow中除0用于初始化变量,1用于自增自减操作外外,不允许常量和变量直接使用数值。
5. 事件必须定义在chart或者更低的级别,不允许chart之间进行事件交互。
6. 除触发调用函数调用子系统外,事件不应该用作状态转移的驱动条件。
7. 为了便于可读性,事件en:、du:、ex:每个应单独起一行;每个事件具体内容也应单独起一行。
6.3. 标签Stateflow的输入输出端口名称应与相应信号名称一致。
6.4. 条件与条件动作1. 条件表达式只能使用返回值为布尔类型的表达式,不允许使用整形数值。
2. 动作类型(entry(en),during(du),exit(ex),en,du: ,du,ex: ,en,ex: ,en,du,ex:)不能多次重复描述,且合并动作(en,du: ,du,ex: ,en,ex: ,en,du,ex:)的描述只能在动作序列的最顶层或最底层放置。
Matlab/Simulink/Stateflow控制算法建模规范3.0版Mathworks汽车咨询委员会(MAAB)1修订历史2介绍2.1动机MAAB建模规范无论是在组织内部还是在与合作伙伴和分包商合作时都是项目成功与团队协作的重要基础。
遵守建模规范是实现以下目标的重要前提:无问题的系统集成明确定义的界面统一的模型外观、编码及文件编制可重用模型可读的模型无问题的模型交换简单高效的过程专业的文件编制清晰易懂的展示快速的软件变更与分包商的合作将研究或重建项目移交给产品开发2.2对3.0版的批注本规范的现行版本3.0版支持MATLAB算法,包括其R2007b至R2011b 版。
3.0版参考了《美国国家航空航天局猎户座指南》中的部分规则。
参考的规则均在“参见”部分中标明了该规则在《美国国家航空航天局猎户座指南》中的编号。
2.3规范模板规范描述采用下列模板出具。
建议想要附加其他规范的公司也采用下列模板进行添加。
ID:标题XX_nnnn: 规范的标题(须唯一且简短)优先级强制要求/强烈建议/建议之一适用范围MAAB, NA-MAAB, J-MAAB,特定公司 (本地公司可选使用)MATLAB版本全部RX, RY, RZRX及其之前的版本RX 及其之后的版本RX至RY的版本前提到规范的链接,这是本规范的前提(ID+标题)描述对规范的描述(文本,图像)理由制定规范的动机最终更改最终更改版本编号注:本模板的各项元素是为使规范得到合理的理解与交流所必须提供的最小项。
允许对本模板的项目或卖主部分进行补充,只要补充的部分不与原有部分在意义上重合即可。
事实上,如果上述补充能有助于整合其他规范模板并促使核心模板本身达到更广泛的接收度,这样的补充是受到鼓励的。
2.3.1规范ID规范的ID由两个小写字母(表示规则的出处)和四位数字组成,中间用一段下划线隔开。
一旦一份新规范有了ID,该ID将不再改变。
ID用来指代相应的规范。
以“na”、“jp”、“jc”、“eu”开头的ID预留给未来的MAAB规范使用。
Matlab/Simulink/Stateflow控制算法建模规范
3.0版
Mathworks汽车咨询委员会
(MAAB)
1修订历史
2介绍
2.1动机
MAAB建模规范无论是在组织内部还是在与合作伙伴和分包商合作时都是项目成功与团队协作的重要基础。
遵守建模规范是实现以下目标的重要前提:
●无问题的系统集成
●明确定义的界面
●统一的模型外观、编码及文件编制
●可重用模型
●可读的模型
●无问题的模型交换
●简单高效的过程
●专业的文件编制
●清晰易懂的展示
●快速的软件变更
●与分包商的合作
●将研究或重建项目移交给产品开发
2.2对
3.0版的批注
本规范的现行版本3.0版支持MATLAB算法,包括其R2007b 至R2011b版。
3.0版参考了《美国国家航空航天局猎户座指南》中的部分规则。
参考的规则均在“参见”部分中标明了该规则在《美国国
家航空航天局猎户座指南》中的编号。
2.3规范模板
规范描述采用下列模板出具。
建议想要附加其他规范的公司也采用下列模板进行添加。
注:本模板的各项元素是为使规范得到合理的理解与交流所必须提供的最小项。
允许对本模板的项目或卖主部分进行补充,只要补充的部分不与原有部分在意义上重合即可。
事实上,如果上述补充能有助于整合其他规范模板并促使核心模板本身达到更广泛的接收度,这样的补充是受到鼓励的。
2.3.1规范ID
●规范的ID由两个小写字母(表示规则的出处)和四位数字组
成,中间用一段下划线隔开。
●一旦一份新规范有了ID,该ID将不再改变。
●ID用来指代相应的规范。
●以“na”、“jp”、“jc”、“eu”开头的ID预留给未来的MAAB规范使用。
●保留以“db”、“jm”、“hd”、“ar”开头的ID。
●新规则的ID不得以上述字母开头。
2.3.2规范标题
●规范的标题应对该规范的应用领域进行简短且唯一的描述
(例如,名字的长度)。
●规范的标题适用于前提条件部分及定制检测工具。
●规范的标题应与到该规范的超链接同时写出。
注:标题不应为对规范内容的多余的简要描述。
对规范内容的描述未来可能发生改变,但规范的标题始终不得更改。
2.3.3优先级
每条规范都须根据下列优先顺序进行评级:
●强制要求
●强烈建议
●建议
优先级描述该规范的重要程度并决定违反该规范的后果严重程度:
2.3.4适用范围
适用范围可以是以下三者之一:
MAAB (MathWorks汽车咨询委员会)
J-MAAB (日本MAAB)
NA-MAAB (北美MAAB)
“MAAB”是一个与MathsWorks紧密合作的汽车制造商及供应商的团队。
MAAB包括两个子团队,即日本MAAB及北美MAAB。
“J-MAAB”是MAAB的子团队,包括与MathsWorks紧密合作的日本汽车制造商及供应商。
J-MAAB规则的适用范围为日本当地。
“NA-MAAB”是MAAB的子团队,包括与MathsWorks紧密合作的美国及欧洲的汽车制造商及供应商。
该规则是美国及欧洲当地的规则。
覆盖范围为美国和欧洲。
2.3.5MATLAB版本
本规范适用于MATLAB及Simulink所有版本的产品。
如果一条规则仅适用于MATLAB的某一个或某几个版本,则适用版本的信息应在MATLAB版本部分进行说明,说明格式为下列格式中的一种:
●全部:MATLAB的所有版本
●RX, RY, RZ:MATLAB的某一特定版本
●RX及其之前的版本:RX发布之前的MATLAB版本
●RX 及其之后的版本:RX发布之后直至现行版本发布期间的MATLAB版本
●RX至RY的版本: RX至RY之间的MATLAB版本
2.3.6前提
●该部分是到其他规范的链接,链接的规范均为本规范的前提
(逻辑关联)。
●每个链接须注明相应规范的ID(为了一致性)和标题(为了
可读性)。
“前提”部分不应包括任何其他文本。
2.3.7描述
●该部分包括对规范的详细描述。
●如有需要,可添加图像和表格。
注:如果正式表达(数学符号、正规表达式、语法图及精确数值/范围)可用,应使用正式表达对规范进行清楚明白的描述并指定一项自动检测。
此外,为了日常参考,还须提供一份人性化的、可理解的、非正式的描述。
2.3.8理由
规范的建议可出于以下一种或多种原因:
●可读性:易于理解的算法
●可读的模型
●统一的模型外观、编码及文件编制
●清洁的界面
●专业的文件编制
●工作流:高效的发展进程及工作流
●易于维护
●迅速的改型设计
●可重复使用的部件
●无问题的模型交换
●模型可携带型
●模拟:高效的模拟与分析
●模拟速率
●模拟内存
●模型检测
●验证&确认:有能力对模型及生成的代码就下列因素进行验证和确认:
●需求的可追溯性
●测试
●无问题的系统集成
●清洁的界面
●代码生成:生成对内嵌系统有效的代码
●快速的软件变更
●生成的代码的稳健性
2.3.9最终更改
“最终更改部分”包括文件版本编号。
2.4文件使用
以下段落提供的信息是关于使用本文件作为参考以及参照本文件编写具体项目的规范文件的。
附件A中可以找到关于对本规范进行自动校核的信息。
2.4.1规范交互作用语义
本文件的起始段“命名规范与模型架构”提供了适用于各种模型的基本规范。
其后的“Simulink与Stateflow”部分提供上述环境中的具体规则。
某些规范是依赖于其他规范的,模板中自始至终都对其作了明确说明。
2.4.2隐匿的子系统及可读性规则
如果用户没有查看模型内部隐匿子系统的内容,则关于可读性的规范不再适
3软件环境
3.1总则
3.1.1na_0026:一致的软件环境
3.1.2na_0027: 仅有标准库模块的使用
4命名规范
4.1总则
4.1.1ar_0001:文件名
4.1.2ar_0002:目录名
4.1.3na_0035:命名规范的采用
4.2模型内容规范
4.2.1jc_0201:子系统名称可用字符
4.2.2 jc_0211:输入模块与输出模块名称可用字符
4.2.3jc_0221:信号线名称可用字符
4.2.4na_0030:Simulink公交车名称可用字符
4.2.5 jc_0231:模块名称可用字符
4.2.6 na_0014:使用Simulink及Stateflow的本地语言
5模型架构
基本模块
本文件使用“基本模块”指代基础Simulink库中的模块。
基本模块举例:
5.1Simulink®与Stateflow®分区
5.1.1na_0006:Simulink与Stateflow混合使用规范
●如果函数的主要性质是数值性的,但要进行一些简单的逻辑运算
来支持这一数值,则使用Simulink模块执行简单的逻辑运算。
●如果函数的主要性质是逻辑性的,但必须进行一些复杂的数值计
如果当前时间执行的控制函数取决于过去和现在逻辑关系的结合,则应使用Stateflow产品来实现模态逻辑。
(如果有必要储存逻辑条件测。