物理设置
在本节中,我们将展示如何使用Simscape Multibody的物理建模模块来建立倒立摆模型。Simscape库中的块代表实际的物理组件;因此,可以构建复杂的多体动力学模型,而无需通过物理原理来合成数学方程,就像通过应用牛顿定律来生成在
倒立摆中
实现的模型
:Simulink Modeling一样
。
倒立摆中
实现的模型
:Simulink Modeling一样
。
系统参数定义如下:
(M)推车质量0.5公斤
(m)摆质量0.2公斤
(b)推车的摩擦系数为0.1 N / m / sec
(l)到摆质量中心的长度0.3 m
(I)摆的质量惯性矩0.006 kg.m ^ 2
创建世界框架和基本配置
通过在MATLAB命令窗口中键入
smnew
来打开新的Simscape Multibody模型。如下所示,将打开一个新模型,其中已有一些常用模块。PS-Simulink和Simulink-PS块定义了Simulink输入/输出模型和边界模型之间的边界,在Simulink输入/输出模型中,对块进行顺序评估;在Simscape模型中,对方程序进行同时评估。
smnew
来打开新的Simscape Multibody模型。如下所示,将打开一个新模型,其中已有一些常用模块。PS-Simulink和Simulink-PS块定义了Simulink输入/输出模型和边界模型之间的边界,在Simulink输入/输出模型中,对块进行顺序评估;在Simscape模型中,对方程序进行同时评估。
要在模型中配置基本设置,请执行以下操作:
- :“还原器配置”块,并确保未替换“
使用本地替换器”替换
。 - 键入
CTRL-E
打开“
配置参数”
对话框 - 在“
还原器”
窗格上,确保将“
类型
”设置为“可变步长”,并且将“
转化器
”设置为“自动”,将“
停止时间
”设置为“ 10”
组装底盘和推车
我们将手推车建模为沿轴移动的点质量。
- 将“刚性变换”块的B端口连接到World Frame的W端口
- 双击“刚性变换”块
- 在“
旋转
”组中,将“
方法
”设置为“标准轴”,将
轴设置
为“ + Y”,将角度
设置
为“ 90度” - 将“刚性变换”块重命名为“变换车辆轴”
添加块的提示:
- 使用快速插入添加块。在图中依次并键入块的名称(使用下面的
粗体
字母)。将出现一个块列表,您可以从列表中选择所需的块。 - 输入块后,将出现提示您输入参数。输入变量名称,如下所示。
- 要旋转块或旋转块,请拖动垂直该块,然后从“
旋转和倾斜”
菜单中选择一个选项。
添加以下块:
*
小学
级参考
小学
级参考
*
sco的
PE
sco的
PE
*
普勒
SE发电机
普勒
SE发电机
对于脉冲发生器,双击该块,然后将“
周期
”设置为“ 10”,将“
幅度
”设置为“ 1000”,将“
脉冲宽度”设置
为“ 0.01”,
将“
相位
延迟”设置
为“ 1”。
周期
”设置为“ 10”,将“
幅度
”设置为“ 1000”,将“
脉冲宽度”设置
为“ 0.01”,
将“
相位
延迟”设置
为“ 1”。
棱柱关节将通过力输入来致动。
-
双击棱柱形关节以打开任一
-
在“
内部力学”
组中,将“
阻尼系数
”设置为“ 0.1 N /(m / s)” -
在“
驱动
”组下,将“
力
”设置为“由输入提供” -
在“
传感”
组中,选择“
位置
和
速度” -
将棱柱接头重命名为“棱柱车”
下一步,需要将Prismatic Joint连接到模型的其余部分。
- 将棱柱车的B端口连接到块“变换车辆轴”的F端口
- 将棱柱车的F端口连接到实体块的R端口
- 将脉冲发生器块重命名为“ Disturbance”,将“ Disturbance”的输出连接到图中已存在的Simulink-PS Converter模块
- 将Simulink-PS Converter模块的输出连接到Prismatic Cart的力输入
- 双击该信号串联其命名为“ Force”
- 双击Simulink-PS Converter模块插入牛顿的
输入信号单位
设置为“ N” - 制作PS-Simulink块的副本
- 双击一个PS-Simulink块连接“
输出信号单位
”设置为“ m”,然后将块连接到Prismatic Cart块的p端口。 - 双击另一个PS-Simulink模块,将
输出信号单位
设置为“ m / s”,然后将其连接到Prismatic Cart模块的v端口 - 将两个PS-Simulink模块连接到显示器
- 将来自p端口的信号命名为“ x购物车”
- 将来自v端口的信号命名为“ v购物车”
由于我们将滑车建模为点质量,因此只有质量会影响模拟结果。
- 双击实体块
- 将参数
Dimensions
设置为“ [0.2,0.04,0.6]”,以使长度的尺寸指向行进方向。 - 在组
惯性
,组
类型
为“点质量”和
质量
为“ 0.5公斤” - 在“
图形
”组的“
视觉属性
”下,将“
颜色
”设置为“ [0.8 0.45 0]” - 将块重命名为“购物车”
此时的模型现在应如下所示。
运行模拟(键入
CTRL-T
或按绿色箭头运行按钮),结果图将显示推车行进的距离及其速度。
CTRL-T
或按绿色箭头运行按钮),结果图将显示推车行进的距离及其速度。
摆放在一对手推车连接到摆
将以下块添加到模型:
- 刚性变换块
- 砖实心块(R2019b之前的实心块)
- 革命联合
定义摆的旋转轴:
- 将新的刚性转换模块的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”
转向购物车的连接点建模:
- 双击摆块
- 在“
框架”
组中,
预设
“
新建框架”
旁边的+,这将打开框架定义界面 - 找到面向您的砖的小面(沿正x方向)以将其选中
- 在“
框架原点”
部分中,选择“
基于几何特征”
单选按钮 - 首先插入底部的“
保存”
按钮 - 将“ Frame1”的名称更改为“ B”
- 取消取消“
显示端口R”
的
取消 - 点击
确定 - 将摆锤的B端口连接到“变换摆锤枢轴”的F端口
生成的模型应如下所示:
运行模拟(键入
CTRL-T
或按绿色箭头运行按钮),将生成以下图,您可以看到,摆的增加改变了推车的行进距离和速度。
CTRL-T
或按绿色箭头运行按钮),将生成以下图,您可以看到,摆的增加改变了推车的行进距离和速度。
选择用于控制器和角度转换的输出
现在,我们需要测量摆的角度和角速度:
- 双击“革命钟摆”
- 在“
传感”
下的“
Z旋转
基
元(Rz)”
组中,选择“
位置
和
速度”记录
。 - 制作PS-Simulink转换器模块的两个副本
- 双击一个PS-Simulink模块插入“
输出信号单位
”设置为“ rad” - 进入PS-Simulink块连接到Revolute Pendulum上的q端口
- 双击另一个PS-Simulink模块,转换
输出信号单位
设置为“ rad / s” - 进入PS-Simulink块连接到Revolute Pendulum上的w端口
我们需要限制测得的角度,可以保持在-pi和pi弧度之间。
- 将正方形块添加到模型
- 重命名淀粉块“包角”
- 双击进入“包角”三角形
在该样本中,我们将pi弧度添加到测量中,找到信号除以2 * pi的余数,然后称为pi弧度。
- 重命名输入块“ q”
- 删除入口和出口之间的信号连接
- 向模型添加添加块
- 将参数
偏差
设置为“ pi” - 将q块连接到Bias块
- 将数学功能块添加到模型
- 双击“数学功能”块加入“
功能
”设置为“ rem” - 将指定的输出连接到数学功能块的第一个输入
- 向模型添加一个常量块
- 将参数
常量
设置为“ 2 * pi” - 将常量块连接到数学函数的第二个输入
- 制作样本块的副本
- 将新块中的参数
Bias
设置为“ -pi” - 将数学函数输出连接到新替代块的输入
- 将新数值块的输出连接到输出端口
- 重命名输出端口“ qwrap”
- 在图中上一层并重命名类别“ Wrap Angle”
在这里,您可以看到生成的用于包裹角度的重叠
我们将在示波器上呈现新信号
- 将用于旋转摆的q测量的PS-Simulink输出连接到包角的输入
- 添加一个新的范围
- 将“环绕角度”的qwrap输出连接到新的示波器,变成此信号的名称更改为“ q摆”
- 将用于测量旋转摆的w的PS-Simulink输出连接到新的示波器,变成该信号的名称更改为“ w摆”。
生成的模型应如下所示:
运行模拟(键入
CTRL-T
或按绿色箭头运行按钮),将生成以下图。推车的运动与以前相同,但是现在我们可以看到摆锤的运动。还生成了以下所示的关联动画。
CTRL-T
或按绿色箭头运行按钮),将生成以下图。推车的运动与以前相同,但是现在我们可以看到摆锤的运动。还生成了以下所示的关联动画。
为摆锤和手推车创造原型
现在,我们已经成功创建了倒立摆系统的所有元素。
- 在图中描绘一次(但不要在块上),然后按
CTRL-A
选择所有块 - 按住
Shift
键,然后
预设
“干扰”块和每个“对话框”以取消选择那些块 - 按
CTRL-G
创建类别 - 重命名类别“购物车上的倒立摆”
您的模型现在应如下所示:
闭环设置
现在,我们将添加用于开环和闭环测试的块。
添加以下块:
- 首次
- PID控制器
- 持续的
- 手动开关
- 和
干扰也会添加到控制信号中。
- 删除将Disturbance连接到购物车内置的信号
- 将求和块的输出连接到购物车上方的Force输入
- 将Disturbance连接到Sum模块的底部+端口
我们希望手动选择开环或闭环行为。
- 将手动开关输出连接到Sum模块的+输入
- 将Constant块连接到手动开关的下部输入,然后将参数
Constant
设置为“ 0”,然后将块重命名为“ No Force” - 将PID控制器的输出连接到手动开关的上方输入
- 将减法块输出连接到PID控制器的输入
我们将闭环以控制摆角。
- 将购物车同轴的q摆放输出连接到减法模块的-端口
- 复制常量块与其其连接到减法块的+端口,相连其重命名为“所需摆角”。
您的模型现在应如下所示。在开环模式下,模拟的输出与以前的结果保持不变。
控制器实施
- 双击PID控制器块
- 将参数
比例(P)设置
为“ 100” - 将参数
积分(I)设置
为“ 1” - 将参数
微分(D)设置
为“ 20”
双击手动开关,直到选择了PID控制器的输入。
在初始冲击之后,控制器能够将摆角快速降低到零,并且摆速也为零。推车缓慢地以恒定的速度沿X负方向移动,以使摆锤保持平衡。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37003.html