模型和验证系统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
使用这个系统方程建立一个仿真软件模型。金宝appgydF4y2Ba
在模型编辑器中添加和连接模型块。金宝app块代表系数和变量的方程。gydF4y2Ba
为每个组件分别建立模型。最有效的方法是建立一个系统模型首先考虑独立组件。gydF4y2Ba
通过建立简单的模型开始使用系统的近似。确定假设会影响模型的准确性。迭代添加细节,直到满足建模的复杂性和准确性的要求。gydF4y2Ba
模型的物理组件gydF4y2Ba
描述组件之间的关系,例如,传输数据,能量,和力量。使用系统方程构建系统的图形化模型在仿真软件。金宝appgydF4y2Ba
一些问题问你开始模型组件之前:gydF4y2Ba
每个组件的常量是什么?不会改变,除非你改变他们的价值观是什么?gydF4y2Ba
为每个组件的变量是什么?值随时间变化什么?gydF4y2Ba
一个组件有多少状态变量?gydF4y2Ba
为每个组件使用科学原理推导出方程。许多系统方程分为三类:gydF4y2Ba
连续系统,微分方程描述变量的变化率方程定义的所有值的时间。例如,一个一阶微分方程给出了一辆汽车的速度:gydF4y2Ba
离散系统的差分方程描述变量的变化率,但只在特定时间定义的方程。例如,一个离散的比例微分控制器的控制信号:gydF4y2Ba
没有衍生品代数方程方程。例如,一个代数方程给出了并联电路中总电流有两个组件:gydF4y2Ba
轮子和线性运动。gydF4y2Ba有两种力量作用于轮:gydF4y2Ba
力马达的应用——力量gydF4y2BaFgydF4y2Ba徒速度变化的方向是一个轮子系统的输入。gydF4y2Ba
阻力的力量gydF4y2BaFgydF4y2Ba拖gydF4y2Ba行为对速度变化的方向和速度的函数。gydF4y2Ba
加速度成正比,这些力量的总和:gydF4y2Ba
在哪里gydF4y2BakgydF4y2Ba拖gydF4y2Ba阻力系数和吗gydF4y2Ba米gydF4y2Ba是机器人的质量。每个轮子有质量的一半。gydF4y2Ba
建立车轮模型:gydF4y2Ba
在gydF4y2Ba
system_layoutgydF4y2Ba
模型中,双击gydF4y2Ba右轮gydF4y2Ba子系统显示空的子系统。gydF4y2Ba速度和加速度模型。添加一个gydF4y2Ba积分器gydF4y2Ba块。初始条件设置为离开gydF4y2Ba
0gydF4y2Ba
。块的输入加速度gydF4y2BaVdotgydF4y2Ba和输出速度gydF4y2BaVgydF4y2Ba。gydF4y2Ba模型的阻力。添加一个gydF4y2BaMATLAB函数gydF4y2Ba从用户定义的函数库。的gydF4y2BaMATLAB函数gydF4y2Ba块提供了一个快速的方法来实现模型的数学表达式。编辑功能,双击打开MATLABgydF4y2Ba®gydF4y2Ba函数编辑器。gydF4y2Ba
在函数编辑器,输入:gydF4y2Ba
函数gydF4y2BaFdrag = get_fdrag V (V, k_drag) Fdrag = k_drag * * abs (V);gydF4y2Ba
为MATLAB功能块定义参数。在gydF4y2BaMATLAB函数gydF4y2Ba块编辑器,单击gydF4y2Ba编辑数据gydF4y2Ba按钮。点击gydF4y2Bak_draggydF4y2Ba,设置gydF4y2Ba范围gydF4y2Ba来gydF4y2Ba参数gydF4y2Ba,然后单击gydF4y2Ba应用gydF4y2Ba。gydF4y2Ba
减去运动力的阻力gydF4y2Ba减去gydF4y2Ba块。完成force-acceleration方程gydF4y2Ba获得gydF4y2Ba块与参数gydF4y2Ba
1 / (m / 2)gydF4y2Ba
。gydF4y2Ba改变的方向gydF4y2BaMATLAB函数gydF4y2Ba块,选择块。在将来发布,gydF4y2Ba格式gydF4y2Ba选项卡上,单击gydF4y2Ba翻转左右gydF4y2Ba。连接块。gydF4y2Ba
两个轮子的动力都是相同的。复制正确的轮子系统建模,粘贴在左边轮子系统。gydF4y2Ba
视图模型的顶层。单击gydF4y2Ba导航到父gydF4y2Ba按钮gydF4y2Ba。gydF4y2Ba
旋转运动。gydF4y2Ba当两个轮子转动方向相反,他们在一个圆的半径gydF4y2BargydF4y2Ba,导致旋转运动的机器人。当车轮在同一方向,没有旋转。假设车轮速度总是相等的大小,是实用模型旋转运动依赖于两轮速度的差异gydF4y2BaVgydF4y2BaRgydF4y2Ba和gydF4y2BaVgydF4y2BalgydF4y2Ba:gydF4y2Ba
构建旋转动力学模型:gydF4y2Ba
顶级的gydF4y2Ba
system_layoutgydF4y2Ba
模型中,双击旋转子系统显示空的子系统。删除之间的连接gydF4y2Ba轮廓尺寸gydF4y2Ba和gydF4y2Ba外港gydF4y2Ba块。gydF4y2Ba模型角速度和角度。添加一个gydF4y2Ba积分器gydF4y2Ba块。初始条件设置为离开gydF4y2Ba
0gydF4y2Ba
。这一块的输出角度gydF4y2BaθgydF4y2Ba和输入角速率gydF4y2Batheta_dotgydF4y2Ba。gydF4y2Ba从切向速度计算角速率。添加一个gydF4y2Ba获得gydF4y2Ba与参数gydF4y2Ba
1 / (2 * r)gydF4y2Ba
。gydF4y2Ba连接块。gydF4y2Ba
视图模型的顶层。单击gydF4y2Ba导航到父gydF4y2Ba按钮gydF4y2Ba。gydF4y2Ba
模型的功能组件gydF4y2Ba
描述一个函数的函数的输入输出。这个描述可以包括代数方程和逻辑结构,你可以使用它来构建一个图形化的模型系统的仿真软件。金宝appgydF4y2Ba
坐标变换。gydF4y2Ba机器人的速度在X和Y坐标,gydF4y2BaVgydF4y2BaXgydF4y2Ba和gydF4y2BaVgydF4y2BaYgydF4y2Ba有关线性速度gydF4y2BaVgydF4y2BaNgydF4y2Ba和角gydF4y2BaθgydF4y2Ba:gydF4y2Ba
建立了坐标变换模型:gydF4y2Ba
顶级的gydF4y2Ba
system_layoutgydF4y2Ba
模型中,双击坐标变换子系统显示空的子系统。gydF4y2Ba三角函数模型。添加一个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 |
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
创建一个新的模型。在gydF4y2Ba模拟gydF4y2Ba选项卡上,单击gydF4y2Ba新gydF4y2Ba。合适的砂轮块复制到新模型。gydF4y2Ba
创建一个测试输入。添加一个gydF4y2Ba一步gydF4y2Ba块从源库并将其连接到输入正确的轮坯。离开一步时间参数设置gydF4y2Ba
1gydF4y2Ba
。gydF4y2Ba查看器添加到输出。右键单击右轮坯并选择的输出端口gydF4y2Ba创建和连接查看器>模型>范围金宝appgydF4y2Ba。gydF4y2Ba
运行仿真。在gydF4y2Ba模拟gydF4y2Ba选项卡上,单击gydF4y2Ba运行gydF4y2Ba。gydF4y2Ba
仿真结果展示了一般的预期行为。没有运动,直到力作用于步骤时间。力时,速度开始增加然后落定在一个常数时应用力和阻力达到一个平衡。除了验证,仿真也给信息对车轮的最大速度给定的力量。gydF4y2Ba
验证旋转组件gydF4y2Ba
创建并运行一个测试模型旋转模型:gydF4y2Ba
创建一个新的模型。点击gydF4y2Ba和旋转块复制到新模型。gydF4y2Ba
创建一个测试输入的新模型。添加一个gydF4y2Ba一步gydF4y2Ba块从源库。离开一步时间参数设置gydF4y2Ba
1gydF4y2Ba
。连接旋转块的输入。这个输入代表车轮速度的差异当车轮旋转方向相反。gydF4y2Ba查看器添加到输出。右键单击旋转块的输出端口并选择gydF4y2Ba创建和连接查看器>模型>范围金宝appgydF4y2Ba。gydF4y2Ba
运行仿真。在gydF4y2Ba模拟gydF4y2Ba选项卡上,单击gydF4y2Ba运行gydF4y2Ba。gydF4y2Ba
这个模拟表明,角稳步增加,当车轮在相反的方向将以相同的速度。你可以做一些模型的改进,让它更容易解释角度输出,例如:gydF4y2Ba
您可以转换输出在弧度度。添加一个gydF4y2Ba获得gydF4y2Ba块的增益gydF4y2Ba
180 /πgydF4y2Ba
。gydF4y2Ba你可以显示度输出周期的360度。添加一个gydF4y2Ba数学函数gydF4y2Ba块的功能gydF4y2Ba
国防部gydF4y2Ba
。gydF4y2Ba
MATLAB三角函数把输入的弧度。gydF4y2Ba
验证模型gydF4y2Ba
验证单个组件后,您可以执行一个类似的验证的完整模型。这个例子验证以下行为:gydF4y2Ba
当相同的力量应用于车轮在同一方向,机器人在一条线。gydF4y2Ba
当相同的力是应用到两个轮子在相反的方向,机器人旋转到位。gydF4y2Ba
在gydF4y2Ba
system_layoutgydF4y2Ba
模型中,双击输入子系统显示空的子系统。gydF4y2Ba创建一个测试输入通过添加gydF4y2Ba一步gydF4y2Ba块。离开一步时间参数设置gydF4y2Ba
1gydF4y2Ba
。连接两个gydF4y2Ba外港gydF4y2Ba块。gydF4y2Ba在顶层的模型中,两个输出信号连接到相同的观众范围:gydF4y2Ba
运行模型。gydF4y2Ba
在这个图中,黄线是X方向和蓝线是Y方向。由于角是零,没有改变,车辆只在X方向上移动,如预期。gydF4y2Ba
双击输入子系统,并添加一个gydF4y2Ba获得gydF4y2Ba与参数gydF4y2Ba
1gydF4y2Ba
源和第二之间的输出。这对左车轮逆转方向。gydF4y2Ba添加一个角输出范围。gydF4y2Ba
运行模型。gydF4y2Ba
第一个视图显示没有在x - y平面运动。第二种观点表明,有稳定的旋转。gydF4y2Ba
您可以使用此最终模型回答很多关于模型通过改变输入的问题。一些例子:gydF4y2Ba
当初始角不为零?gydF4y2Ba
需要多长时间的运动停止时力下降为零?gydF4y2Ba
当机器人重吗?gydF4y2Ba
当机器人在平滑的表面上移动,也就是说,当阻力系数较低?gydF4y2Ba