Simscape-mutibody官网教程——单摆分析(Analyze a Simple Pendulum)

本文详细介绍了在MATLAB中进行单摆分析的过程,包括建立杆件、设置坐标系、定义转动副以及调整重力方向。重点讨论了rigidtransform在定义刚体坐标系中的作用,以及revolutejoint在连接刚体和设置初始偏移角度的功能。文章还提醒读者注意坐标系的方向和关节连接顺序对模拟结果的影响,并强调了正确设置重力方向的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

如果是跟着MATLAB官网的教程走的话,在进行分析单摆之前会用到之前教程中设置好的东西,具体内容分别是

  1. 如何建立零件——设置一个简单的杆件。
  2. 装配——如何建立一个自由单摆。
    这一篇的内容是接着上面做的,对上述单摆进行简单的分析,记录是为了督促自己思考,而不只是照着做。
    先回顾一下,在第一步建立单个杆件零件的时候,进行的那些操作的目的是干什么?设置的那个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的两个入口,实际运行中的杆件的坐标系方向并没有发生改变。
故在此推测:该多体系统中的每个杆件的坐标系都与大地坐标系保持一直,根据杆件设置的需要修改重力作用方向即可。(目前的理解,之后如有错误再进行更正。)

单摆分析

### Simscape Multibody 使用指南和教程 #### 创建与配置环境 为了有效利用 Simscape Multibody 进行机械系统的建模与仿真,确保 MATLAB 和 Simulink 已经正确安装并激活了相应的工具箱。启动 MATLAB 后,在命令窗口输入 `ver` 可查看已安装的产品列表及其版本号[^1]。 #### 建立物理网络模型 Simscape Multibody 支持构建复杂的多体动力学系统。建立新模型时,可以从 Simulink 库浏览器中的 “Multibody” 类目下拖拽组件到工作区。这些组件包括但不限于刚体、关节、力元器件以及传感器等基本模块。对于特定应用如机器人轨迹跟踪,则需特别关注如何定义连杆间的相对运动关系及施加控制算法实现期望路径跟随性能优化[^2]。 #### 单摆案例分析单摆为例说明具体的操作流程: - **初始化设置**:新建一个空白的 Simulink 项目文件; - **导入几何形状数据**:如果涉及到复杂结构件的设计,可以借助 CAD 软件完成初步设计后再导入选定格式(STEP 或 STL 文件)至 Simscape 中作为实体对象表示; - **连接各部件形成闭环链路**:按照实际机构布局依次添加不同类型的接头来模拟真实世界里的铰接方式;同时考虑重力影响因素加入全局坐标系下的重力源节点; - **编写控制器逻辑代码片段**:针对本实例采用简单的比例积分微分(PID)调节器处理角度偏差信号反馈给执行机构驱动电机改变角速度直至达到目标位置停止晃动状态为止。 ```matlab % PID 控制器参数设定 Kp = 8; Ki = 0.5; Kd = 0.01; pidController = pid(Kp,Ki,Kd); % 获取当前时刻的角度测量值 theta_meas (单位弧度) theta_meas = ... ; % 计算所需的目标转矩 Tcmd 来抵消扰动项维持稳定平衡姿态 Tcmd = -pidController(theta_ref-theta_meas); ``` 上述示例展示了基于 Simscape Multibody 平台搭建简易版单自由度旋转装置的过程概览图解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值