simscape仿真总结2-机器人拖拽控制仿真实现

文章讲述了使用Simscape进行4自由度机械臂仿真的过程,包括物理信号与Simulink信号的转换、设置求解器和仿真步长、处理坐标系角度问题以及旋转副的正确配置。作者强调了子系统在协调坐标系定义中的作用,以及如何解决数据文件丢失导致的初始化错误。

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

最近用simscape进行机器人的仿真,记录和总结一下学习心得和踩过的坑。
在这里插入图片描述
参照B站一位up主的视频做的仿真:

4自由度机械臂从Solidworks to Simscape 实现运动仿真

我也做了一个自己的简单小demo:
请添加图片描述

注意几点

  1. simscape的数据是物理信号(PS:Physics Signal),和simulink信号之间需要进行转换。
  • 从simulink到simscape需要用Simulink-PS Converter模块
    在这里插入图片描述
  • 从simscape到simulink需要用PS-Simulink Converter模块

在这里插入图片描述
在这里插入图片描述

  1. 仿真可以设置我们要使用的求解器和仿真步长(可变或者不可变)。点击模型设置
    在这里插入图片描述
    求解器我们就可以选择开始时间停止时间求解器是否变步长求解器类型等等。我选择的是停止时间是无穷大inf,定步长,求解器自动,求解步长0.001。
    在这里插入图片描述
  2. 为了实现下面的实时拖动效果,需要添加一个增益模块Slider Gain和常数模块Constant拖动增益模块的进度条就可以进行控制

在这里插入图片描述
①仿真时把速度调到最大 256 × \times × 可以实现实时拖动实时显示。
②仿真时坐标系角度不对,原因是导出的坐标系可能定义和我们的定义不一样,比如实际转角为0度,simulink里却转动了90度。为了统一定义采用相对角度的思路,是通过子系统来实现的。

在这里插入图片描述
打开内部其实就是和90度做个加减法运算:

在这里插入图片描述
子系统封装可以参考文章

Simulink仿真教程3—子系统的创建与封装

这就不用我们去想怎么把坐标系和我们定义的坐标系统一起来,同样可以得到正确的仿真运动。

另外这个90度是怎么来的呢,我们打开旋转副Revolute,

在这里插入图片描述
关注这个初始角:

在这里插入图片描述
在我的上一篇文章simscape仿真总结1-坐标系查看和自定义坐标系说的,这个数据在同文件目录下的***_DataFile.m下定义。

找到这个smiData.RevoluteJoint(2).Rz.Pos的角度,我们看到确实是90度。
在这里插入图片描述
smiData.RevoluteJoint(2).Rz.Pos

③各个旋转副要注意使用位置输入,力矩Torque设置为Automatically Computed,位置Motion设置为Provided by Input,不能都设置成Provided by Input,会报错的。

关于具体的设置建议还是看matlab的官方文档,很详细,每个控件的定义都很详细,不过都是英文,要锻炼自己看英文的能力!

④把文件夹移动到了其他地方打开初始化出现了错误Cannot reload workspace from non-existing data source file,原因是找不到原来的Data_File文件了,解决办法:

关于打开Simulink文件报Cannot reload workspace from non-existing data source file警告的解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值