基于Matlab2018b的SimMechanics工具箱建立的一阶倒立摆模型

版权声明: https://blog.csdn.net/qq_29860971/article/details/88582152

对倒立摆系统数学建模

PID闭环控制:[https://blog.csdn.net/qq_29860971/article/details/88585257]
源代码下载:[https://download.csdn.net/download/qq_29860971/11020126]
  倒立摆系统的数学建模一般有牛顿欧拉法和拉格朗日法两种。对于结构相对简单的一阶直线倒立摆可以使用牛顿欧拉法,先对小车和摆杆进行受力分析,并分别求出他们的运动方程。将线性化后的两个运动方程进行拉普拉斯变换。最后整理后可以得到系统的状态空间方程。在许多实际的运算中,求解微分方程组会遇到较大的困难。有时,还需要确定各质点间的位移、相互作用力、速度、加速度等关系来解决质点组中存在约束情况,联立求解这些方程组就更为困难。
但是这种方法会在复杂的数学运算上浪费大量的时间。本章采用 MATLAB 软件中SimMechanics 工具箱对直线一级倒立摆系统进行非线性建模。

  在各种摩擦和空气阻力等一些次要的因素忽略不计的条件下,直线一级倒立摆系统可简化为如图:
在这里插入图片描述

1.SimMechanics机械建模介绍

  SimMechanics 工具提供了大量对应实际系统的元件,如:刚体、约束、铰链、坐标系统、作动器以及传感器等。使用这些模块可以非常方便的建立复杂的机械系统图示化模型,可以进行机械系统的单独分析或与任何利用 SimMechanics 设计的控制器及其它的动态系统相连进行综合仿真。SimMechanics 使用者可以很方便的修改系统中的物理参数,其中包括位移、角度、弹性系数、扭矩和机械元件运动参数等。在 SimMechanics 中可以用 Virtual Reality 工具箱或者是 MATLAB 图形工具生成系统运动的三维动画。这两种工具都可以用来显示机械系统的数值分析结果,但是 MATLAB 图形工具只能提供基本的动画显示,而 Virtual Reality工具箱则能实现更加高级、真实的动画。使用 SimMechanics 变步长积分法可以得到较高的计算精度。这种利用 SimMechanics 建立起的非线性模型更加贴近实际系统。在进行建模时根据所研究机构的结构组成,通过拖拉、连接、旋转SimMechanics各子模块组中的模块,就可以建立其机构模型。每个模块都可以单独设置其物理参数,在添加必要的驱动和检测模块后,就可以对机构进行运动分析与仿真。

  下面开始建模,首先我们进入matlab里的Simulink界面。点击Library Browser按钮可以进入工具箱。**值得注意的是,老版本里可以直接找到Simulink工具箱,而在新版本里更名为Simscape中的Multibody。**具体每个模块功能我就不一一概述了,下面需要引用的我再介绍。
在这里插入图片描述

2.世界坐标

  基于SimMechanics建模首先需要设立一个基准,相当于3D场景中的原点位置。由Solver Configuration + world frame(世界坐标)+ Mechanism
Configuration组成。
在这里插入图片描述

3.对小车和摆杆建模

  整个倒立摆模型主要由两个主要构件组成,一个是小车构件,记为cart。我们可以看成是一个长方体,在工具箱中搜索Solid可以找到对应的模型。
在这里插入图片描述
  这里我几何外形简化为长方体,其具体参数可以自己决定,Dimensions是小车的长宽高,lnertia下我们可以设置小车质量、惯性系数等。质量设置在重心处,与地面(世界坐标系)为滑块连接(移动副)。这里我们还需要在Frames下建立一个坐标系F1与摆杆对接。整体参数如下图。
在这里插入图片描述
  摆杆记为pole,质量在重心处,与小车进行旋转副连接,外形简化为长方体其具体参数如下图所示。
在这里插入图片描述

4.对运动轴承建模

  单级直线倒立摆的机构只需两个连接轴,即revolute joint(平面旋转轴)和prismatic joint(柱形滑块轴),我们都可以在Joints工具箱里找到,将其拖入窗口进行属性设置和连接。这里我设置小车部分的摩擦系数我们设为0.1N/m,并且重力加速度为9.8kg.m/s,属性设置窗口如下图。
在这里插入图片描述

5.坐标转换

  之前我们在Solid中建立了小车和摆杆的连接点坐标F1,我们需要在地面-滑块-小车-旋转关节-摆杆之间的独立坐标系之间有一个转换关系将他们建立在一起。这里我们就用到了Rigid
Transform,这里坐标的转换关系一时半会也不好表达出来,需要自己冷静的好好想想,不过按我的坐标建立方法的话转换关系需要设置如下。
在这里插入图片描述
左图是世界坐标滑块的转换,右图是旋转关节摆杆的转换。

总结

  最后,我们将每个模块连接起来如下图。由于输出的信号都是位置信号,我们需要利用PS-Simulink
Converte将其转换示波器可以接受的信号。
在这里插入图片描述
  这里我将仿真重心矢量方向调至世界坐标系中的z的负半轴方向,在推力开始后给摆杆质心一个1N的推力,推力设置为x方向,可看到摆杆做自由落体运动。
3D动画模型:
在这里插入图片描述
在这里插入图片描述

PID闭环控制:[https://blog.csdn.net/qq_29860971/article/details/88585257]
源代码下载:[https://download.csdn.net/download/qq_29860971/11020126]

猜你喜欢

转载自blog.csdn.net/qq_29860971/article/details/88582152
今日推荐