问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于MATLAB的平衡小车控制系统建模仿真

创作时间:
作者:
@小白创作中心

基于MATLAB的平衡小车控制系统建模仿真

引用
CSDN
1.
https://blog.csdn.net/weixin_43030192/article/details/138347896

基于单片机STM32的两轮平衡小车,需要理解并编程各种IO、定时器、通讯等模块,这些虽然琐碎但都是基础。然而,核心在于如何处理数据并控制相关对象,这需要深入理解控制算法。本文将结合自动控制原理的学习,通过MATLAB来模拟平衡车可用的控制算法,以便于进行各种参数调整。

一、模型

整个系统源于实验室里的平衡小车,小车带有奥比中光的深度摄像头和树莓派,但这里只关注平衡控制部分。在MATLAB建模时,去掉了摄像头和树莓派部分,仅保留了平衡小车的基本结构。以下是简化后的模型:


建模步骤

  1. 模型简化:平衡小车的分析可以近似倒立摆,为简化起见,将小车分为车身和底盘两部分,忽略轮子的质量。

  2. MATLAB建模注意事项:在建模时一定要注意转角和力的正方向,否则在后续PID控制中可能会出现负数的比例系数,甚至导致LQR算法失效。

具体建模步骤

  1. 创建Simulink模型(SLX文件)。
  2. 添加世界坐标系3个模块。
  3. 由于没有方向环,增加一个平移轴以限定平衡车的平动,以及一个转动轴用于车身的摆动。通过Brick Solid模块(矩形块,包括三个平板、电池块和轮轴)和Cylindrical Solid模块(两个电机,轮子也可以用这个模块)搭建底盘和车身。Rigid Transform模块用于坐标变换,方便模型搭建的朝向,但这个坐标变换只针对模型搭建,与计算无关。
  4. 为了美观和添加地面摩擦因素,可以添加一个模拟地面的Brick Solid模块和Spatial Contact Force模块。

基本的模块图如下:

车身部分:

在搭建MATLAB模型时,可以通过Ctrl+D键或点击运行按钮到仿真环境查看环境搭建情况,也可以检查所建轴的坐标系是否正确等。如下图:

这样就在MATLAB里面搭建好了仿真环境。

注意事项

  • F 和转角的正方向非常重要,平移轴的施加力方向(一般是Z)应该朝右,转动轴的Z轴方向应该是里朝外,保证转角逆时针为正向。这一点很重要,之前就是因为MATLAB建模时这两个方向不对,导致浪费了很多时间排查错误。

通过以上步骤,可以在MATLAB中搭建好平衡小车的仿真模型,为后续的控制算法设计和参数调整提供基础。

:本文作者提供了MATLAB 2023a版本的模型下载链接,但由于技术原因,此处无法直接提供下载链接。建议读者自行搜索相关资源或参考上述步骤进行模型搭建。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号