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