毕业设计(论文)新型PID控制器的设计与仿真.doc
新型PID控制器的设计与仿真摘 要本文在以数字PID控制器研究为背景随着数字控制技术的发展,我们在控制器的设计上有了更大的灵活性,一些原来在模拟PID控制器中无法实现的问题,现在我们很容易就能在数字计算机上实现了,于是产生来了一系列改进的控制算法,形成非标准的控制算法,改善系统品质,满足不同控制系统的需要。本文对PID控制器进行了详细的介绍,并系统的阐述了PID控制器的概念、原理及分类。通过对数字PID控制器的认知,本文分析了计算机控制系统中最常用的PID控制器以及在工程应用中遇到的积分饱和问题,并介绍了几种抗积分饱和的方法。通过MATLAB仿真,与普通PID算法进行了比较,并得到了较好的效果。总结了几种抗积分饱和的方法,并提出了自己的看法。关键词:数字PID;积分饱和;积分分离AbstractWith the digital control technology of this digital PID controller in the background, we design the controller has more flexibility, some of the original analog PID controller can not realize the problem, and we can easily can be realized in the digital computer now, then created a series of improvements to the control algorithm to form a non-standard control algorithm to improve system quality, to meet the needs of different control systems.In this paper, Give a detailed description of the PID controller. Then descripted its system concept, principles and classification. Digital PID controller on the cognitive, The problem of integral saturation occurred in engineering application of PID controller which is most common in the computer control system was analyzed. By MATLAB simulation, and compared with ordinary PID algorithm and get better results. Summary of several anti-windup approach and put forward their own views.Key Words: Digital PID; Integral saturation; Integral Separation目 录1 引言12 常规数字PID控制原理22.1 PID控制原理22.2 常规数字PID控制算法32.2.1 连续系统的模拟PID控制算法32.2.2 数字控制系统42.2.3 位置式PID控制算法52.2.4 增量式PID控制算法73 抗积分饱和的数字PID控制算法103.1 数字PID控制中的积分饱和现象103.2 积分饱和效应的解决方法123.2.1 积分分离PID控制算法123.2.2 抗积分饱和PID控制算法143.2.3 变速积分PID控制算法164 新型PID控制器MATLAB仿真分析184.1 控制系统仿真软件184.2 阶跃响应仿真结果分析194.2.1 积分分离PID与常规PID算法仿真分析194.2.2 抗积分饱和PID控制算法仿真214.2.3 变速积分PID算法仿真分析225 结论25致 谢26参考文献27附录1 部分仿真源程序281 引言工业生产过程中,对于生产装置的温度、压力、流量、液位等工艺变量常常要求维持在一定的数值上,或按一定的规律变化,以满足生产工艺的要求。自从计算机进入控制领域以来,用数字计算机代替模拟计算机调节器组成计算机控制系统,不仅可以用软件实现PID控制算法,而且可以利用计算机的逻辑功能,使PID控制更加灵活。数字PID控制在生产过程中是最普遍采用的控制方法,在机电、冶金、机械、化工等行业中获得了广泛的应用。将偏差的比例(P)、积分(I)和微分(D)通过线形组合构成控制量,对被控对象进行控制,故称PID控制器。PID控制器有三个环节:比例环节;积分环节;微分环节,通过不同方法改变各个环节,可以达到相应所需的要求。PID 控制器是应用最广泛的控制器。据不完全统计,在工业过程控制、航空航天控制等领域中,PID 控制器占80%以上PID 控制器是一个在工业控制应用中常见的反反馈回路部件。这个控制器把收集到的数据和一个参考值进行比较,然后把这个差别用于计算新的输入值,这个新的输入值的目的是可以让系统的数据达到或者保持在参考值。和其他简单的控制运算不同,PID控制器可以根据历史数据和差别的出现率来调整输入值,这样可以使系统更加准确,更加稳定。可以通过数学的方法证明,在其他控制方法导致系统有稳定误差或过程反复的情况下,一个PID反馈回路却可以保持系统的稳定。本课题主要研究数字PID控制器的设计方法,常规的数字PID算法有位置式PID控制算法和增量式PID控制算法。由于PID控制中存在积分饱和效应,课题针对数字PID控制中的积分饱和效应,对几种抗积分饱和的算法进行研究分析,同时了解最新的抗积分饱和控制方法及其发展方向,最后对这一课题提出自己的改进思路。2 常规数字PID控制原理2.1 PID控制原理在模拟控制系统中,控制器最常用的控制规律是PID控制器。模拟PID控制系统原理框图如图2-1所示。系统由模拟PID控制器和被控对象组成1。PID控制器(比例-积分-微分控制器),由比例单元 P、积分单元 I 和微分单元 D 组成。通过,和三个参数的设定。PID控制器主要适用于基本线性和动态特性不随时间变化的系统2。图2-1 PID控制器原理框图PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。比例(P)调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。积分(I)调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。微分(D)调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。2.2 常规数字PID控制算法2.2.1 连续系统的模拟PID控制算法PID控制器是一种线性控制器,他根据给定值与实际输出值构成控制偏差 (2-1)PID的控制规律为 (2-2)式中:比例增益,与比例度成倒数关系,即:; 积分时间常数; 微分时间常数; PID控制器的输出信号; 给定值与测量值之差(即)。对式(2-2)进行拉氏变换,可以得到: (2-3)从式(2-2)可以看出,PID控制器的输出由三项构成:比例控制、积分控制和微分控制。比例控制能迅速反映偏差,调节作用及时,从而减少偏差。但是比例控制不能完全消除无积分器的对象的稳态误差,当调的太大时,可能引起系统不稳定。积分控制的作用是,只要系统存在误差,积分控制作用就不断地积累,积分项对应的控制量回不断增大,以消除偏差。因而,只要有足够的时间,积分控制将能完全消除偏差。积分控制是靠对偏差的积累进行控制的,其控制作用缓慢,如果积分作用太强会使系统超调加大,甚至使系统出现振荡。微分控制具有预测误差变化趋势的作用,可以减少超调量,克服振荡,使系统的稳定性得到提高,同时可以加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。2.2.2 数字控制系统数字控制系统是一种以数字计算机为控制器具有连续工作状态的被控对象的闭环控制系统。因此,数字控制系统包括工作在离散状态下的数字计算机和工作于连续状态下的被控对象两大部分。由于数字控制系统具有一系列的优越性,所以在军事、航空及工业过程控制中,得到了广泛的应用3。数字计算机在对系统进行实时控制时,每隔T秒进行一次控制修正,T为采样周期。在每个采样周期中,控制器要完成对于连续信号的采样编码(即A/D过程)和按控制律进行的数码运算,然后将计算结果由输出寄存器经解码网络将数码转换成连续信号(即D/A过程)。因此,A/D转换器和D/A转换器是计算机控制系统哦中的两个特殊环节。计算机控制系统的典型原理图如图2-2所示。图2-2 计算机控制系统典型原理图由于在离散系统中存在脉冲或数字信号,如果仍然沿用连续系统中的拉式变换方法来建立系统各个环节的传递函数,则在运算过程中会出现复变量的超越函数4。为了克服这个障碍,需要采用变换法建立离散系统的数学模型。我们将会看到,通过变换处理后的离散系统,可以把用于连续系统中的许多方法,例如稳定性分析、稳态误差计算、时间响应分析方法等,经过适当改变后直接应用于离散系统的分析之中。采样和数控技术,在自动控制领域中得到了广泛的应用,其主要原因是采样系统,特别是数字控制系统之相应的连续系统具有一系列的特点:1)由数字计算机构成的数字校正装置,效果比连续式校正装置好,且由软件实现的控制规律易于改变,控制灵活。2) 采样信号,特别是数字信号的传递可以有效地抑制噪声,从而提高了系统的抗扰能力。3)允许采用高灵敏度的控制元件,以提高系统的控制精度。4)可用以台计算机分时控制若干个系统,提高了设备的利用率,经济性好。5)对于具有传输延迟,特别是大延迟的控制系统,可以引入采样的方式稳定。2.2.3 位置式PID控制算法由于计算机控制是一种采样控制,它只能根据采样时刻的偏差来计算控制量。因此,在计算机控制系统中,必须对(2-2)式进行离散化处理,用数字形式的差分方程式代替连续系统的微分方程,此时,积分项和微分项可以用求和及增量式表示: (2-4)式中,T为采样周期。根据式(2-2)和式(2-4),可以求出对应的差分方程为: (2-5)式(2-5)就是基本的数字PID控制算法。控制器仍然由三项构成,第一项是比例控制;第二项是数字积分控制;第三项是微分控制。因为式(2-5)中控制器的输出直接对应于执行机构的位置,如阀门的开度等,因此式(2-5)称为位置型PID控制算式5。位置式PID控制系统如图2-3所示。图2-3 位置式PID控制系统为了编写程序方便,我们把式(2-5)第k次采样时的PID的输出写为:式中:;。将上式做进一步改进,设比例项输出如下:积分项输出:微分项输出如下:所以,上式可以写成:其流程图如图2-4所示。图2-4 位置式PID控制算法系统框图2.2.4 增量式PID控制算法 增量式PID控制系统如图2-5所示。图2-5 增量式PID控制系统由式(2-5)可以看出,要想计算,不仅需要本次与前次的偏差信号和,而且还要在积分项中把历次的偏差信号进行相加,即。这样,不仅计算麻烦,而且为了保存还要占用很多内存。因此,用上式直接进行控制很不方便,为此,我们做如下的改动6。第k-1次采样的控制算式是: (2-6)两次采样控制器输出的增量是: (2-7)由上式可以看出,要计算第k次输出值,只需要知道,即可,也就是说只需要,显然,比式(2-5)简单得多。在很多控制系统中,由于执行机构是采用步进电机或者多圈电位器进行控制的,所以,只要给一个增量信号即可。为了编写程序方便,我们把式(2-7)写成: 其中:。其流程图如图2-6所示。 图2-6 增量式PID控制算法系统框图位置式算法和增量式算法相比较可以看出:(1)增量型PID算法不需做累加,计算误差后产生的计算精度问题,对控制量的计算影响较小。位置型PID算法用到过去的误差的累加,容易产生较大的累加误差。(2)增量型PID算法得出的是控制的增量,误动作影响小,必要时通过逻辑判断限制或禁止本次输出,不会影响系统的工作。位置型PID算法的输出是控制量的全部输出,误动作影响大。(3)增量型PID算法易于实现手动/自动的无扰动切换。而位置型PID算法中,由手动到自动切换时,必须首先使计算机的输出值等于阀门的原始开度,即,才能保证手动/自动的无扰切换,这将给程序设计带来难度。(4)增量型PID算法不产生积分失控,所以容易获得较好的调节品质。增量型PID算法因其特有的优点已经得到广泛的应用。但是,这种控制方法也有不足之处,例如:积分截断效应大,有静态误差;益处的影响大。因此,在实际应用中,应该根据被控对象的实际情况加以选择。一般认为,在以晶闸管或者伺服电机作为执行器件,或者对控制精度要求较高的系统中,应当采用位置型PID算法,而在以步进电机或者多圈电位器做执行器件的系统中,则应该采用增量型PID算法。3 抗积分饱和的数字PID控制算法3.1 数字PID控制中的积分饱和现象数字PID控制系统的原理框图如图3-1所示。该控制系统由数字PID控制器、执行机构和被控对象组成7。图3-1 数字PID控制系统原理框图由于数字PID控制是一种采样控制,它只能根据采用时刻的误差来计算控制量。在采样时刻(为采样周期,为正整数),模拟PID的调节方程 (3-1)经离散化后可得到位置式算法公式 (3-2)在实际的控制系统中,控制量世界输出值往往受到执行机构性能的限制(如阀门的开度),而被限制在一定的范围内,即 (3-3)其变化也局限在一定的范围,即 (3-4)如果控制量在上述范围内,那么PID控制可以达到预期效果;一旦超出上述范围(如超出阀门的最大开度),则实际执行机构的控制量就不再是计算值。这相当于在系统中串联了一个饱和非线性环节(如图3-2所示),因此,将引起不期望的效应,即饱和效应8。图3-2 具有饱和作用的系统结构图如果被控制对象由于负荷突变的原因,引起误差的阶跃,由式(3-2)计算出的控制量超出控制范围,如果,那么实际上控制量就只能取上限值, 而不是计算值,具体情况如图3-3所示,图中a为理想情况下的控制,b为有限时积分饱和。图3-3 PID位置式算法的积分饱和此时,被控参数值虽在不断上升,但由于控制量受到限制,其增长要比没有受到限制时慢,误差将比正常情况下持续更长的时间保持在正值,从而使式(3-2)中的积分项有较大的累积值。当被控参数超出给定值后,开始出现负值,但由于积分项的累积值很大,还要经过一段时间后,控制量才脱离饱和区,这样就使系统出现明显的超调。在对超调量有严格限制的系统(如锅炉水位控制系统)是不允许的,这种饱和作用是由积分项引起,故称为积分饱和。3.2 积分饱和效应的解决方法数字PID调节器中的积分饱和作用主要引起大幅度的超调,使系统稳定性下降7。如上所述,积分项是引起积分饱和的主要原因、所以消除积分饱和的关键在于不能使积分项过大,可采用的方法有积分分离PID控制算法,抗积分饱和PID控制算法及变速积分PID控制算法等。3.2.1 积分分离PID控制算法积分分离的的基本思路是:当被调量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定值时, 引入积分控制,以便消除静差,提高控制精度9。其具体实现步骤如下: (1)根据实际情况,认为设定阈值; (2) 当时,采用 PD控制,可避免过大的超调,又使系统有较快的响应;(3) 当时,采用 PID控制,可保证系统的控制精度。积分分离算法可表示为 (3-5)式中,T为采样时间,项为积分项的开关系数。 (3-6)利用积分分离PID算法的程序框图如3-4图所示。 图3-4 积分分离PID控制算法程序框图图3-5显示了PID控制有无积分分离算法的对比。在给定值突变时,无积分分离算法的输出曲线出现了比较大的超调量,而具有积分分离算法的输出曲线b的超调量很小。因为在时,工作在积分分离区,积分不累计。积分分离阈值应该根据具体对象及控制要求确定,若值过大,达不到积分分离的目的;若值过小,则一旦被控量无法跳出各积分分离区,只进行PD控制,将会出现残差。从图中可以看出,使用积分分离法后,显著降低了被控变量的超调量和过渡过程的时间,使得调节性能得到改善8。图3-5 有无积分分离的算法比较在微型计算机控制系统中,某些系统为了避免控制动作过于频繁,引起过度磨损,过度疲劳,为了消除由于频繁动作所引起的震荡,在允许一定的误差范围内,有时候也采用带死区的积分分离PID控制算法,如图3-6所示。图3-6 带死区的积分分离PID控制器结构图死区是一个非线性环节,其输出为: (3-10)死区阈值是一个可调参数,其具体数值可以根据实际控制对象由实验确定。当=0时,即为常规PID控制;值太小,会使调节过于频繁,达不到稳定被控对象的目的;值太大,则系统将产生很大的滞后。带死区的控制系统实际上是一个非线性系统,当 时,数字调节器输出为零;当时,数字输出调节器有PID输出。3.2.2 抗积分饱和PID控制算法抗积分饱和PID控制算法实际上就是,当控制进入饱和区以后,便不再进行积分项的累加,而只执行削弱积分的运算。因而,在计算时,先判断是否已超出限制值。若,则只累加负偏差;若,则累加正偏差,其程序框图如图3-7所示。采用抗积分饱和PID控制算法后,可以避免控制量长时间停留在饱和区。抗积分饱和法抑制积分饱和示意图如图3-8所示。图3-7 抗积分饱和PID控制算法程序框图图3-8 抗积分饱和法抑制积分饱和示意图3.2.3 变速积分PID控制算法在一般的PID调节算法中,由于积分系数是常数,所以在整个调节过程中,积分增益不变。系统对积分项的要求是,系统偏差大时,积分作用就减弱甚至全无,而在偏差较小时则应该加强积分的作用。否则,积分系数取大了会产生超调,甚至出现积分饱和;取小了又迟迟不能消除静差。因此,如果根据系统偏差大小调整积分的速度,对于提高调节品质是至关重要的问题9。变速积分PID较好地解决了这一问题。变速积分PID的基本做法是设法改变积分项的累加速度,使其与偏差大小相对应。偏差大时,积分累积速度慢,积分作用弱;反之,偏差小时,使积分累积速度加快,积分作用增强。为此,设置一个系数,它是的函数,当增大时,减小,反之则增大。每次采样后,用乘以,再进行累加,即 (3-7)式中,表示变速积分项的输出值。系数与偏差当前值的关系可以是线性的,也可以是非线性的,可设为 (3-8)值在0,1区间变化,当偏差大于所给分离区间A+B后,=0,不再对当前值进行继续累加;当偏差小于B时,加入当前值,即积分项变为,与常规PID积分项相同,积分动作达到最高速;而当偏差在B与A+ B之间时,则累加计入的是部分当前值,其值在0-之间随的大小而变化,因此,其积分速度在和之间。变速积分PID算法为 (3-9)变速积分PID与普通PID相比,具有如下的优点:(1)实现了用比例作用消除大偏差,用积分作用消除小偏差的理想调节特性,从而完全消除了积分饱和现象。(2)大大减少了超调量,可以很容易地使系统稳定,改善调节品质。(3)适应能力强,一些常规PID控制不理想的过程可以采用此算法。(4)参数整定容易,各个参数间的互相影响小,而且对A,B两个参数的要求不精确,可做一次性确定。变速积分与积分分离控制方法很类似,但是调节方式不同。积分分离对积分项采用“开关”控制,而变速积分则根据误差的大小改变积分项的速度,属于线性控制。因此,后者调节品质大为提高,是一种新型的PID控制器。4 新型PID控制器MATLAB仿真分析进行控制算法的仿真,关键是要有一个易于使用的仿真平台。MATLAB是目前应用相当广泛的控制系统分析、仿真的最好平台10。4.1 控制系统仿真软件MATLAB程序设计语言是美国Math Works公司于20世纪80年代中期推出的高性能数值计算软件。经过Math Works公司二十几年的开发、扩充与不断完善,MATLAB已经发展成为适合多学科、功能特强、特全的大型软件系统。在国外MATLAB已经经受了多年考验11。在欧美高校,MATLAB已经成为线性代数、自动控制理论、数理统计、数字信号分析与处理、动态系统仿真等高级课程的基本数学工具,成为高校大学生、研究生必须掌握的基础知识与基本技能。MATLAB有以下主要特点。(1)功能强大,适用范围广(2)编程效率高(3)界面友好,用户使用方便(4)扩充能力强(5)语句简单,内涵丰富(6)强大方便的图形功能(7)MATLAB的活笔记本功能(8)MATLAB功能齐备的自动控制软件工具包由于上述特点,使得MATLAB特别适合进行自动控制系统的仿真,完全采用MATLAB函数、语句通过编程就可以建立仿真模型,进行算法仿真。Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境12。在该环境中,不用大量的书写程序,而只需要通过简单直观的鼠标操作,就可以构造出复杂的系统模型。Simulink具有适用面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,广泛应用于控制理论和数字信号处理等复杂系统的仿真和设计。4.2 阶跃响应仿真结果分析4.2.1 积分分离PID与常规PID算法仿真分析设被控对象为一延迟对象采样时间为20s,延迟时间为4个采样时间,即80s,被控对象离散化为采用积分分离式PID控制器进行阶跃响应,对积分分离式PID控制算法进行改进,采用分段积分分离的方式,即根据误差绝对值的不同,采用不同的积分强度12。仿真中指令信号为,控制器输出限制在,其阶跃式跟踪结果如图3-1所示。采用普通PID控制,其阶跃式跟踪结果如图3-2所示。图3-1 积分分离式PID阶跃响应曲线图3-2 采用常规PID阶跃响应曲线由仿真结果看出,采用积分分离方法控制效果得到很大改善。积分环节不仅可以消除静差,提高控制精度,由于根据实际情况人为设误差的阈值,又可避免产生过大的超调,使系统响应速度提高。部分仿真源程序见附录一。图3-3是采用simulink仿真,通过仿真模块实现积分分离PID控制算法。图3-3 积分分离PID算法的simulink模块4.2.2 抗积分饱和PID控制算法仿真设被控对象的传递函数表达式为:采样时间为1mS,采用抗积分饱和算法进行离散系统阶跃响应,仿真结果如图3-4所示。采用普通PID算法进行离散系统阶跃响应,其阶跃响应结果如图3-5所示。图3-4 抗积分饱和仿真结果图3-5 普通PID算法进行离散系统阶跃响应结果由仿真结果可以看出,采用抗积分饱和方法,可以避免控制量长时间停留在饱和区,防止系统产生超调。部分仿真源程序见附录一。4.2.3 变速积分PID算法仿真分析设被控对象为采样时间为20s,延迟时间为4个采样时间,即80s,取。采用变速积分PID控制算法进行阶跃响应,其结果如图3-6和图3-7所示。采用普通PID控制,其结果如图3-8所示。图3-6 变速积分阶跃响应图3-7 变速积分参数的变化图3-8 积分分离PID阶跃响应由仿真结果可以看出,变速积分与积分分离两种控制方法很类似,但调节方式不同,前者对积分项采用的是缓慢变化,而后者则采用所谓“开关”控制。变速积分调节质量更高。部分仿真源程序见附录一。5 结论上述三种方法都能有效地克服积分饱和现象,前两种算法比较简单。而变速积分PID控制算法稍为复杂。我个人认为在PID的位置算法中,除了对控制量的限制外。对控制量的变化率的限制(即执行机构的动作速度滞后PID的实际输出控制量的变化率)也会引起饱和,同时还会很容易产生超调。可以采用不直接对阶跃信号进行响应,而使输入指令信号一步一步地逼近所要求的阶跃信号,使对象运行平稳,不过此方法的响应可能会比较慢,但是阶跃信号还是比较稳定的,具体方法还有待认真的学习和考究。致 谢经过三个月的学习和设计,我在完成毕业设计的过程中,加深了PID控制器的了解,并对它的各种算法有了更深的认识,同时在设计过程中掌握了如何使用MATLAB。通过本次毕业设计,我不仅巩固了大学四年所学到的专业知识,并且使我在理论与实际结合方面的能力有了提高。另一方面,我尝试了MATLAB语言,其功能的强大,给设计工作带来了很大的帮助。从模型的构思、设计、仿真到顺利完成,我查阅了大量的有关资料,得到了樊慧丽老师的悉心指导,在此深表感谢!在本次PID控制算法的设计过程中,说到出现积分饱和效应,我深深地体会到参数设定的重要性,针对不同的实际控制必须要设定好相应的参数才能得到比较好的结果。在设计过程中,我尽力把各种算法弄懂,但由于时间的仓促和自身能力的有限,最终只能了解了上述中的算法,其他算法有待别的时间继续努力,希望各位老师、同学批评指正。最后,还要对在设计过程中帮助过我的樊慧丽老师表示感谢!参考文献1.吴宏鑫,沈少萍. PID 控制的应用与理论依据J . 控制工程,2003 ,10.2.刘金琨.先进PID控制MATLAB仿真M.北京:电子工业出版社,2004.9.3.周春晖. 化工过程控制原理(第二版) M . 北京:化学工业出版社,1998. 4.胡砾元,时铭显,周力行,张健. 旋风分离器三维强旋湍流流动的数值模拟J. 清华大学学报: 自然科学版,2004,44(11):1501- 1508.5.AstrÊm KJ ,H¾ gglund T. Revisiting the ziegler2nichols step responsemethod for PID control J . Journal of Process Control ,2004 ,14 (6) :6352650.6.徐大诚等编著. 微型计算机控制技术及应用M. 北京:高等教育出版社, 20037.诸静.模糊控制原理与应用.北京:机械工业出版社,19998.黄国建,虞平良,曾芬芳. 微型计算机应用技术M. 上海交通大学出版社,1995.9.Commuri S., Lewis F L.CMAC Networks for Control of Nonlinear DynamicSystem:Structure.Stability and Passivity.Automatica,1997,33(4):635641.10.胡寿松. 自动控制原理(第4版)M. 科学出版社, 2003,8.11.黄文梅,杨勇,熊桂林. 系统分析与设计MATLAB语言及应用M. 国防科技大学出版社,200112.谢仕宏.MATLAB R2008控制系统动态仿真实例教程M.北京化学工业出版社,2009.1附录1 部分仿真源程序1)积分分离PID控制算法仿真源程序:clear all;ts=20;sys=tf(1,60,1,'inputdelay',80);dsys=c2d(sys,ts,'zoh');num,den=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;for k=1:1:200time(k)=k*ts;yout(k)=-den(2)*y_1+num(2)*u_5;rin(k)=40;error(k)=rin(k)-yout(k);ei=ei+error(k)*ts;M=2;if M=1 if abs(error(k)>=30&abs(error(k)<=40 beta=0.3; elseif abs(error(k)>=20&abs(error(k)<=30 beta=0.6; elseif abs(error(k)>=10&abs(error(k)<=20 beta=0.9; else beta=1.0; endelseif M=2 beta=1.0; endkp=0.80;ki=0.005;kd=3.0;u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+beta*ki*ei;if u(k)>=110 u(k)=110;endif u(k)<=-110 u(k)=-110;endu_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k);error_2=error_1;error_1=error(k);end2)抗积分饱和PID控制算法仿真源程序:clear all;ts=0.001;sys=tf(5.235e005,1,87.35,1.047e004,0);dsys=c2d(sys,ts,'z');num,den=tfdata(dsys,'v');u_1=0.0;u_2=0.0;u_3=0.0;y_1=0;y_2=0;y_3=0;x=0,0,0'error_1=0;um=6;kp=0.85;ki=9.0;kd=0.0; rin=30; for k=1:1:800time(k)=k*ts; u(k)=kp*x(1)+kd*x(2)+ki*x(3); if u(k)>=um u(k)=um;endif u(k)<=-um u(k)=-um;endyout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3;error(k)=rin-yout(k);M=2;if M=1 if u(k)>=um if error(k)>0 alpha=0; else alpha=1; endelseif u(k)<=-um if error(k)>0 alpha=1; else alpha=0; endelse alpha=1;endelseif M=2alpha=1; endu_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k);error_1=error(k);x(1)=error(k); x(2)=(error(k)-error_1)/ts; x(3)=x(3)+alpha*error(k)*ts; xi(k)=x(3);end3)变速积分PID控制算法仿真源程序:clear all;close all;ts=20;sys=tf(1,60,1,'inputdelay',80);dsys=c2d(sys,ts,'zoh');num,den=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;y_1=0;y_2=0;y_3=0;error_1=0;error_2=0;ei=0;for k=1:1:200time(k)=k*ts;rin(k)=1.0; %Step Signal%Linear modelyout(k)=-den(2)*y_1+num(2)*u_5;error(k)=rin(k)-yout(k);kp=0.45;kd=12;ki=0.0048;A=0.4;B=0.6;ei=ei+(error(k)+error_1)/2