基于Simulink的二轮平衡小车仿真 | 您所在的位置:网站首页 › adams仿真搭建小车 › 基于Simulink的二轮平衡小车仿真 |
问题描述
现有一个Solidworks中的小车模型,如图所示。 现在需要在matlab中进行物理仿真,所以需要在matlab中建立物理模型,这里使用Simscape较为合适。 导入模型到matlab中分别将车身(除轮子以外的部分)与车轮保存为stl或step格式。 在simulink中创建file solid,file为先前保存的车身、车轮。 我们可以对首先建立一个与实际情况近似的模型,使机构基本能够工作,后续迭代可以逐渐增加模型的复杂度。建模步骤按照下述方法进行: 1.定义机构中的刚体 2.定义刚体之间的连接(关节、约束等) 3.孤立地考虑每一个刚体,建立刚体的简单近似模型。 4.利用关节/约束等组装刚体。 模型建立1)理论模型 图1 理论模型图 平衡车可以看成一个倒立摆,车轮与车体之间由转动副连接,车轮与地面之间相当于一个移动副(棱柱副)。 需要注意两个细节: 转动副和移动副会提供一个自由度,这个自由度必须沿成这样,它连接两个刚体,转轴必须是z轴,所以应当做好连接部分的坐标变换,使得连接处的转轴为z轴。这个非常重要!! revolute joint prismatic joint
现在我们在matlab命令行输入smnew建一个模板,如图所示。 2)车体 车体需要提供一个连接口,位置在图1中的ro处,以便与轮子用转动副连接,这个需要用Rigid Transform来实现,这个模块就是用来变换坐标的,B为Base frame(基本构架),F为follower frame(下一个构架)。 不论怎么变换,最后注意z轴与转轴方向一致,如图所示: 提示一下,可以连接到世界坐标系运行,这样可以看到模型,方便调整,弄完后封装为子系统(Subsystem)全都选中就可以封装,如果有兴趣,还可以右键->Mask弄一个小界面,最后就像这样。 3)车轮 车轮要提供两个接口,一个用于连接棱柱副,车体的移动方向要为z轴,一个用于连接转动副,轮子的转动轴要为z轴。 封装好后: 4)连接成整体模型 这里我们为了进行PID控制,要在转动副上添加传感器,在移动副上施加力。 用input port 和output port把这几个模块信号引出,再封装成子系统: 直立控制很简单,当摆杆向下运动的时候,受重力作用,摆杆会加速向下,那么怎么给摆杆一个反力呢,那就需要给下方的车一个同向的加速度,产生一个反力,这个反力应当包括回复力$k_1{\theta}$和阻尼力$k_2{\theta}^{\prime}$,其中$k_1,k_2$为比例系数(阻尼力可以使摆尽快稳定): 在模型中表示就是: 然后就是调节PD参数的时候(I不管),不断调节,使小车能够稳定即可。 目前的效果: |
CopyRight 2018-2019 实验室设备网 版权所有 |