5. 直流电机速度环控制实现
前面我们学习了直流电机简单的PWM控制。但是我们在实际使用中并不是只是简单的PWM控制就能满足应用要求,
通常我们还需要对速度进行控制控制,如前面章节中讲到的为什么使用PID一节中列举的小车控制一样,
如果不对速度进行控制可能系统运行效果会不如预期那么好,本章节中我们就通过速度环的PID控制来实现直流电机的速度控制。
本章通过我们前面学习的位置式PID和增量式PID两种控制方式分别来实现速度环的控制,
如果还不知道什么是位置式PID和增量式PID,请务必先学习前面PID算法的通俗解说这一章节。
5.1. 硬件设计
本章的硬件设计与编码器的使用一章节中的硬件设计完全一样,所以这里不在赘述。
5.2. 直流电机速度环控制-位置式PID实现
5.2.1. 软件设计
这里只讲解核心的部分代码,有些变量的设置,头文件的包含等并没有涉及到,完整的代码请
参考本章配套的工程。我们创建了四个文件:bsp_general_tim.c、bsp_general_tim.h、
bsp_motor_control.c和bsp_motor_control.h文件用来存定时器驱动和电机控制程序及相关宏定义
5.2.1.1. 编程要点
- 定时器 IO 配置
- 定时器时基结构体TIM_TimeBaseInitTypeDef配置
- 定时器输出比较结构体TIM_OCInitTypeDef配置
- 根据定时器定义电机控制相关函数
5.3. 直流电机速度环控制-增量式PID实现