Simulink的顶层系统布局万博1manbetx®模型是许多工程团队可以使用的公共环境,并且是基于模型的设计范例中许多任务的基础:分析、设计、测试和实现。您可以通过标识结构和单个组件在顶层定义系统。然后以与组件相对应的分层方式组织模型。然后定义每个组件的接口和组件之间的连接。
本教程的特色模型是一个平面机器人,可以在两个轮子的帮助下移动或旋转,类似于家用吸尘机器人。该模型假设机器人以两种方式之一移动:
线性-两个轮子以相同的速度向相同的方向转动,机器人可以线性移动。
转动——轮子以相同的速度向相反的方向转动,机器人原地旋转。
每一种运动都是从静止状态开始的,也就是说,旋转和线性速度都是零。有了这些假设,线性和旋转运动部件可以分别建模。
在设计模型之前,考虑您的目标和需求。目标规定了模型的结构和详细程度。如果目标只是简单地计算出机器人能跑多快,那么仅仅为线性运动建模就足够了。如果目标是为设备设计一组跟随给定路径的输入,那么就涉及到旋转分量。如果避障是一个目标,那么系统就需要一个传感器。本教程构建了一个模型,目标是设计传感器参数,以便机器人在检测到路径上的障碍物时及时停止。为了实现这一目标,模型必须:
确定电机停止时机器人停止的速度
提供一系列直线和旋转运动的指令,使机器人能够在二维空间中运动
第一个建模目标可以让你分析运动,所以你可以设计传感器。第二个目标使您能够测试您的设计。
一旦您理解了建模需求,您就可以开始识别系统的组件了。在顶级结构中标识单个组件及其关系有助于系统地构建潜在的复杂模型。在开始构建模型之前,需要在Simulink之外执行这些步骤。万博1manbetx
这个任务包括回答以下问题:
系统的结构和功能组成部分是什么?当布局反映物理和功能结构时,它将帮助您理解、构建、沟通和测试系统。当系统的各个部分要在设计过程的不同阶段实现时,这一点就变得更加重要。
每个组件的输入和输出是什么?画一幅图来显示组件之间的连接。这张图帮助您可视化模型中的信号流,识别每个信号的源和接收器,并确定是否存在所有必要的组件。
什么层次的细节是必要的?在图表中包括主要的系统参数。创建系统的图片可以帮助您识别和建模对您想要观察的行为至关重要的部分。对建模目标有贡献的每个组件和参数必须在模型中有一个表示,但是在复杂性和可读性之间有一个折衷。建模可以是一个迭代的过程。您可以从具有少量细节的高级模型开始,然后在需要的地方逐渐增加复杂性。
考虑以下几点通常是有益的:
系统的哪些部分需要测试?
测试数据和成功标准是什么?
哪些输出是分析和设计任务所必需的?
本教程中的系统定义了一个用两个电动轮子在二维空间中移动的机器人。它包括:
线性运动特点
旋转运动特征
转换以确定系统在二维中的位置
测量机器人与障碍物之间距离的传感器
该系统的模型包括两个相同的车轮、施加在车轮上的输入力、转动动力学、坐标变换和传感器。该模型使用子系统表示每个组件:
打开一个新的Simul万博1manbetxink模型。看到开放的新模型.
打开库浏览器。看到打开Sim万博1manbetxulink库浏览器.
添加子系统块。拖五子系统块的港口和子系统图书馆的新模式。
单击一个子系统。在格式选项卡上,单击汽车名称下拉。清除隐藏自动块名称复选框。
排列和重命名子系统块如图所示。若要更改区块名称,请双击区块名称并编辑文本。
识别子系统之间的输入和输出连接。在模拟过程中,输入和输出值会动态变化。连接块的线表示数据传输。该表显示了每个组件的输入和输出。
块 | 输入 | 输出 | 相关信息 |
---|---|---|---|
输入 | 没有一个 | 右轮力 左轮力 |
不适用 |
右轮 | 右轮力 | 右轮速度 | 方向性的,负的意思是反向的方向 |
左车轮 | 左轮力 | 左车轮速度 | 方向性的,负的意思是反向的方向 |
旋转 | 左右车轮之间的速度差 | 旋转角 | 测量逆时针 |
坐标变换 | 正常速度 旋转角 |
速度在X 速度在Y |
不适用 |
传感器 | X坐标 Y坐标 |
没有一个 | 建模不需要块 |
一些块输入与块输出不完全匹配。因此,除了单个组件的动态之外,该模型还必须计算以下内容:
输入到旋转计算-减去两个轮子的速度,然后除以2。
坐标变换的输入-两个轮子的平均速度。
传感器的输入-集成坐标变换的输出。
车轮速度的大小总是相等的,在这个假设下计算是准确的。
添加必要的组件并完成连接:
向每个子系统添加必要的输入和输出端口。双击一个子系统块。
每一个新子系统块包含一个轮廓尺寸(三机一体)和一个外港(着干活)块。这些块用模型层次结构中更高的层次定义信号接口。
每一个轮廓尺寸块上创建一个输入端口子系统块,每个外港块创建输出端口。该模型将这些块的名称反映为输入/输出端口名称。为额外的输入和输出信号添加更多的块。在Simuli万博1manbetxnk Editor工具栏上,单击导航至父母按钮回到顶层。
对于每个块,添加和重命名轮廓尺寸和外港块。
当复制一个轮廓尺寸块创建新文件时,使用粘贴(Ctrl + V)的选择。
计算所需的输入坐标变换和旋转从左轮和右轮的速度。
计算线性速度输入到坐标变换子系统。添加一个添加块,并连接两轮组件的输出。添加一个增益块,并设置增益参数为1/2
.连接的输出添加阻止这个获得块。
计算输入到旋转子系统。添加一个减去块从数学运算库。把正确的车轮速度连接到+输入和左轮的速度-输入。连接两个车轮组件的输出。添加一个增益块,并设置增益参数为1/2
.连接的输出减去阻止这个获得块。
根据X和Y速度计算X和Y坐标。添加两个积分器的输出坐标变换块。留下初始条件积分器块设置为0
.
完成系统的连接。
确定作为模型一部分的参数及其值。使用建模目标来确定这些值是否始终是固定的还是在不同的模拟中发生变化。对建模目标有贡献的参数需要在模型中显式表示。该表有助于确定建模每个组件时的详细级别。
参数 | 块 | 象征 | 价值 | 类型 |
---|---|---|---|---|
质量 | 左车轮 右轮 |
米 | 2.5公斤 | 变量 |
滚动阻力 | 左车轮 右轮 |
k_drag | 30 Ns2/ m | 变量 |
机器人半径 | 旋转 | r | 0.15米 | 变量 |
初始角 | 旋转 | 没有一个 | 0 rad | 固定 |
初始速度 | 左车轮 右轮 |
没有一个 | 0米/秒 0米/秒 |
固定 |
初始(X, Y)坐标 | 集成商 | 没有一个 | (0,0) m | 固定 |
万博1manbetxSimulink使用MATLAB®工作区来评估参数。在MATLAB命令窗口中设置以下参数:
m = 2.5;k_drag = 30;r = 0.15;