你的系统结构内的每个部件模型来表示该组分的物理或功能特性。通过使用测试数据模拟验证它们的基本组成部分的行为。GydF4y2Ba
整个系统的布局的一个大画面视图建模单个组分时是很有用的。通过加载模型布局开始。在MATLAB命令行中输入:GydF4y2Ba
open_system(GydF4y2Ba'system_layout.slx'GydF4y2Ba)GydF4y2Ba
Si万博1manbetxmulink的GydF4y2Ba®GydF4y2Ba组件的模型是基于几个出发点:GydF4y2Ba
输出和一个物理部件的输入端之间的明确的数学关系 - 可以从输入计算部件的输出,直接或间接,通过代数运算和微分方程的积分。例如在给定的流入速率的水箱中的水位的计算是显式的关系。每个Sim万博1manbetxulink模块基于从它的输入到其输出的计算的定义。GydF4y2Ba
物理组件的模型变量之间的隐式的数学关系 - 由于变量是相互依赖的,分配一个输入和一个输出到部件并不简单。例如,电压在GydF4y2Ba+GydF4y2Ba
连接成电路的电动机,并在所述电压的结束GydF4y2Ba-GydF4y2Ba
端部处具有一个隐含的关系。为了模拟在Simulink这样的关系,您可以使用物理建模工具,如万博1manbetx的Simscape™或这些变量作为一个更大的组件,允许输入/输出定义的零件模型。有时,模拟目标和组件的定义更仔细的检查有助于定义输入/输出关系。GydF4y2Ba
从实际的系统中的数据获得的 - 你已经从实际测得的组件的输入/输出数据,但完全定义的数学关系不存在。许多设备都符合该描述的非建模组件。例如,该热消散由电视。您可以使用系统辨识工具箱™来定义这样一个系统的输入/输出关系。GydF4y2Ba
一个明确的功能性定义 - 您通过代数和逻辑运算限定从输入的功能部件的输出。例如,一个恒温器的切换逻辑。您可以建模为Simulink模块和子系统,功能最全的关系。万博1manbetxGydF4y2Ba
本教程物理模型,并用明确的输入/输出关系的功能组件。在本教程中,你会:GydF4y2Ba
使用系统方程来创建一个Simulink模型。万博1manbetxGydF4y2Ba
添加并在Simulink编辑器连万博1manbetx接Simulink模块。块表示从公式中的系数和变量。GydF4y2Ba
分别建立每个组件的模型。建立一个系统的模型最有效的方法是首先考虑的独立组件。GydF4y2Ba
通过建立使用该系统的近似简单的模型开始。确定的假设可能会影响你的模型的准确性。反复添加细节,直至满足复杂建模和精度要求的水平。GydF4y2Ba
描述部件之间的关系,例如,数据,能量和力传递。使用系统方程来构建系统在Simulink的图形模型。万博1manbetxGydF4y2Ba
有些问题要问你开始一个组件模型之前:GydF4y2Ba
什么是每个组件的常量?什么样的价值观不改变,除非你改变呢?GydF4y2Ba
什么是每个组件的变量?什么样的价值观随时间而变化?GydF4y2Ba
有多少状态变量没有一个成分有哪些?GydF4y2Ba
导出用于使用科学原理各成分的公式。许多系统方程可以分为三类:GydF4y2Ba
对于连续系统,微分方程描述变化的与用于时间的所有值定义的等式的变量的速率。例如,一阶差分方程给出了一个汽车的速度:GydF4y2Ba
离散系统,差分方程描述变化为变量的速率,但方程只在特定的时间来定义。例如,从一个离散比例微分控制器的控制信号:GydF4y2Ba
而不衍生物方程是代数方程。例如,代数方程给出在具有两个组件的并联电路的总电流:GydF4y2Ba
车轮和直线运动。GydF4y2Ba有两股力量在起作用轮:GydF4y2Ba
施加的力由电机 - 力GydF4y2BaFGydF4y2Ba作用于速度变化的方向和为输入至车轮子系统。GydF4y2Ba
阻力 - 力GydF4y2BaFGydF4y2Ba拖动GydF4y2Ba反作用速度变化的方向和为速度的函数。GydF4y2Ba
加速度成正比,这些力量的总和:GydF4y2Ba
哪里GydF4y2BaķGydF4y2Ba拖动GydF4y2Ba是阻力系数和GydF4y2Ba米GydF4y2Ba是机器人的质量。每个车轮进行这种大规模的一半。GydF4y2Ba
构建轮型号:GydF4y2Ba
在里面GydF4y2Basystem_layoutGydF4y2Ba
模型,双击GydF4y2Ba右轮GydF4y2Ba子系统来显示空子系统。GydF4y2Ba
型号速度和加速度。添加GydF4y2Ba积分GydF4y2Ba块。离开初始条件设置为GydF4y2Ba0GydF4y2Ba
。这个块的输入是加速GydF4y2BaVDOTGydF4y2Ba且输出是速度GydF4y2BaVGydF4y2Ba。GydF4y2Ba
模型中的阻力。添加GydF4y2BaMATLAB功能GydF4y2Ba从用户定义的函数库块。该GydF4y2BaMATLAB功能GydF4y2Ba块提供了实现模型中的数学表达式的快捷方式。编辑的功能,双击块打开MATLAB函数编辑器。GydF4y2Ba
定义为MATLAB功能块的参数。在里面GydF4y2BaMATLAB功能GydF4y2Ba块编辑器,单击GydF4y2Ba编辑数据GydF4y2Ba按钮。请点击GydF4y2Bak_dragGydF4y2Ba,组GydF4y2Ba范围GydF4y2Ba至GydF4y2Ba参数GydF4y2Ba和点击GydF4y2Ba应用GydF4y2Ba。GydF4y2Ba
从电机力减去阻力GydF4y2Ba减去GydF4y2Ba块。完成与力加速方程式GydF4y2Ba获得GydF4y2Ba与参数块GydF4y2Ba1 /(M / 2)GydF4y2Ba
。GydF4y2Ba
要反转的方向GydF4y2BaMATLAB功能GydF4y2Ba块,右键单击块,然后选择GydF4y2Ba旋转与翻转>翻转块GydF4y2Ba。连接块。GydF4y2Ba
两个轮子的动力是相同的。让刚建模右轮子系统的复制和粘贴左轮子系统。GydF4y2Ba
查看该模型的顶层。点击GydF4y2Ba向上导航至父GydF4y2Ba按键GydF4y2Ba。GydF4y2Ba
旋转运动。GydF4y2Ba当两个轮子转动方向相反,他们在半径的圆运动GydF4y2Ba[RGydF4y2Ba,使机器人的旋转运动。当车轮转动的方向一致,没有旋转。假设车轮速度总是在幅度上相等,则实际的旋转运动建模为依赖于所述两个车轮速度的差GydF4y2BaVGydF4y2Ba[RGydF4y2Ba和GydF4y2BaVGydF4y2Ba大号GydF4y2Ba:GydF4y2Ba
构建旋转动力学模型:GydF4y2Ba
在的顶级GydF4y2Basystem_layoutGydF4y2Ba
模型,双击旋转子系统,显示空子系统。删除之间的连接GydF4y2Ba运行轨迹GydF4y2Ba和GydF4y2Ba外港GydF4y2Ba块。GydF4y2Ba
建模角速度和角。添加GydF4y2Ba积分GydF4y2Ba块。离开初始条件设置为GydF4y2Ba0GydF4y2Ba
。该块的输出是角GydF4y2BaTHETAGydF4y2Ba且输入是角速度GydF4y2Batheta_dotGydF4y2Ba。GydF4y2Ba
从切向速度计算角速度。添加GydF4y2Ba获得GydF4y2Ba与参数GydF4y2Ba1 /(2 * r)的GydF4y2Ba
。GydF4y2Ba
连接块。GydF4y2Ba
查看该模型的顶层。点击GydF4y2Ba向上导航至父GydF4y2Ba按键GydF4y2Ba。GydF4y2Ba
从函数到其输出的输入描述的功能。该描述可以包括代数方程和逻辑结构,其可用于构建系统在Simulink的图形模型。万博1manbetxGydF4y2Ba
坐标变换。GydF4y2Ba机器人的在X和Y坐标的速度,GydF4y2BaVGydF4y2BaXGydF4y2Ba和GydF4y2BaVGydF4y2BaÿGydF4y2Ba,是关系到线性速度GydF4y2BaVGydF4y2BañGydF4y2Ba和角度GydF4y2BaTHETAGydF4y2Ba:GydF4y2Ba
建立坐标变换模型:GydF4y2Ba
在的顶级GydF4y2Basystem_layoutGydF4y2Ba
模型,双击坐标转换子系统,显示空子系统。GydF4y2Ba
模拟三角函数。添加GydF4y2Ba正余弦GydF4y2Ba从数学运算库块。GydF4y2Ba
型号乘法。添加两个GydF4y2Ba产品GydF4y2Ba从数学运算库中的块。GydF4y2Ba
连接块。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选项卡,单击GydF4y2Ba新GydF4y2Ba。右轮块复制到新的模式。GydF4y2Ba
创建一个测试输入。添加GydF4y2Ba步GydF4y2Ba从资源库中块,并将其连接到右轮块的输入。离开步骤时间参数集GydF4y2Ba1GydF4y2Ba
。GydF4y2Ba
观众添加到输出。右键单击右轮块的输出端口并选择GydF4y2Ba创建和连接查看器>的Simulink>范围万博1manbetxGydF4y2Ba。GydF4y2Ba
运行模拟。在里面GydF4y2Ba模拟GydF4y2Ba选项卡,单击GydF4y2Ba跑GydF4y2Ba。GydF4y2Ba
仿真结果表现出普遍预期的行为。没有运动,直到力在步骤时施加。当施加力时,速度开始增加,然后在恒定的沉降时所施加的力和曳力达到平衡。除了验证,该模拟还给出了车轮对于给定的力的最大速度信息。GydF4y2Ba
创建并运行旋转模型测试模型:GydF4y2Ba
创建一个新的模式。请点击GydF4y2Ba和旋转块复制到新的模式。GydF4y2Ba
创建新模型测试输入。添加GydF4y2Ba步GydF4y2Ba从资源库块。离开步骤时间参数集GydF4y2Ba1GydF4y2Ba
。它连接到旋转块的输入。此输入表示当车轮旋转方向相反的车轮速度的差。GydF4y2Ba
观众添加到输出。右键单击该转块的输出端口,并选择GydF4y2Ba创建和连接查看器>的Simulink>范围万博1manbetxGydF4y2Ba。GydF4y2Ba
运行模拟。在里面GydF4y2Ba模拟GydF4y2Ba选项卡,单击GydF4y2Ba跑GydF4y2Ba。GydF4y2Ba
这个仿真结果表明,角度稳定地增加时,轮与在相反方向上以相同的速度转动。你可以做一些模式的改进,使其更容易解释的角度输出,例如:GydF4y2Ba
您可以将输出转换成弧度度。添加GydF4y2Ba获得GydF4y2Ba用的增益方框GydF4y2Ba180 / PIGydF4y2Ba
。GydF4y2Ba
可以显示在360度周期输出度。添加GydF4y2Ba数学函数GydF4y2Ba与功能块GydF4y2BaMODGydF4y2Ba
。GydF4y2Ba
MATLAB三角函数需要输入弧度。GydF4y2Ba
之后您验证各个组件,您可以在完整的模型进行了类似的验证。这个例子证实了以下行为:GydF4y2Ba
当相同的力在相同的方向,在一行中的机器人移动施加到两个车轮。GydF4y2Ba
当相同的力在相反方向上,以代替旋转机器人施加到两个车轮。GydF4y2Ba
在里面GydF4y2Basystem_layoutGydF4y2Ba
模型,双击输入子系统,显示空子系统。GydF4y2Ba
通过将创建一个测试输入GydF4y2Ba步GydF4y2Ba块。离开步骤时间参数集GydF4y2Ba1GydF4y2Ba
。其连接到GydF4y2Ba外港GydF4y2Ba块。GydF4y2Ba
在模型的顶层,两个输出信号连接到相同的范围观看者:GydF4y2Ba
运行模型。GydF4y2Ba
在该图中,黄线为X方向和蓝线为Y方向。由于角度是零,并且不改变,则车辆移动仅在X方向上,如所预期。GydF4y2Ba
双击输入子系统,并添加GydF4y2Ba获得GydF4y2Ba与参数GydF4y2Ba-1GydF4y2Ba
源极和所述第二输出端之间。这对于反转左车轮的方向。GydF4y2Ba
一个范围添加到角度输出。GydF4y2Ba
运行模型。GydF4y2Ba
第一视图显示有在X-Y平面的运动。第二视图显示有稳定旋转。GydF4y2Ba
您可以使用这款最终型号通过改变输入回答关于模型的许多问题。一些例子是:GydF4y2Ba
当初始角度不为零,会发生什么?GydF4y2Ba
多久采取运动到停止时用力下降到零?GydF4y2Ba
当机器人较重,会发生什么?GydF4y2Ba
当在平滑的表面机器人移动会发生什么情况,即,当阻力系数是低?GydF4y2Ba