主要内容gydF4y2Ba

模型和验证系统gydF4y2Ba

你模型中的每个组件体系结构来表示该组件的物理或功能行为。你验证基本组件的行为通过模拟使用测试数据。gydF4y2Ba

打开系统布局gydF4y2Ba

整个系统的全局视图布局建模时各个组件是很有用的。首先加载布局模型。在MATLAB®命令行,输入:gydF4y2Ba

open_system (gydF4y2Ba“system_layout.slx”gydF4y2Ba)gydF4y2Ba

模型组件gydF4y2Ba

一个金宝app仿真软件gydF4y2Ba®gydF4y2Ba组件的模型是基于几个起点:gydF4y2Ba

  • 一个明确的数学关系一个物理组件的输出和输入——你可以计算从输入组件的输出,直接或间接地,通过代数微分方程的计算和集成。例如,计算水位在一辆坦克的流入率是一个明确的关系。每个模型块金宝app执行基于计算的定义从输入到输出。gydF4y2Ba

  • 隐式模型变量之间的数学关系的物理组件,因为变量是相互依存的,分配一个输入和一个输出到组件却并非易事。例如,电压的gydF4y2Ba+gydF4y2Ba电动机的连接电路和电压gydF4y2Ba- - - - - -gydF4y2Ba有一个隐式关系结束。这种关系模型在仿真软件中,可以使用物理建模工具如Simscape金宝app™或模型这些变量作为一个更大的组件的一部分,允许输入/输出定义。有时,仔细检查建模的目标和组件定义有助于定义输入/输出关系。gydF4y2Ba

  • 从一个实际的系统——你有测量获得的数据输入/输出的数据实际组件,但一个完全定义的数学关系不存在。许多设备都未建模组件符合这一描述。例如,电视的热耗散。您可以使用系统辨识工具箱™定义为这样的一个系统的输入/输出关系。gydF4y2Ba

  • 一个显式的函数定义——你定义一个功能组件的输出从输入到代数和逻辑计算。例如,恒温器的转换逻辑。你可以最功能关系模型作为仿真软件模块和子系统。金宝appgydF4y2Ba

本教程模型物理和功能组件与明确的输入/输出关系。在本教程中,您将:gydF4y2Ba

  1. 使用这个系统方程建立一个仿真软件模型。金宝appgydF4y2Ba

  2. 在模型编辑器中添加和连接模型块。金宝app块代表系数和变量的方程。gydF4y2Ba

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

  4. 通过建立简单的模型开始使用系统的近似。确定假设会影响模型的准确性。迭代添加细节,直到满足建模的复杂性和准确性的要求。gydF4y2Ba

模型的物理组件gydF4y2Ba

描述组件之间的关系,例如,传输数据,能量,和力量。使用系统方程构建系统的图形化模型在仿真软件。金宝appgydF4y2Ba

一些问题问你开始模型组件之前:gydF4y2Ba

  • 每个组件的常量是什么?不会改变,除非你改变他们的价值观是什么?gydF4y2Ba

  • 为每个组件的变量是什么?值随时间变化什么?gydF4y2Ba

  • 一个组件有多少状态变量?gydF4y2Ba

为每个组件使用科学原理推导出方程。许多系统方程分为三类:gydF4y2Ba

  • 连续系统,微分方程描述变量的变化率方程定义的所有值的时间。例如,一个一阶微分方程给出了一辆汽车的速度:gydF4y2Ba

    dgydF4y2Ba vgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba dgydF4y2Ba tgydF4y2Ba =gydF4y2Ba −gydF4y2Ba bgydF4y2Ba 米gydF4y2Ba vgydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba +gydF4y2Ba ugydF4y2Ba (gydF4y2Ba tgydF4y2Ba )gydF4y2Ba

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

    pgydF4y2Ba dgydF4y2Ba (gydF4y2Ba ngydF4y2Ba ]gydF4y2Ba =gydF4y2Ba (gydF4y2Ba egydF4y2Ba (gydF4y2Ba ngydF4y2Ba ]gydF4y2Ba −gydF4y2Ba egydF4y2Ba (gydF4y2Ba ngydF4y2Ba −gydF4y2Ba 1gydF4y2Ba ]gydF4y2Ba )gydF4y2Ba KgydF4y2Ba dgydF4y2Ba +gydF4y2Ba egydF4y2Ba (gydF4y2Ba ngydF4y2Ba ]gydF4y2Ba KgydF4y2Ba pgydF4y2Ba

  • 没有衍生品代数方程方程。例如,一个代数方程给出了并联电路中总电流有两个组件:gydF4y2Ba

    我gydF4y2Ba tgydF4y2Ba =gydF4y2Ba 我gydF4y2Ba 一个gydF4y2Ba +gydF4y2Ba 我gydF4y2Ba bgydF4y2Ba

轮子和线性运动。gydF4y2Ba有两种力量作用于轮:gydF4y2Ba

  • 力马达的应用——力量gydF4y2BaFgydF4y2Ba徒速度变化的方向是一个轮子系统的输入。gydF4y2Ba

  • 阻力的力量gydF4y2BaFgydF4y2Ba拖gydF4y2Ba行为对速度变化的方向和速度的函数。gydF4y2Ba

    FgydF4y2Ba dgydF4y2Ba rgydF4y2Ba 一个gydF4y2Ba ggydF4y2Ba =gydF4y2Ba kgydF4y2Ba 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 kgydF4y2Ba dgydF4y2Ba rgydF4y2Ba 一个gydF4y2Ba ggydF4y2Ba VgydF4y2Ba |gydF4y2Ba VgydF4y2Ba |gydF4y2Ba VgydF4y2Ba ˙gydF4y2Ba =gydF4y2Ba FgydF4y2Ba −gydF4y2Ba kgydF4y2Ba dgydF4y2Ba rgydF4y2Ba 一个gydF4y2Ba ggydF4y2Ba VgydF4y2Ba |gydF4y2Ba VgydF4y2Ba |gydF4y2Ba (gydF4y2Ba 米gydF4y2Ba /gydF4y2Ba 2gydF4y2Ba )gydF4y2Ba

在哪里gydF4y2BakgydF4y2Ba拖gydF4y2Ba阻力系数和吗gydF4y2Ba米gydF4y2Ba是机器人的质量。每个轮子有质量的一半。gydF4y2Ba

建立车轮模型:gydF4y2Ba

  1. 在gydF4y2Basystem_layoutgydF4y2Ba模型中,双击gydF4y2Ba右轮gydF4y2Ba子系统显示空的子系统。gydF4y2Ba

  2. 速度和加速度模型。添加一个gydF4y2Ba积分器gydF4y2Ba块。初始条件设置为离开gydF4y2Ba0gydF4y2Ba。块的输入加速度gydF4y2BaVdotgydF4y2Ba和输出速度gydF4y2BaVgydF4y2Ba。gydF4y2Ba

    一个独立尺寸块命名力是在左边。右边的尺寸线标记Vdot块是一个信号。左端信号的线是无关的。右端信号的线连接到一个集成块的尺寸。外港的积分器,一个信号标记V连接到外港的轮廓尺寸块命名的速度。gydF4y2Ba

  3. 模型的阻力。添加一个gydF4y2BaMATLAB函数gydF4y2Ba从用户定义的函数库。的gydF4y2BaMATLAB函数gydF4y2Ba块提供了一个快速的方法来实现模型的数学表达式。编辑功能,双击打开MATLABgydF4y2Ba®gydF4y2Ba函数编辑器。gydF4y2Ba

  4. 在函数编辑器,输入:gydF4y2Ba

    函数gydF4y2BaFdrag = get_fdrag V (V, k_drag) Fdrag = k_drag * * abs (V);gydF4y2Ba

    MATLAB函数编辑器显示了Fdrag函数。gydF4y2Ba

  5. 为MATLAB功能块定义参数。在gydF4y2BaMATLAB函数gydF4y2Ba块编辑器,单击gydF4y2Ba编辑数据gydF4y2Ba按钮。点击gydF4y2Bak_draggydF4y2Ba,设置gydF4y2Ba范围gydF4y2Ba来gydF4y2Ba参数gydF4y2Ba,然后单击gydF4y2Ba应用gydF4y2Ba。gydF4y2Ba

  6. 减去运动力的阻力gydF4y2Ba减去gydF4y2Ba块。完成force-acceleration方程gydF4y2Ba获得gydF4y2Ba块与参数gydF4y2Ba1 / (m / 2)gydF4y2Ba。gydF4y2Ba

  7. 改变的方向gydF4y2BaMATLAB函数gydF4y2Ba块,选择块。在将来发布,gydF4y2Ba格式gydF4y2Ba选项卡上,单击gydF4y2Ba翻转左右gydF4y2Ba。连接块。gydF4y2Ba

    车轮模型尺寸块名叫迫使连接和块。块和连接到一块增益值1 / (m / 2)。获得块连接到一个集成块。积分器块连接到一个输出港块命名速度和一个名叫Fdrag MATLAB功能块。MATLAB功能块连接到同一块尺寸的块。块之和减去Fdrag力信号出来的尺寸。gydF4y2Ba

  8. 两个轮子的动力都是相同的。复制正确的轮子系统建模,粘贴在左边轮子系统。gydF4y2Ba

  9. 视图模型的顶层。单击gydF4y2Ba导航到父gydF4y2Ba按钮gydF4y2Ba。gydF4y2Ba

旋转运动。gydF4y2Ba当两个轮子转动方向相反,他们在一个圆的半径gydF4y2BargydF4y2Ba,导致旋转运动的机器人。当车轮在同一方向,没有旋转。假设车轮速度总是相等的大小,是实用模型旋转运动依赖于两轮速度的差异gydF4y2BaVgydF4y2BaRgydF4y2Ba和gydF4y2BaVgydF4y2BalgydF4y2Ba:gydF4y2Ba

θgydF4y2Ba ˙gydF4y2Ba =gydF4y2Ba VgydF4y2Ba RgydF4y2Ba −gydF4y2Ba VgydF4y2Ba lgydF4y2Ba 2gydF4y2Ba rgydF4y2Ba

构建旋转动力学模型:gydF4y2Ba

  1. 顶级的gydF4y2Basystem_layoutgydF4y2Ba模型中,双击旋转子系统显示空的子系统。删除之间的连接gydF4y2Ba轮廓尺寸gydF4y2Ba和gydF4y2Ba外港gydF4y2Ba块。gydF4y2Ba

  2. 模型角速度和角度。添加一个gydF4y2Ba积分器gydF4y2Ba块。初始条件设置为离开gydF4y2Ba0gydF4y2Ba。这一块的输出角度gydF4y2BaθgydF4y2Ba和输入角速率gydF4y2Batheta_dotgydF4y2Ba。gydF4y2Ba

  3. 从切向速度计算角速率。添加一个gydF4y2Ba获得gydF4y2Ba与参数gydF4y2Ba1 / (2 * r)gydF4y2Ba。gydF4y2Ba

  4. 连接块。gydF4y2Ba

    一个名叫速度差的尺寸块连接到一块获得值1 / (2 * r),连接到一个集成块,连接到一个名为角的外港块gydF4y2Ba

  5. 视图模型的顶层。单击gydF4y2Ba导航到父gydF4y2Ba按钮gydF4y2Ba。gydF4y2Ba

模型的功能组件gydF4y2Ba

描述一个函数的函数的输入输出。这个描述可以包括代数方程和逻辑结构,你可以使用它来构建一个图形化的模型系统的仿真软件。金宝appgydF4y2Ba

坐标变换。gydF4y2Ba机器人的速度在X和Y坐标,gydF4y2BaVgydF4y2BaXgydF4y2Ba和gydF4y2BaVgydF4y2BaYgydF4y2Ba有关线性速度gydF4y2BaVgydF4y2BaNgydF4y2Ba和角gydF4y2BaθgydF4y2Ba:gydF4y2Ba

VgydF4y2Ba XgydF4y2Ba =gydF4y2Ba VgydF4y2Ba NgydF4y2Ba 因为gydF4y2Ba (gydF4y2Ba θgydF4y2Ba )gydF4y2Ba VgydF4y2Ba YgydF4y2Ba =gydF4y2Ba VgydF4y2Ba NgydF4y2Ba 罪gydF4y2Ba (gydF4y2Ba θgydF4y2Ba )gydF4y2Ba

建立了坐标变换模型:gydF4y2Ba

  1. 顶级的gydF4y2Basystem_layoutgydF4y2Ba模型中,双击坐标变换子系统显示空的子系统。gydF4y2Ba

  2. 三角函数模型。添加一个gydF4y2Ba要求gydF4y2Ba块的数学操作库。gydF4y2Ba

  3. 乘法模型。添加两个gydF4y2Ba产品gydF4y2Ba在数学操作库。gydF4y2Ba

  4. 连接块。gydF4y2Ba

    坐标变换模型,以线速度和角度为输入和输出速度在X和Y方向gydF4y2Ba

  5. 视图模型的顶层。单击gydF4y2Ba导航到父gydF4y2Ba按钮gydF4y2Ba。gydF4y2Ba

设置模型参数gydF4y2Ba

源模型参数值可以:gydF4y2Ba

  • 写规范等标准属性表或制造商数据表gydF4y2Ba

  • 现有系统上直接测量gydF4y2Ba

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

这个模型使用这些参数:gydF4y2Ba

参数gydF4y2Ba 象征gydF4y2Ba 价值gydF4y2Ba
质量gydF4y2Ba 米gydF4y2Ba 2.5公斤gydF4y2Ba
滚动阻力gydF4y2Ba k_draggydF4y2Ba 30 NsgydF4y2Ba2gydF4y2Ba/ mgydF4y2Ba
机器人半径gydF4y2Ba rgydF4y2Ba 0.15米gydF4y2Ba

金宝app仿真软件使用MATLAB的工作区来评估参数。MATLAB命令窗口中设置这些参数:gydF4y2Ba

m = 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创建和连接查看器>模型>范围金宝appgydF4y2Ba。gydF4y2Ba

    方波块连接到一个子系统块的尺寸正确命名。子系统的轮廓尺寸标签是力量,和外港标签是速度。外港连接到一个查看器。gydF4y2Ba

  4. 运行仿真。在gydF4y2Ba模拟gydF4y2Ba选项卡上,单击gydF4y2Ba运行gydF4y2Ba。gydF4y2Ba

    范围对话框块输出信号连接到查看器gydF4y2Ba

仿真结果展示了一般的预期行为。没有运动,直到力作用于步骤时间。力时,速度开始增加然后落定在一个常数时应用力和阻力达到一个平衡。除了验证,仿真也给信息对车轮的最大速度给定的力量。gydF4y2Ba

验证旋转组件gydF4y2Ba

创建并运行一个测试模型旋转模型:gydF4y2Ba

  1. 创建一个新的模型。点击gydF4y2Ba新按钮gydF4y2Ba和旋转块复制到新模型。gydF4y2Ba

  2. 创建一个测试输入的新模型。添加一个gydF4y2Ba一步gydF4y2Ba块从源库。离开一步时间参数设置gydF4y2Ba1gydF4y2Ba。连接旋转块的输入。这个输入代表车轮速度的差异当车轮旋转方向相反。gydF4y2Ba

  3. 查看器添加到输出。右键单击旋转块的输出端口并选择gydF4y2Ba创建和连接查看器>模型>范围金宝appgydF4y2Ba。gydF4y2Ba

    一个方波块连接到一个子系统块的尺寸旋转。子系统的尺寸标记速度差异,和外港标记角。外港连接到一个查看器。gydF4y2Ba

  4. 运行仿真。在gydF4y2Ba模拟gydF4y2Ba选项卡上,单击gydF4y2Ba运行gydF4y2Ba。gydF4y2Ba

    范围对话框块输出信号连接到查看器gydF4y2Ba

这个模拟表明,角稳步增加,当车轮在相反的方向将以相同的速度。你可以做一些模型的改进,让它更容易解释角度输出,例如:gydF4y2Ba

  • 您可以转换输出在弧度度。添加一个gydF4y2Ba获得gydF4y2Ba块的增益gydF4y2Ba180 /πgydF4y2Ba。gydF4y2Ba

  • 你可以显示度输出周期的360度。添加一个gydF4y2Ba数学函数gydF4y2Ba块的功能gydF4y2Ba国防部gydF4y2Ba。gydF4y2Ba

MATLAB三角函数把输入的弧度。gydF4y2Ba

验证模型gydF4y2Ba

验证单个组件后,您可以执行一个类似的验证的完整模型。这个例子验证以下行为:gydF4y2Ba

  • 当相同的力量应用于车轮在同一方向,机器人在一条线。gydF4y2Ba

  • 当相同的力是应用到两个轮子在相反的方向,机器人旋转到位。gydF4y2Ba

  1. 在gydF4y2Basystem_layoutgydF4y2Ba模型中,双击输入子系统显示空的子系统。gydF4y2Ba

  2. 创建一个测试输入通过添加gydF4y2Ba一步gydF4y2Ba块。离开一步时间参数设置gydF4y2Ba1gydF4y2Ba。连接两个gydF4y2Ba外港gydF4y2Ba块。gydF4y2Ba

    方波块连接到两个输出港,一个名叫左力和一个名叫力gydF4y2Ba

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

    坐标变换子系统有两个输出港命名为X和Y速度速度。每个外港连接到一个集成块,每个积分器的输出港块连接到一个查看器。gydF4y2Ba

  4. 运行模型。gydF4y2Ba

    范围对话框情节两个输出信号连接到观众在同一图,黄色和蓝色gydF4y2Ba

    在这个图中,黄线是X方向和蓝线是Y方向。由于角是零,没有改变,车辆只在X方向上移动,如预期。gydF4y2Ba

  5. 双击输入子系统,并添加一个gydF4y2Ba获得gydF4y2Ba与参数gydF4y2Ba1gydF4y2Ba源和第二之间的输出。这对左车轮逆转方向。gydF4y2Ba

    一个方波块连接到一个模型的两个分支。一个分支连接到一个增益值1块,它连接到一个输出港块名叫左力。另一个分支连接到外港块命名正确的力量。gydF4y2Ba

  6. 添加一个角输出范围。gydF4y2Ba

  7. 运行模型。gydF4y2Ba

    范围对话框情节角度输出在Y方向上gydF4y2Ba

    情节的角度范围对话框在X方向上输出gydF4y2Ba

    第一个视图显示没有在x - y平面运动。第二种观点表明,有稳定的旋转。gydF4y2Ba

您可以使用此最终模型回答很多关于模型通过改变输入的问题。一些例子:gydF4y2Ba

  • 当初始角不为零?gydF4y2Ba

  • 需要多长时间的运动停止时力下降为零?gydF4y2Ba

  • 当机器人重吗?gydF4y2Ba

  • 当机器人在平滑的表面上移动,也就是说,当阻力系数较低?gydF4y2Ba

相关的话题gydF4y2Ba