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