STM32编码电机闭环PID调节教程。

这次我们来深入一下PID的强化核心。

一.详情了解

1.例子

假设我们有一个电机用5V电池供电,想要让他每分钟500转,一开始电池满电时候,是可以达到要求的,但是当电池容量下降一半时候,我们知道假设电机功率是10W,当电压为2.5V时候电机就只有2.5W了,电压下降一半,功率缩小四分之一,我们转速肯定达不到要求了。所以我们就需要引入一个反馈,来对电机实现闭环控制,当电压波动下降或升高时候,转速就会根据反馈,进行自动调节。

还有就是如果你有两个电机,想让小车直着走,那也是用问题的,因为单机制造工艺不同,他就会歪着走。

2.一般的编码器电机

有两个相位差90°的霍尔传感器,可以输出正交波形,从而对电机进行测速。

比如说这样子,这就是能检测方向的原理,正反时候,A相和B项的波形出现的时机不同。

启动的是定时器的PA8和PA90预分频,最大计数65535,满量程之后我们进行程序编写,我们都了解过单片机的额定时器编码器模式,CNT是计数器,然后ARR是自动重装值,决定你能记录多少个数字。还需要注意编码器线程和计数模式,这些都是偏移量。比如说T1T2计数模式,来一个脉冲会记录两个数字,ab项就会记录四个。就是两个通道同时计数,如果选择T1,就是A计数,选择T2就是B计数。

3.程序编写

即使我们配置完成后也需要进行开启外设,cubemx不会帮我们开启外设。

然后通过串口我们来打印一下。

然后旋转编码器计数器的值就会增加。

然后正传和反转是不一样的。

我们可以开一个10MS的定时器,看看这个时间内记录了多少数。

我们使用定时器3计数。

同时开启中断,因为我们要处理溢出之后的数据。

然后使用hal库独有的,中断回调函数。

为什么不用中断函数呢,因为比如说我们在主函数里面定义了一个变量,想要在中断函数给置1,的话,那么就会保存,中断函数里面会说使用了未定义的变量,所以我们就需要使用到中断回调函数,来进行操作。

之后如果我们定时器->实例对象->==定时器3,也就是定时器3触发的中断,就执行下面的。然后我们以1000hz频率进行记录数据,之后把计数器的值进行清零。

之后就可以看一下转速了。

我们在开启一个定时器用来生产PWM波形。然后我们默认给一个500占空比的波形。我们不能直接用单片机驱动电机因为电流太小了,驱动不起来,我们可以加电机驱动模块,我这里用的是12V的电机所以用的就是L298N驱动模块。

然后对PWM进行使能。

之后可以看到是一个1KHz的占空比的一个信号。

可以看到编码器的计数值是大概16左右。

我们用手给电机一个阻力,电机的值就下降了。

4.闭环控制

控制什么就是什么环,比如我们这个是控制速度的就是速度环,控制电压的就叫电压环。闭环的话就是输入和输出有相互练习,有一个反馈给到输入。

然后就是PID控制函数,我们来调一下PID。

我们先只给P项看一下PID的输出。

之后打印以下PID。

之后我们设置一个想要的转速。

当我们没有开启PID时候先手动转就可以看到PID的偏差和时机速度以及误差。

你可以把想要的速度转换为PWM模式,也可以转化为每分钟转速,这里就转化为PWM相关的。

之后加入一个积分限幅,限制以下输出幅度。

之后蓝色的是目前的速度,绿色是目标值,可以看到目前是23没有达到目标值是因因为PID补偿太小了。

我们调整补偿。

可以看到基本上就可以了。

如果P的值过大,还会产生一个过冲就会有振荡。而且电机会出现异常响动。

I的值就是尽量让蓝色的去逼近绿色的线,消除一个固定的小误差。电机的话这两项就可以了。

相关推荐
醇氧10 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
a11177611 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao11 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
sramdram12 小时前
MCU微控制器OA打印机方案
单片机·嵌入式硬件·mcu·mcu微控制器
破碎的南瓜13 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql
天天爱吃肉821813 小时前
【电源拆解:跟着问答逐一认识开关适配器PCB元器件】
大数据·人工智能·python·功能测试·嵌入式硬件·汽车
黄敬峰13 小时前
从零搞懂 useState 与 Fragment:React 函数式组件的基石
面试
你想知道什么?13 小时前
线性回归-学习笔记
笔记·学习·线性回归
鱼毓屿御13 小时前
从「只会聊」到「边想边做」的跃迁
前端·学习·react.js
谙弆悕博士13 小时前
系统集成项目管理工程师教程(第3版)笔记——第17章:法律法规和标准规范
笔记·职场和发展·学习方法·业界资讯·软考·法律·法规