# 智能自平衡小车
## 摘要
自平衡小车近年来出现在消费市场,人们开始接受这一种新的承重、代步、运输交通工具。相对于传统的交通工具,两轮平衡小车具有许多优点,转向空间小;可实现原地任意角度旋转;相对传统交通工具有着低功耗特点。通过对平衡小车的研究,实现一个读取陀螺仪,电机编码器采用 stm32 的电机驱动控制系统。该平衡小车可以实现无干扰情况下自主实现平衡,转向,加减速等控制;同时实现避障和巡线等功能。
关键词 PID 控制陀螺仪 避障巡线
```c++
Abstract
In recent years, self-balanced automobiles have appeared in the consumer market. People begin to accept this new way of carrying, transporting and transporting. Compared with traditional vehicles, the two-wheel balancing vehicle has the advantages of small steering space, arbitrary rotation in situ and low power consumption. Through the research of the balancing car, the reading gyroscope is realized, and the motor encoder adopts STM32 motor drive control system. Balancing car can achieve self-balancing, steering, acceleration and deceleration control without disturbance, while achieving obstacle avoidance and line patrol functions.
Keywords PID Algorithm gyroscope obstacle avoidance patrol
```
**绪论**
## 研究意义及背景
近年来,人工智能,大数据越来越热门,人类的生活越来越智能,机器人也开始走进人类生活,扫地机器人,物流机器人,酒店宾馆门口的迎宾机器人,早教辅导机器人等开始与人们生活息息相关。相对于足系仿生机器人,轮系机器人仍然是目前比较成熟的机器人驱动方式。两轮平衡小车采用两轮共轴,独自驱动的方式,可以适应多地形,运动灵活,成为人们短距离的代步工具。两轮平衡小车能够实现在原地回转和任意半径的转向,相对传统的多轮系设备,其具有更加灵活易变的移动轨迹;只有两个轮子,占地面积小,可以满足一些空间狭小的地方使用;两轮平衡小车结构简单,驱动功率低,使其走进人们生活成为可能。
本文主要研究内容及任务
设计一款两轮自平衡小车,通过对陀螺仪的数据的读取处理,从而识别出车身姿态,根据车身姿态计算 PID,通过对小车进行实时的 PID 控制,使得小车可以按照要求实现自主平衡,根据遥控可以实现平稳前进后退;根据灰度传感器数据,可以实现循迹和避障。具体内容分为以下几个部分:
**平衡小车机械设计部分:**主要是机械,重心调整,电气设计部分。
**信号处理部分:**九轴陀螺仪数据的读取和处理,灰度传感器的读取和处理,电机编码器的数据读取和处理。
**控制算法 PID:**根据输入的信息,完成直立环,速度环,转向环的计算控制。
**遥控传输部分:**采用蓝牙无线模块,接收手机的遥控数据。
**系统概述**
**控制系统要求分析**
要使小车在干扰的情况下实现自平衡,自恢复干扰,并且能够在遥控下实现前进后退,左转右转功能。结合系统分析可知,自平衡小车需要维持原地不倒和运动,运动的动力来自自平衡车的两轮,两轮由两个直流电机驱动。因此,自平衡小车可以作为被控制对象,自平衡小车的两轮可以作为控制系统的控制量。整个系统划分为三个部分:
自平衡小车的站立控制(直立环):以小车的倾斜角度和角速度作为输入参数,通过计算直立环的 PD 控制器,得到电机的输出大小,控制电机的速度来保持小车的自平衡。
自平衡小车的速度控制(速度环):在站立环的基础上,通过改变自平衡小车电机的编码器数值来调整车体的实际运动速度。通过计算 PI,通过调整电机的运行速度,改变小车的实际运行速度。当速度环的速度设置为 0 的时候,小车可以实现在原地保持不动,当人为干扰,推动小车,小车可以自动回到原地。设置为某一数值的时候,可以实现前进后退。
自平衡小车转向调整(转向环):通过调整自平衡小车两轮的速度,利用差速转弯,采用 P 控制器。可以实现左右转弯。
平衡小车控制原理分析
由于小车只有两个轮子与地面接触,接触面积较小,在不作控制在重力作用下极容易倾倒。通过陀螺仪对角度进行测量,电机编码器读取,通过微处理器单片机的处理控制,使得平衡小车在一定的范围内保持角度不变,编码器不变,从而实现小车的自平衡,当发现小车,前倾的时候,需要正反馈,小车快速前进,以期追上小车,然后保持不倒。
![](https://www.writebug.com/myres/static/uploads/2021/12/6/79a078bf4e76d30ccae88aaffb434da9.writebug)
角度调整:平衡车之所以能够控制前进、后退与保持原味,是由于小车的角度测算反馈来实现的。对于小车而言(非惯性系,以车轮作为坐标原点)分析倒立 摆受力,它会受到额外的惯性力,该力与车轮的加速度方向相反,大小成正比。这样倒立摆所受到的回复力为:
F=mg sinθ macosθ≈ mgθ mk1θ
由于 θ 很小,所以进行了线性化。假设负反馈控制是车轮加速度 a 与偏角 θ 成正比,比例为 k1。如果比例 k1>g,(g 是重力加速度)那么回复力的方向便于位移方向相反了。
在此回复力作用下,小车便进行周期运动。在空气中运动的小车,由于 受到空气的阻尼力,小车最终会停止在垂直平衡位置。空气的阻尼力与小车 运动速度成正比,方向相反。阻尼力越大,小车越会尽快在垂直位置稳定下来。而为了让小车能够尽快回到垂直位置稳定下来,还需要增加阻尼力。增 加的阻尼力与偏角的速度成正比,方向相反,因此公式 1 可改为:
```c++
F= mgθ mk1θ mk2θ'
```
进而可得出控制小车车轮加速度的算法:
```c++
A= k1θ+k2θ'式中θ为小车角度,θ`为角速度,k1 k2 都是比例系数。 根据上述内容,建立速度的比例微分负反馈控制,根据基本控制理论讨论小车通过闭环控制保持稳定的条件(这里需要对控制理论有基本了解)。 假设外力干扰引起车模产生角加速度 x(t)。沿着垂直于车模地盘方向进行 受力分析,可以得到车模倾角与车轮运动加速度以及外力干扰加速度 a(t) x(t)之间的运动方程。
```
自平衡小车 PID 控制器分析
PID **控制原理**
反馈调节系统一般由检测、比较和输出三部分组成。将测量值与目标值进行比较,并根据误差控制输出校正系统的偏差。PID 控制器是目前工业系统中广泛应用的一种反馈控制系统。它非常适用于汽车的平衡反馈控制。PID 由比例控制、积分控制和微分控制三部分组成。PID 调节具有可靠性好、稳定性高、算法简单、调试简单等优点。因此,自采用 PID 控制器以来,在工业上得到了广泛的应用。PID 控制器由比例控制单元(P)、积分控制单元(I)和微分控制单元(D)组成。其输入 E(t)和输出 U(t)模型如下:
![](https://www.writebug.com/myres/static/uploads/2021/12/6/330a7a227993dbd9aa7edc981c5651c3.writebug)
kp 是比例控制的系数参数,1t 是积分的时间固定参数,dt 是微分时间的固定参数。
PID 控制器设计
在系统的反馈调节中,与角度成比例的控制量为比例控制,与角速度成比例的控制量为微分控制。采用 PID 控制模型的自平衡车输出方程可写如下:
直立环和速度环
![](https://www.wri
没有合适的资源?快使用搜索试试~ 我知道了~
基于C语言设计智能自平衡小车【100012720】
共426个文件
d:84个
o:84个
crf:78个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 112 浏览量
2023-06-12
11:05:32
上传
评论
收藏 19.12MB ZIP 举报
温馨提示
设计一款两轮自平衡小车,通过对陀螺仪的数据的读取处理,从而识别出车身姿态,根据车身姿态计算 PID,通过对小车进行实时的 PID 控制,使得小车可以按照要求实现自主平衡,根据遥控可以实现平稳前进后退;根据灰度传感器数据,可以实现循迹和避障。
资源推荐
资源详情
资源评论
收起资源包目录
基于C语言设计智能自平衡小车【100012720】 (426个子文件)
balancingCar.uvguix.Administrator 138KB
balancingCar.uvguix.Administrator 136KB
balancingCar.uvguix.Administrator 71KB
balancingCar.axf 399KB
balancingCar.axf 393KB
balancingCar.axf 390KB
balancingCar_sct.Bak 478B
balancingCar_sct.Bak 478B
system_stm32f10x.c 35KB
system_stm32f10x.c 35KB
system_stm32f10x.c 35KB
sys.c 6KB
sys.c 6KB
motor.c 4KB
motor.c 4KB
motor.c 4KB
JY901.c 4KB
usart3.c 4KB
usart3.c 4KB
usart3.c 4KB
JY901.c 4KB
JY901.c 4KB
thread_mw.c 3KB
thread_mw.c 3KB
thread_mw.c 3KB
board.c 3KB
board.c 3KB
board.c 3KB
control.c 2KB
control.c 2KB
usart2.c 2KB
usart2.c 2KB
usart2.c 2KB
usart1.c 2KB
usart1.c 2KB
usart1.c 2KB
encoder.c 2KB
encoder.c 2KB
encoder.c 2KB
ANO.c 2KB
xnumx.c 1KB
xnumx.c 1KB
xnumx.c 1KB
mian.c 1KB
mian.c 1KB
mian.c 1KB
control.c 513B
SigUV3Arm.cnf 318B
SigUV3Arm.cnf 318B
SigUV3Arm.cnf 318B
board.crf 287KB
thread_mw.crf 286KB
thread_mw.crf 286KB
board.crf 286KB
motor.crf 286KB
board.crf 286KB
control.crf 286KB
control.crf 286KB
usart3.crf 285KB
thread_mw.crf 285KB
encoder.crf 285KB
motor.crf 285KB
motor.crf 285KB
usart2.crf 284KB
xnumx.crf 284KB
usart1.crf 284KB
mian.crf 284KB
control.crf 284KB
usart3.crf 284KB
usart3.crf 284KB
encoder.crf 284KB
encoder.crf 284KB
usart2.crf 283KB
usart1.crf 283KB
usart2.crf 283KB
usart1.crf 283KB
xnumx.crf 283KB
xnumx.crf 283KB
mian.crf 283KB
mian.crf 283KB
jy901.crf 281KB
jy901.crf 280KB
jy901.crf 280KB
sys.crf 235KB
sys.crf 235KB
system_stm32f10x.crf 234KB
system_stm32f10x.crf 233KB
system_stm32f10x.crf 233KB
ano.crf 232KB
kservice.crf 53KB
kservice.crf 52KB
kservice.crf 52KB
ipc.crf 50KB
ipc.crf 50KB
ipc.crf 50KB
thread.crf 49KB
mem.crf 49KB
thread.crf 49KB
thread.crf 49KB
mem.crf 49KB
共 426 条
- 1
- 2
- 3
- 4
- 5
资源评论
神仙别闹
- 粉丝: 2712
- 资源: 7668
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功