基于DSP的PID控制算法的实现_第1页
基于DSP的PID控制算法的实现_第2页
基于DSP的PID控制算法的实现_第3页
基于DSP的PID控制算法的实现_第4页
基于DSP的PID控制算法的实现_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字信号处理与DSP应用课程论文题目: 基于DSP的PID控制算法的实现 学 号: 2011080911 姓 名: 蔡志威 班 级: 6班 专 业: 电路与系统 课程老师: 黄乡生 二零一二年二月二十日摘 要:按偏差的比例、积分和微分进行控制的调节器称为PID调节器,PID调节器是连续系统中技术成熟、应用最为广泛的一种调节器。它构简单,参数易于调整,在长期的应用中已积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识,但往往不能得到预期的效果,所以人们常采用数字PID调节器,并根据经验进行在线整定

2、。这次课程设计将综合用数字信号处理DSP以及自动控制方面的知识,使用CCS集成开发环境进行代码的编译,仿真,才能完成了本次设计。关键词:PID控制; DSP;仿真 ;CCSAbstrat: According to the proportion of deviation, integral and differential controls the regulator called the PID regulator, PID regulator is continuous system mature technology, the most widely used a regulator.

3、Its simple structure, easy to adjust the parameters, in the long-term of the application has accumulated a wealth of experience. Especially in the industrial process, because the controlled objects, accurate mathematical model is hard to develop, the parameters of the system and often changes, the u

4、se of modern control theory of comprehensive analysis to take a lot of cost model identification, but often can't get the desired effect, so people often uses the digital PID regulator, and according to the experience of online setting. The courses are designed to be integrated with the digital

5、signal processing DSP as well as the automatic control the knowledge of the respect, use CCS integrated development environment for the compilation of the code, simulation, to complete the design.Keywords: PID Control; DSP;simulation ;CCS前 言 在数字PID算法是目前一般控制领域中经常使用的自动控制算法,它依据给定的设定值,反馈值,以及比例系数,积分和微分时间

6、,计算出一定的控制量,使被控对象能保持在设定的工作范围,并且可以自动的消除外部扰动。由于软件系统的灵活性,经计算出的PID参数可以在调试过程中随时改变。能更精确的控制系统。得到较好的控制效果。PID 控制原理简单、实现方便,并且适应面广、鲁棒性强,其控制品质对被控对象特性的变化不是很敏感。随着计算机技术的发展,在 PID 控制的基础上,出现了很多改进的数字 PID 控制方法 ,如微分先行 PID 控制、积分分离 PID 控制、带死区的PID 控制等。对于数字PID 控制方法,又分为增量式 PID 控制算式和位置式 PID 控制算式。在绝大多数工业控制中,数字 PID 控制仍然是一种稳定的、可靠

7、的、实现简单的、使用广泛的控制方法。本设计以TI公司的TMS320VC5509和外接 D/ A芯片,实现数字 PID 控制器,采用的 PID 控制算法是增量式 PID 控制算法。TMS320VC5509 具有较高的运行速度和数据处理能力,能保证系统对多路模拟信号的实时采集和处理,提高系统的整体性能和集成度。在 DSP 内部设置参考输入量,通过DSP片上 10 位 A/ D 转换器采样,把控制对象的实际输出量采集到 DSP 中,经过DSP 的数字运算处理后,通过外部的 D/ A AD7237 进行数/ 模转换,得到实际的模拟控制量去控制被控对象,使之按照系统的设置运行工作。1、模拟PID调节器模

8、拟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),偏差一旦产生,调节器立即产生控制作用以减小偏

9、差。对于大多数调节器而言,都不采用比例增益kc作为刻度,而是用比例度来刻度,即=1/kc*100%. 也就是说比例度与调节器的放大倍数的倒数成比例。调节器的比例度越小,它的放大倍数越大,它把偏差放大的能力越大,反之亦然。积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越弱,反之则越强。调节器的积分作用就是为了消除自控系统的余差而设置的。所谓积分,就是随时间进行累积的意思,即当有偏差输入e存在时,积分调节器就要将偏差随时间不断累积起来,也就是积分累积的快慢与偏差e的大小和积分速度成正比。只要有偏差e存在,积分调节器的输出就要改变,也就是说积分

10、作用总是起作用的,只有偏差不存在时,积分才会停止。微分环节:能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。可见,微分分量对偏差的任何变化都会产生控制作用,以调整系统输出,阻止偏差变化,预见随后。偏差变化越快,则产生的阻止作用越大。对于一个固定不变的偏差e(t),不论其数值多大,根本不会有微分作用输出。2、 数字PID控制器2.1 模拟PID控制规律的离散化模拟形式离散化形式根据上表和模拟PID的数学表达式,可以退出数字PID控制器的差分方程为:式中 称为比例项 称为积分项 称为微分项常用的控制方式

11、有 P控制 PI控制 PD控制 PID控制 2.2 PID算法的两种类型 位置型控制 基本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控制算法的缺点:当前采样时刻的输出与过

12、去的各个状态有关,计算时要对e(k)进行累加,运算量大;而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。增量型控制增量型PID算法的算式为:或者写成 式中,增量式PID是指数字控制器的输出只是控制量的增量u(k)。采用增量式算法时,计算机输出的控制量u(k)对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必须具有对控制量增量的累积功能,才能完成对被控对象的控制操作。执行机构的累积功能可以采用硬件的方法实现;也可以采用软件来实现,如利用算式 程序化来完成。由上式可得增量式PID控制算式式中

13、进一步可以改写成式中 、 、 一般计算机控制系统的采样周期T在选定后就不再改变,所以,一旦确定了Kp、Ti、Td,只要使用前后3次测量的偏差值即可求出控制增量。根据上述分析,其程序流程图如下:图3 增量型控制算法路程图增量式算法优点:算式中不需要累加。控制增量u(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;DSP每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程。经过综合比较,最终选择了增量式控制算法。3.系统软硬件设计3.1硬件设计为了实现上述控制算法,还需要硬件电路才行,设计电路原理图如图4所示:从图4 中可以看出

14、,模拟量输入,也即被控电机的实际输出转速,通过一个限流电阻 R 送到由 AD8041 构成的电压跟随器里,经过放大后,再经二极管D1 和 D2嵌位以及电阻 R 限流,送到TMS320VC5509片上的 A/D 转换其中使得 A/D 的输入限制在 03 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转换器的输出采

15、用AD7237 的A相输出。TMS320VC5509 由外部提供复位信号,由无源晶振提供6 MHz时钟。片上 A/D 转换器的参考电压高电平 V 接DSP电源+3.3 V 。图4 DSP实现数字PID控制器的电路原理图3.2 软件设计本设计运用了CCSV3.3软件,它是一个完整的DSP集成开发环境,CCS支持软仿真器、各种型号的硬仿真器、各种DSK和EVM板。11CCS主要特点有:集成可视化代码编辑界面,可以方便地直接编写C、汇编、.h文件、.cmd文件等;集成代码生成工具,包括汇编器、优化的C编译器和连接器等;具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和

16、变量窗口、反汇编窗口等,支持在C源代码级进行调试;支持多片DSP联合调试;断点工具,支持硬件断点、数据空间读/写断点、条件断点等;探针工具(probe points),用于进行算法仿真,数据监视等;剖析工具(profile pionts),用于评估代码执行的时间;数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可以自动刷新;提供GEI二工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。支持RTDX(Real time date exchange)技术,利用该技术可以在不中断目标系统运行的情况下,实现DSP与其它应用程序(OLE)实现数据交换,具有开放式

17、的plug-ins技术,支持其它第三方的ActiveX插件。提供DSP、BIOS工具,利用该工具可增强对代码的实时分析能力,减少开发人员对硬件资源熟悉程度的依赖性。图5 代码调试与编译为了验证算法的可行性,现建立数字PID直流电机控制模型,然后用Matlab的LTI状态分析工具箱进行仿真,并绘制转速及控制电压变化图形。 图6 数字PID仿真模型利用Matlab软件和 LTI工具箱函数,仿真源程序代码如下:clear all;close all;ts=0.01; %采样时间=0.001ssys=tf(2652,1,25,490); %建立被控对象传递函数dsys=c2d(sys,ts,'

18、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:100time(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*E

19、e+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);endhold on;plot(time,r,'r',time,y,'b',time,u,'r');kp,ki,kd;程序调试好后,分别改变kp、ki和kd的参数值,看输出图形有何变化,理解PID控制中比例、积分和微分对控制系统的作用。 图7 Matlab中仿真图A图8

20、Matlab中仿真图B4 分析与结论通过本次课程设计的软件仿真与调试,才更加深刻的领悟了数字PID控制算法的精髓,使得理论得到了很好的验证,从而是我巩固了所学知识,得到了专业技能的锻炼和提高。5 参考文献1 胡寿松 自动控制原理 北京:科学出版社 2 童诗白、华成英 模拟电子技术基础 北京:高等教育出版社3 黄忠霖 控制系统MATLAB设计与仿真 北京:国防工业出版社4 谢剑英、贾青 微型计算机控制技术 北京:国防工业出版社5赵洪亮.TMS320C55X DSP 应用系统设计M.北京:北京航空航天大学出版社,2008.6王献峰,石东.基于DSP的FIR数字滤波器设计与实现J.通信电源技术,20

21、06,23(4):38-40.7张雄伟.DSP芯片的原理与开发应用(第三版)M.北京:电子工业出版社,2003.8丁玉美.数字信号处理(第二版)M.西安:西安电子科技大学出版社,2005.9杨大柱.基于TMS320C5510的FIR滤波器设计与实现J.微计算机信息,2008,24(17). 10陈怀琛.MATLAB及其在理工课程中的应用指南M.西安:西安电子科技大学出版社,2007.附录:源程序代码/*PID FunctionThe PID (比例、积分、微分) function is used in mainly

22、control applications. PIDCalc performs one iteration of the PIDalgorithm.While the PID function works, main is just a dummy program showinga typical usage.*/*头文件*/ #include "DSP28_Device.h&q

23、uot;#include "System.h"#include "DSP28_Adc.h"typedef struct PID double SetPoint;   / 设定目标Desired valuedouble Proportion;  / 比例常数Proportional Constdouble Integral; / 积分常数Integral Constdouble Derivative; 

24、60;/ 微分常数Derivative Constdouble LastError;  / Error-1double PrevError;  / Error-2double SumError;  / Sums of Errors PID; /*PID计算部分*/double PIDCalc( PID *pp, double NextPoint )double dError,Error;

25、Error = pp->SetPoint - NextPoint;  / 偏差pp->SumError += Error;  / 积分dError = pp->LastError - pp->PrevError;  / 当前微分pp->PrevError = pp->LastError;pp->LastError = Error;return (

26、pp->Proportion * Error  / 比例项+ pp->Integral * pp->SumError  / 积分项+ pp->Derivative * dError ); / 微分项/*Initialize PID Structure*/void PIDInit (PID *pp)memset ( pp,0,sizeof(PID);/*Main&#

27、160;Program*/double sensor (void)  / Dummy Sensor Functionreturn 100.0;void actuator(double rDelta)  / Dummy Actuator Functionvoid InitAdc(void) unsigned int i; AdcRegs.ADCTRL1.bit.RESET=1; NOP; AdcRegs.ADCTRL1.bit.RESET=0; /重新设置AdcReg

28、s.ADCTRL1.bit.SUSMOD=3; /设置仿真挂起模式 3,AdcRegs.ADCTRL1.bit.ACQ_PS=0; AdcRegs.ADCTRL1.bit.CPS=0; /对高速时钟 HSPCLK 分频,=0 时,不分频,=1 时,二分频AdcRegs.ADCTRL1.bit.CONT_RUN=0; /开始-停止模式AdcRegs.ADCTRL1.bit.SEQ_CASC=1; /级联模式,SEQ1 和 SEQ2 作为一个 16 状态排序器工作。AdcRegs.ADCTRL3.bit.ADCBGRFDN=3; /带隙和参考电路上电for(i=0;i<10000;i+) N

29、OP; AdcRegs.ADCTRL3.bit.ADCPWDN=1; /除带隙和参考电路外的 ADC 其它模拟电路上电for(i=0;i<5000;i+) NOP; AdcRegs.ADCTRL3.bit.ADCCLKPS=15; /时钟分频 ADCCLKPS=HSPCLKPS/2*15*(ADCTRL17+1) AdcRegs.ADCTRL3.bit.SMODE_SEL=1; /选择同步采样模式 AdcRegs.MAX_CONV.bit.MAX_CONV=0; /设置转换通道0AdcRegs.CHSELSEQ1.bit.CONV00=0; AdcRegs.ADC_ST_FLAG.bit

30、.INT_SEQ1_CLR=1; /清除 SEQ1 的中断标志位AdcRegs.ADC_ST_FLAG.bit.INT_SEQ2_CLR=1; /清除 SEQ2 的中断标志位AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=0; /无作用AdcRegs.ADCTRL2.bit.RST_SEQ1=0; /将排序器立即复位到 CONV00 状态AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1; /使能 INT_SEQ1 的中断请求AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0; /每个 SEQ1 序列结束时,INT_SEQ1 置位AdcReg

31、s.ADCTRL2.bit.EVA_SOC_SEQ1=0; /EVA 的触发信号不启动 SEQ1 AdcRegs.ADCTRL2.bit.EXT_SOC_SEQ1=0; /无操作AdcRegs.ADCTRL2.bit.RST_SEQ2=0; /无操作AdcRegs.ADCTRL2.bit.SOC_SEQ2=0; /清除一个挂起的 SOC 触法AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2=0; /禁止 INT_SEQ2 产生的中断请求AdcRegs.ADCTRL2.bit.INT_MOD_SEQ2=0; /每个 SEQ2 结束时,INT_SEQ2 置位AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ2=0; /EVB 的触发信号不启动 SEQ2 AdcRegs.ADCTRL2.bit.SOC_SEQ1=1; /软件触法,从当前停止的位置启动 SEQ1void main(void)PID sPID;  / PID Control Structuredouble rOut;  / PID Response

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论