论文部分内容阅读
摘 要:系统出现了误差,就要对它进行纠错,让它能按照稳定的状态运行,通常在自动控制理论中,有3种常用的调节手段—P(比例调节)、I(积分调节)、D(微分调节),简单来说,就是把这3种调节手段通过数学方法结合起来组成一个系统完备、逻辑严谨的公式,运用到控制系统中,这就是PID算法。使用PID时我们通常设计3个参数运用到公式中,来体现比例、积分、微分的调节作用,通过控制这3个参数,就可以逐渐调节控制系统使其趋于稳定,达到想要的效果。
关键词:比例-积分-微分算法;自动控制理论;平衡车;单片机
1 PID算法之于控制系统
其实提起比例-积分-微分(Proportion Integral Derivative,PID)算法,学习自动化控制系统和单片机开发的朋友也许并不陌生,文章根据近几个月的了解学习与PID算法在平衡車上的应用,浅谈学习经验以及对PID算法的看法,希望为刚入门的学习者们提供一些帮助。
1.1 PID算法的概念
目前,PID算法是最普遍最简单的一种调节控制系统的手段,若是希望自己做出来的电子产品更加稳定,必须辅助运用各种各样的调节手段。当然,随着大数据的发展以及深入学习的推广,仅一个PID算法是远远不够用的,但是如果想从各式各样的算法开始学习的话,PID就是敲门砖,是学习各式丰富控制理论的第一步。
1.2 PID算法中的重要公式
PID算法是有公式的,对于急不可耐想立刻利用PID算法的学习者,只需要掌握公式如何运用即可,至于公式是如何总结出来的,文章不再详细赘述,如果想要深入了解的话建议学习自动控制理论系列的读物以及高等数学。
1.2.1 3个重要参数
使用PID时,通常设计3个参数运用到公式中,来体现比例、积分、微分的调节作用,通过控制这3个参数,就可以逐渐调节控制系统使其趋于稳定,达到想要的效果。
P—KP—比例调节的作用体现为快速性,是对系统偏差的瞬间反应,KP越大,系统反应越快,振荡越大。
I—KI—积分调节的作用体现为准确性,其作用在于消除系统偏差,KI越大,系统越准确稳定,但响应时间会变慢。
D—KD—微分调节的作用体现为稳定性,其作用在于阻止偏差的变化,微分调节不仅要对系统偏差作出快速响应,还要根据偏差的变化趋势消除偏差,是非常重要的调节参数。
1.2.2 PID算法的两个重要公式
两个公式都是对系统误差进行的数学运算,增量式公式中与系统前一次的误差E(k-1)和前两次的误差E(k-2)有关。而且此公式应用时控制的不是输出量,而是输出量的增量,与积分环节无关。适用于步进电机的调节,尤其适用于没有积分环节的控制系统。
位置式公式中与系统前一次的误差E(k-1)和误差的累加值ΣE(k)有关,其输出与整个系统的过去状态有关,是对系统每一次不同状态的分析和调整,对系统本身有着较大的影响,适用于一切控制系统[1]。
2 PID算法应用—平衡车设计方案
2.1 电子器件的选择
2.1.1 主控芯片STM32RCT6模块
STM系列芯片具有良好的电气性能,是自动控制系统中广泛应用的微型控制芯片。其实网上有很多现成的平衡车程序,都是基于STM32C8T6芯片的,但是笔者选择了STM32RCT6芯片,首先它的引脚比较多,价格相对来说也比较便宜,如果某个引脚出现不能正常工作的现象,也有足够的更换空间。虽然我需要重新根据程序进行一系列的配置,却也提供给了充分学习平衡车的空间[2]。
2.1.2 电机与驱动模块
电机选择的为减速比为1∶30,供电电压为12 V的直流减速电机,电机型号为520。驱动模块型号为TB12FNG模块,TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动两个电机。
2.1.3 电机测速模块
像平衡小车这样的平衡控制系统,仰赖于对小车电机速度的控制。而对电机速度实现的精准控制,在于对电机速度的实时检测。霍尔编码器是电机测速中常用的电子元件,通过输出两个通道正交相位90°的方波把速度数据传输给单片机。
2.1.4 平衡模块
MPU6050是平衡车小车的核心模块,通过对小车各个方位状态的检测,我们才能根据不同状态作出不同的反应,通过对不同状态下电机的控制,来实现平衡的状态。MPU6050整合了3轴陀螺仪、3轴加速器,由主要IIC端口以单一数据流的形式,向应用端输出9轴融合演算数据。
2.2 小车整体控制
小车整体控制如图1所示。
3 平横车参数调节经验
PID算法中的3个重要参数上面已经介绍过了,根据想要系统实现的功能,选择好合适的公式之后,再用C语言转化完成,最后对PID的参数进行调节。
KP的调节:KP越大,可以认为小车反应越快,但是越不稳定,可能会来回摆动,根本无法立住而且摆动幅度极大,所以,KP的调节一旦固定下来不可轻易更改,做到尽量少改,能不改就不改,否则一旦改动会对其他两个参数造成很大的影响。
KI的调节:KI越大,可以认为小车站立会越来越稳,但是可能会出现不是直立站立,可能躺着站立,或者扶小车站起时某一时是稳定的,保持这种稳定较久才会变换另一种状态,也就是说不会根据不平衡的状态作出及时的反应。
KD的调节:在调节这个参数的时候一定要注意外界噪声的影响,这里的“噪声”在小车系统中可以理解为电机的输入信号不稳定。所以在调参前应保证芯片是崭新完好的,电源稳定充足,电机驱动模块性能良好,这种噪声影响其实完全不用考虑。这种顾虑排除后,要秉持着“曲线振荡频率快,先把微分降下来;动差大来波动慢,微分时间应加长”的原则进行调节。
[参考文献]
[1]熊中刚,叶振环,贺娟,等.基于免疫模糊PID的小型农业机械路径智能跟踪控制[J].机器人,2015(2):212-223.
[2]满红,郑富荣,胡伟华,等.基于STM32单片机的教学用寻迹平衡车的设计与实现[J].机器人技术与应用,2018(4):39-42.
关键词:比例-积分-微分算法;自动控制理论;平衡车;单片机
1 PID算法之于控制系统
其实提起比例-积分-微分(Proportion Integral Derivative,PID)算法,学习自动化控制系统和单片机开发的朋友也许并不陌生,文章根据近几个月的了解学习与PID算法在平衡車上的应用,浅谈学习经验以及对PID算法的看法,希望为刚入门的学习者们提供一些帮助。
1.1 PID算法的概念
目前,PID算法是最普遍最简单的一种调节控制系统的手段,若是希望自己做出来的电子产品更加稳定,必须辅助运用各种各样的调节手段。当然,随着大数据的发展以及深入学习的推广,仅一个PID算法是远远不够用的,但是如果想从各式各样的算法开始学习的话,PID就是敲门砖,是学习各式丰富控制理论的第一步。
1.2 PID算法中的重要公式
PID算法是有公式的,对于急不可耐想立刻利用PID算法的学习者,只需要掌握公式如何运用即可,至于公式是如何总结出来的,文章不再详细赘述,如果想要深入了解的话建议学习自动控制理论系列的读物以及高等数学。
1.2.1 3个重要参数
使用PID时,通常设计3个参数运用到公式中,来体现比例、积分、微分的调节作用,通过控制这3个参数,就可以逐渐调节控制系统使其趋于稳定,达到想要的效果。
P—KP—比例调节的作用体现为快速性,是对系统偏差的瞬间反应,KP越大,系统反应越快,振荡越大。
I—KI—积分调节的作用体现为准确性,其作用在于消除系统偏差,KI越大,系统越准确稳定,但响应时间会变慢。
D—KD—微分调节的作用体现为稳定性,其作用在于阻止偏差的变化,微分调节不仅要对系统偏差作出快速响应,还要根据偏差的变化趋势消除偏差,是非常重要的调节参数。
1.2.2 PID算法的两个重要公式
两个公式都是对系统误差进行的数学运算,增量式公式中与系统前一次的误差E(k-1)和前两次的误差E(k-2)有关。而且此公式应用时控制的不是输出量,而是输出量的增量,与积分环节无关。适用于步进电机的调节,尤其适用于没有积分环节的控制系统。
位置式公式中与系统前一次的误差E(k-1)和误差的累加值ΣE(k)有关,其输出与整个系统的过去状态有关,是对系统每一次不同状态的分析和调整,对系统本身有着较大的影响,适用于一切控制系统[1]。
2 PID算法应用—平衡车设计方案
2.1 电子器件的选择
2.1.1 主控芯片STM32RCT6模块
STM系列芯片具有良好的电气性能,是自动控制系统中广泛应用的微型控制芯片。其实网上有很多现成的平衡车程序,都是基于STM32C8T6芯片的,但是笔者选择了STM32RCT6芯片,首先它的引脚比较多,价格相对来说也比较便宜,如果某个引脚出现不能正常工作的现象,也有足够的更换空间。虽然我需要重新根据程序进行一系列的配置,却也提供给了充分学习平衡车的空间[2]。
2.1.2 电机与驱动模块
电机选择的为减速比为1∶30,供电电压为12 V的直流减速电机,电机型号为520。驱动模块型号为TB12FNG模块,TB6612FNG是东芝半导体公司生产的一款直流电机驱动器件,具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动两个电机。
2.1.3 电机测速模块
像平衡小车这样的平衡控制系统,仰赖于对小车电机速度的控制。而对电机速度实现的精准控制,在于对电机速度的实时检测。霍尔编码器是电机测速中常用的电子元件,通过输出两个通道正交相位90°的方波把速度数据传输给单片机。
2.1.4 平衡模块
MPU6050是平衡车小车的核心模块,通过对小车各个方位状态的检测,我们才能根据不同状态作出不同的反应,通过对不同状态下电机的控制,来实现平衡的状态。MPU6050整合了3轴陀螺仪、3轴加速器,由主要IIC端口以单一数据流的形式,向应用端输出9轴融合演算数据。
2.2 小车整体控制
小车整体控制如图1所示。
3 平横车参数调节经验
PID算法中的3个重要参数上面已经介绍过了,根据想要系统实现的功能,选择好合适的公式之后,再用C语言转化完成,最后对PID的参数进行调节。
KP的调节:KP越大,可以认为小车反应越快,但是越不稳定,可能会来回摆动,根本无法立住而且摆动幅度极大,所以,KP的调节一旦固定下来不可轻易更改,做到尽量少改,能不改就不改,否则一旦改动会对其他两个参数造成很大的影响。
KI的调节:KI越大,可以认为小车站立会越来越稳,但是可能会出现不是直立站立,可能躺着站立,或者扶小车站起时某一时是稳定的,保持这种稳定较久才会变换另一种状态,也就是说不会根据不平衡的状态作出及时的反应。
KD的调节:在调节这个参数的时候一定要注意外界噪声的影响,这里的“噪声”在小车系统中可以理解为电机的输入信号不稳定。所以在调参前应保证芯片是崭新完好的,电源稳定充足,电机驱动模块性能良好,这种噪声影响其实完全不用考虑。这种顾虑排除后,要秉持着“曲线振荡频率快,先把微分降下来;动差大来波动慢,微分时间应加长”的原则进行调节。
[参考文献]
[1]熊中刚,叶振环,贺娟,等.基于免疫模糊PID的小型农业机械路径智能跟踪控制[J].机器人,2015(2):212-223.
[2]满红,郑富荣,胡伟华,等.基于STM32单片机的教学用寻迹平衡车的设计与实现[J].机器人技术与应用,2018(4):39-42.