Stateflow的编译目标决定了Stateflow框图生成代码的类型,例如在默认情况下,Stateflow的编译目标为仿真目标(sfun),那么生成出来的代码就是为模型仿真服务的,最终会被编译成C MEX S-Function文件。其实,将Stateflow框图转变为代码的工具叫做Stateflow Coder,它一共支持三种类型的目标,分别为仿真目标、Real-Time Workshop目标和自定义目标。提示:Stateflow Coder是用来将Stateflow框图生成标准C语言代码的工具,它是MATLAB产品体系中的单独模块,需要用户专门购买。默认情况下,在用户购买Stateflow的时候,只包含生成仿真目标,即S-Function目标的能力。但是没有Stateflow Coder就无法创建自定义目标,也不能结合Real-Time Workshop以及Real-Time Workshop Embedded Coder生成包含Stateflow框图的Simulink模型的代码。因此,要学习本章的7.3节和7.4节的内容,就需要用户拥有Stateflow Coder产品。

仿真目标:Stateflow的仿真目标通常被命名为sfun,它提供了将Stateflow框图、用户自定义代码以及Stateflow数据字典中的全部信息转变成C代码,并且进一步使用第三方C语言编译器编译生成S-Function的能力。在包含了Stateflow框图的Simulink模型进行仿真时,如果在当前的工作路径或者搜索路径中没有状态机的MEX文件,则Stateflow会根据sfun目标将状态机编译成C MEX S-Function文件,参与模型的仿真。本章7.2节将详细介绍仿真目标以及仿真目标的配置选项。

Real-Time Workshop目标:简称RTW目标。RTW目标通常被命名为rtw。它能够结合MATLAB产品体系中用于模型代码生成的工具Real-Time Workshop或者嵌入式产品级代码生成的工具生成包含Stateflow框图的Simulink模型的代码。

相关资源:

  1. 学习Simulink和Stateflow的详细教程

  2. MATLAB Simulink Stateflow建模规范及应用

  3. Stateflow的编译目标-sas编程技术教程(朱世武)

    simulink stateflow入门教程

  4. matlab simulink stateflow指南

  5. 汽车传动仿真simulink stateflow