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. 编程要点

  1. 定时器 IO 配置
  2. 定时器时基结构体TIM_TimeBaseInitTypeDef配置
  3. 定时器输出比较结构体TIM_OCInitTypeDef配置
  4. 根据定时器定义电机控制相关函数

5.3. 直流电机速度环控制-增量式PID实现