找回密码
 注册
关于网站域名变更的通知
查看: 467|回复: 4
打印 上一主题 下一主题

DSP中PID控制算法的实现

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-9-14 09:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

   在数字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
0 K& _) d/ a/ I. Q

该用户从未签到

2#
发表于 2021-9-14 10:45 | 只看该作者
比例度与调节器的放大倍数的倒数成比例

该用户从未签到

3#
发表于 2021-9-14 11:13 | 只看该作者
增量式算法优点是DSP每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程。

该用户从未签到

4#
发表于 2021-9-14 13:09 | 只看该作者
调节器的积分作用就是为了消除自控系统的余差而设置的
4 i3 C5 R6 R! N5 W4 u( b# ?

该用户从未签到

5#
发表于 2021-9-14 14:19 | 只看该作者
PID 控制原理简单、实现方便,并且适应面广、鲁棒性强,其控制品质对被控对象特性的变化不是很敏感
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-21 23:01 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表