本文共 4202 字,大约阅读时间需要 14 分钟。
物理设置
在本节中,我们将展示如何使用Simscape Multibody的物理建模模块来建立倒立摆模型。Simscape库中的块代表实际的物理组件;因此,可以构建复杂的多体动力学模型,而无需通过物理原理来合成数学方程,就像通过应用牛顿定律来生成在 实现的模型 。
(b)推车的摩擦系数为0.1 N / m / sec 创建世界框架和基本配置
通过在MATLAB命令窗口中键入 smnew 来打开新的Simscape Multibody模型。如下所示,将打开一个新模型,其中已有一些常用模块。PS-Simulink和Simulink-PS块定义了Simulink输入/输出模型和边界模型之间的边界,在Simulink输入/输出模型中,对块进行顺序评估;在Simscape模型中,对方程序进行同时评估。
-
:“还原器配置”块,并确保未替换“ 使用本地替换器”替换 。 -
-
在“ 还原器” 窗格上,确保将“ 类型 ”设置为“可变步长”,并且将“ 转化器 ”设置为“自动”,将“ 停止时间 ”设置为“ 10”
组装底盘和推车
-
将“刚性变换”块的B端口连接到World Frame的W端口 -
-
在“ 旋转 ”组中,将“ 方法 ”设置为“标准轴”,将 轴设置 为“ + Y”,将角度 设置 为“ 90度” -
-
使用快速插入添加块。在图中依次并键入块的名称(使用下面的 粗体 字母)。将出现一个块列表,您可以从列表中选择所需的块。 -
输入块后,将出现提示您输入参数。输入变量名称,如下所示。 -
要旋转块或旋转块,请拖动垂直该块,然后从“ 旋转和倾斜” 菜单中选择一个选项。 -
要在块名称下面显示参数,请参见Simulink文档中的“ ”。
对于脉冲发生器,双击该块,然后将“ 周期 ”设置为“ 10”,将“ 幅度 ”设置为“ 1000”,将“ 脉冲宽度”设置 为“ 0.01”, 将“ 相位 延迟”设置 为“ 1”。 -
-
在“ 内部力学” 组中,将“ 阻尼系数 ”设置为“ 0.1 N /(m / s)” -
在“ 驱动 ”组下,将“ 力 ”设置为“由输入提供” -
-
下一步,需要将Prismatic Joint连接到模型的其余部分。 -
-
-
将脉冲发生器块重命名为“ Disturbance”,将“ Disturbance”的输出连接到图中已存在的Simulink-PS Converter模块 -
将Simulink-PS Converter模块的输出连接到Prismatic Cart的力输入 -
-
双击Simulink-PS Converter模块插入牛顿的 输入信号单位 设置为“ N” -
-
双击一个PS-Simulink块连接“ 输出信号单位 ”设置为“ m”,然后将块连接到Prismatic Cart块的p端口。 -
双击另一个PS-Simulink模块,将 输出信号单位 设置为“ m / s”,然后将其连接到Prismatic Cart模块的v端口 -
-
-
由于我们将滑车建模为点质量,因此只有质量会影响模拟结果。 -
-
将参数 Dimensions 设置为“ [0.2,0.04,0.6]”,以使长度的尺寸指向行进方向。 -
在组 惯性 ,组 类型 为“点质量”和 质量 为“ 0.5公斤” -
在“ 图形 ”组的“ 视觉属性 ”下,将“ 颜色 ”设置为“ [0.8 0.45 0]” -
运行模拟(键入 CTRL-T 或按绿色箭头运行按钮),结果图将显示推车行进的距离及其速度。
摆放在一对手推车连接到摆
-
将新的刚性转换模块的B端口连接到Prismatic Cart的F端口 -
将新的刚性变换模块的F端口连接到新的旋转关节模块的B端口 -
-
组在 旋转 ,设置 方法 为“标准轴”, 轴 以“+ X”,状语从句: 角度 为“90度” -

-
-
将旋转摆的F端口连接到Brick实心块的R端口(R2019b之前的实心块)
-
-
在“ 几何 ”组中,将“ 尺寸 ”设置为“ [0.6 0.03 0.05] m” -
在组 惯性 ,组 类型 为“点质量”和 质量 为“ 0.2公斤” -
在“ 图形 ”组的“ 视觉属性 ”下,将“ 颜色 ”设置为“ [0.25 0.4 0.7]” -
按 OK ,然后将块重命名为“ Pendulum”
-
-
在“ 框架” 组中, 预设 “ 新建框架” 旁边的+,这将打开框架定义界面 -
-
在“ 框架原点” 部分中,选择“ 基于几何特征” 单选按钮 -
-
-
-
-
运行模拟(键入 CTRL-T 或按绿色箭头运行按钮),将生成以下图,您可以看到,摆的增加改变了推车的行进距离和速度。
选择用于控制器和角度转换的输出
-
-
在“ 传感” 下的“ Z旋转 基 元(Rz)” 组中,选择“ 位置 和 速度”记录 。 -
-
双击一个PS-Simulink模块插入“ 输出信号单位 ”设置为“ rad” -
进入PS-Simulink块连接到Revolute Pendulum上的q端口 -
双击另一个PS-Simulink模块,转换 输出信号单位 设置为“ rad / s” -
进入PS-Simulink块连接到Revolute Pendulum上的w端口
我们需要限制测得的角度,可以保持在-pi和pi弧度之间。 在该样本中,我们将pi弧度添加到测量中,找到信号除以2 * pi的余数,然后称为pi弧度。 -
-
-
-
-
-
-
双击“数学功能”块加入“ 功能 ”设置为“ rem” -
-
-
-
-
-
-
-
-
-
在图中上一层并重命名类别“ Wrap Angle”
-
将用于旋转摆的q测量的PS-Simulink输出连接到包角的输入 -
-
将“环绕角度”的qwrap输出连接到新的示波器,变成此信号的名称更改为“ q摆” -
将用于测量旋转摆的w的PS-Simulink输出连接到新的示波器,变成该信号的名称更改为“ w摆”。
运行模拟(键入 CTRL-T 或按绿色箭头运行按钮),将生成以下图。推车的运动与以前相同,但是现在我们可以看到摆锤的运动。还生成了以下所示的关联动画。
为摆锤和手推车创造原型
-
在图中描绘一次(但不要在块上),然后按 CTRL-A 选择所有块 -
按住 Shift 键,然后 预设 “干扰”块和每个“对话框”以取消选择那些块 -
-
闭环设置
-
删除将Disturbance连接到购物车内置的信号 -
-
将Disturbance连接到Sum模块的底部+端口
-
-
将Constant块连接到手动开关的下部输入,然后将参数 Constant 设置为“ 0”,然后将块重命名为“ No Force” -
-
-
-
复制常量块与其其连接到减法块的+端口,相连其重命名为“所需摆角”。
您的模型现在应如下所示。在开环模式下,模拟的输出与以前的结果保持不变。
控制器实施
现在,我们将实现在“ 页面中开发的PID控制增益。
在初始冲击之后,控制器能够将摆角快速降低到零,并且摆速也为零。推车缓慢地以恒定的速度沿X负方向移动,以使摆锤保持平衡。

转载地址:http://iixxz.baihongyu.com/