1.导入模型
安装Simscape Multibody Link插件
该插件将 CAD 装配模型导出为 XML 文件和车身几何文件,您可以使用该功能将其转换为Simscape Multibody模型。
- 安装链接Simscape Multibody - SimMechanics Link - MATLAB & Simulink
- 运行安装:在 MATLAB 命令提示符处,输入
install_addon('zipname')
- 将MATLAB注册为自动化服务器: 以管理员模式打开 MATLAB 会话。在 MATLAB 命令提示符处,输入
regmatlabserver
. - 在SolidWorks中启用插件:(如果没出现的话,重新启动SW)Enable Simscape Multibody Link Plugin in SolidWorks - MATLAB & Simulink - MathWorks 中国
-
要导出装配模型,请在菜单栏上单击工具> Simscape Multibody Link >导出> Simscape Multibody。
-
在MATLAB中,打开模型文件位置,命令提示符处,输入smimport('***.xml'),等待模型打开即可
- 在导入模型之前,需要对模型进行初步的处理:将模型中的零件进行分类,将没有相互运动的零件装配为一个整体,导出作为一个零件,这样在MATLAB中可以方便添加运动关节,并且极大的简化模型,提高建模效率。
- 注意:模型在SolidWorks中创建时,会出现坐标Y轴向上的情况,需要在solidwork中装配时进行处理:
- 第一步:定向至下视图,并将下视图指定为前视图,出现提示后确认;
- 第二步:在定向至新视图的右视图,并将右视图指定为前视图,同样确认;
- 在SolidWorks中调整视图对应坐标轴,让z轴向上 - 知乎
2.添加重力
双击修改MechanismConfiguration模块
3.添加地面模块
添加一个坐标转换模块和一个Brick solid模块,以下是各个模块的属性配置:
***注意勾选完整几何选项;
4.加入地面摩擦力、碰撞等接触
下图中为完整的一个地面块与模型接触的链路连接,每个模块将一一说明:
1). Tyre_M1Z190_4_RIGID模块是我的模型中的车轮模块,半径为0.105m;
2). Revolute为运动关节,可以根据自己需要,勾选力矩输入和运动模式(目前的理解:设置角度)
3). 图中另外接一个Spherical Solid模块,我理解的是建立一个透明的碰撞球体,代替车轮与地面的接触,所以其大小要与实际的轮子大小一致。然后注意将其颜色设置为透明,重量设置为0,避免影响后续仿真。
4). 随后的 Spatial Contact Force1 模块即可设计面于面之间的接触情况
5). 添加障碍物
与添加地面块类似,加入一个块,修改其大小,通过坐标转换确定其在世界坐标系中的位置即可。
注意:该障碍物需要与机体会发生碰撞的模块分别进行面接触关节连接。
5. 使用 Simscape Multibody 中的空间接触力模块为我的模型添加接触物理场。如何确定阻尼系数和刚度系数的适当值?
stiffness(刚度):
Damping(阻尼):
1.方法:光滑的弹簧阻尼
2.方法:光滑的粘滑运动
静摩擦、动摩擦、临界速度:
下面是我从摩擦/刚度调整中学到的主要方法:
-
如果摩擦系数太高,高的力会导致机器人从屏幕上“飞”出去。
-
如果摩擦系数太低,你可以看到车轮在行驶时滑动。
-
如果刚度太高,那么重力会导致机器人在地面上“弹跳”。
-
静摩擦系数应始终大于动摩擦系数。
-
-
下面是几种模型实例:
**. 出现Model错误,或遇到模块的选项无法修改问题:
解决方法:
点击建模->模型设置->Simscape ->Editing Mode 选择为Full模式即可