装配线馈线模型
典型的图编程方法
有两种一般方法编程Stateflow®图的仿真软件金宝app®模型:
识别系统的操作模式。
确定系统接口,如系统反应的事件。
本教程使用第一种方法,即首先确定系统的操作模式程序图。
设计要求
这个例子展示了如何构建一个使用MATLAB Stateflow图表®作为动作语言。装配线的模型代表一个机,饲料原料的其他部分。这给料机表现如下:
在系统初始化,检查三个传感器值是正常的。
正数意味着传感器是否正常工作。零意味着传感器不工作。
如果所有传感器值是正常的,从“系统初始化”过渡到“上”。
如果给料机不离开初始化模式5秒后,强迫加料器进入故障状态。
系统打开后,它开始计数部分美联储的数量。
在每个时间步,如果任何传感器读数2或更大,部分已搬到下一站。
如果报警信号听起来,迫使系统故障状态。
警报信号会发生当操作员打开一个安全大门的馈线或下游在流水线上发生问题,导致所有上游喂食器停止。
如果警报信号听起来,恢复正常操作和重置美联储的零件数量为零。
馈线导致改变颜色匹配系统“系统初始化”操作模式-橙色,绿色为“on”,红色代表“失败国家”。
识别系统属性
基于馈线行为的描述,你可以识别系统属性的关键。
属性 | 特征 |
---|---|
操作模式 |
|
转换 |
|
并行模式 | 没有操作模式并行运行。在任何时候只能激活一个模式。 |
默认模式 | 系统初始化 |
输入 |
|
输出 |
|
构建模型自己或使用提供的模型
在这个练习中,你Stateflow图添加到仿真软件模型,该模型包含传感器和报警输入信号加料器。金宝app
实现自己的模型,遵循这些练习。否则,您可以打开完整的模型。
添加一个Stateflow图表馈线模型
开放部分建立模型。
双击
SensorSignals
块代表了三个传感器信号脉冲发生器。的
传感器
信号表明当组装的部分是准备搬到下一站。双击
AlarmSignal
块去看一步块代表报警信号。当
报警
信号被激活时,机器关闭。运行这个模型来看看传感器和报警信号的输出范围。
上轴显示了传感器信号。只有两个传感器信号出现,因为两个传感器有相同的信号。低轴显示报警信号,模拟之间的支线从45到80秒的时间。
打开Stateflow图书馆通过执行
sflib
在MATLAB命令提示符。选择
图表
并将其拖到你的模型。提示
创建一个新的模型与一个空Stateflow图表使用MATLAB作为行动的语言,使用命令,
sfnew
。删除从SensorSignals子系统的连接,从AlarmSignal子系统的范围和范围。
重命名标签
图表
坐落在Stateflow图表给料机
。这个模型现在看起来应该像这样:
添加状态来表示操作模式
基于前文所述的系统属性,有三种操作模式:
系统初始化
在
失败状态
添加状态建模这些操作的行为模式:
双击馈线图开始增加。
请注意
MATLAB图标左下角的图表表明你正在使用一个Stateflow图表与MATLAB的语法。
点击工具图标将状态图。
单击左上角的状态和类型名称、
InitializeSystem
。重复步骤2和3添加两个州命名
在
和FailState
。
执行国家的行为
决定国家行动的类型
州执行操作在不同的执行阶段的从他们成为活跃的时间变得不活跃。三个基本状态的行为是:
类型的行动 | 执行时 | 多长时间执行,状态是积极 |
---|---|---|
条目 | 当进入该状态(激活) | 一次 |
在 | 而状态是活跃的和没有有效转换到另一个状态 | 在每一个时间步 |
退出 | 之前被转换到另一个状态 | 一次 |
例如,您可以使用条目
行动来初始化数据,在
行动来更新数据,退出
动作配置数据为下一个转变。对其他类型的操作的更多信息,见状态和转换的语法。)
按return键后
InitializeSystem
国家名称和添加本文定义状态进入行动:条目:光=橙色;
InitializeSystem
状态。后添加以下代码
FailState
国家名称定义条目行动:条目:光=红;
在一个红色LED显示条目
FailState
。后添加以下代码
在
国家名称定义条目行动:条目:光=绿色;partsFed = 0;
在
状态。美联储的零件数量每次我们进入被初始化为0在
状态将下面的代码添加到
在
状态条目后行动,检查是否有很强的传感器信号和增量部分联储下一站:期间:如果(任何(> = 2)传感器)partsFed = partsFed + 1;结束
的
在
状态检查传感器信号来确定一个部分是美联储准备到下一个装配站。如果传感器信号强(传感器上的数量大于或等于2),然后计算的图表部分转移到下一站。现在看起来应该像这样图的图表。
指定转换条件
转换条件指定何时从一个操作模式转移到另一个。当条件为真时,图表将过渡到下一个状态,否则,当前状态仍然活跃。有关更多信息,请参见转换。
基于馈线的描述行为,指定的规则状态之间的转换:
连接一个默认的过渡
InitializeSystem
状态指示图表入口点。默认的转换指定从哪里开始仿真。
画一个过渡的
InitializeSystem
状态在
状态:在的下边缘移动鼠标
InitializeSystem
状态,直到指针形状改变十字准线。单击并拖动鼠标的上边缘
在
状态。然后看到一个过渡的InitializeSystem
状态在
状态。双击添加过渡这个条件:
(所有(传感器> 0))
这种转变条件验证如果所有传感器的值大于零。
重复这些步骤来创建这些剩余的转换条件。
过渡 条件 在
来FailState
(报警= = 1)
FailState
来InitializeSystem
(报警= = 0)
再画一个转变
InitializeSystem
来FailState
。在这个过渡,要创建以下类型的过渡事件:后(5秒)
InitializeSystem
来FailState
。请注意
语法在这过渡是一个事件,而不是过渡条件。详情,请参考利用时序逻辑控制图执行。
现在的图是这样的图。
请注意
即将离任的过渡从InitializeSystem
有一个小标签1和2显示的顺序过渡段进行评估。如果图中的数字不匹配模型,右键单击过渡,然后改变它通过点击执行顺序
。看到评价秩序的过渡获取详细信息。
为您的系统定义的数据
验证图表数据属性
开始的仿真模型。未解决符号出现的错误信息,以及象征向导。
象征向导并不会自动添加任何数据图表。它标识未解决的数据和推断类和范围的数据使用MATLAB的推理规则表达式Stateflow行动。图:
读取的数据而不是写入是推断出来的输入数据。然而,如果数据的名称在所有大写字母,符号作为一个向导推断数据参数
写入的数据但不从被推断为读取输出数据。
读取和写入的数据推断当地的数据。
象征向导推断图中的输入数据的范围。但是,你必须修复的数据范围partsFed
输出。遵循以下步骤:
为partsFed数据:数据范围列,选择输出从列表中
象征向导现在看起来是这样的图。
添加符号向导的数据显示,点击好吧。
添加参数的初始值。在MATLAB命令提示符,输入:
红色= 0;
同样,在MATLAB命令提示符下,添加以下其余的参数初始值:
参数 价值 红色的 0 橙色 1 绿色 2 回归模型和输入和输出连接到各自的港口。
验证系统表示
开始仿真。
双击范围块验证模型捕获预期馈线的行为。
上部轴显示LED信号变化之间的橙色(1),绿色(2),红(0)来表示当前的操作模式。低轴显示部分美联储到下一个装配站的数量,从而增加递增,直到报警信号关闭然后重置的机器。
替代方法:基于事件的图表
编程的图表的另一种方法是首先识别部分的系统接口,系统反应等事件。
在前面的示例中,当您使用输入数据来表示一个事件,定期醒来的图表和验证条件是否转换是有效的。在这种情况下,如果报警= = 1,然后转换到故障状态发生在下一次的一步。然而,创建一个Stateflow图表,对输入事件允许您对事件触发时的报警信号。
对于何时使用一个基于事件的细节图,看看通过广播事件同步模型组件。
识别系统为事件驱动的系统属性
在基于事件的方法中,首先考虑的是事件的系统属性,输入和输出。
在下表中,可以考虑的事件驱动的馈线模型的特点是不同的从系统中基于转换条件。
属性 | 特征 |
---|---|
事件 | 两个异步事件:一个报警信号和一个警报信号 |
输入 | 三个传感器读数来检测如果有一部分转移到下游装配站 |
馈线图表激活输入事件
在这个例子中,给料机使用触发图模型对输入事件的反应。
图表现在左边只有一个输入端口和一个事件触发输入上面。为更多的信息关于如何创建一个Stateflow图激活事件,看看激活Stateflow图表发送输入事件
当报警
信号触发的图表,图表响应触发时间步。如果当前状态在
当报警触发,然后转换到当前状态FailState
。
输出范围的事件驱动的图表如下图所示。
上部轴显示LED信号之间的不同红(0),橙色(1)和绿色(2)来表示当前的操作模式。低轴显示部分美联储到下一个装配站的数量,从而增加递增,直到报警信号关闭然后重置的机器。然而,基于事件的模拟提要更多部件到下一个装配站由于时钟和解决差异。