文档库 最新最全的文档下载
当前位置:文档库 › PID控制算法实例_电机_温度

PID控制算法实例_电机_温度

PID控制算法实例_电机_温度
PID控制算法实例_电机_温度

实验十七直流电机控制实验

一、实验目的

1.学习数字控制器的模拟化设计方法;

2.学习数字PID控制器的设计方法;

3.学习PWM控制理论;

4.学习数字PID控制器在DSP上的实现方法。

二、实验设备

计算机,CCS 2.0版软件,实验箱、DSP仿真器、导线。

三、基础理论

PID控制器(按闭环系统误差的比例、积分和微分进行控制的调节器)自30年代末

图1 模拟PID控制

期出现以来,在工业控制领域得到了很大的发展和广泛的应用。它的结构简单,参数易于调整,在长期应用中已积累了丰富的经验。特别是在工业过程控制中,由于被控制对象的精确的数学模型难以建立,系统的参数经常发生变化,运用控制理论分析综合不仅要耗费很大代价,而且难以得到预期的控制效果。在应用计算机实现控制的系统中,PID很容易通过编制计算机语言实现。由于软件系统的灵活性,PID算法可以得到修正和完善,从而使数字PID具有很大的灵活性和适用性。实现PID控制的计算机控制系统

如图1所示,其中数字PID控制器是由软件编程在计算机内部实现的。

1、PID控制规律的离散化

PID控制器是一种线性调节器,这种调节器是将系统的给定值r与实际输出值y构成的控制偏差的比例(P)、积分(I)、微分(D),通过线性组合构成控制量,所以简称PID控制器。连续控制系统中的模拟PID控制规律为:

(式1)

式中是控制器的输出,是系统给定量与输出量的偏差,是比例系数,是积分时间常数,是微分时间常数。其相应传递函数为:

(式2)

比例调节器、积分调节器和微分调节器的作用:

(1)比例调节器:比例调节器对偏差是即时反应的,偏差一旦出现,调节器立即产生控制作用,使输出量朝着减小偏差的方向变化,控制作用的强弱取决于比例系数。比例调节器虽然简单快速,但对于系统响应为有限值的控制对象存在静差。加大比例系数可以减小静差,但是,过大时,会使系统的动态质量变坏,引起输出量振荡,甚至导致闭环系统不稳定。

(2)比例积分调节器:为了消除在比例调节中的残余静差,可在比例调节的基础上加入积分调节。积分调节具有累积成分,只要偏差不为零,它将通过累积作用影响控制量,从而减小偏差,直到偏差为零。如果积分时间常数大,积分作用弱,反之为强。增大将减慢消除静差的过程,但可减小超调,提高稳定性。引入积分词节的代价是降低系统的快速性。

(3)比例积分微分调节器:为了加快控制过程,有必要在偏差出现或变化的瞬间,按偏差变化的趋向进行控制,使偏差消灭在萌芽状态,这就是微分调节的原理。微分作用的加入将有助于减小超调,克服振荡,使系统趋于稳定。

由于计算机系统是一种采样控制系统,只能根据采样时刻的偏差值计算控制量,因此,利用外接矩形法进行数值积分,一阶后向差分进行数值微分,当采样周期为T时,

(式3)

如果采样周期足够小,这种离散逼近相当准确。上式中为全量输出,它对应于被控对象的执行机构第i次采样时刻应达到的位置,因此,上式称为PID位置型控制算式。

可以看出,按上式计算时,输出值与过去所有状态有关。当执行机构需要的不是控制量的绝对数值,而是其增量时,可导出下面的公式:

(式4)

(式5)

式4称为增量型PID控制算式;式5称为递推型PID控制算式;

增量型控制算式具有以下优点:

(1)计算机只输出控制增量,即执行机构位置的变化部分,因而误动作影响小;

(2)在i时刻的输出,只需用到此时刻的偏差,以及前一时刻,前两时刻的偏差、,和前一次的输出值,这大大节约了内存和计算时间;

(3)在进行手动—自动切换时,控制量冲击小,能够较平滑地过渡;

控制过程的计算机要求有很强的实时性,用微型计算机作为数字控制器时,由于字长和运算速度的限制,必须采用必要的方法来加快计算速度。下面介绍简化算式的方法。

按照式5表示的递推型PID算式,计算机每输出一次,要作四次加法,两次减法,四次乘法和两次除法。若将该式稍加合并整理写成如下形式:

(式6)

式中系数、、可以离散算出,从而加快了算法程序的运算速度。

按式6编制的数字控制器的程序框图如下图所示。

2、数字PID控制器的参数整定

在实际控制系统中,控制算式一旦确定,比例、积分和微分参数的整定就成为重要的工作。控制效果的好坏在很大程度上取决于这些参数选择得是否得当。关于PID控制参数整定方法有很多。通常首先要对工业对象的动态特性作某种简单假设。因此,由这些整定方法得到的参数值在使用时不一定是最佳的,往往只作为参考值。在实时控制中,还要在这些值附近探索,找出实用中有效的最佳值。下面介绍几种PID参数的工程整定法。

(1)PID参数整定的理论方法

参数整定的目的就是通过调整PID的三个参数、、,将系统的闭环特征根分布在s域的左半平面的某一特定域内,以保证系统具有足够的稳定裕度并满足给定的性能指标。

这种对PID参数进行设计的方法是一种理论设计方法,只有被控对象的数学模型足够精确时,才能把特征根精确地配置在期望的位置上。但是,对象的精确模型往往不易得到。同时,大多数实际系统的参数又随环境变化而变化,实质上是一个时变系统。因此,理论设计的极点配置往往与实际系统不能精确匹配。然而,这种理论设计方法对指导工程实践有很大的理论意义。随着计算机控制技术的不断发展上述理论设计方法可以通过系统辨识实现。

(2)凑试法确定PID调节参数

凑试法是通过模拟或实际的闭环运行情况、观察系统的响应曲线,然后根据各调节参数对系统响应的大致影响,反复凑试参数,以达到满意的响应,从而确定PID控制器中的三个调节参数。其中在实践中总结出如下的规律:(a)增大比例系数一般将加快系统的响应,在有静差的情况下有利于减小静差。但过大的比例系数会使系统有较大的超调,并产生振荡,使系统的稳定性变坏;

(b)增大积分时间有利于减小超调,减小振荡,使系统更加稳定,但系统静差的消除将随之减慢;

(c)增大微分时间亦有利于加快系统的响应,减小振荡,使系统稳定性增加,但系统对干扰的抑制能力减弱,对扰动有较敏感的响应;另外,过大的微分系数也将使系统的稳定性变坏。

在凑试时,可以参考以上的一般规律,对参数的调整步骤为先比例,后积分,再微分的整定步骤,即:

(A)先整定比例部分:将比例系数由小调大,并观察相应的系统响应趋势,直到得到反应快、超调小的响应曲线。如果系统没有静差或静差已小到允许范围之内,同时响应曲线已较令人满意,那么只须用比例调节器即可,最优比例系数也由此确定。

(B)如果在比例调节的基础上系统的静差不能满足设计要求,则须加入积分环节。整定时一般先置—个较大的积分时间系数,同时将第一步整定得到的比例系数缩小一些(比如取原来的80%),然后减小积分时间系数使在保持系统较好的动态性能指标的基础上,系统的静差得到消除。在此过程中,可以根据响应曲线的变化趋势反复地改变比例系数和积分时间系数从而实现满意的控制过程和整定参数。

(C)如果使用比例积分控制器消除了偏差,但动态过程仍不尽满意,则可以加入微分环节,构成PID控制器。在整定时,可先置微分时间系数为零,在第二步整定的基础上,增大微分时间系数,同时相应地改变比例系数和积分时间系数,逐步凑试,以获得满意的调节效果和控制参数。

值得一提的是,PID三个参数可以互相补偿,即某一个参数的减小可由其他参数增大或减小来补偿。因此用不同的整定参数完全可以得到相同的控制效果,这也决定了PID控制器参数选取的非唯一性。另外,对无自平衡能力的对象,则不应包含积分环节,即只可用比例或比例微分控制器。在实时控制过程中,只要被控对象的主要性能指标达到了设计要求,就可以选定相应的控制器参数为最终参数。

目前,工程上仍广泛使用实验方法和经验方法来整定PID的调整参数,称为PID参数的工程整定方法。这种方法的最大优点在于整定参数不必依赖被控对象的数学模型。简易工程整定法是由经典的频率法简化而来的,虽然粗糙一点,但是简单易行,适于现场的实时控制应用。如扩充临界比例度法、扩充响应曲线法。

3、PID控制算法应注意的几个问题

任何一种执行机构都存在一个线性工作区。在此线性区内,它可以线性地跟踪控制信号,而当控制信号过大,超过这个线性区,就进入饱和区或截止区,其特性将变成非线性特性。同时,执行机构还存在着一定的阻尼和惯性,对控

制信号的响应速度受到了限制。因此,执行机构的动态特性也存在一个线性工作区。控制信号的变化率过大也会使执行机构进入非线性区。前述标准PID位置式算法中积分项控制作用过大将出现积分饱和,增量式算法中微分项和比例项控制作用过大将出现微分饱和,都会使执行机构进入非线性区,从而使系统出现过大的超调和持续振荡,动态品质变坏。为了克服以上两种饱和现象,避免系统的过大超调,使系统具有较好的动态指标,必须使PID控制器输出的控制信号受到约束,即对标准的PID控制算法进行改进,并主要是对积分项和微分项的改进。

(1)饱和作用的抑制

无论采用何种计算方法,其控制输出从数学上讲可在范围内取值,但物理执行元件的机械和物理性能是有约束的,即输入的取值是在有限范围内,表示为,同时其变化率也受限制,表示为。

控制系统在开工、停工或者大幅度提降给定位等情况下,系统输出会出现较大的偏差,这种较大偏差,不可能在短时间内消除,经过积分项累积后,可能会使控制量很大,甚至超过执行机构的极限。另外,当负误差的绝对值较大时,也会出现的另一种极端情况。显然,当控制量超过执行机构极限时,控制作用必然不如应有的计算值理想,从而影响控制效果。这类现象在给定值突变时容易发生,而且在起动时特别明显,故称“起动效应”。

为了克服积分饱和作用,已有许多有效的修正算法,较常用的有“积分分离法”。

(2)干扰的抑制

PID控制算法的输入量是误差。在进入正常调节后,由于输出已接近输入,的值不会太大。所以相对而言,干扰值的引入对调节有较大的影响。对于干扰,除了采用抗干扰措施,进行硬件和软件滤波之外,还可以通过对PID控制算法进行改进,进一步克服干扰的影响。如“四点中心差分法”、“不完全微分PID算法”等等。

四、实验步骤

1、复习数字PID的基本原理和设计方法;

2、阅读实验提供的程序;

3、运行样例程序,观察直流电机转速的控制过程;

4、填写实验报告。

5、样例程序实验操作说明

实验前连接:

CPU上的跳线J4跳到下面.

连接“直流电机”单元二号孔接口“XF_IN”和二号孔接口“XF_OUT”。将“步进电机”单元的拨码开关S4的拨码开关1置“ON”

检查:计算机、DSP仿真器、实验箱是否正确连接;

启动CCS 2.0,用Project/Open打开“Exp17”目录下的“DCMcontrol.pjt”工程文件;双击“DCMcontrol.pjt”及“Source”可查看各源程序;并加载“DCMcontrol .out”;

在“DCMcontrol .c”中,变量“r”为直流电机的控制目标转速为80转/秒,变量“rc”为直流电机的基于PWM的PID算法的控制目标转速为8转/0.1秒,即PID控制系统每0.1秒输出一次控制量。运行程序,约20秒后,直流电机被控制进入稳定状态。

说明:电机在起动的时候,需要加个外力使其转动,在程序执行之后,如果电机不转动,可以用手轻轻的转动一下电机.因各电机的特性的不同,观察到的实验现象有差异,使用本样例程序进行控制时,应做适当修改。

双击“Driver.asm”,按下图所示位置设置断点,程序运行到断点处停止,可观察到直流电机进入高转速状态。

用View / Graph / Time/Frequency打开一个图形观察窗口;设置观察图形窗口变量及参数为:在启始地址处输入speed2,长度为240,数值类型为16位有符号整型变量,具体设置如下图所示。speed2为一数组,记录直流电机的转速,单位为1秒,即其可记录直流电机在240秒内的控制结果;

可以观察到直流电机在20秒内的控制过程,由低速加速至目标转速,80转/秒,并进入稳定状态;在20秒以后,speed2的数据为0,仍为程序初始化的值,表示电机的控制过程尚未进行该时刻;此时,电机已进入高转速状态,去掉断点,继续运行程序;

可以观察到直流电极转速降低,进入目标转速,并稳定;双击“Driver.asm”,在下图所示位置设置断点,程序运行到断点处停止,电机进入低转速状态;

查看数组speed2的图形,可以观察到直流电机在上一次控制过程的结果,转速由高速减速至目标转速(80转/秒),并进入稳定状态;控制过程尚未进行的时刻所对应的speed2的数据仍为0;此时,电机已进入低转速状态,去掉断点,继续运行程序;

可以观察到直流电机转速提高,进入目标转速,并稳定;双击“Driver.asm”,在下图所示位置设置断点,程序运行到断点处停止,电机进入高转速状态;

查看数组speed2的图形,可以观察到直流电机在上一次控制过程的结果,转速由低速加速至目标转速(80转/秒),并进入稳定状态;控制过程尚未进行的时刻所对应的speed2的数据仍为0;此时,电机已进入高转速状态,去掉断点,继续运行程序;

可以观察到直流电机转速降低,进入目标转速,并稳定;双击“Driver.asm”,在下图所示位置设置断点,程序运行到断点处停止,电机进入低转速状态;

查看数组speed2的图形,可以观察到直流电机在上一次控制过程的结果,转速由高速减速至目标转速(80转/秒),并进入稳定状态;控制过程尚未进行的时刻所对应的speed2的数据仍为0;此时,电机已进入低转速状态,去掉断点,继续运行程序;

当电机减速时,表明数组speed2已记录完毕,查看数组speed2的图形,可以观察到整个控制过程的结果,分别有由高转速或低转速控制至目标转速(80转/秒),并进入稳定状态的控制过程;关闭所有相关程序,该实验结束。

五、实验说明

该实验样例程序采用增量型PID控制算法,其控制算式为:

(式7)

式7是式6的增量型表达式,式中系数、、可以参见式6。

控制偏差为当前电机转速与目标转速之差,控制量输出为输出脉冲的占空比,即以PWM方式控制电机转速。

六、样例程序子函数说明

void cpu_init ( ):DSP初始化子程序,DSP工作于10MHz;

void set_int ( ):中断设置子程序,使外部中断int1和定时器中断tint0有效;

interrupt void int1 ( ):外部中断int1,用于电机转速计数;

interrupt void tint0 ( ):定时器中断tint0,用于产生0.1秒定时(PID控制)和转速测量;

void Start (void):电机启动子程序;

void Daout (void):电机PWM控制量输出子程序,用XF输出引脚控制电机。七、样例程序流程图

主程序

INT1中断子程

TINT0中断子程序

实验十八温度控制实验

一、实验目的:

1、学习数字控制器的模拟化设计方法;

2、学习数字PID控制器的设计方法;

3、学习PWM控制理论;

4、学习数字PID控制器在DSP上的实现方法。

二、实验设备:

计算机,CCS 2.0 版软件,DSP仿真器,实验箱, 导线

三实验步骤:

1.复习数字PID的基本原理和设计方法;

2.阅读实验提供的程序;

3.运行样例程序,观察温控炉温度的控制过程和结果;

4.填写实验报告。

5.样例程序实验操作说明

1)、“语音处理单元”的拨码开关设置:

S1:拨码开关

S2: 拨码开关:

1)将CPU的J4的跳线,跳到下面.用实验导线连接“语音处理单元”

二号孔接口“IN”和“温控单元”的二号孔接口“TEMP”。

2)将“温控单元”的拨码开关S5的两位拨码开关都打到“ON”

3)把“语言处理单元”的输入调节旋钮旋到最左侧。

4)用电源线连接温控单元的交流电源输入插孔和220交流电源

6 )连接好DSP开发系统,实验箱上电,运行CCS软件

7 )调入样例程序,用Project/Open打开“Exp18”目录下的“tempc.pjt”工程文件;双击“tempc.pjt”及“Source”可查看各源程序;在“temp .c”中,“r”为温控炉的控制目标温度,设定为160。TEMP2为温度反馈量。并加载“TEMPcontrol .out”,按F5运行程序。可观察到温控外壳体上的LOAD指示灯应闪烁。

特殊说明:因各温控炉特性的差异,使用本样例程序进行控制时,应做适当修改。

用View / Graph / Time/Frequency打开一个图形观察窗口;设置观察图形窗口变量及参数为:在启始地址处输入temp1,长度为1800,数值类型为16位有符号整型变量,具体设置如下图所示。temp1为一个数组,记录温度控制的过程,时间单位为1秒,即其可记录1800秒的温度控制结果;

由于该温控炉的温度控制响应速度较慢,一般为分钟级,可不断刷新该温度控制记录图形查看控制结果。如下图所示的温度控制记录图形中,纵坐标为温度反馈电压采样值(负温度特性),横坐标为控制时间,单位为1秒。可以看到温度不断上升,温度反馈采样值稳定于160(目标控制量)。该图记录了600秒的温度控制过程,以后的控制过程尚未进行。

也可以用数组temp2来观察温度控制过程,长度为60,16位有符号整型,与temp1不同之处是记录的时间单位为30秒一次,具体设置如下图所示;

下图为用数组temp2来观察温度控制过程,与用temp1相比,曲线较为平滑,也可以不断刷新图形观察温度控制的进程;

以下两图为30分钟的温度控制过程,分别用数组temp1和temp2观察。

由于温控炉依靠自然散热,所以从高温状态向低温状态的控制过程较长。对于不同温控炉,由于特性略有差异,PID控制算法程序应进行适当修改。关闭所有相关程序窗口,本实验结束。

四、实验说明

该实验样例程序采用增量型PID控制算法,其控制算式为:

该式是实验十七中式6的增量型表达式,式中系数、、可以参见式6。

相关的PID控制理论可参见实验十七中的基础理论部分。

本样例程序中,控制偏差为当前温度反馈电压采样值与目的采样值之差,经PID算法控制后,修改输出脉冲的占空比,即以PWM方式实现温度控制。用DSP的XF引脚控制开关管的导通和关断;TIMER1控制XF输出控制脉冲的频率,采用PWM调节方式;即固定周期1S,调节占空比;来调节开关管的导通的时间,控制温度的恒定。温度反馈信号通过AD采样,经PID算法处理,和设定初始温度值比较,控制XF输出的脉宽。

五程序框图:

结束

实验十九、步进电机控制试验

一、实验目的

1)、了解步进电机的工作原理。

2)、掌握步进电机的驱动及编程方法。

二、实验设备

计算机,仿真器,实验箱

三、实验步骤

1、将“步进电机”单元中的拨码开关S4的拨码开关2置“ON”。

2、连接好DSP开发系统,实验箱上电,运行CCS软件

3、按流程图编写控制电机的程序

1、调入样例程序,运行。

2、观察实验结果,写实验报告

6 程序实验操作说明

打开文件夹“exp19”中的“motorstep.pjt”文件编译并装载文件夹“DEBUG”中的“motorstep.out”

加载完毕,单击“Run”运行程序;

可以看到步进电机先顺时针旋转,然后再逆时针旋转,“数字量输入输出单元”中的LED10-LED13在不停的闪烁。

运行程序,可以看到四合一被控对象上步进电机以一定转速正转及反转;

用“Halt”暂停程序运行,将“delay”循环中的寄存器“ar3”的赋值由200h更改为2000h,也可以更改对寄存器“ar4”的赋值,如下图所示。该“delay”循环控制步进电机的A、B、C、D相的延迟时间。

“Rebuild All”后,重新加载程序,运行程序。可以观察到步进电机正转与反转的转速变慢;

用“Halt”暂停程序运行,将“delay”循环中的寄存器“ar3”的赋值还原,由2000h更改为200h,将“delayb”循环中的寄存器“ar3”的赋值由20h更改为2000h,将寄存器“ar4”的赋值08h更改为800h,如下图所示。该“delayb”循环控制步进电机的步与步的延迟时间。

“Rebuild All”后,重新加载程序,运行程序。可以观察到步进电机正转与反转的转速变慢,而且步进电机的步进效果较明显。

关闭相关程序窗口,本实验结束。

四、实验说明:

步进电机多为永磁感应式,有两相、四相、六相等多种,实验所用的电机为两相四拍式,通过对每相线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。脉冲信号是有DSP的IO端口(地址8001H)的低四位提供。位0对应“D”,位1对应“C”,位2对应“B”,位3对应“A”;

如下图所示,电机每相电流为0.2A,相电压为5V,两相四拍的通电顺序如下表所示:

A B C D

顺序

第五章算法实验指导

实验一卷积(Convolve)算法实验

一实验目的

1.了解卷积算法的原理;

2.掌握TMS320程序的编译和调试方法;

3.掌握在CCS环境下,编写和调试程序的方法。

二实验设备

计算机,CCS 2.0 版软件,DSP仿真器,实验箱。

三实验原理

卷积的基本原理。

四实验步骤

1.熟悉卷积的基本原理;

2.阅读所提供的样例实验程序;

3.运行CCS软件,对样例程序进行跟踪,分析结果;

4.填写实验报告。

5.本实验所提供的样例子程序操作说明

启动CCS 2.0,用Project/Open打开“convolve.pjt”工程文件;

双击“convolve.pjt”及“Source”可查看源程序;并加载“convolve.out”;

相关文档