摘 要:按偏差的比例、积分和微分进行控制的调节器称为PID调节器,PID调节器是连续系统中技术成熟、应用最为广泛的一种调节器。它构简单,参数易于调整,在长期的应用中已积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识,但往往不能得到预期的效果,所以人们常采用数字PID调节器,并根据经验进行在线整定。这次课程设计将综合用数字信号处理DSP以及自动控制方面的知识,使用CCS集成开发环境进行代码的编译,仿真,才能完成了本次设计。
前言在数字PID算法是目前一般控制领域中经常使用的自动控制算法,它依据给定的设定值,反馈值,以及比例系数,积分和微分时间,计算出一定的控制量,使被控对象能保持在设定的工作范围,并且可以自动的消除外部扰动。由于软件系统的灵活性,经计算出的PID参数可以在调试过程中随时改变。能更精确的控制系统。得到较好的控制效果。PID 控制原理简单、实现方便,并且适应面广、鲁棒性强,其控制品质对被控对象特性的变化不是很敏感。随着计算机技术的发展,在 PID 控制的基础上,出现了很多改进的数字 PID 控制方法 ,如微分先行 PID 控制、积分分离 PID 控制、带死区的PID 控制等。对于数字PID 控制方法,又分为增量式 PID 控制算式和位置式 PID 控制算式。在绝大多数工业控制中,数字 PID 控制仍然是一种稳定的、可靠的、实现简单的、使用广泛的控制方法。
本设计以TI公司的TMS320VC5509和外接 D/ A芯片,实现数字 PID 控制器,采用的 PID 控制算法是增量式 PID 控制算法。TMS320VC5509 具有较高的运行速度和数据处理能力,能保证系统对多路模拟信号的实时采集和处理,提高系统的整体性能和集成度。在 DSP 内部设置参考输入量,通过DSP片上 10 位 A/ D 转换器采样,把控制对象的实际输出量采集到 DSP 中,经过DSP 的数字运算处理后,通过外部的 D/ A AD7237 进行数/ 模转换,得到实际的模拟控制量去控制被控对象,使之按照系统的设置运行工作。 1、模拟PID调节器 模拟PID控制系统组成如图1所示: 图1 模拟PID控制系统原理框图 PID调节器是一种线性调节器,它将给定值r(t)与实际输出值c(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制。根据图1,可以推导出PID调节器的微分方程为:
式中
u(t)——控制器(也称调节器)的输出; e(t)——控制器的输入(常常是设定值与被控量之差,即e(t)=r(t)-c(t)); Kp——控制器的比例放大系数; Ti ——控制器的积分时间; Td —— 控制器的微分时间。 1.1 PID调节器各校正环节的作用 比例环节:即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差。对于大多数调节器而言,都不采用比例增益kc作为刻度,而是用比例度来刻度,即δ=1/kc*100%. 也就是说比例度与调节器的放大倍数的倒数成比例。调节器的比例度越小,它的放大倍数越大,它把偏差放大的能力越大,反之亦然。 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越弱,反之则越强。调节器的积分作用就是为了消除自控系统的余差而设置的。所谓积分,就是随时间进行累积的意思,即当有偏差输入e存在时,积分调节器就要将偏差随时间不断累积起来,也就是积分累积的快慢与偏差e的大小和积分速度成正比。只要有偏差e存在,积分调节器的输出就要改变,也就是说积分作用总是起作用的,只有偏差不存在时,积分才会停止。 微分环节:能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。可见,微分分量对偏差的任何变化都会产生控制作用,以调整系统输出,阻止偏差变化,预见随后。偏差变化越快,则产生的阻止作用越大。对于一个固定不变的偏差e(t),不论其数值多大,根本不会有微分作用输出。 2、 数字PID控制器 2.1 模拟PID控制规律的离散化 根据上表和模拟PID的数学表达式,可以退出数字PID控制器的差分方程为: 式中 称为比例项 称为积分项 称为微分项 常用的控制方式有 P控制 PI控制 PD控制 PID控制 2.2 PID算法的两种类型 2.2.1 位置型控制 基本PID控制器的理想算式为 式中 u(t)——控制器(也称调节器)的输出; e(t)——控制器的输入(常常是设定值与被控量之差,即e(t)=r(t)-c(t)); Kp——控制器的比例放大系数; Ti ——控制器的积分时间; Td——控制器的微分时间。 设u(k)为第k次采样时刻控制器的输出值,可得离散的PID算式
式中 , 。
由于计算机的输出u(k)直接控制执行机构(如阀门),u(k)的值与执行机构的位置(如阀门开度),所以通常称上式为位置式PID控制算法。
图2 位置式PID控制器流程图 位置式PID控制算法的缺点:当前采样时刻的输出与过去的各个状态有关,计算时要对e(k)进行累加,运算量大;而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。 2.2.2增量型控制 增量型PID算法的算式为: 或者写成 增量式PID是指数字控制器的输出只是控制量的增量Δu(k)。采用增量式算法时,计算机输出的控制量Δu(k)对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必须具有对控制量增量的累积功能,才能完成对被控对象的控制操作。执行机构的累积功能可以采用硬件的方法实现;也可以采用软件来实现,如利用算式 程序化来完成。
由上式可得增量式PID控制算式
式中
进一步可以改写成
式中 、 、
一般计算机控制系统的采样周期T在选定后就不再改变,所以,一旦确定了Kp、Ti、Td,只要使用前后3次测量的偏差值即可求出控制增量。 根据上述分析,其程序流程图如下:
图3 增量型控制算法路程图 增量式算法优点:①算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;②DSP每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程。 经过综合比较,最终选择了增量式控制算法。 3.系统软硬件设计 3.1硬件设计 为了实现上述控制算法,还需要硬件电路才行,设计电路原理图如图4所示: 从图4 中可以看出,模拟量输入,也即被控电机的实际输出转速,通过一个限流电阻 R 送到由 AD8041 构成的电压跟随器里,经过放大后,再经二极管D1 和 D2嵌位以及电阻 R 限流,送到TMS320VC5509片上的 A/D 转换其中使得 A/D 的输入限制在 0~3 300 mV。TMS320VC5509 一共有16 路复用的片上 A/D 转换器,本实例只采用第 0 通道的A/D转换。由DSP计算出控制量,通过外部数据总线送给D/ A 转换器,采用 AD 公司的 AD7237 芯片,他是 8 位 D/ A 转换器,由DSP的外部地址总线A2 ,A1 ,A0 构成D/ A转换器的译码电路,D/ A转换器的输出采用AD7237 的A相输出。TMS320VC5509 由外部提供复位信号,由无源晶振提供6 MHz时钟。片上 A/D 转换器的参考电压高电平 V 接DSP电源+3.3 V 。 图4 DSP实现数字PID控制器的电路原理图 3.2 软件设计 本设计运用了CCSV3.3软件,它是一个完整的DSP集成开发环境,CCS支持软仿真器、各种型号的硬仿真器、各种DSK和EVM板。 [11]CCS主要特点有:集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等;集成代码生成工具,包括汇编器、优化的C编译器和连接器等;具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在C源代码级进行调试;支持多片DSP联合调试; 断点工具,支持硬件断点、数据空间读/写断点、条件断点等;探针工具(probe points),用于进行算法仿真,数据监视等;剖析工具(profile pionts),用于评估代码执行的时间;数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可以自动刷新;提供GEI二工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。支持RTDX(Real time date exchange)技术,利用该技术可以在不中断目标系统运行的情况下,实现DSP与其它应用程序(OLE)实现数据交换,具有开放式的plug-ins技术,支持其它第三方的ActiveX插件。提供DSP、BIOS工具,利用该工具可增强对代码的实时分析能力,减少开发人员对硬件资源熟悉程度的依赖性。
图5 代码调试与编译 为了验证算法的可行性,现建立数字PID直流电机控制模型,然后用Matlab的LTI状态分析工具箱进行仿真,并绘制转速及控制电压变化图形。 图6 数字PID仿真模型 利用Matlab软件和 LTI工具箱函数,仿真源程序代码如下: clear all; close all; ts=0.01; %采样时间=0.001s sys=tf(2652,[1,25,490]); %建立被控对象传递函数 dsys=c2d(sys,ts,'z'); %把传递函数离散化 [num,den]=tfdata(dsys,'v'); %离散化后提取分子、分母 e_1=0 %上一偏差 Ee=0; %偏差累计 u_1=0.0; %上一状态电压 u_2=0.0; y_1=0; %上一状态输出 y_2=0; kp=2.5; %PID参数 ki=0.04; kd=0.28; for k=1:100 time(k)=k*ts; %时间参数 r(k)=500; %给定值 y(k)=-1*den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2; e(k)=r(k)-y(k); %偏差 u(k)=kp*e(k)+ki*Ee+kd*(e(k)-e_1); if u(k)>220 u(k)=220; end if u(k)<=0 u(k)=0; end Ee=Ee+e(k); u_2=u_1; u_1=u(k); y_2=y_1; y_1=y(k); e_2=e_1; e_1=e(k); end hold on; plot(time,r,'r',time,y,'b',time,u,'r'); [kp,ki,kd]; 程序调试好后,分别改变kp、ki和kd的参数值,看输出图形有何变化,理解PID控制中比例、积分和微分对控制系统的作用。 图7 Matlab中仿真图A 图8 Matlab中仿真图B 4 分析与结论 通过本次课程设计的软件仿真与调试,才更加深刻的领悟了数字PID控制算法的精髓,使得理论得到了很好的验证,从而是我巩固了所学知识,得到了专业技能的锻炼和提高。 5 参考文献 [1] 胡寿松 自动控制原理 北京:科学出版社 [2] 童诗白、华成英 模拟电子技术基础 北京:高等教育出版社 [3] 黄忠霖 控制系统MATLAB设计与仿真 北京:国防工业出版社 [4] 谢剑英、贾青 微型计算机控制技术 北京:国防工业出版社 [5]赵洪亮.TMS320C55X DSP 应用系统设计[M].北京:北京航空航天大学出版社,2008. [6]王献峰,石东.基于DSP的FIR数字滤波器设计与实现[J].通信电源技术,2006,23(4):38-40. [7]张雄伟.DSP芯片的原理与开发应用(第三版)[M].北京:电子工业出版社,2003. [8]丁玉美.数字信号处理(第二版)[M].西安:西安电子科技大学出版社,2005. [9]杨大柱.基于TMS320C5510的FIR滤波器设计与实现[J].微计算机信息,2008,24(17). [10]陈怀琛.MATLAB及其在理工课程中的应用指南[M].西安:西安电子科技大学出版社,2007.
附录:源程序代码
|