算法设计论文-PID算法实例探究.docxVIP

  • 13
  • 0
  • 约1.05万字
  • 约 11页
  • 2017-10-02 发布于湖北
  • 举报
电 子 科 技 大 学UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA算法分析与设计结业论文Algorithm analysis and design论文题目 PID算法实例分析设计课程名称算法分析与设计上课地点清水河立人楼B106学生姓名范昊洋学  号2015170201032年  月  日PID算法实例分析与设计摘要在对机械器件(如电机,电热水器等)进行电子控制的实现时,经常会由于被控制器件的被控制量的变化以及反馈存在一定的机械延迟导致控制的效果不理想,精度不高。尤其是在控制对于实时系统的控制要求极高的设备,如小车,四轴飞行器,3D打印机等对电机的控制要求非常高,就要求有合适的算法对这些器件进行控制。PID算法应运而生。在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制。PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活(PI、PD、…)。控制点包含三种比较简单的PID控制算法,分别是:增量式算法,位置式算法,微分先行。这三种PID算法虽然简单,但各有特点,基本上能满足一般控制的大多数要求。本文将以一个具体的用于控制两轮平衡小车的PID算法c语言实例对PID算法进行分析与设计。本实验中使用的处理器是ST公司的STM32f103C8T6芯片,硬件方面,使用市场上广泛使用的陀螺仪mpu6050作为加速度传感器和方位传感器,使用tb6612芯片制作点击驱动部分,直流减速电机作为小车的电机。编译器是keil公司的mdk for arm(keil5)。关键词:PID算法,stm32,平衡小车,mpu6050实验设计PID算法的初步设计准备在进行实际算法设计之前,首先要进行一些准备工作,确保后续的PID算法设计能够顺利进行。在此之前首先深入了解PID算法设计思路。第一要明确设计目的,设计目标是制作一个能够保持平衡的两轮平衡小车,那么首先要保持平衡,其次要能够正常直线行走,再次能实现转向,一个小车就完成了。所以为了完成这些功能的设计,首先要有一个功能足够的PID体系。? 比例(P)控制比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。积分(I)控制在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。微分(D)控制微分调节就是偏差值的变化率。例如,如果输入偏差值线性变化,则在调节器输出侧叠加一个恒定的调节量。大部分控制系统不需要调节微分时间。因为只有时间滞后的系统才需要附加这个参数。如果画蛇添足加上这个参数反而会使系统的控制受到影响。首先看PID的增量型公式:PID=Uk+KP*【E(k)-E(k-1)】+KI*E(k)+KD*【E(k)-2E(k-1)+E(k-2)】由公式可以看出,要实现PID算法的编程,所需的PID变量至少有,KP,KI,KD三个系数。实验过程中,这三个变量的值就是许多工程师在实际调试过程中要调整的值。了解这点之后就开始进行实际编码。直立PID的设计两轮平衡小车不同于四轮的小车,开机之后就必须时刻保持直立,否则就会摔倒而无法进行任何操作,所以小车要完成的第一步就是保持直立。首先解释一下小车保持直立的原理。小车是一个直立的个体,那么当它要倒下之前,要首先倾斜,但这时如果小车提前预知了这个趋势,并且控制小车的轮子向倾斜的方向运动小段距离,就能保持平衡。小车只要时刻都保持着这个运动,就可以实现一直保持直立。考虑到这个过程对于高响应速度的要求以及其依赖于对小车状态趋势的分析,这个过程使用P(比例)D(微分)驱动而不使用I(积分)。代码如下:int balance(float Angle,float Gyro){ floatBias,kp=575,kd=2.7;int balance; Bias=Ang

文档评论(0)

1亿VIP精品文档

相关文档