学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#学生成功#万博1manbetx

万博1manbetx2019年Simulink学生挑战赛优胜者

这周的文章是Owen Paul写的,他在MathWorks学生竞赛项目团队工作。

简介

许多公司都在使用Simulink万博1manbetx特别是在汽车、机器人和航空航天领域的基于模型的设计。但我敢打赌,如果你调查大多数工程专业的学生万博1manbetx是用来表示他们可能不知道该说什么。这也是我们每年举办Simulink学生挑战赛的主要原因之一。万博1manbetx我们MathWorks希望重点介绍使用Simulink的学生,并鼓励您在项目中使用Simulink万博1manbetx。说了这么多,你可能已经准备退出这个博客了,因为你认为我会用接下来的1000个字来说服你为什么应该参加比赛。不!在这篇博客中,我将讨论2019年Simulink学生挑战赛的两个第一名获奖视频,并讨论这些学生正在做的酷项目。万博1manbetx

但在我深入研究这些项目之前,我必须先简单地讨论一下Simulink挑战,以提供一些背景知识。万博1manbetxSimu万博1manbetxlink学生挑战赛是MathWorks每年举办的在线比赛。在这个挑战中,我们问了世界各地的大学生一个简单的问题。如何使用Simulink?万博1manbetx为了回答这个问题,学生们制作了一个展示他们使用Simulink的项目的短视频,然后将其上传到YouTube上,并附上#SimulinkChallenge2019的标签。万博1manbetx然后我们从三个方面来评判这些视频:比赛主题的适当性,视频的创造性和原创性,以及挑战解决方案中展示的产品知识的深度。现在你知道挑战是什么了,让我们开始吧!?

使用先进数字滤波器的测速仪(VADER)

如果你买了一辆新车,几天后你发现其中一扇车门上有个凸起,你会作何感想?可能不太开心。为了避免这种愤怒和沮丧,材料的质量测试是极其重要的。首先,第一名获胜者有一个解决方案,可以帮助这种质量保证。菲利克斯•施奈德波鸿应用科学大学的一所大学正在开发一种名为“VADER”的高精度光学长度和速度传感器。“这个VADER传感器包括一个明亮的LED来照亮物体表面,还有一个直线相机来拍摄运动表面(图1)。”

gif

图1:VADER传感器

这在高层次上的工作方式是金属片以一定的速度在流水线上移动。VADER传感器面向金属片定位,直线摄像机定位在金属片移动的方向。当材料通过相机移动时,使用空间滤波测速技术发现了缺陷。如果这听起来还不够复杂,Felix还必须考虑到这样一个事实,即相机以1.6 gb /秒的高速率记录数据,这些数据必须经过预处理和过滤。为了解决这个复杂的问题,菲利克斯求助于Simulink。万博1manbetx

为了处理来自VADER传感器的数据,使用现场可编程门阵列(FPGA)在定制电路板上进行滤波。该FPGA有三个主要用途;解码来自线路摄像机的数据,过滤数据,并处理输出到德州仪器(TI)开发板的数据。具体地说,一个TI板与数字信号处理器芯片(DSP)。为了解决所有这些任务,Felix在Simulink中对FPGA系统进行建模,将每个任务分解为子系统(图2)。万博1manbetx

万博1manbetx仿真软件模型

图2:FPGA板的S万博1manbetximulink模型

我发现这个模型中特别有趣的是过滤子系统。这就是实现前面提到的空间过滤的地方。因为菲利克斯需要使用8个平行空间滤波器,他使用了一个对于每个子系统块;允许他仅使用一个块就自动地通过过滤器运行数据8次。

在滤波分系统中还增加了边缘检测算法,用于检测材料的开始和结束时间。从这些信息中,你可以很容易地推导出材料的长度以及它移动的速度。为了实现边缘检测,Felix首先使用了Simulink逻辑块(图3),他说这变成了“难以验证的大型万博1manbetx设计”。

万博1manbetx仿真软件模型

图3:使用Simulink逻辑的边缘检测万博1manbetx

在发现这一点后,他转向了statflow,“这让事情变得简单多了。”乍一看,我们已经可以看到模型使用Stateflow(图4)使用更少的块,更容易阅读。但是对Felix来说,真正使这个实现更好的是,他可以验证边缘检测的输出是正确的响应。有了这个新的实现图,显示了应用边缘检测算法之前和之后的数据。从这些图中可以很直观地解读材料的开始和结束。

Stateflow形象

图4:使用statflow进行边缘检测

如前所述,FPGA板必须处理高速率的数据,但也与TI板接口。万博1manbetxSimulink测试用于确保在制造FPGA板或在任何硬件上测试之前可以调试模型中的任何问题或错误。使用Simu万博1manbetxlink测试,Felix能够将真实或模拟的相机数据输入到模型中,并测试结果的准确性以及可能发生错误的位置。

一旦模型被正确测试,Felix知道它可以工作,是时候开始为硬件编写C和HDL代码了……哦,等等,他们不需要写任何代码吗?没错,没有一行代码被写出来,因为高密度脂蛋白编码器将FPGA Simulink模型部署到FPGA板上。万博1manbetx菲利克斯还为他使用的TI板设计了一万博1manbetx个Simulink模型嵌入式编码器来部署C代码。Felix说HDL编码器可能是在这个项目中使用Simulink的最大好处。万博1manbetx他说,

“在HDL项目中手动开发测试台非常累人,相比之下,在Simulink中我可以绘制每个信号,并且在大多数情况下,可以很快从波形中发现错误。万博1manbetx如果没有HDL-Coder / Simulink Coder,整个项目就不可能实现。”万博1manbetx

通过观看视频了解更多关于这个项目的信息在这里!一定要关注他的工作,因为根据Felix目前的模拟,“可能很快就会有一个新版本的VADER,其测量误差远远低于市售传感器。”

SafeTown

下一位冠军让我们得以一窥无人驾驶汽车的遥远未来。穆斯塔法单ğlu在Technische网站Universität上,德累斯顿正在寻求创造一个“安全小镇”,在这个小镇中,车辆可以意识到彼此的位置,并根据这些信息调整它们的行驶方向。但这个问题有两个主要因素。第一个是自动驾驶汽车元素,车辆必须在避开其他车辆的同时沿着道路行驶。另一部分是交叉路口。当一辆车到达十字路口时,它怎么知道什么时候有其他车辆在十字路口,谁应该先走?

为了解决第一个问题,利用Simulink和Stateflow开发了一个自动驾驶汽车模型。万博1manbetx然而,这个模型并不是从零开始构建的。穆斯塔法的团队从一个简单的直线跟踪示例该团队正在使用的乐高MINDSTORM EV3机器人。从这里开始,添加了PID控制器,并对参数进行了调整,直到团队对车辆的性能满意为止。在此之后,添加了一个Stateflow模型来控制以下模式之间的切换:跟随线路、停止和穿过十字路口。Mustafa告诉我们,使用Simulink进行控制是万博1manbetx关键,因为他们“可以使用各种不同的控制器进行快速评估,在需要时进行调整,或改变[他们的]方法。(他)想不出另一个适合如此快速发展的环境。”

对于第二个问题,在“城镇”上方放置了一个摄像头来跟踪乐高机器人的位置并识别十字路口。图像识别算法用于识别地图上的乐高机器人。为了创建这个算法,Mustafa的团队首先使用地面真相标签应用在视频的任意一帧中识别一个乐高机器人。然后,使用地面真相标记应用程序生成的数据在MATLAB中训练R-CNN、Fast R-CNN、Faster R-CNN和ACF等机器学习算法。然后,使用地图上多个乐高机器人预先录制的样本视频对这些算法进行测试(图5)。ACF探测器,在本项目中使用,并调整参数,以确保算法准确地识别乐高机器人、十字路口以及何时在十字路口有乐高机器人。利用在Simulink中开发的图像识别算法建立模型万博1manbetxMATLAB函数块是使用。

gif

图5:使用机器学习识别机器人和交叉路口

现在我们已经看到了Mustafa的团队是如何解决这两个主要问题的,还有一个更关键的因素需要考虑。沟通!摄像工作站可以识别乐高机器人何时在十字路口,但现在它必须告诉机器人是应该等待还是离开。这种通信是通过使用用户数据报协议(UDP)的Wi-Fi完成的。集成UDP变得更容易,因为有预先制作的块。中提供了UDP Simulink块万博1manbetx乐高EV3机器人硬万博1manbetx件支持包.至于摄像头工作站,UDP块在仪表控制工具箱被使用。安装了这些附加组件后,所有需要做的就是将这些UDP块拖到它们的模型中,并设置地址和端口。

看完视频后,我对这个项目的背景产生了好奇。当被问及安全镇项目时,穆斯塔法说,

“SafeTown是一个非常有用的项目,让学生们在真实的硬件上测试和尝试他们的算法。这也有助于全面理解与控制和自动化工程相关的概念。当我还是一名本科学生时,我一直想知道控制理论在现实生活中是如何工作的。所以现在,给予本科生这样的机会,和他们一起做这样的项目,让我感到高兴和满足。我希望我们能在新同学参与论文写作的同时,从不同方面进行改进,共同创造价值。”

要了解更多关于这个项目和观看乐高机器人在行动点击在这里

最后,观看其他获奖视频或了解更多关于比赛的信息在这里

想要学习如何使用Simulink自己?万博1manbetx拿走免费的万博1manbetxSimulink Onramp课程也许明年我会写关于你的Simulink项目。万博1manbetx?

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。