一个独立的Stateflow®图是一个MATLAB®类定义了有限状态机的行为。独立的图表与MATLAB实现经典图表语义动作语言。可以程序图通过使用MATLAB的全部功能,包括那些功能限制模型的代码生成金宝app®。有关更多信息,请参见为执行为MATLAB对象创建Stateflow图表。
这个例子展示了如何执行独立Stateflow图表使用MATLAB脚本或仿真软件模型。金宝app
该文件sf_change.sfx
定义了一个独立的Stateflow图表,统计方法的数量给定数量的钱找零钱。图表包含这些数据对象:
x
的钱改变。默认值是100。
coinValues
是一个向量的硬币面额安排在增加订单。coinNames
是一个数组对应的硬币的名字。默认值是标准的美国硬币(硬币,硬币,硬币和季度)。
理货
是有效的数量改变配置。
横膈
是一个数组,包含不同的有效改变配置。
chg
,完成
,我
,n
使用的是本地数据change-counting算法。
textWidth
和quietMode
本地数据,控制图表的方式显示其结果。
图表开始与一个潜在的变化完全配置组成的最小值硬币,由索引指定的1。在每个执行步骤,状态交换
修改这个配置两种方式中的一种:
的亚态move_up
交流一些最小值硬币一枚硬币价值更高,指定的索引我
。
的亚态move_down
交流的所有硬币由索引指定的值我
为最小值的硬币。然后move_up
交流一些最小值硬币一枚硬币和一个值指定的索引我+ 1
或更高版本。
可能改变配置时是有效的最小值所代表的美分硬币的数量是整除的价值类型的硬币。当遇到一个新的有效配置的图表,它的增量理货
和附加新的配置横膈
。
当没有更多的硬币交流是可能的,停止
变得活跃。这种状态输出的结果计算,转换的内容横膈
一个表,设置的值完成
来真正的
。
运行change-counting算法来完成,你必须多次执行独立的图。例如,MATLAB脚本sf_change_script.m
创建一个图表对象chartObj
初始化本地数据的价值x
27。配置选项“-warningOnUninitializedData”
集的脚本假
,消除了警告横膈
新图表是一个空数组对象。的而
循环执行到本地数据的图表完成
就变成了真正的
。最后,脚本将显示的值横膈
。
chartObj = sf_change (“x”27岁的“-warningOnUninitializedData”、假);而~ chartObj。完成一步(chartObj);结束disp (chartObj.tabula)
sf_change_script
.............有13个方法使换27美分。便士硬币硬币季度____ ____ _____ ________ 27 0 0 0 22 1 0 0 17 12 2 0 0 3 0 0 7 4 0 0 2 5 0 0 17 0 1 0 12 1 1 0 7 2 1 0 2 3 1 0 7 0 2 0 2 1 2 0 2 0 0 1
确定数量的方法,使不同数量的变化,或使用不同的货币制度,改变的值x
和coinValues
。例如,使用英国货币,初始化coinValues
来[1 2 5 10 20 25 50]
。
您可以执行一个独立的Stateflow图表在仿真软件模型。金宝app例如,模型sf_change_model
使用独立的包含两个Stateflow图表图sf_change
计算方法的数量变化为27美分在两个不同的货币系统。你可以模拟模型,但执行的功能独立的表不支持代码生成。金宝app
每个表包含这些状态:
初始化
创建一个本地图对象chartObj
实现change-counting输入值的算法x
。
执行
调用一步
函数执行独立的图表并存储结果作为输出数据理货
。
完成
显示算法的诊断结果查看器窗口,设置输出数据的值完成
来真正的
。
当两个图表达到各自的完成
状态,仿真模型的停止和显示模块显示的最终值两个记录。
执行使用MATLAB作为行动的语言
图表MATLAB的语法
使用MATLAB作为行动的语言。执行独立Stateflow图表,该图表必须遵循这些指导方针:
的局部变量chartObj
包含图表对象的句柄类型继承:从表中定义
。
在创建图表对象之前,初始化
国家电话coder.extrinsic
函数声明sf_change
作为一个外在限制模型的代码生成功能。金宝app看到调用外部MATLAB函数在Stateflow图表。
的执行
和完成
州的本地数据访问独立图表通过调用得到
函数。
当你和一个输入模拟这个图表x
= 27日显示块古英语
显示了一个4。诊断查看器窗口显示了这些结果:
便士先令金币累积_____ 27 15 0 0 1 0 3 2 0 3 0 1
使用C执行动作语言
图表C语法
使用C作为行动的语言。执行独立Stateflow图表,该图表必须遵循这些指导方针:
的局部变量chartObj
包含图表对象的句柄类型毫升
。
的初始化
国家电话毫升
函数来创建图表对象。
的执行
和完成
国家使用毫升
名称空间操作符来访问一步
,得到
,displ
函数执行独立的图表,访问其本地数据和显示结果的算法。
有关更多信息,请参见MATLAB函数和空间数据的访问在C图表。
当你和一个输入模拟这个图表x
= 27日显示块现代美国
显示了一个13。诊断查看器窗口显示了这些结果:
安全FieldGoal着陆______替12 1 0 9 3 0 6 5 0 3 7 0 0 9 0 10 0 1 7 2 1 4 4 1 1 6 1 5 1 2 2 3 2 3 0 3 0 2 3