Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

Arduino工程工具包

你听说过吗Arduino工程工具包?

如果你感兴趣的话DIY项目和寻找一种有趣的方式来应用一些控制和机器人原理到一个真实的系统,你可能想读这篇文章。

简介

如果你已经关注这个博客一段时间了,你可能已经意识到我喜欢在家里使用MATLAB和Simulink进行各种项目。金宝app有关示例,请参阅my真空烹饪机的职位

当我听说Arduino现在提供Arduino工程工具包,并且我们有支持包来用Simulink编程时,我联系了组装它的团队,并问我是否可以借一个来玩一下。金宝app金宝app

当你买工具箱的时候Arduino商店,你会收到一个装满机械和电子零件的盒子,包括一个Arduino MKR1000

Arduino工具包

这套工具包包括建造三个可能项目的说明:摩托车、月球车或绘图机器人。

Arduino工具包中的3个项目

我决定买摩托车。我认为惯性轮使它自我平衡将是一个有趣的控制项目。

开始

一旦你有了工具包,你将需要在MATLAB中安装几个包:

安装它们最简单的方法是通过附加组件菜单中的MATLAB工具条。

安装完这三个包后,我进入例子Arduino Engineering Kit硬件支持包的文件夹,并逐一尝试示例,以确保我能够金宝app利用所有的传感器和执行器。例如,这是我对IMU的测试,我将摩托车沿所有轴前后倾斜90度。这让我得出结论,我想控制的轴,摩托车的滚动角度,是欧拉角输出的第二个元素,Y轴。

测试IMU

我的模型

工程套件项目文件还包含一个完整的模型,平衡摩托车,并允许您控制其速度和转向角度。然而,我认为从头开始创建我的程序会更有趣。如果你感兴趣,你可以点击这里下载最终版本

这是最终结果的顶层图片。

顶部最终模型

让我们看看每个组件。首先,在左边,我创建了一个子系统,其中包含我需要的所有传感器,并将它们组合在一个总线中。

顶部最终模型

接下来我对每个传感器进行处理,提取出方便工程单元的相关数据。

顶部最终模型

现在是时候让状态流图充当我的模型的大脑了。在左边,我检查了三个条件:IMU被校准,摩托车没有摔倒,飞轮没有达到最大速度。当所有这些条件都满足时,我就可以单击模型顶层的Start按钮。一旦点击,我有4秒的校准,在我开始平衡之前,我保持摩托车完美垂直校准。如果摩托车掉了,我可以再次按下按钮重置控制器,然后再试一次。

顶部最终模型

当图表启用平衡时,它会打开激活控制器的Enabled子系统。对于平衡飞轮,控制器为PID,以摩托车的侧倾角度为输入,向飞轮发出电压指令。对于摩托车的速度,这是一个简单的比例控制器,它将摩托车的速度作为输入,进行整合,并与车轮编码器进行比较。

顶部最终模型

注意,这个平衡控制器并不完美。飞轮电机上的传感器不能直接测量飞轮速度,很难完美地控制飞轮运动。我们正在努力!

最后,控制器的输出被发送到输出驱动程序块。

顶部最终模型

它确实有效!

下面是一段摩托车运行的视频:

参观Arduino Engineering Kit YouTube频道看更多的例子。

现在轮到你了

请在下面的评论中告诉我们你对Arduino工程工具包的看法。

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。