这个例子型号,订单管理自主机器人仓库。这个例子的目的是展示如何促进使用Simulink创建复杂的模型金宝app®,Stateflow的®和SimEvents®组件和经由消息它们的通信。看到Stateflow的消息,事件和数据之间的意见分歧(状态流)有关的消息的详细信息。
订单履行模型有两个主要组件
的订单队列分量表示在线订单队列与来自SimEvents®库中的块。
仓库组件表示通过自主机器人交货的订单项目。它使用从块和的Simulink库SimE金宝appvents®和Stateflow®图表。图表需要Stateflow®许可证。
在这个模型中,多个项目在网上下订单到达订单队列组件。所点项目的位置从处理顺序块传送到仓库中的组件自主机器人。三个机器人被分配到三个通道。一种机器人从其过道位置,并将其返回到用于递送其初始位置拾起一个项目。一个订单可以有一个,两个或三个项目。当所有订购的商品由机器人交付,订单完成和新订单到达。直到订单完成后,没有新的订单接收到订单队列组件。
仓库有三个过道。第一个过道包含衣物,第二个过道包含玩具,第三通道包含电子。三个输送机器人是相同的并且它们的动力学是由通过调谐PID控制器控制的线性时不变系统驱动。例如,Aisle1子系统块由一个Robot1子系统和的离散事件图块作为调度器。
该Robot1子系统具有与机器人的由表示的动力学的一般的反馈控制回路状态空间块和PID控制器。
所述Robot1子系统被设计来跟踪从一个基准信号IN1块,这是出
从信号离散事件图块。该系统的输入值与从所述输出进行比较状态空间方框和信号之间的差被馈送到PID控制器块。
例如,如果将信号从IN1块是与值的常数10
,从初始状态开始0
中,系统的输出收敛到10
。
在里面X轴和ÿ轴,Robot1移动如下。
Robot1最初是在X1和Y1= 0坐标。对于项目皮卡和交付,它的动作仅在ÿ轴及其X1坐标保持不变。
在Aisle1每个订单项目有yaisle坐标上ÿ-轴。yaisle变为由Robot1子系统要跟踪的恒定输入参考信号。
当Robot1子系统河段yaisle,它拿起订单项目和自主重新运行回Y1= 0地点交货。
范围显示了一个例子轨迹Robot1子系统,其接收yaisle值10
如在模拟时间恒定的基准输入265
。当机器人的位置之间的距离,ÿ= 10是0.1
中,参考输入信号是0
和机器人返回到用于递送其初始位置。
Robot2子系统和Robot3子系统都在Aisle2子系统和Aisle3子系统的项目交付相同的动力学和行为。其X坐标X2和X3他们也移动在垂直ÿ-轴。
在前面的例子轨迹,Robot1有三种状态。该离散事件图块用于调度这些机器人状态之间的转变。
在A机器人等待等待
状态,直到它接收到一个yaisle项目协调。Robot1子系统是在等待
状态,直到仿真时间265
。
机器人转变到拾起
状态下,当有输入讯息载送该yaisle到的项的值离散事件图块。这个值被分配到出
,这是从所述的输出信号离散事件图块。该出
信号被馈送到Robot1子系统作为输入信号IN1要跟踪和机器人朝向移动yaisle项目位置。Robot1子系统转换到拾起
状态的时间265
。
当机器人是0.1
单位离yaisle,它拿起项目。然后,机器人转变到交付
州。该出
信号变0
和机器人返回到ÿ= 0交付。在模拟时间290
,Robot1子系统0.1
从单位走ÿ= 10并过渡至交付
州。
当机器人返回,这是0.1
单位离ÿ= 0,它转换到等待
州。大约320
,Robot1子系统提供的项目,并转换回等待
州。
当机器人提供其项目时,该项目被发送到生成的顺序包。此行为是由代表短信发送块,从过道物品内部生成消息金宝appSimulink的功能块。然后,将所生成的消息进入实体队列块。
一个复合实体造物主块等待来自三个所有三个项目实体队列块,以创建表示的顺序的复合实体。
为了完成订单,全部来自三个通道的项目需要交付。
当所有的项目交付,订单完成,它到达包就绪块。
的顺序的所述包准备块的入口触发的Simulink功能1块,以产生一个消息,并打开门,用于顺序终止。金宝app
当定单结束时,一个新的顺序到达处理顺序块中重新启动传送过程。
直到订单完成后,没有收到新的订单,让他们提供物品机器人等待完成的顺序。
顺序队列块是一个由一个简单的排队系统实体发生器,实体队列,实体服务器,实体门和实体终结者块。有关创建一个简单的排队系统的更多信息,请参阅管理实体使用事件操作。
实体发生器块随机地生成的订单。代际时间是从均值的指数分布绘制100
。
每个生成的实体具有三个随机生成的属性aisle1
,aisle2
和aisle3
该代表yaisle在Aisle1,Aisle2和Aisle3子系统项目的坐标。
entity.Aisle1 =兰迪([1,30]);entity.Aisle2 =兰迪([1,30]);entity.Aisle3 =兰迪([1,30]);
据推测,该项目是垂直位置之间ÿ= 1和ÿ= 30。
该命令的到来实体服务器块通过传送所述项的激活机器人yaisle坐标。进入这个MATLAB®在代码进入动作领域。
LocateAisle1(entity.Aisle1);LocateAisle2(entity.Aisle2);LocateAisle3(entity.Aisle3);
调用LocateIsle()
功能传达yaisle的物品的坐标为相应的机器人。
在订单等待实体服务器块,直到实体门块打开。
当所有项目交付,订单包进入包就绪块及其项通过函数调用的Simulink功能1块金宝app订单完成()
。Simu金宝applink的功能1块来生成消息以打开门。
当门打开时,为了终止和新订单到达实体服务器块。
检查从订单队列的顺序吞吐量。
增加模拟时间1000
。
模拟模型,观察范围显示器7
为完成的订单总数。