资源描述
小功率直流电机的测速和控制摘要 本设计采用两片MCU(AT89S52),完成了小型直流电机转速的采集、计算、显示、键盘设定,并将非均匀采样情况下的增量式积分分离PID控制算法应用于直流电机的PWM调速,实现了对电机转速的测量和控制,解决了通常低采样周期时系统的超调以及PID算法的积分饱和问题。关键词 转速 PID控制 mcu AT89S52 PWM目前见到的许多关于直流电机的测速与控制类文献中,虽然能实现直流电机的无级调速,但还存在一些问题,如无法与计算机直接接口,许多较为复杂的控制算法无法在不增加硬件成本的情况下实现,控制器的人机界面不理想。总的来讲,控制器的智能化程度不高,可移植性差。虽然采用PWM芯片来实现电机无级调速的方案成本较低,但当控制器针对不同的应用场合增加多种附加功能时,其灵活性不够,而且反而增加硬件的成本5。还有一些使用PLC控制器或高档处理器芯片(如DSP器件)的文献,它们虽然具有较高的控制性能,但由于这些高档处理器价格过高,需要更多的外围器件,因此也不具备在通常情况下大规模使用的条件。从发展趋势上看,总体的研究方向是提出质量更高的算法和调速方案,以及在考虑成本要求的前提下选择适合这种算法的核心控制器。1设计方案论证根据设计任务,要求调速采用PID控制器,因此需要设计一个闭环直流电机控制系统。该系统采用脉宽调速,使电机速度等于设定值,并且实时显示电极的转速值。通过对设计功能分解,设计方案论证可以分为:系统结构方案论证,速度测量方案论证,电机驱动方案论证,键盘显示方案论证,PWM软件实现方案论证。1.1系统结构方案论证 方案一:采用一片单片机(AT89S52)完成系统所有测量、控制运算,并输出PWM控制信号。 方案二:采用两片单片机(AT89S52),其中一片做成PID控制器,专门进行PID运算和PWM控制信号输出;另一片则系统主芯片,完成电机速度的键盘设定、测量、显示,并向PID控制器提供设定值和测量值,设定PID控制器的控制速度等。方案一的优点是系统硬件简单,结构紧凑。但是其造成CPU资源紧张,程序的多任务处理难度增大,不利与提高和扩展系统性能,也不利于向其他系统移植。方案二则与方案一相反,虽然硬件增加,但在程序设计上有充分的自由去改善速度测量精度,缩短测量周期,优化键盘,显示及扩展其它功能。与此同时,PID控制算法的实现可以精益求精,对程序算法或参数稍加改动即可移植到其他PID控制系统中。因此通过比较,选择方案二。1.2转速测量方案论证方案一:采用记数的方法。具体是通过单片机记单位时间S(秒)内的脉冲数N,每分钟的转速:M=N/S60。方案二:采用定时的方法。是通过定时器记录脉冲的周期T,这样每分钟的转速:M=60/T。比较两个方案,方案一的误差主要是1误差(量化误差),设电机的最低设计转速为120转/分,则记数时间S=1s,所以其误差得绝对值|=|(N1)/S60-N/S60|=60(转/分),误差计算公式表明,增大记数时间可以提高测量精度,但这样做却增大了速度采样周期,会降低系统控制灵敏度。而方案二所产生的误差主要是标准误差,并且使采样时间降到最短,误差=60/(T1)-60/T,设电机速度在1206000转/分之间,那么0.01sT0.5s,代入公式得:0.00024|0.6(转/分)。由此明显看出,方案二在测量精度及提高系统控制灵敏度等方面优于方案一,所以本设计采用方案二。1.3电机驱动方案论证 方案一:采用专用小型直流电机驱动芯片。这个方案的优点是驱动电路简单,几乎不添加其它外围元件就可以实现稳定的控制,使得驱动电路功耗相对较小,而且目前市场上此类芯片种类齐全,价格也比较便宜。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。 通过比较和对市场因素的考虑,本设计采用方案一,使系统的设计核心在PID控制上。1.4键盘显示方案论证方案一:采用44键盘,可直接输入设定值。显示部分使用4位数码管,优点是显示亮度大,缺点是功耗大,不符合智能化趋势而且不美观。方案二:使用4个按键,进行逐位设置。显示部分是使用支持中文显示的LCD,优点是美观大方,有利于人与系统的交互,及显示内容的扩展;缺点是成本高,抗干扰能力教差。为了系统容易扩展、操作以及美观,本设计完全采用方案二。1.5 PWM软件实现方案论证 脉宽调制的方式有三种:定频调宽、定宽调频和调宽调频。本设计采用了定频调宽方式,采用这种方式的优点是电动机在运转时比较稳定,并且在采用单片机产生PWM脉冲的软件实现上比较方便。对于实现方式则有两种方案。方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范围。由于本设计采用了两片AT89S52单片机,MCU资源充足,因此选择方案一。2系统原理框图设计系统原理框图如图2.1所示,是一个带键盘输入和显示的闭环测量控制系统。主体思想是通过系统设定信息和测量反馈信息计算输出控制信息。单片机(速度的测量计算、输入设定及系统控制)单片机(PID运算控制器、PWM模拟发生器)电机速度采集电路电机驱动电路键 盘显示器图2.1 系统原理框图3各模块的分析、计算与硬件电路设计3.1速度测量电路的设计3.1.1转速/频率转换电路的设计理论上,是先将转速转化为某一种电量来测量,如电压,电流等。设计中将转速测量转化为电脉冲频率的测量。基于这一思想,可以采用一对霍尔感应传感器,使输出信号的一只在转轮一侧固定,另一只则粘在对应位置的转轮上,这样,电机每转一圈,传感器将会输出一个脉冲,然后将脉冲放大、整形后即可通过单片机测量其频率求出转速。实际实验中,由于市场采购原因,暂用三极管输出型红外光电耦合器代替霍尔传感器。如图3.1所示,在电机转轮一处开孔,这样,每转一圈,三级管(红外接收头)透光导通一次,OUT端输出一个上脉冲,即完成了转速频率的转换3.1.2脉冲滤波整形电路的设计由于电机在转动的过程中有很大的晃动,而且本设计中测量装置做工粗糙,因此所获得的脉冲信号参杂有高频噪声或误动脉冲。为了提高测量的准确,且尽可能地减少错误,设计中如图3.2所示OUT输出端加一电容接地。为了既能抑制噪声又不影响测量,电容值C的选择很重要。根据实际测量,设计中所使用的直流电机转速可达6000转/分。其所产生的脉冲周期T=1/(6000/60)S=0.01S,一个周期内,脉冲持续时间约为1/8T=0.00125S,低电平时间约为7/8T=0.00875S,由于接收头感光导通电阻很小,所以电容迅速充电,当低电平到来时开始放电,为保证下一个脉冲的检测,放电时间t应小于低电平持续时间7/8T,根据电路,t=R2C0.00875,代入R2值解不等式可得:C0.000017F。单位换算得C0.017F ,为了方便整形,实际设计中C=0.001F 。由于单片机中断I/O口的需要输入信号是正规的矩形脉冲,所以电路的脉冲整形电路采用74系列反向器74LS06进行两次反向后输入单片机。图3.1转速/频率转化电路图3.2脉冲滤波整形电路3.2 电机驱动电路的设计3本设计采用目前市场上较容易买到的L298N直流或步进电机驱动芯片,它采用单片集成塑装, 是一个高电压、大电流全双桥驱动器,由标准的TTL电平控制。L298N支持50V以内的电机控制电压,在直流运转条件下,可以通过高达2A的电流,因此它满足了一般小型电机的控制要求。其内部原理结构如图3.3。接法见图3.4,图中二极管的作用是消除电机的反向电动势,保护电路,因此采用整流二极管比较合适。PWM控制信号由in1、in2输入。如果in1为高电平,in2为低电平时电机为正向转速,反之in1为低电平,in2为高电平时,电机为反向转速。本设计将in2直接接地,即采用单向制动的方式。通过实验,本设计中不必使用双向制动也可达到设计要求。图3.3:L298N内部原理结构图图3.4:电机驱动电路3.3 LCD显示电路与单片机的接口设计设计中采用的LCDRT12232F是一种内置8192个16*16点汉字库和128个16*8点ASCII字符集图形点阵液晶显示器,它主要由行驱动器/ 列驱动器及12832全点阵液晶显示器组成。可完成图形显示,也可以显示7.52个(1616点阵)汉字,与外部CPU接口采用并行或串行方式控制。本设计采用并行方式控制,LCD与单片机的通讯接口电路如图3.5所示采用直连的方法,这样设计的优点是在不影响性能的条件下还不用添加其它硬件,简化了电路,降低了成本。4 系统总程序框图设计 系统程序程序框图如图4.1所示,概述了程序的总体结构和工作过程。开始系统初始化显示初始化调用按键子程序系统总控制器PID控制器开始系统初始化PID参数初始化空操作(循环用)有键按下?无键处理子程序PID参数计算中断0接收设定值子程序中断返回中断1接收测量值子程序中断返回PID计算处理计算PWM定时值定时中断0、外中断0测量计算转速发送测量值有中断返回定时中断1系统时间记时、处理中断返回属于总控制器通过按键完成发送设定值图3.5:LCD显示电路与单片机的接口图4.1系统总程序框图5系统各部分子功能程序设计5.1电机转速测量程序设计设计中考虑到电机的工作环境一般比较恶劣,因此除了硬件外,从程序上除了要更高的精确度也需要进行更多的抗干扰设计,从而实现软件的大范围检错、纠错或丢弃错误等。在程序的设计过程中,对严重不符合要求的测量数据(如大于6000转对应的数据)进行了丢弃处理,而对于正常范围内的数据错误采用了采5取3求平均的算法(即采集5个数据,去掉 一个最大值一个最小值,然后将剩余3数据求平均)。实验表明,此方法降低了系统采集转速中出现的错误。对于转速的测量方法,是通过速度脉冲信号下降沿触发单片机的外中断,中断服务子程序在某一个脉冲的下降沿开启定时器记时,然后在下一个下降沿关闭定时器,通过对定时器数据进行运算处理可以得到信号周期进而得到速度值。其程序框图如图5.1。可以看出,此方法下的采样周期是随转速变化的,转速越高采样越快。通过这种非均匀的速度采样方式可以使电机在高速情况下,实现高速度高精度的控制。否为“0”为“1”否否是是否是进入中断检测中断标志开定时器记时设中断标志为“1”系统时间初始化中断返回关闭定时器及总中断判断数据是否正常保存数据是否“采5”处理?说明:当电机转速过低时,如果进行采3取5处理将会使控制速度太低,同时低速状态的错误发生几率较小,所以不采用采5取3求平均处理。完成5组数据采集?“取3“求平均处理计算速度值速度值是否正常?发送速度值到PID 控制器系统时间初始化定时器初值初始化中断返回图5.1外中断0服务子程序框图5.2键盘程序设计 键盘程序设计的任务是赋予各按键相应的功能,完成速度设定值的输入和向PID控制器的发送。4只按键一只用来位循环选择,告诉单片机要调整的是设定值的个位、十位、百位还是千位。第二、三只按键分别是减1、加1减。在没有位选择的情况下对设定值整体进行减1、加1;在有位选择的情况下仅对相应位进行减1、加1,并且当按着不释放按键时可以实现快速连续减1、加1,同时允许循环减、加(既当某位为0时,在减1则为9,某位为9时,加1则为0)。最后一只按键是确认发送键,按下它后,单片机将设定值送给PID控制器,从而实现设定控制。程序框图如图5.2。键盘服务子程序位选键按下否?加1键按下否?减1键按下否?位选循环右移调用加1子程序调用减1子程序否否否否发送键按下否?是是是键值处理、保存、显示向PID控制器发送返回图5.2:键盘电路程序框图5.3 LCD显示子程序的设计4LCD的详细使用过程可参阅对应型号的使用手册。仅在本小节强调以下内容:LCD 使用的关键是根据显示需要正确地对其进行初始化设置,而一般情况下不用考虑如何向它读写指令或数据,因为制造厂商所给的使用资料里就附有驱动程序,如果没有也可以从网上搜索下载得到。然而我们必须清楚那些初始化设置之间的关系,以及它是如何利用设置读取、显示数据字符的,不然就会发生一些不可预料的错误,例如表5.3所示。因此,熟读LCD驱动芯片使用手册也是一个关键环节。表5.3 LCD中文字型的编码写入地址对照 在RT12232F中,CGRAM字型与中文字型的编码只可出现在每一Address Counter的开始位置,图表中最后一行为错误的填入中文码位置,其结果会产生乱码象。系统延迟设定使用基本指令集清屏,地址指针归位设定游标的移动方向及指定显示的移位返回LCD初始化子程序调入待显示数据指针调用写入指令子程序写入DDRAM地址调用数据输入子程序计算DDRAM地址调待显示屏幕位置数据待显示数据指针加1一行数据显示完?否返回显示完所有行?否是是LCD写入显示数据子程序图5.4 LCD显示初始化程序和写数据程序框图通常LCD的初始化包括复位设置、清除显示、地址归位、显示开关、游标设置、读写地址设置、反白选择以及睡眠模式等等。实际中根据需要,正确、灵活地修改这些设置可以达到较为满意的显示效果。LCD 中所有汉字、数字和字符都可以通过它的ASCII码来访问显示;图象的显示是通过将相关软件(提取汉字、图象点阵数据程序)产生的数据按照LCD手册的要求完成响应设置后写入即可。由于本设计中没有使用到图形显示,所以没有详述。对于系统使用的汉字、字符和数据的LCD显示初始化程序和写数据程序框图见图5.4。6数字PID及其算法的改进6.1 PID控制基本原理PID控制即比例(Proportional)、积分(Integrating)、微分(Differentiation)控制。在PID控制系统中,完成PID控制规律的部分称为PID控制器。它是一种线形控制器,用输出y(t)和给定量r(t)之间的误差的时间函数e(t)=r(t)-y(t). PID控制器框图如图6.1。实际应用中,可以根据受控对象的特性和控制的性能要求,灵活地采用不同的控制组合,如:R(t)KpKi/SKdS控制对象C(t)U(t)E(t)6.1PID控制算法框图比例(P)控制器:比例积分(PI)控制器:比例+积分+微分(PID)控制器:比例+微分(PD)控制器:式中,Kp为比例运算放大系数,Ti为积分时间,Td为微分时间。6.2三个基本参数Kp,Ti,Td在实际控制中的作用研究通过使用MATLAB软件中SIMULINK 的系统仿真功能对PID算法进行仿真,现将结果作以下概括。比例调节作用:是按比例反映系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差,属于“即时”型调节控制。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降甚至造成系统的不稳定。积分调节作用:使系统消除静态误差,提高无误差度。因为有误差,积分调节就进行,直至无误差,积分调节停止,积分调节输出一常值,属于“历史积累”型调节控制。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差的变化趋势,因此能产生超前的控制作用,在偏差还没有形成之前,以被微分调节作用消除,因此属于“超前或未来”型调节控制。因此,可以改善系统的动态性能。在微分时间选择合适的情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反映的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。6.3数字PID控制算法1在单片机数字控制系统中,PID控制算法是通过单片机程序来实现的。对于数字信号处理,不论是积分还是微分,只能用数值计算去逼近。当采样周期相当短时,用求和代替积分,用差商来代替微商,使PID算法离散化,将描述连续时间PID算法的微积分方程,变为描述离散时间PID算法的差分方程。其算法变换如图6.2注释1。图6.2数字PID算法图中PID算法为非递推形式,称为全量算法。为了求和,必须将系统偏差的全部过去值e(j)(j=0,1,2)值都存储起来。这种算法得出了控制量的全量输出u(k),是控制量的绝对数值。在控制系统中,这种控制量决定了执行机构的的位置,比如,在本设计电机控制系统中,这种算法的输出对应了相应的速度值。因此,人们将这种算法称为“位置PID算法”。除了“位置PID算法”以外,常见的还有增量式PID控制算法。当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID“增量算法”。此算法可由“位置PID算法”求出。如图6.3所示增量式PID算法推理过程。综合两种算法,本设计是产生一个PWM信号去控制直流电机,PWM信号的高电平持续时间对应的控制量是一个绝对值,而不是一个控制量的增量。但是如果采用“位置PID算法”则需要考虑控制量的基值u0,即Kp=0时的控制量,而直接用增量式PID算法只能计算出控制量的增量。所以,设计中,先采用增量式控制控制算法计算出控制量的增量,然后加上上一次的控制量即可以得到本次的控制量,其表达式见图6.4。综合来说,本系统的PID算法是以增量式算法实现“位置PID算法”的结果,使控制得到简化、容易实现。图6.3增量式PID算法图6.4本设计PID算法表达式6.4 PID算法的改进,“饱和”作用的抑制2抑制PID算法的“饱和”作用,通常有两种方法。一种算法是遇限削弱积分法,其基本思想是:一旦控制变量进入饱和区,将只执行削弱积分项的运算而停止进行增大积分项的运算。具体地说,在计算u(k)时,将判断上一时刻的控制量u(k)是否已超出限制范围,如果已超出,那么将根据偏差的符号,判断系统输出是否在超调区域,由此决定是否将相应偏差计入积分项。另一种算法是积分分离法。减小积分饱和的关键在于不能使积分项累积过大。第一种修正方法是一开始就积分,但进入限制范围后即停止累积。后者介绍的积分分离法正好与其 相反,它在开始时不进行积分,直到偏差达到一定的阀值后才进行积分累计,算法流程图见图6.5。图中,A,B,C分别代表q0,q1,q2。这样,一方面防止了一开始有过大的控制量,另一方面即使进入饱和后,因积分累积小,也能较快退出,减少了超调。 由于本系统的控制对象是一个具有惯性或称其为滞后特性的直流电机,一方面要求控制要尽可能高的反映速度,另一方面也要尽可能减少超调。因此,积分分离法比较适合本系统。综合上面关于PID算法的研究,已经得出一个针对本系统的PID算法“增量式积分分离PID控制算法”。在此控制算法中,误差较大时采用的是PD算法控制。 在PID控制器的实现过程中,发现不同的电机除了惯性不同外,还有一个参数不容忽略,那就是电机在转动过程中的摩擦力。由于摩擦力总是阻碍电机转动,所以相当于额外的给控制量对应的电动机转矩加了一不定量的负转矩。如果PID的输出的控制增量对应的转矩为正,则会抵消一部分增量,但如果PID输出的控制增量对应的转矩为负,则会助长这一增量。如此以来,如果电机在加速过程中使用和减速过程中同样的PID参数,就有可能出现加速欠条,减速超调的情况。实验中,也证明了这一分析的正确性。 解决这一问题的方法是利用微分项的校正作用,在电机加速状态,和减速状态采用不同的微分系数,即在不同的时段采用不同的微分系数,其中加速时微分系数为Kd1,减速时微分系数为Kd2。这样系统的控制算法就成为“变系数增量式积分分离控制算法”了,可以通过设定参数得到更佳的校正作用。开始PID参数初始化取给定值r(k)和测量值c(k)|e(k)|e(k)=r(k)-c(k)u(k)=q0e(k)+ q1e(k-1)+ q2e(k-2)u(k)= q0e(k)-f(k-1)u(k)= u(k)+u(k-1)f(k)= q1e(k)输出u(k)g(k-1)=g(k)f(k-1)=f(k)e(k-1)=e(k)返回 图6.5增量式积分分离PID算法流程图6.5 PID控制算法的单片机程序实现要编写一个已知算法的单片机程序,首先要考虑的就是数据的结构和存储方式了。因为它直接影响到系统的控制精度,以及PID算法的实现质量。本系统之所以专门采用一片单片来实现PID算法,就是因为从一开始的设计思路就是尽可能高的提高系统的控制精度。要提高系统的控制精度,在计算过程中仅取整数或定点小数是不够的,所以本设计采用三字节浮点数运算。对于AT89S52单片机而言,有足够的内存去存储和处理这些数据。另外,为了使程序的参数修改方便,更易于应用到其他PID控制系统中去,在一开始的参数赋值程序中,参数是以十进制BCD码浮点数存储的,参数赋值完成后,紧接着就是对参数进行二进制浮点数的归一化处理,以及复合参数q0,q1,q2等的计算。这些工作在系统启动后迅速就完成了,之后PID控制器只进行PID核心控制算法的计算。PID算法的程序框图如图6.5 所示算法。由于本系统采用的是单级单向调速, 所以当PID控制算法的输出结果u(k)为负数时就将其清另零了,当大于系统饱和值时,赋值u(k)为饱和值。7 PWM信号的单片机程序实现理论上,只要PWM脉冲的周期正比于PID控制算法的输出结果结果。具体实现过程中,取u(k)的整数部分(记为:UT)保存,然后用PWM信号的周期值减去UT所得值即为定时器1的初值(记为:INIT)。其程序框图见图7.1。定时器0中断将PWM输出端置高电平“1”装入50ms初值设定时器1中断优先级最高中断返回定时器1中断设定时器0中断优先级最高将PWM输出端清零装入PWM信号初值INIT中断返回图7.1:产生PWM控制信号程序框图。8 系统的调试过程与测试8.1转速度测量部分调试 将数字示波器探头加在转速脉冲整形电路输出端,使电机处于某一稳定转速下,通过比较示波器显示的频率和LCD显示的实测值,如表8.1,发现转速测量误差不会大于1,从而验证了转速测量部分设计的正确。之所以一次通过实验,不用修改,是因为之前进行了反复的软件调试与仿真。8.2 PID各项系数赋初值电机启动时,PID控制器接收第一组设定值和实测值,通过程序计算得到误差值e(k)。此时,系统初始化e(k-1)、e(k-2)、u(k)、u(k-1)值为0。由于一开始系统只进行PD运算,所以要获得合适的电机启动转矩,比例系数Kp和微分系数Td1的计算如下。首先进行一次开环实验,实验数据如表8.2。u(k)400050006000转速N113422163263表8.2开环实验数据表为了确定Kp,初步赋值T=2.4,Td1=4。设电机启动时速度设定为1000转/分,则e(k)=1000,e(k)-e(k-1)=1000,从开环实验数据可以看出,若要电机在第一时间以较大转矩启动,那么u(k)应大于4000,计算时设u(k)=4000,则,=4000 ,代入各参数值得Kp=2.33。现在暂不考虑电机转动摩擦得影响,使Td2=Td1=4,且设当误差值小于=100时进行PID算法。PID算法的比例系数也适用Kp,积分系数初步赋值1.2,微分系数Td=Td1=4。8.3实验调试和确定PID算法各项系数 调试过程经历了一下几个步骤8.3.1赋初值调试分析。将各参(系)数已赋初值的程序编译、烧写到单片机。系统启动后,转速设定为1000转/分。实验发现,电机迅速启动,但一会处于超调状态,一会处于欠调,至停转状态,大约经过1分钟震荡期,系统基本稳定,偶尔出现短时失调现象。失调时,电机转速在8901100之间浮动,稳定时,转速在9801020之间浮动,静差较大。修改设定值为2000转,电机迅速加速,与达到1000转/分时的过渡和稳定状态相似,但震荡周期缩短至大约20秒钟。结果分析:启动时,电机处于长时间的震荡期可能是由于比例系数过大,使累加的正向制动转矩过大或微分项的矫正调节作用不够。稳态时,电机转速静差较大,可能是积分系数设置不当或者是微分作用过强导致干扰被放大引起。综合暂态和稳态的分析结果得出,比例系数设置过大,其它系数暂时还不能确定。对于短时失调现象,是由于转速测量过程被干扰产生错误所至。8.3.2修改PID各项系数值调试分析使比例系数Kp=1.12再次以同上方法调试。实验结果发现,电机转速调整相对缓慢,但电机震荡周期缩短至20秒左右,系统由超调和欠调问题有所改善,但稳态时,电机仍然会出现短时失调现象,且静差大,转速浮动范围在9801020转/分。结果分析:若继续减小比例向则会使系统即时调整变慢,积分作用虽然可以消除静差,但可以减缓系统调节,因此系统的不稳定。微分项的矫正力度还不够,微分系数需要往大调整。而对积分项适当削弱。再次实验,结果表明,系统调整加速,但其它性能改善并不明显。8.3.3 PID各项系数值的确定参照6.2节得出的结论,反复通过实验分析修正PID各项系数,各项系数确定值见表8.3。系统最终处在一个较佳的工作状态:启动时,电机经过约5秒钟进入稳定状态,没有出现过大的超调或欠调。稳态时,转速误差在3转/秒。由于转速测量装置晃动大,由此引起的测量值会意外发生错误,使电机有时会出现转速的瞬间飙升或骤减,但不会引起系统失调,系统会迅速自动调整转速,再次达到稳定状态。KpTTiTdTd1Td21.022.341.022.163.841.11100表8.3 PID各系数值9结束语本设计完成了设计的基本要求和扩展要求,由于所使用的直流电机的启动速度在700转/分左右,所以电机的转速测量控制范围为8005000转。另外,PID参数的确定需要反复的实验观测,所以本系统的PID各参数设置不一定都是较理想的选择,但系统稳定时控制精度可达1转/分。根据实际需要,若要进一步提高系统控制的反映速度、精确度和稳定度还需要设计更稳定和精确的转速测量电路以及设置更准确的PID参数。最后,为了提高系统的灵活性和可移植性,可以再设计一个键盘输入电路,用来随时修改PID参数。这样也避免了反复烧写程序带来的麻烦,节约设计时间。注释1图3.14和图3.15及设计中其它位置所使用到的数学公式或代数式是在Mathematica 5软件环境下编辑完成的,因其无法转换成Word文档可识别字符,所以以图片形式表示。
展开阅读全文