野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9328|回复: 0

STM32野火开源平衡小车(五)之外设搭建之PID与MPU6050初始化

[复制链接]

发表于 2020-8-23 16:56:43 | 显示全部楼层 |阅读模式

野火开源平衡车官网板块

https://www.firebbs.cn/forum.php?mod=forumdisplay&fid=129&page=1

参考资料

暂无

参考视频(这个群主讲的不错)

https://www.bilibili.com/video/BV1j7411z7uX

硬件平台

开发平台

KEIL5, STM32F103X主控,程序用的SWD下载(啥下载器都行,能下载进去就好,用串口下载也是可以的)

开发(一)

P 比例: 提高响应速度,减小静态误差(因为EP值比EI,ED都要大,值大贡献的值就大,太大直接跑扑街,太小会一直达不到设定点)

(静态误差指 理想值 与真实值 之差, 比例过大,会导致系统振荡,但你想达到目标值,必须围绕这目标值振荡,然后通过其他I,D来逐渐减小振荡幅度, 但你太大他直接振没了(不受ID控制了))

I 积分: 消除稳态误差 (积分是累加, 求面积, 主要是积累误差)

有一丁点误差,都会因为累加,变得很大, 直到你的误差消除为0

D 微分:减小振荡,以及超调(微分就是求导, 导数就是变化率)

微分越大,阻力就越大, 就越削弱之前的EP比例(也可能含有EI积分值)的幅度值

有网友总结到

比例是考虑当前,积分是回顾历史(累计误差),微分是预测未来

直立环 让小车角度趋近0,小车正立住(PD:比例微分控制)

直立环: 输入(1.给定的角度.2角度的反馈), 输出(PWM直接控制车车)

速度环, 让电机速度趋近0,电机不转(PI:比例积分控制)

速度环: 输入(1.给定的速度. 2速度的反馈) , 输出(角度值,直立环的期望速度输入)

先搞MPU6050

用到了PB8和9

\

MPU6050这边设置中断的频率为50HZ,(10ms中断一次 更新电机PWM)

处理下 MPU6050 10ms来一次的中断(我们用的是PD2)

直立环PD控制

速度环 PI控制

转向环 在直立的时候 约束车车的转向

继续编写10ms的MPU6050中断内容

下面改以下OLED引脚 PB10和PB11

编写主函数

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 09:29 , Processed in 0.031509 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表