RTCSD团队第三组第二周进度报告

目录

  1. 核心控制器
  2. bug调试

核心控制器

这个模块主要是我在做,同时张照博在后期与我讨论一起解决了许多问题,让我加深了对问题的理解

从彭艳遇手中接到这个项目,由于对模块了解甚少,为了加快对其中的理解,我列些主控制器中的所有参数,其中为:
输入数据量:
CoffeeRemain,MilkRemain,SugarRemain,WaterRemain,WaterTemp,CupRemain

输出数据量:
CoffeeAmount,MilkAmount,SugarAmount,WaterAmount,NextStep

输入脉冲量:
AmericanCoffee,StepEvent,FeedFinishEvent,MixFinishEvent,CoffeeEvent,MilkDoserEvent,CoffeeDoserEvent,SugarDoserEvent
输出脉冲量:
GetCupEvent

最初的想法是如何把这些参数都能运用到。首先Remain系列和Recipe系列可以做一个比较,在做咖啡之前可以进行一个判断,所以我编写了一个checkall函数,如下图

1240759-20171029012443805-843961823.png

分别判断材料的剩余值是否满足需求值,以及是否还有空杯,水温是不是够。如果都满足,咖啡机才会开始工作。这样,输入数据量和部分输出量就得到完全的应用。

之后是设计流程,之前对作业没有很好理解,简单理解为各种材料的混合过程,只需要设置各种延时即可。忽略传送带和feeder的作用,上来就直接建立两个主状态-工作状态和初始状态,之后在里面增加其他状态,造成逻辑混乱,频频出错。事后,我先列些所有的流程,建立了足够的状态,stateflow的建模速度大大提升,同时和张照博一起讨论,两个人互相交流自己的理解,不断修改,并增加修改一些状态,最终勾勒出最终的流程图。这一点也使我觉得一个项目,对于全局的把握是至关重要的。之后,由于对相关函数不够理解,例如send函数滥用,逻辑不够清晰,但在彭艳遇的指导下,版本更新了几次。例如张照博提议用真值表,但是由于真值表对信号的屏蔽不够理想,最终决定为三个配方设置三个状态量。

1240759-20171029012456914-1533415642.png

由此我们也发现stateflow状态的引入可以很好的对信号进行屏蔽。对于这个模型,在讨论中,我们想过增加其他的参数,可以更好地反映咖啡机模型,但是考虑到时间有限,先把基本功能实现再继续新的版本更新。
最后采用的模式就是
咖啡选择信号输入-配方生成-检测可行性-取杯-传送带工作-doser工作-传送带工作-取杯。中间再继续加入忙等待直接转入错误状态的模型。
最后和张照博同学一起检查无误后交付给彭艳遇同学修改bug。

bug调试

这一部分主要也是彭彦毓在做,其他成员主要也是发现问题。

1240759-20171029012505555-55442954.jpg

首先是上面这个问题,当时对于simulink模型不是很了解,就向彭艳遇询问这个加热器为什么放在输出端口,经过交流,发现确实不合适,最终取消了这个模块,将水箱和加热器集成到一个模块。

1240759-20171029012513117-620200526.jpg

heater模块中原本fun中时间为10^8的周期,但为了更好的持久性,
(atan((u - 1e-5)*1e8) + pi / 2) / pi * 100
改成了
(atan((u - 1e-5)*inf) + pi / 2) / pi * 100

1240759-20171029012522133-1979772615.jpg

之前这个地方没有退出操作,只有en:StepEvent。发现stepevent脉冲不正确。加了exit:StepEvent;

1240759-20171029012528836-1687760746.jpg

最终第一代咖啡机完美制成


心得感想

这次团队作业如此复杂,但没想到能这么快完成,在simulink/stateflow模块上,小组成员彭艳遇和李佳杰负责周围模块的编写,张照博协调全队的进度,并协助我编写核心控制器。对于simulink和stateflow我了解甚少,当彭艳遇同学将各个模块的模型交给我时,我觉得是不可思议的,周围模块内部的模型十分复杂,涉及到各种微分,积分,我也对相关参数的理解很不到位。通过几天的耐心阅读,和虚心请教,对于模块渐渐有了清晰的认识,最终完成了这个艰难的任务,同时,和组员一起相互讨论,让我明白了团队协作的乐趣,不仅可以让自己思路清晰,更可以加快编写模型速率。总之这一周收获颇丰。

转载于:https://www.cnblogs.com/cecil-home/p/7749222.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值