Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统

文章目录

  • 一. 建立和封装零件
    • (一)建立杆件A
    • (二)建立杆件B
    • (三)建立滑块C
    • (四)建立杆件D
  • 二. 修改坐标系
    • (一)修改D的坐标系
    • (二)修改B的坐标系
    • (三)修改A的坐标系
    • (四)修改C的坐标系
  • 三. 装配(连接坐标系)
  • 四. 施加驱动力和增加传感器
  • 五. 设计控制器
  • 六. 仿真分析

经过了前面的讲解,我们其实可以总结出Multibody中建模的规律了。这里给出我的理解(分析和建模的顺序)

第一步,建立零件并封装零件,这一步里面包括要把需要的坐标系建立出来(坐标系的目的是为了装配,即自由度约束)。这一步就类似于SolidWorks中的建立零件

第二步,修改坐标系,这一步是SolidWorks中没有的,我也是把Multibody弄明白之后反过来理解了SolidWorks的背后装配思路,其实就是坐标系连接,只不过SolidWorks里面是后台操作的,我们看不到这些东西。这一步相当于SolidWorks中装配的第一步。

第三步,装配,即连接坐标系。这一步里面需要增加关节,然后把所有的零件和关节头连尾巴、头连尾巴、头连尾巴,这样子连起来就行了。这一步相当于SolidWorks中装配的第二步。

第四步,施加驱动力和增加传感器。前三步完成了建模,从第四步开始加力和传感器,这样就实现了驱动和数据输出。

第五步,设计控制器。

第六步,仿真分析。

下面我们以Matlab官方的一个双曲柄瞄准机构的建模为例讲解。

Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第1张图片

一. 建立和封装零件

这个例子中包含四个构件,摇杆A,摇杆B,滑块C和大地D。初学时我们做一些简化,大地我们简化成一个杆件,这个杆件在装配的时候和大地固连。A和B从图里面看有孔,我们也忽略,按照前面建立单摆模型时一样,直接让他们干涉连接,最后的效果像下面这个样子。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第2张图片

(一)建立杆件A

A和D之间是铰接的关系,有一个转动自由度,A和C之间是滑动连接,有一个滑动自由度。所以在A上面我们要建立两个新的坐标系。

使用smnew新建一个Multibody文件,里面的默认组件先不管他。

拖进来一个Cylindrical Solid,命名为Link A,增加两个Rigid Transform,改名如下图 ,增加两个Connection Port,命名Fad和Fac,像下面这样子连起来(注意B都是朝里的,两个坐标系的B连接brick的B)
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第3张图片
然后框选上面的组件,右键Create Subsystem
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第4张图片

多出来的外面的这俩端口删掉,命名为rigid body A
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第5张图片
变成这样
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第6张图片
下面我们指定一下A的尺寸、密度、颜色。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第7张图片
注意看,右边的预览,轴向方向是沿着Z轴的。前面建立装配体(笔记4)那一篇我重点提醒了,所有的旋转关节转轴都是沿着Z轴的,滑动关节都是沿着Z轴的。 所以,连接处的坐标系必须进行旋转。这一步我们放到后面统一做

(二)建立杆件B

B的形状和A是一样的,不过B两个端部都是转动关节。
我们把刚才建立A的Subsystem直接复制一个,命名为rigid body B。然后双击进去把名字全都改一下
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第8张图片
然后双击Link B,修改属性
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第9张图片

(三)建立滑块C

滑块C一样的,我们复制一个刚才的rigid body A子系统,命名为rigid body C,双击进去。由于C是个滑块,我们要把Cylindrical Solid删掉,换成一个Brick Solid,然后全部重新命名,如图所示。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第10张图片
然后双击Link C,修改属性
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第11张图片

(四)建立杆件D

杆件D也是回转体,和A、B形状是一样的,但是D除了与A、与B铰接之外,还要与地球固连,所以要给他新建一个坐标系。我们直接复制一个Rigid Body A过来,命名为Rigid Body D,双击进去,修改名字。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第12张图片
然后双击Link D,修改属性
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第13张图片

现在我们的文件里面包含了四个杆件了

把大小和位置调整一下,像下面这个样子
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第14张图片

二. 修改坐标系

下面是重点了,怎么旋转坐标系。

我们刚才已经把坐标系建立进去了,但现在里面没有设置,默认没有旋转,也没有平移,也就是说新建立的坐标系和零件的基坐标系重合(基坐标系R一般是几何中心)。

下面我们开始修改坐标系。修改坐标系我是按照装配关系来的,也就是先改D(和大地连接),再改A,再B,最后改C。

(一)修改D的坐标系

展开D零件,双击World Frame Transform,修改如下。把这个坐标系移动到头上面,然后绕Y轴旋转-90°。注意Fdw是要接到地理坐标系的,也就是地理坐标系绕着D的Y轴转-90度,那么反过来D绕着地理坐标系的Y轴转+90度。

以上这句话请深刻理解。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第15张图片
退出去,把A、B、C comment out(注释掉)操作如下:
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第16张图片
然后把地理坐标系与D连起来,
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第17张图片

运行一下,结果是这样的。请重点看这个图,Fdw与世界坐标系(左下角显示)是固连的,Fdw与D的极坐标系(在杆件的重心)的关系就是我们刚才设定的,沿Z轴平移半个长度,绕Y轴旋转-90度。

我们做的这件事其实就是把D给横过来。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第18张图片
好了,现在回头再双击进入rigid body D,修改两个Hole FrameTransform。我们还是看上面这个图,我们要把两个Hole FrameTransform的z轴转到地理-y轴这个朝向。所以修改方法为,绕x轴旋转90度。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第19张图片
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第20张图片

再次运行,看看结果,图示就是left Hole FrameTransform坐标系。z轴已经转过来了,与设定的一致。点一下左侧浏览器的right Hole FrameTransform,可以看到在尾巴上也有一个坐标系了,朝向和这个一样。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第21张图片

(二)修改B的坐标系

经过刚才的讲解,我们已经知道套路了,对于B,依然要把两个关节坐标系Z轴转过来。

修改方法这样的,还是绕X轴旋转90度,两个都是。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第22张图片
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第23张图片

(三)修改A的坐标系

A的话只有一个旋转关节,这个坐标系跟上面B的坐标系旋转方法一样,移动关节不需要改,因为z轴本来就是沿着轴向的。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第24张图片
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第25张图片

(四)修改C的坐标系

C的话又不一样了,因为C是个方块,他与A是滑动连接,与B要转动连接,我们回头看看C的预览
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第26张图片
X轴长度是10,我们其实是想沿着C的x轴方向滑动的,那么怎么转呢?提问三秒钟。

显然,绕着Y轴转90度就可以了。

然后C还要绕着B来转,其实是想让它绕着自己的y轴转,怎么转呢?又是提问三秒钟。

这里绕着x轴旋转90度就行了。

不能理解请回头看这句话:

Multibody中所有的旋转关节转轴都是沿着Z轴的,滑动关节都是沿着Z轴的。所以,连接处的坐标系必须进行旋转,转完后新的z轴要沿着想要的转动方向或滑动方向

图示如下:
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第27张图片
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第28张图片

三. 装配(连接坐标系)

经过刚才的步骤,我们把所有的坐标系都建立起来了,现在可以连接了。连接是通过关节来连接的,拖进来三个Revolute Joint和一个Prismatic Joint,然后依次连接起来。这一步是最爽的了哈哈,超级简单。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第29张图片
双击Rdb关节,把初始角度改成30度
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第30张图片
运行一下,效果就出来了
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第31张图片
我们的安装方向是竖着装的,此时还没有设置任何外部力与内部力,所以在重力的作用下系统会乱动,像下面这样子
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第32张图片

四. 施加驱动力和增加传感器

下面我们怎么驱动力与传感器。我们把力施加在D和B连接的关节上,输出B和A连接关节的角度和速度

双击Rdb,增加外部驱动力,把初始角度改成150度,通过PS-Simulink Conveter连到输入模块,命名T
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第33张图片

双击Rda,增加传感器,通过PS-Simulink Conveter连到输出模块,命名q,w
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第34张图片
然后把整个模块框选起来,右键创建子系统。成了下面这样子
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第35张图片

五. 设计控制器

本文的控制器直接把Matlab官方的控制器拿过来了,设计的还挺巧妙的。我自己直接加的一个PID控制器稳定性不好,可能有什么动力学因素在里面。
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第36张图片
这个PD控制器里面还比较复杂,感兴趣的可以点进去看一看,如何设计好控制器就是我们仿真的终极目标了,当然就会是重难点部分,我们的目标是熟悉整个流程,就不对控制器详解了。

Aim Reference是输入信号,控制的是两个量,位置和速度。参考信号是下面这样子的
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第37张图片

六. 仿真分析

点击运行,看看系统的跟随效果
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第38张图片
看看示波器的曲线,位置控制效果很棒
Simscape Multiby学习笔记7——Multibody仿真实例2双曲柄瞄准系统_第39张图片

你可能感兴趣的:(Matlab,动力学,仿真,运维开发)