zoukankan      html  css  js  c++  java
  • RTCSD2017-Group-2

    第二周周报

    本周进行了模型的设计和建模,并与核心控制模块完成联调,生成了代码。

    模型总体设计

    模型定义(来自概要设计)

    Container

    液体容器,用于保存各种液体

    Doser

    定量器,用于量取一定量的液体

    Heater

    加热器,用于提供热水

    Brewing Assembly

    混合器,用于将咖啡,牛奶,糖和热水混合

    Cup Feeder

    杯架,用于提供纸杯

    Conveyor Belt

    传输带,用于物体传输

    Control System

    核心控制模块,用于各模块之间的调度

    模块间接口定义(来自概要设计)

    Container

    SettingFlow(Input)

    当前出口开关大小

    Amount(Output)

    当前液体余量

    OutFlow(Output)

    当前液体实际流出流量

    Doser

    Inflow(Input)

    当前液体实际流入流量

    SettingAmount(Input)

    液体需要量取的量

    OutFlow

    当前液体实际流出流量

    ***DoserEvent(Output)

    Doser完成操作的事件

    FlowControl(Output)

    控制对应容器的出口流量

    Heater

    SettingFlow(Input)

    当前出口开关大小

    OutFlow(Output)

    当前热水实际流出流量

    WaterAmount(Output)

    当前可用热水余量

    WaterTemp(Output)

    当前热水温度

    Brewing Assembly

    WaterInput(Input)

    热水流入流量

    CoffeeInput(Input)

    咖啡流入流量

    MilkInput(Input)

    牛奶流入流量

    SugarInput(Input)

    糖流入流量

    Mixtrue(Output)

    混合液体输出流量

    MixFinishEvent(Output)

    混合完成的事件

    Cup Feeder

    GetCup(Input)

    需要杯子的事件

    JustaCup(Output)

    杯子的输出

    FeedFinishEvent(Output)

    供应杯子完成的事件

    CupRemain(Output)

    当前是否有杯子剩余

    Conveyor Belt

    Step(Input)

    每次步进的距离

    AddMixtrue(Input)

    混合液体入口

    AddCup(Input)

    杯子入口

    TakeOutEvent(Input)

    杯子被拿走的事件

    JustaCupofCoffee(Output)

    一杯咖啡的输出

    StepEvent(Output)

    步进完成的事件

    Control System

    CoffeeRemain(Input)

    当前剩余咖啡的输入

    MilkRemain(Input)

    当前剩余牛奶的输入

    SugarRemain(Input)

    当前剩糖的输入

    WaterRemain(Input)

    当前剩余水的输入

    WaterTemp(Input)

    当前水温的输入

    CoffeeAmount(Output)

    需要咖啡的量

    MilkAmount(Output)

    需要牛奶的量

    SugarAmount(Output)

    需要糖的量

    WaterAmount(Output)

    需要水的量

    NextStep(Output)

    每次步进的量

    GetCupEvent(Output)

    需要被子的事件

    整体设计图

    模块细节设计

    Container

    设计思路

    容器有初始量InitAmount,最大输出流量量不超过MaxFlow
    对所需输出流量进行积分即为液体量减少的值

    模块设计图

    Doser

    设计思路

    接收到SettingAmount后,为简便,保证在3s内完成。控制流量为SettingAmount/3,等待三秒后关闭流量

    模块设计图

    内部流程图

    Heater

    设计思路

    加热器采用两段加热,避免长时间沸腾或者功率太大。
    预设输入流量无上限,设定为SettingInFlow,减去当前输出流量,经积分后得当前可用热水余量
    加热功率和输入流量带入的热量,以及输出流量带走的热量,积分的当前热水中所含热量,除以可用余量,得当前热水温度。
    由于两段加热,可以保证输出的热水一定为100度。

    模块设计图

    内部流程图

    Brewing Assembly

    设计思路

    当各个液体流量大于0的时候开始积分,等流量回落到0之后,开始混合,等待一段时间后输出即可。

    模块设计图

    内部流程图

    Cup Feeder

    设计思路

    当接收到NeedCupEvent,并且当前仍有杯子,取出一个杯子并输出

    模块设计图

    内部流程图

    Conveyor Belt

    设计思路

    如果有杯子进入传送带,杯子位置更新。如果有混合液体进入且当前杯子在指定位置,则存下混合液体。
    每有一次Step,等待一段与Step成正比的时间。
    如果杯子到达终点,则将杯子和混合液体一并输出,并等待TakeOutEvent。

    模块设计图

    内部流程图

    最终交付件(Updating)

    Link to GitHub

  • 相关阅读:
    align 的用法
    layui 验证用法
    C# Post请求方法
    SQL 查询今天、昨天、7天内、30天的数据
    对Dijkstra名字发音的看法
    Ubuntu桌面图标消失且右键失效的解决办法
    Ubuntu下安装与配置Matlab
    ns 简单网络模拟
    JAVA包含第三方包的部署方法
    Ubuntu下配置ftp服务端
  • 原文地址:https://www.cnblogs.com/89yanyu/p/7750625.html
Copyright © 2011-2022 走看看