一、概述
在汽车电控策略开发应用中,基于Matlab/Simulink模型的开发方式目前逐渐替代手写代码的开发方式,除了可见即可得,便于模块化开发,平台化开发,策略与控制器硬件同步开发而不需要等硬件开发出来后再开发,更加符合ISO26262软件开发规范要求。而什么是Simulink以及Simulink包括哪些呢?
二、什么是Simulink?
Simulink是MATLAB中的一种可视化仿真工具, 是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
Simulink提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
三、Simulink基本库
Simulink的模块库由两部分组成:基本库模块和各种应用工具箱,这里只展示基本库模块和状态机,如下图所示:
- 连续模块Continuous
- 非连续模块Discontinuous
- 离散模块Discrete
- 逻辑和位操作模块Logic and Bit Operations
- 查找表模块Lookup Table
- 数学模块Math Operations
- 模型检测模块Model Verification
- 模型扩充模块Model-Wide Utilities
- 信号属性模块Signal Attributes
- 信号线路模块Signal Routing
- 接收器模块Sinks
- 输入源模块Sources
- 用户自定义函数模块User-Defined Functions
四、Stateflow状态机
Stateflow 是一个基于有限状态机和流程图来构建组合和时序逻辑决策模型并进行仿真的环境。它可以将图形表示和表格表示(包括状态转换图、流程图、状态转换表和真值表)结合在一起,针对系统对事件、基于时间的条件以及外部输入信号的反应方式进行建模。
Stateflow 可用于设计有关监控、任务调度以及故障管理应用程序的逻辑。Stateflow 包括状态图动画及静态和运行时检查,可以在实施前测试设计的一致性和完整性。
Stateflow可以直接嵌入到Simulink模型中,并且在仿真的初始化阶段,Simulink会把Stateflow绘制的逻辑图形通过编译程序转换成C语言,使二者有机地结合在一起。
小结
限于篇幅,本文从以上两个方面来简要介绍Simulink。以期对打算用模块化方式开发控制策略的朋友有所帮助。至于Simulink的具体使用方法以及如何在汽车电控策略的运用,后续会通过专门的文章来逐渐介绍,敬请关注!