模型和验证系统GydF4y2Ba

你的系统结构内的每个部件模型来表示该组分的物理或功能特性。通过使用测试数据模拟验证它们的基本组成部分的行为。GydF4y2Ba

打开系统布局GydF4y2Ba

整个系统的布局的一个大画面视图建模单个组分时是很有用的。通过加载模型布局开始。在MATLAB命令行中输入:GydF4y2Ba

open_system(GydF4y2Ba'system_layout.slx'GydF4y2Ba)GydF4y2Ba

模型组件GydF4y2Ba

Si万博1manbetxmulink的GydF4y2Ba®GydF4y2Ba组件的模型是基于几个出发点:GydF4y2Ba

  • 输出和一个物理部件的输入端之间的明确的数学关系 - 可以从输入计算部件的输出,直接或间接,通过代数运算和微分方程的积分。例如在给定的流入速率的水箱中的水位的计算是显式的关系。每个Sim万博1manbetxulink模块基于从它的输入到其输出的计算的定义。GydF4y2Ba

  • 物理组件的模型变量之间的隐式的数学关系 - 由于变量是相互依赖的,分配一个输入和一个输出到部件并不简单。例如,电压在GydF4y2Ba+GydF4y2Ba连接成电路的电动机,并在所述电压的结束GydF4y2Ba-GydF4y2Ba端部处具有一个隐含的关系。为了模拟在Simulink这样的关系,您可以使用物理建模工具,如万博1manbetx的Simscape™或这些变量作为一个更大的组件,允许输入/输出定义的零件模型。有时,模拟目标和组件的定义更仔细的检查有助于定义输入/输出关系。GydF4y2Ba

  • 从实际的系统中的数据获得的 - 你已经从实际测得的组件的输入/输出数据,但完全定义的数学关系不存在。许多设备都符合该描述的非建模组件。例如,该热消散由电视。您可以使用系统辨识工具箱™来定义这样一个系统的输入/输出关系。GydF4y2Ba

  • 一个明确的功能性定义 - 您通过代数和逻辑运算限定从输入的功能部件的输出。例如,一个恒温器的切换逻辑。您可以建模为Simulink模块和子系统,功能最全的关系。万博1manbetxGydF4y2Ba

本教程物理模型,并用明确的输入/输出关系的功能组件。在本教程中,你会:GydF4y2Ba

  1. 使用系统方程来创建一个Simulink模型。万博1manbetxGydF4y2Ba

  2. 添加并在Simulink编辑器连万博1manbetx接Simulink模块。块表示从公式中的系数和变量。GydF4y2Ba

  3. 分别建立每个组件的模型。建立一个系统的模型最有效的方法是首先考虑的独立组件。GydF4y2Ba

  4. 通过建立使用该系统的近似简单的模型开始。确定的假设可能会影响你的模型的准确性。反复添加细节,直至满足复杂建模和精度要求的水平。GydF4y2Ba

模型中的物理组件GydF4y2Ba

描述部件之间的关系,例如,数据,能量和力传递。使用系统方程来构建系统在Simulink的图形模型。万博1manbetxGydF4y2Ba

有些问题要问你开始一个组件模型之前:GydF4y2Ba

  • 什么是每个组件的常量?什么样的价值观不改变,除非你改变呢?GydF4y2Ba

  • 什么是每个组件的变量?什么样的价值观随时间而变化?GydF4y2Ba

  • 有多少状态变量没有一个成分有哪些?GydF4y2Ba

导出用于使用科学原理各成分的公式。许多系统方程可以分为三类:GydF4y2Ba

  • 对于连续系统,微分方程描述变化的与用于时间的所有值定义的等式的变量的速率。例如,一阶差分方程给出了一个汽车的速度:GydF4y2Ba

    dGydF4y2Ba vGydF4y2Ba (GydF4y2Ba ŤGydF4y2Ba )GydF4y2Ba dGydF4y2Ba ŤGydF4y2Ba =GydF4y2Ba -GydF4y2Ba bGydF4y2Ba 米GydF4y2Ba vGydF4y2Ba (GydF4y2Ba ŤGydF4y2Ba )GydF4y2Ba +GydF4y2Ba üGydF4y2Ba (GydF4y2Ba ŤGydF4y2Ba )GydF4y2Ba

  • 离散系统,差分方程描述变化为变量的速率,但方程只在特定的时间来定义。例如,从一个离散比例微分控制器的控制信号:GydF4y2Ba

    pGydF4y2Ba dGydF4y2Ba [GydF4y2Ba ñGydF4y2Ba ]GydF4y2Ba =GydF4y2Ba (GydF4y2Ba ËGydF4y2Ba [GydF4y2Ba ñGydF4y2Ba ]GydF4y2Ba -GydF4y2Ba ËGydF4y2Ba [GydF4y2Ba ñGydF4y2Ba -GydF4y2Ba 1GydF4y2Ba ]GydF4y2Ba )GydF4y2Ba ķGydF4y2Ba dGydF4y2Ba +GydF4y2Ba ËGydF4y2Ba [GydF4y2Ba ñGydF4y2Ba ]GydF4y2Ba ķGydF4y2Ba pGydF4y2Ba

  • 而不衍生物方程是代数方程。例如,代数方程给出在具有两个组件的并联电路的总电流:GydF4y2Ba

    一世GydF4y2Ba ŤGydF4y2Ba =GydF4y2Ba 一世GydF4y2Ba 一个GydF4y2Ba +GydF4y2Ba 一世GydF4y2Ba bGydF4y2Ba

车轮和直线运动。GydF4y2Ba有两股力量在起作用轮:GydF4y2Ba

  • 施加的力由电机 - 力GydF4y2BaFGydF4y2Ba作用于速度变化的方向和为输入至车轮子系统。GydF4y2Ba

  • 阻力 - 力GydF4y2BaFGydF4y2Ba拖动GydF4y2Ba反作用速度变化的方向和为速度的函数。GydF4y2Ba

    FGydF4y2Ba dGydF4y2Ba [RGydF4y2Ba 一个GydF4y2Ba GGydF4y2Ba =GydF4y2Ba ķGydF4y2Ba dGydF4y2Ba [RGydF4y2Ba 一个GydF4y2Ba GGydF4y2Ba VGydF4y2Ba |GydF4y2Ba VGydF4y2Ba |GydF4y2Ba

加速度成正比,这些力量的总和:GydF4y2Ba

(GydF4y2Ba 米GydF4y2Ba /GydF4y2Ba 2GydF4y2Ba )GydF4y2Ba VGydF4y2Ba ˙GydF4y2Ba =GydF4y2Ba FGydF4y2Ba -GydF4y2Ba FGydF4y2Ba dGydF4y2Ba [RGydF4y2Ba 一个GydF4y2Ba GGydF4y2Ba (GydF4y2Ba 米GydF4y2Ba /GydF4y2Ba 2GydF4y2Ba )GydF4y2Ba VGydF4y2Ba ˙GydF4y2Ba =GydF4y2Ba FGydF4y2Ba -GydF4y2Ba ķGydF4y2Ba dGydF4y2Ba [RGydF4y2Ba 一个GydF4y2Ba GGydF4y2Ba VGydF4y2Ba |GydF4y2Ba VGydF4y2Ba |GydF4y2Ba VGydF4y2Ba ˙GydF4y2Ba =GydF4y2Ba FGydF4y2Ba -GydF4y2Ba ķGydF4y2Ba dGydF4y2Ba [RGydF4y2Ba 一个GydF4y2Ba GGydF4y2Ba VGydF4y2Ba |GydF4y2Ba VGydF4y2Ba |GydF4y2Ba (GydF4y2Ba 米GydF4y2Ba /GydF4y2Ba 2GydF4y2Ba )GydF4y2Ba

哪里GydF4y2BaķGydF4y2Ba拖动GydF4y2Ba是阻力系数和GydF4y2Ba米GydF4y2Ba是机器人的质量。每个车轮进行这种大规模的一半。GydF4y2Ba

构建轮型号:GydF4y2Ba

  1. 在里面GydF4y2Basystem_layoutGydF4y2Ba模型,双击GydF4y2Ba右轮GydF4y2Ba子系统来显示空子系统。GydF4y2Ba

  2. 型号速度和加速度。添加GydF4y2Ba积分GydF4y2Ba块。离开初始条件设置为GydF4y2Ba0GydF4y2Ba。这个块的输入是加速GydF4y2BaVDOTGydF4y2Ba且输出是速度GydF4y2BaVGydF4y2Ba。GydF4y2Ba

  3. 模型中的阻力。添加GydF4y2BaMATLAB功能GydF4y2Ba从用户定义的函数库块。该GydF4y2BaMATLAB功能GydF4y2Ba块提供了实现模型中的数学表达式的快捷方式。编辑的功能,双击块打开MATLAB函数编辑器。GydF4y2Ba

  4. 定义为MATLAB功能块的参数。在里面GydF4y2BaMATLAB功能GydF4y2Ba块编辑器,单击GydF4y2Ba编辑数据GydF4y2Ba按钮。请点击GydF4y2Bak_dragGydF4y2Ba,组GydF4y2Ba范围GydF4y2Ba至GydF4y2Ba参数GydF4y2Ba和点击GydF4y2Ba应用GydF4y2Ba。GydF4y2Ba

  5. 从电机力减去阻力GydF4y2Ba减去GydF4y2Ba块。完成与力加速方程式GydF4y2Ba获得GydF4y2Ba与参数块GydF4y2Ba1 /(M / 2)GydF4y2Ba。GydF4y2Ba

  6. 要反转的方向GydF4y2BaMATLAB功能GydF4y2Ba块,右键单击块,然后选择GydF4y2Ba旋转与翻转>翻转块GydF4y2Ba。连接块。GydF4y2Ba

  7. 两个轮子的动力是相同的。让刚建模右轮子系统的复制和粘贴左轮子系统。GydF4y2Ba

  8. 查看该模型的顶层。点击GydF4y2Ba向上导航至父GydF4y2Ba按键GydF4y2Ba。GydF4y2Ba

旋转运动。GydF4y2Ba当两个轮子转动方向相反,他们在半径的圆运动GydF4y2Ba[RGydF4y2Ba,使机器人的旋转运动。当车轮转动的方向一致,没有旋转。假设车轮速度总是在幅度上相等,则实际的旋转运动建模为依赖于所述两个车轮速度的差GydF4y2BaVGydF4y2Ba[RGydF4y2Ba和GydF4y2BaVGydF4y2Ba大号GydF4y2Ba:GydF4y2Ba

θGydF4y2Ba ˙GydF4y2Ba =GydF4y2Ba VGydF4y2Ba [RGydF4y2Ba -GydF4y2Ba VGydF4y2Ba 大号GydF4y2Ba 2GydF4y2Ba [RGydF4y2Ba

构建旋转动力学模型:GydF4y2Ba

  1. 在的顶级GydF4y2Basystem_layoutGydF4y2Ba模型,双击旋转子系统,显示空子系统。删除之间的连接GydF4y2Ba运行轨迹GydF4y2Ba和GydF4y2Ba外港GydF4y2Ba块。GydF4y2Ba

  2. 建模角速度和角。添加GydF4y2Ba积分GydF4y2Ba块。离开初始条件设置为GydF4y2Ba0GydF4y2Ba。该块的输出是角GydF4y2BaTHETAGydF4y2Ba且输入是角速度GydF4y2Batheta_dotGydF4y2Ba。GydF4y2Ba

  3. 从切向速度计算角速度。添加GydF4y2Ba获得GydF4y2Ba与参数GydF4y2Ba1 /(2 * r)的GydF4y2Ba。GydF4y2Ba

  4. 连接块。GydF4y2Ba

  5. 查看该模型的顶层。点击GydF4y2Ba向上导航至父GydF4y2Ba按键GydF4y2Ba。GydF4y2Ba

模型中的功效成分GydF4y2Ba

从函数到其输出的输入描述的功能。该描述可以包括代数方程和逻辑结构,其可用于构建系统在Simulink的图形模型。万博1manbetxGydF4y2Ba

坐标变换。GydF4y2Ba机器人的在X和Y坐标的速度,GydF4y2BaVGydF4y2BaXGydF4y2Ba和GydF4y2BaVGydF4y2BaÿGydF4y2Ba,是关系到线性速度GydF4y2BaVGydF4y2BañGydF4y2Ba和角度GydF4y2BaTHETAGydF4y2Ba:GydF4y2Ba

VGydF4y2Ba XGydF4y2Ba =GydF4y2Ba VGydF4y2Ba ñGydF4y2Ba COSGydF4y2Ba (GydF4y2Ba θGydF4y2Ba )GydF4y2Ba VGydF4y2Ba ÿGydF4y2Ba =GydF4y2Ba VGydF4y2Ba ñGydF4y2Ba 罪GydF4y2Ba (GydF4y2Ba θGydF4y2Ba )GydF4y2Ba

建立坐标变换模型:GydF4y2Ba

  1. 在的顶级GydF4y2Basystem_layoutGydF4y2Ba模型,双击坐标转换子系统,显示空子系统。GydF4y2Ba

  2. 模拟三角函数。添加GydF4y2Ba正余弦GydF4y2Ba从数学运算库块。GydF4y2Ba

  3. 型号乘法。添加两个GydF4y2Ba产品GydF4y2Ba从数学运算库中的块。GydF4y2Ba

  4. 连接块。GydF4y2Ba

  5. 查看该模型的顶层。点击GydF4y2Ba向上导航至父GydF4y2Ba按键GydF4y2Ba。GydF4y2Ba

集模型参数GydF4y2Ba

一种用于模型参数值源可以是:GydF4y2Ba

  • 书面规格如标准属性表或制造商的数据表GydF4y2Ba

  • 在现有系统上直接测量GydF4y2Ba

  • 使用系统输入估计/输出GydF4y2Ba

该模型使用这些参数:GydF4y2Ba

参数GydF4y2Ba 符号GydF4y2Ba 值GydF4y2Ba
块GydF4y2Ba 米GydF4y2Ba 2.5公斤GydF4y2Ba
滚动阻力GydF4y2Ba k_dragGydF4y2Ba 为30nsGydF4y2Ba2GydF4y2Ba/米GydF4y2Ba
机器人半径GydF4y2Ba [RGydF4y2Ba 0.15米GydF4y2Ba

万博1manbetxSimulink中使用MATLABGydF4y2Ba®GydF4y2Ba工作区评估参数。设置在MATLAB命令窗口中的这些参数:GydF4y2Ba

米= 2.5;k_drag = 30;R = 0.15;GydF4y2Ba

验证组件使用模拟GydF4y2Ba

通过提供输入端和观察输出验证部件。即使是这样一个简单的验证可以指出直接的方式来改善模型。这个例子验证了这些行为:GydF4y2Ba

  • 当力被连续地施加到车轮,速度增加,直到其达到稳态速度。GydF4y2Ba

  • 当车轮转动方向相反,以恒定速率旋转角度增大。GydF4y2Ba

验证轮组件GydF4y2Ba

创建并运行对车轮组件的测试模式:GydF4y2Ba

  1. 创建一个新的模式。在里面GydF4y2Ba模拟GydF4y2Ba选项卡,单击GydF4y2Ba新GydF4y2Ba。右轮块复制到新的模式。GydF4y2Ba

  2. 创建一个测试输入。添加GydF4y2Ba步GydF4y2Ba从资源库中块,并将其连接到右轮块的输入。离开步骤时间参数集GydF4y2Ba1GydF4y2Ba。GydF4y2Ba

  3. 观众添加到输出。右键单击右轮块的输出端口并选择GydF4y2Ba创建和连接查看器>的Simulink>范围万博1manbetxGydF4y2Ba。GydF4y2Ba

  4. 运行模拟。在里面GydF4y2Ba模拟GydF4y2Ba选项卡,单击GydF4y2Ba跑GydF4y2Ba。GydF4y2Ba

仿真结果表现出普遍预期的行为。没有运动,直到力在步骤时施加。当施加力时,速度开始增加,然后在恒定的沉降时所施加的力和曳力达到平衡。除了验证,该模拟还给出了车轮对于给定的力的最大速度信息。GydF4y2Ba

验证旋转组件GydF4y2Ba

创建并运行旋转模型测试模型:GydF4y2Ba

  1. 创建一个新的模式。请点击GydF4y2Ba和旋转块复制到新的模式。GydF4y2Ba

  2. 创建新模型测试输入。添加GydF4y2Ba步GydF4y2Ba从资源库块。离开步骤时间参数集GydF4y2Ba1GydF4y2Ba。它连接到旋转块的输入。此输入表示当车轮旋转方向相反的车轮速度的差。GydF4y2Ba

  3. 观众添加到输出。右键单击该转块的输出端口,并选择GydF4y2Ba创建和连接查看器>的Simulink>范围万博1manbetxGydF4y2Ba。GydF4y2Ba

  4. 运行模拟。在里面GydF4y2Ba模拟GydF4y2Ba选项卡,单击GydF4y2Ba跑GydF4y2Ba。GydF4y2Ba

这个仿真结果表明,角度稳定地增加时,轮与在相反方向上以相同的速度转动。你可以做一些模式的改进,使其更容易解释的角度输出,例如:GydF4y2Ba

  • 您可以将输出转换成弧度度。添加GydF4y2Ba获得GydF4y2Ba用的增益方框GydF4y2Ba180 / PIGydF4y2Ba。GydF4y2Ba

  • 可以显示在360度周期输出度。添加GydF4y2Ba数学函数GydF4y2Ba与功能块GydF4y2BaMODGydF4y2Ba。GydF4y2Ba

MATLAB三角函数需要输入弧度。GydF4y2Ba

验证模型GydF4y2Ba

之后您验证各个组件,您可以在完整的模型进行了类似的验证。这个例子证实了以下行为:GydF4y2Ba

  • 当相同的力在相同的方向,在一行中的机器人移动施加到两个车轮。GydF4y2Ba

  • 当相同的力在相反方向上,以代替旋转机器人施加到两个车轮。GydF4y2Ba

  1. 在里面GydF4y2Basystem_layoutGydF4y2Ba模型,双击输入子系统,显示空子系统。GydF4y2Ba

  2. 通过将创建一个测试输入GydF4y2Ba步GydF4y2Ba块。离开步骤时间参数集GydF4y2Ba1GydF4y2Ba。其连接到GydF4y2Ba外港GydF4y2Ba块。GydF4y2Ba

  3. 在模型的顶层,两个输出信号连接到相同的范围观看者:GydF4y2Ba

  4. 运行模型。GydF4y2Ba

    在该图中,黄线为X方向和蓝线为Y方向。由于角度是零,并且不改变,则车辆移动仅在X方向上,如所预期。GydF4y2Ba

  5. 双击输入子系统,并添加GydF4y2Ba获得GydF4y2Ba与参数GydF4y2Ba-1GydF4y2Ba源极和所述第二输出端之间。这对于反转左车轮的方向。GydF4y2Ba

  6. 一个范围添加到角度输出。GydF4y2Ba

  7. 运行模型。GydF4y2Ba

    第一视图显示有在X-Y平面的运动。第二视图显示有稳定旋转。GydF4y2Ba

您可以使用这款最终型号通过改变输入回答关于模型的许多问题。一些例子是:GydF4y2Ba

  • 当初始角度不为零,会发生什么?GydF4y2Ba

  • 多久采取运动到停止时用力下降到零?GydF4y2Ba

  • 当机器人较重,会发生什么?GydF4y2Ba

  • 当在平滑的表面机器人移动会发生什么情况,即,当阻力系数是低?GydF4y2Ba

相关话题GydF4y2Ba