图表
用有限状态机实现控制逻辑
- 库:
Stateflow
描述
的图表块是基于状态转换图的有限状态机的图形表示。在状态流中®图表、状态和过渡构成了顺序逻辑系统的基本构建模块。状态对应于操作模式,转换表示状态之间的路径。有关更多信息,请参见使用状态流图建模有限状态机.
为了实现控制逻辑,状态流图可以使用MATLAB®或C作为动作语言。有关更多信息,请参见作为动作语言的MATLAB和C的语法差异.
图表属性指定状态流图表与Simulink的接口方式金宝app®模型。中修改图表属性属性检查器、“模型资源管理器”或“图表属性”对话框。有关更多信息,请参见为状态流图指定属性.或者,您也可以通过使用Stateflow。图表
对象。有关Stateflow编程接口的更多信息,请参见Stateflow API概述.
港口
输入
Port_1
—输入接口
标量|向量|矩阵
中创建输入数据时符号窗格中,Stateflow创建输入端口。创建的输入数据有一个相应的输入端口,该端口在创建数据后出现。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
|枚举
|公共汽车
|字符串
输出
Port_1
-输出端口
标量|向量|矩阵
中创建输出数据时符号窗格中,Stateflow创建输出端口。创建的输出数据有一个对应的输出端口,该端口在创建数据后出现。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|布尔
|不动点
|枚举
|公共汽车
|字符串
参数
“代码生成”选项卡上的参数要求金宝app仿真软件编码器™或嵌入式编码器®.
主要
显示端口标签
—选择端口标签的显示方式
FromPortIcon
(默认)|没有一个
|FromPortBlockName
|SignalName
控件上显示端口标签的方式图表块图标。
-
没有一个
-
不要显示端口标签。
-
FromPortIcon
-
如果对应的端口图标上有信号名称,请在图表块。否则,显示端口块名称。
-
FromPortBlockName
-
接口上显示相应端口块的名称图表块。
-
SignalName
-
如果存在信号名称,则显示接口上连接的信号名称图表块。否则,显示对应端口块的名称。
编程使用
参数:ShowPortLabels |
类型:字符串标量或字符向量 |
价值:“没有” “FromPortIcon” |“FromPortBlockName” |“SignalName” |
默认的:“FromPortIcon” |
读/写权限
-选择访问图表内容
读写
(默认)|只读的
|NoReadOrWrite
控制用户对图表内容的访问。
-
读写
-
启用打开和修改图表内容。
-
只读的
-
启用打开图表,但不启用修改图表。如果图表位于块库中,则可以创建和打开指向图表的链接,并可以制作和修改图表的本地副本,但不能更改权限或修改原始库实例的内容。
-
NoReadOrWrite
-
禁止打开或修改图表。如果图表位于库中,则可以在模型中创建指向图表的链接,但不能打开、修改、更改权限或创建图表的本地副本。
编程使用
参数:权限 |
类型:字符串标量或字符向量 |
价值:“读写” |“ReadOnly” |“NoReadOrWrite” |
默认的:“读写” |
最小化代数循环的出现
-控制消除代数循环
关闭(默认)|打开
- 从
-
不要试图消除任何包含原子子图的人工代数循环。
- 在
-
尽量消除包含原子子图的任何人工代数循环。
编程使用
参数:MinAlgLoopOccurrences |
类型:字符串标量或字符向量 |
价值:“关闭” |“上” |
默认的:“关闭” |
样品时间
—指定时间间隔
-1
(默认)|(Ts 0)
指定此图表中的所有块是否必须以相同的速率运行或可以以不同的速率运行。
如果图表中的块可以以不同的速率运行,则将图表采样时间指定为继承(
-1
).如果所有块必须以相同的速率运行,则指定与此速率对应的采样时间作为样品时间参数。
如果图表中的任何块指定不同的采样时间(除了
-1
或正
),当金宝app您更新或模拟模型时,Simulink会显示一个错误消息。例如,假设图表中的所有块都必须运行5
乘以一秒。为了保证这个时间,将图表的采样时间指定为0.2
.在本例中,如果图表中的任何块指定的采样时间不是0.2
,-1
,或正
,当金宝app您更新或模拟模型时,Simulink将显示错误。
-
-1
-
指定继承的样本时间。如果图表中的块可以以不同的速率运行,则使用此示例时间。
-
(Ts 0)
-
指定周期采样时间。
编程使用
参数:SystemSampleTime |
类型:字符串标量或字符向量 |
价值:“1” |“[Ts 0]” |
默认的:“1” |
代码生成
函数包装
-选择代码格式
汽车
(默认)|内联
|那种一次性的功能
|可重用的功能
为原子(非虚)子图选择生成的代码格式。
-
汽车
-
金宝app仿真软件编码器根据模型中存在的图表实例的类型和数量为系统选择最佳格式。
-
内联
-
金宝app仿真软件编码器无条件内联图表。
-
那种一次性的功能
-
金宝app仿真软件编码器显式地在单独的文件中生成单独的函数。具有此设置的图表生成的函数可能具有参数函数接口(金宝app模型)参数设置。您可以使用参数为生成的函数和文件命名函数名(金宝app模型)而且文件名(无扩展名)(金宝app模型).这些函数是不可重入的。
-
可重用的功能
-
金宝app仿真软件编码器生成具有参数的函数,当模型包含图表的多个实例时,该函数允许重用图表代码。
该选项生成一个带有参数的函数,该函数允许在模型引用层次结构的生成代码中重用图表代码,该模型引用层次结构包含跨引用模型的图表的多个实例。在这种情况下,图表必须在库中。
提示
当您希望一个图表的多个实例表示为一个可重用函数时,您可以将其中的每个实例指定为
汽车
或者是可重用的功能
.最好使用一个函数,因为同时使用两个函数会创建两个可重用函数,每个函数对应一个名称。只有当重用不可能时,这些选择的结果才会不同。选择汽车
不允许对图表代码的函数或文件名进行控制。的
可重用的功能
而且汽车
选项都确定一个图表的多个实例是否存在,以及代码是否可以重用。当无法重用代码时,选项的行为会有所不同。在这种情况下,汽车
生成内联代码,如果环境禁止内联,则为每个图表实例生成单独的函数。如果您选择
可重用的功能
当生成的代码处于源代码控制之下时,设置文件名选项来使用子系统名称
,使用函数名
,或用户指定的
.否则,每当您修改模型时,代码文件的名称就会更改,这就阻止了对文件的源代码控制。
依赖
此参数需要金宝app仿真软件编码器.
将此参数设置为
那种一次性的功能
或可重用的功能
启用以下参数:函数名选项
文件名选项
用于初始化/终止函数的内存部分(需要嵌入式编码器和基于ert的系统目标文件)
用于执行函数的内存部分(需要嵌入式编码器和基于ert的系统目标文件)
将此参数设置为
那种一次性的功能
使使用独立数据的函数(需要嵌入式Coder许可证和基于ert的系统目标文件)。
编程使用
参数:RTWSystemCode |
类型:字符串标量或字符向量 |
价值:“汽车” |“内联” |“那种一次性功能” |“可重用函数” |
默认的:“汽车” |
模型的例子
扩展功能
C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app
HDL代码生成
使用HDL Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
这个块有一个默认的HDL架构。
要在HDL代码中生成显示活动状态的输出端口,请在图表的Properties窗口中选择为监视创建输出.输出是枚举数据类型。看到通过合并活动状态输出简化状态流图.
若要插入输出寄存器以模拟周期延迟图表输出,请使用OutputPipeline(高密度脂蛋白编码器)块属性。
ClockDrivenOutput | 启用时钟驱动输出,以防止组合逻辑驱动输出,并允许在时钟信号和状态改变时立即进行输出更新。默认为 |
ConstMultiplierOptimization | 规范符号数(CSD)或因子CSD优化。默认为 |
ConstrainedOutputPipeline | 通过在设计中移动现有的延迟来放置在输出上的寄存器数量。分布式管道不会重新分发这些寄存器。默认为 |
DistributedPipelining | 流水线寄存器分发,或寄存器重计时。默认为 |
InputPipeline | 要在生成的代码中插入的输入管道阶段的数量。分布式流水和约束输出流水可以移动这些寄存器。默认为 |
InstantiateFunctions | 生成VHDL® |
LoopOptimization | 展开、流化或不优化循环。默认为 |
MapPersistentVarsToRAM | 将持久数组映射到RAM。默认为 |
OutputPipeline | 要在生成的代码中插入的输出管道阶段的数量。分布式流水和约束输出流水可以移动这些寄存器。默认为 |
ResetType | 抑制重置逻辑生成。默认为 |
SharingFactor | 要映射到单个共享资源的功能等效资源的数量。默认值为0。另请参阅资源共享(高密度脂蛋白编码器). |
VariablesToPipeline |
警告
在指定的MATLAB变量的输出处插入一个或多个管道寄存器。将变量列表指定为字符向量,用空格分隔变量。 |
该块支持复杂信号的代码金宝app生成。
要了解使用图表的限制,请参见介绍状态流HDL代码生成(高密度脂蛋白编码器).
PLC代码生成
使用Simulink®PLC Coder™生成结构化文本代码。金宝app
定点转换
使用定点设计器设计和模拟定点系统。
版本历史
R2006a之前介绍过
对MATLAB
Vous avez cliqué sur un lien qui对应à cette命令MATLAB:
Pour exécuter la command, saisissez-la dans la fenêtre de command de MATLAB。Les navigateurs web ne支金宝app持pas Les命令MATLAB。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。