前言
如果是跟着MATLAB官网的教程走的话,在进行分析单摆之前会用到之前教程中设置好的东西,具体内容分别是
- 如何建立零件——设置一个简单的杆件。
- 装配——如何建立一个自由单摆。
这一篇的内容是接着上面做的,对上述单摆进行简单的分析,记录是为了督促自己思考,而不只是照着做。
先回顾一下,在第一步建立单个杆件零件的时候,进行的那些操作的目的是干什么?设置的那个subsystem里有三个框,分别是什么含义?
其实结合已经设置好的参数和双击框框看到的说明可以知道,两个rigid transform其实是在定义该杆件的坐标系。结合多体系统动力学的知识,即是在定义该刚体的两端铰接点的坐标,为方便之后多刚体之间运动的表述与计算。(目前的理解,之后如有错误再进行更正。)设置参数的大概含义即是:对该刚体的质心而言,沿着+ - X轴的方向进行设置两个坐标系,距离质心的距离是L/2。
!!! 这里和上面那个图对应的地方在之后自己尝试的时候出了问题,对于rigid transform的两端B,F是有顺序的,不要忽略啦~具体如何设置请看我另一篇博客。
下面是我从已经设置好单摆的模型中截取出来的,两头的坐标系确实是沿着该刚体杆件的X轴正负方向进行设置的。
言归正传,1的设置中还用了函数定义,就是划分出来的子系统中设置了一些参数,传递进里面的Solid模块,这样双击该subsystem就可以进行修改,而不是要点进去。
而2中做了什么呢?是在1的基础上加了一个固定在地面的基点,用橙色的模块设置的,与左边这三个直接相连,
其中,代表大地参考系。这说明与他直接相连的刚体Solid是固结在大地的。
第三个模块中可以设置全局的重力参考方向等,叫做mechanism configuration。而第一个也是对仿真进行一些基础设置的模块,叫做solver configuration。
设置单摆,需要在这两个设置好的刚体中添加转动副,可以在simscape->mutibody->joints中找到revolute joint。
在2中一定要注意,坐标系的设定,重力设置在了全局-Y,是在上第三个模块mechanism configuration中改的。
现在来捋一下,坐标系的传递,在joint中设置初始偏移角度为90度,可以看到杆件是不动的,如下:
而设置为90°时是左右摇摆的,对坐标系方向进行推算和验证如下:
实际发现,该系统中每个杆件的坐标系方向与大地的设置都是相同的,在教程中着重强调要将重力的方向改为-Y是因为杆件的设置,长端是沿着X方向的。
之前误以为红色的X方向是杆件的+X方向是因为,假设了simulink框图中的连接与坐标系方向的传递具有对应关系,实际验证发现,交换joint连接的subsystem的两个入口,实际运行中的杆件的坐标系方向并没有发生改变。
故在此推测:该多体系统中的每个杆件的坐标系都与大地坐标系保持一直,根据杆件设置的需要修改重力作用方向即可。(目前的理解,之后如有错误再进行更正。)