博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
倒立摆:Simscape建模
阅读量:603 次
发布时间:2019-03-12

本文共 4202 字,大约阅读时间需要 14 分钟。

目录


物理设置

在本节中,我们将展示如何使用Simscape Multibody的物理建模模块来建立倒立摆模型。Simscape库中的块代表实际的物理组件;因此,可以构建复杂的多体动力学模型,而无需通过物理原理来合成数学方程,就像通过应用牛顿定律来生成在
实现的模型

 

 

系统参数定义如下:
(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模型中,对方程序进行同时评估。

 

 

要在模型中配置基本设置,请执行以下操作:
  • :“还原器配置”块,并确保未替换“
    使用本地替换器”替换
  • 键入
    CTRL-E
    打开“
    配置参数”
    对话框
  • 在“
    还原器”
    窗格上,确保将“
    类型
    ”设置为“可变步长”,并且将“
    转化器
    ”设置为“自动”,将“
    停止时间
    ”设置为“ 10”

组装底盘和推车

我们将手推车建模为沿轴移动的点质量。
  • 将“刚性变换”块的B端口连接到World Frame的W端口
  • 双击“刚性变换”块
  • 在“
    旋转
    ”组中,将“
    方法
    ”设置为“标准轴”,将
    轴设置
    为“ + Y”,将角度
    设置
    为“ 90度”
  • 将“刚性变换”块重命名为“变换车辆轴”

 

 

添加块的提示:
  1. 使用快速插入添加块。在图中依次并键入块的名称(使用下面的
    粗体
    字母)。将出现一个块列表,您可以从列表中选择所需的块。
  2. 输入块后,将出现提示您输入参数。输入变量名称,如下所示。
  3. 要旋转块或旋转块,请拖动垂直该块,然后从“
    旋转和倾斜”
    菜单中选择一个选项。
  4. 要在块名称下面显示参数,请参见Simulink文档中的“
    ”。
添加以下块:
*
小学
级参考
*
sco的
PE
*
普勒
SE发电机
对于脉冲发生器,双击该块,然后将“
周期
”设置为“ 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
或按绿色箭头运行按钮),结果图将显示推车行进的距离及其速度。

 

 

摆放在一对手推车连接到摆

将以下块添加到模型:
  1. 刚性变换块
  2. 砖实心块(R2019b之前的实心块)
  3. 革命联合
定义摆的旋转轴:
  • 将新的刚性转换模块的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
或按绿色箭头运行按钮),将生成以下图,您可以看到,摆的增加改变了推车的行进距离和速度。

 

 

选择用于控制器和角度转换的输出

现在,我们需要测量摆的角度和角速度:
  • 双击“革命钟摆”
  • 在“
    传感”
    下的“
    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-A
    选择所有块
  • 按住
    Shift
    键,然后
    预设
    “干扰”块和每个“对话框”以取消选择那些块
  • CTRL-G
    创建类别
  • 重命名类别“购物车上的倒立摆”
您的模型现在应如下所示:

 

 

闭环设置

现在,我们将添加用于开环和闭环测试的块。
添加以下块:
  • 首次
  • PID控制器
  • 持续的
  • 手动开关
干扰也会添加到控制信号中。
  • 删除将Disturbance连接到购物车内置的信号
  • 将求和块的输出连接到购物车上方的Force输入
  • 将Disturbance连接到Sum模块的底部+端口
我们希望手动选择开环或闭环行为。
  • 将手动开关输出连接到Sum模块的+输入
  • 将Constant块连接到手动开关的下部输入,然后将参数
    Constant
    设置为“ 0”,然后将块重命名为“ No Force”
  • 将PID控制器的输出连接到手动开关的上方输入
  • 将减法块输出连接到PID控制器的输入
我们将闭环以控制摆角。
  • 将购物车同轴的q摆放输出连接到减法模块的-端口
  • 复制常量块与其其连接到减法块的+端口,相连其重命名为“所需摆角”。
您的模型现在应如下所示。在开环模式下,模拟的输出与以前的结果保持不变。

 

 

控制器实施

现在,我们将实现在“
页面中开发的PID控制增益。
  • 双击PID控制器块
  • 将参数
    比例(P)设置
    为“ 100”
  • 将参数
    积分(I)设置
    为“ 1”
  • 将参数
    微分(D)设置
    为“ 20”
双击手动开关,直到选择了PID控制器的输入。

 

 

在初始冲击之后,控制器能够将摆角快速降低到零,并且摆速也为零。推车缓慢地以恒定的速度沿X负方向移动,以使摆锤保持平衡。

 

 
 

 

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

你可能感兴趣的文章