摘 要
在实际的工业生产过程中,被控对象除了具有容积迟延外,往往存在不同程度的纯迟延。由于纯迟延的存在,使得被调量不能及时反映系统所承受的扰动,这样的过程必然会产生较明显的超调量和较长的调节时间,因此具有纯迟延的过程较难控制,其难控程度随着纯迟延的增加而增加,严重则引起系统的不稳定。因此大迟延系统一直受到人们的关注,成为重要的研究课题之一。
本文首先介绍了大迟延系统的控制方案,以电厂主蒸汽温度控制为例。采用微分先行、中间反馈、常规PID、Smith预估及其改进方法对主蒸汽温度进行控制设计。基于Matlab的图形界面编程,实现上述迟延控制方法界面演示,并对各种方法进行仿真对比。
关键词:大迟延系统 控制策略 图形界面 主蒸汽温度
I
华北电力大学本科毕业论文设计(论文)
ABSRACT
In the actual industrial production process, the plant has the capacity in addition to delay, but often there are different degrees of pure delay. Since the existence of pure delay, so the amount cannot be transferred under the system in time reflect the disturbance, so that the process would have a more pronounced overshoot and longer settling time. Therefore, the process, having a pure delay, is difficult to control. It’s hard to control the degree with the increase of pure delay, while causing serious system instability. Therefore, large delay system has been the concern of the people, has become an important research topic.
This paper introduces a large delay system control program to power plant main steam temperature control, for example. The differential first, middle feedback, conventional PID, Smith predictor and its improvement on the main steam temperature control design. Matlab-based graphical interface programming is to achieve the above-mentioned delay control interface presentation, and to get simulation comparison of various methods.
KEY WORDS: Large Time-delay System, Control Strategy, Graphical Interface, Main Steam
Temperature
II
华北电力大学本科毕业论文设计(论文)
目录
摘 要 ..................................................................... I ABSTRACT ................................................................... II 第1章 绪论 .............................................................. 1
1.1研究背景.......................................................... 1 1.2迟延系统的研究现状 ............................................... 1 1.2.1经典控制 ...................................................... 1
1.2.1.1 PID控制 ................................................ 1 1.2.1.2 Smith预估补偿 .......................................... 3 1.2.1.3 Dahlin 控制 ............................................. 5 1.2.2 智能控制算法 .................................................. 5
1.2.2.1 模糊控制 ................................................ 5 1.2.2.2 神经网络控制 ............................................ 6 1.2.2.3 模糊神经网络控制 ........................................ 6 1.2.2.4 内模控制 ................................................ 6 1.2.3 预测控制 ...................................................... 7 1.2.4 鲁棒控制 ...................................................... 8 1.3 图形化用户界面 ................................................... 8 1.4 本文主要工作 ..................................................... 8 第2章 主汽温被控对象动态特性分析 .......................................... 9
2.1 主蒸汽温度控制任务及难点 ........................................... 9 2.2 主蒸汽温度控制对象的动态特性 ...................................... 10 2.2.1 主蒸汽温度控制系统调节信号的选择 .............................. 10 2.2.2 减温水扰动下主汽温的数学模型 .................................. 12 2.3 容积迟延和纯迟延 .................................................. 13 2.4 本章小结 .......................................................... 14 第3章matlab界面设计与编译的研究 .......................................... 15
III
华北电力大学本科毕业论文设计(论文)
第4章具有大迟延系统的过程控制策略相关研究 ................................. 17
4.1 常规PID控制方案 .................................................. 17 4.2 微分先行控制方案 .................................................. 18 4.3 中间反馈控制方案 .................................................. 19 4.4 Smith预估控制方案 ................................................ 20 4.4.1 建立Smith预估补偿数学模型 .................................... 20 4.4.2 Smith预估补偿的matlab仿真 ................................... 21 4.5 改进型Smith预估控制方案 .......................................... 22 4.5.1 建立改进型Smith预估补偿的数学模型 ............................ 23 4.6 各种控制策略响应曲线对比 .......................................... 26 4.7 本章小结 .......................................................... 26 结论与展望 ................................................................. 27 参考文献 ................................................................... 28 附 录 .................................................................... 30 致 谢 .................................................................... 46
IV
华北电力大学本科毕业论文设计(论文)
第一章 绪论
1.1研究背景
在现代工业生产过程中,经常会遇到时滞环节,例如在热交换中,被调量是被加热物料的出口温度,而控制量是载热介质,当改变载热介质流量后,对物料出口温度的影响必然要迟延一个时间,即介质经管道所需的时间。此外,如反应器、管道混合、皮带传送、轧辊传输、多容量、多个设备串联以及用分析仪表测量流体的成分等等过程都存在着较大的纯迟延。在这些过程中,由于纯迟延的存在,使得被调量不能及时反映系统所承受的扰动,即使测量信号到达调节器,调节机关接受调节信号后立即动作,也需要经过纯迟延时间以后,才波及被调量,使之受到控制。因此这样的过程必然会产生较明显的超调量和较长的调节时间。所以,具有纯迟延的过程被公认为是较难控制的过程,其难控程度将随着纯迟延占整个过程动态的份额增加而增加。一般认为纯迟延时间与过程的时间常数T之比大于0.3则说该过程是具有大迟延的工艺过程。当增加,过程中的相位滞后增加,使上述现象更为突出,有时甚至会因为超调严重而出现聚爆、结焦等停产事故;有时则可能引起系统的不稳定,被调量超过安全限,从而危及设备及人身安全。因此大迟延系统一直受到人们的关注,成为最重要的研究课题之一。
1.2 迟延系统的研究现状
大迟延系统的解决办法很多,最简单的是利用常规调节器适应性强,调整方便的特点,经过仔细个别的调整,在控制要求不太苛刻的情况下,满足生产过程的要求,如PID调节器、微分先行调节器、中间反馈调节器。当控制精度要求很高时,则需要采取补偿控制手段,Smith预估补偿法具有鲁棒性好,对大迟延系统是一种极为有效的控制方法。
1.2.1经典控制
所谓经典控制方法是针对迟延过程控制问题提出并应用得最早的控制方法,主要包括PID控制、Smith预估控制、Dahlin控制这几种方法。这些方法虽然理论上比较简单,但在实际应用却能收到很好的控制效果,因而在工业生产过程中获得了广泛的应用。
1.2.1 .1 PID控制
PID控制是迄今为止应用最广泛的一种控制算法,在工业过程控制中占了绝大多数,其优点是:原理简单,通用性强,鲁棒性好并且使用方便。
在模拟控制系统中,控制器最常用的控制规律是PID控制.模拟PID控制系统原理框图如图1-1所示。系统由模拟PID控制器和被控对象组成。
1
华北电力大学本科毕业论文设计(论文)
图1-1 PID控制系统原理框图
PID调节器,即比例积分微分调节器。其传递函数为:
1Gcs1TdskpTss1kiskdski1,
Ti
由上式看出,PID调节器由比例调节器、积分调节器和微分调节器三部分并联构成。通过调节看出比例调节P为有差调节,在负荷扰动下的调节过程结束后,被调量不可能与设定值准确相等,它们之间有一定残差,P是现在的即时反映。比例带δ=1/Kp,比例调节的残差随着比例带的加大而加大,而减小比例带就等于加大调节系统的开环增益,其后果是导致系统激烈震荡甚至不稳定。积分调节I是无差调节,即被控对象在负荷扰动下的调节过程结束后,被调量无残差,但它们的稳定作用却差于比例调节,若用积分调节取代比例调节就会降低系统的振荡频率,Ki为积分速度,Ki= 1/Ti,δ=Ti*Kp,增大积分速度将会降低控制系统的稳定程度,直到最后出现发散的振荡过程。微分调节D一般与积分调节、比例调节动作结合使用。微分动作的引入具有导前作用,会使输出的变化提前一段时间发生,这段时间为Td,Td的作用。
应用PID控制的关键技术是PID参数的整定,它应使控制系统得到满意的控制效果。不过PID在纯迟延系统中的应用时有一定限制的,对于迟延较大(τ/T>0.5)的系统,常规PID控制往往无能为力。文献[14]利用开关阶跃响应法来辨识被控制过程的特征参数,再通过整定公式来得到PID参数,仿真表明,这种方法对时滞过程是实用的,具有一定的鲁棒性。与模糊相结合,很多学者都提出了多种模糊PID控制算法。Tagagi和Sugeno提出了确定性模糊模型,构造了机遇此类确定性模型的模糊PID控制器,这种控制器的输出不是模糊集合而是某个函数的表示,因而设计比较简单,但是其中PID控制器的性能却由于时间因子的影响大大降低。文献[13]对这种控制器进行改进,得到了与时间无关的确定性模糊PID控制器,并对参数自动整定,形成了参数自适应模糊PID控制器,使得系统的控制性能得到了很大的改善。
PID参数的整定对时滞过程的控制效果有很大的影响。过程参数的不确定性和多变性要求PID控制器的参数也应与之对应。因此,PID参数的自适应就成为一个重要的方法。文献[12]用自适应Smith预估极点配置自校正控制器,就是根据系统闭环传递函数的分母
2
[11]
kdi。微分调节可抑制被调量的振荡,有提高控制系统稳定
华北电力大学本科毕业论文设计(论文)
多项式与根据性能指标设计的多项式相等,从而推出PID参数值。不过PID在纯迟延系统中的应用是有一定限制的,对于迟延较大的系统,常规PID控制往往无能为力。PID控制可以和模糊控制及神经网络结合起来。文献[15]提出基于神经网络的自学习能力,寻找一个PID参数的有机非线性组合,从而构成的输出即具有模糊控制的简单有效,又具有神经网络的自学习、自适应能力,还具有PID控制的广泛性,以此来提高控制效果。
1.2.1.2 Smith预估补偿
在工业生产过程中, 多数被控对象除了具有容积迟延外, 往往不同程度地存在着纯延迟。例如在热交换器中, 被调量是被加热物料的出口温度, 而控制量是载热介质, 当改变载热介质流量后, 对物料出口温度的影响必然要延迟一个时间, 即介质管道所需的时间。在这些中, 由于纯延迟的存在, 使得被调量不能及时反映系统所承受的扰动, 即使测量信号到达调节器, 调节机关接受调节信号后立即动作, 也要经过纯延迟时间以后, 才波及被调量, 使之受到控制。因此, 这样的过程必然会产生较明显的超调量和较长的调节时间。所以具有纯迟延的过程较难控制,其难控程度随纯迟延增加而增加, 当 增
T加,过程中的相滞后增加, 超调增加, 可能会出现聚爆、结交等事故; 有时则引起系统的不稳定, 被调量超安全限, 危及设备及人身安全。而常规调节器,如PID调节器、微分先行调节器、中间反馈调节器虽适应性强, 调整方便, 但只能在控制要求不太苛刻的条件下使用。当控制精度要求高时, 则需要采取补偿控制手段, Smith预估补偿法具有鲁棒性好, 对大迟延系统是一种极为有效的控制方法, 其最主要的环节就是Smith预估器[6]。
O.J.M.Smith最早在1958年提出预估控制器[1],这是一个时滞预估补偿器算法,由预估器对时滞进行补偿,使被迟延的被调量超前反映到调节器,使调节器提前动作,来抵
s0,其消时滞所造成的影响。当预估匹配时,系统闭环特征方程为:1KpGcsgps中Gc可见,Smith预估器的最大优点是是控制器的传递函数,Gps是对象的传递函数。
将时滞环节移到了闭环之外。理论上Smith预估可以完全补偿时滞,但要求预估模型匹配。这个条件过于苛刻,实际上不可实现,当模型存在误差时,Smith预估器的控制效果就会明显变坏,从而影响Smith预估器在工程上的应用。
加入史密斯预估器后的控制系统并不是非常完美的, 它也存在自身的缺点。史密斯预估器对系统受到的负荷扰动无所助益, 从史密斯补偿原理来看, 预估器模型无一不是与掌握过程特性的精度有关, 也就是对过程动态特性的精确度要求很高。因此, 无论是模型精度还是运行条件的变化, 都将影响控制效果。所以, PID控制系统承受对象参数的能力要强于带有史密斯预估器的系统。由于史密斯预估器对模型的误差十分敏感,因而难于在工业上广泛应用。对于如何改善史密斯预估器的性能至今仍是研究的课题之一。现仅就几种改进方案作例:如果在史密斯补偿回路中增加一个反馈环节,则系统可以达到完全抗干扰的目的;1977年贾尔斯和巴特利(R.F.Giles和T.M.Bartley)在史密斯方法的基础上提出了增益自适应补偿方案它在史密斯补偿模型之外加了一个除法器,一个导前微分环节和
3
华北电力大学本科毕业论文设计(论文)
一个乘法器;最后是一种由Hang等提出的改进型史密斯预估器,它比原方案多了一个调节器。近年来,在史密斯预估器的基础上,出现了不少克服大迟延的方案,有的已经推广到多变量系统,但至今仍无一个通用的行之有效的方法,关于克服大迟延的控制策略仍在研究发展之中。 微分先行控制[6]方案:
图1-2 微分先行控制方案
中间反馈控制[6]方案:
图1-3 中间反馈控制方案
史密斯预估补偿[6]方案:
图1-4 史密斯预估补偿原理图
4
华北电力大学本科毕业论文设计(论文)
改进的史密斯补偿器[6]:
图1-5 改进型史密斯补偿器
1.2.1.3 Dahlin 控制
Dahlin 控制算法是由美国IBM公司的Dahlin于1968年针对工业过程控制中的纯迟延特性而提出的一种控制算法[28]。该算法的目标是设计一个合适的数字调节器Dz,使整个系统的闭环传递函数相当于一个带有纯迟延的一阶惯性环节,而且要求整个系统的闭环传递函数相当于一个带有纯迟延的一阶惯性环节,而且要求闭环系统的纯迟延时间等于被控对象的纯迟延时间。Dahlin 控制算法比较简单,只要能设计出合适的且可以在物理上实现的数字调节器Dz,就能够有效的克服纯迟延的不利影响,因此在工业生产过程中得到了广泛地应用。
Dahlin 控制算法的缺点是对被控对象的参数变化很敏感,并且存在振铃现象。自从Dahlin 控制算法提出以来,大部分的研究工作集中在解决系统的稳定性和振铃现象。传统的消除振铃的方法是把注意力放在控制器的传递函数上,即如何保证控制器的传递函数不包含Z平面单位圆内负实轴上的极点。
1.2.2 智能控制算法
智能控制是一类无需要人的干预就能够独立地驱动智能机器实现其目标的自动控制,
它包括了递阶控制、专家控制、模糊控制、神经网络控制、学习控制、遗传算法等等。在众多智能控制算法中,模糊控制、神经网络以及二者的结合----模糊神经网络在迟延过程的控制中的应用最为广泛。 1.2.2.1 模糊控制
模糊控制是近几年来应用在许多过程控制中的非常有效的一项技术。与常规PID反馈控制相比,模糊控制利用了比常规PID反馈控制更多的信息作为调节的依据,如它不仅采
5
华北电力大学本科毕业论文设计(论文)
集被调量的偏差,还同时采集被调量偏差变化率,甚至被调量偏差变化速率的变化速率,即它不仅利用被调量的当前偏差值作为调节的依据,而且还同时在被调量的当前偏差值中提取被调量的变化速率参与调节;另外,它将整个动态过程分段进行控制,在每一段里根据被控对象的实际特点设置有效控制量。所以,对于存在较大迟延的控制对象,加入模糊控制技术,将有效改善调节的动态品质,若方案设计合理还可能完全实现变工况全程自动控制。模糊控制的优点是不需要被控对象的精确数学模型,而且具有很强的鲁棒性,因此非常适合于不确定系统。 1.2.2.2 神经网络控制
神经网络控制一般和PID相结合使用。一般来说,基于神经网络的PID控制器的典型结构主要有两种,一种是基于神经网络的整定PID控制,即把神经网络的输出作为PID控制器的比例、积分、微分。另一种是把神经网络的权值作为比例、积分、微分,还具有自学习和自适应能力。PID控制要取得好的控制效果,就必须通过调整好比例、积分、微分三种控制作用,在形成控制量中相互配合又相互制约的关系。神经网络具有逼近任意非线性函数的能力,而且结构和学习算法简单明确,可以通过对系统性能的学习来实现具有最佳组合的PID控制。
下图是利用神经网络的非线性特性和不依赖于对象精确模型的优点,对常见大迟延对象主汽温的一种改进控制方案:
图1-7 主汽温基于BP神经网络的PID控制框图
1.2.2.3 模糊神经网络控制
模糊控制和神经网络都是无模型估计器,把NN和Fuzzy 结合起来构成的模糊神经网络,
既揉合了模糊逻辑的推理能力,又有神经网络很强的学习能力和非线性表述能力,因而是一种非常有效的迟延过程控制方法。神经网络的非线性映射能力、分布式并行处理等特性构造一类具有自学习能力的神经网络,该控制器能自动的形成相应的隶属函数,推理规则集,通过在线自学修正各参数,对各规则的推理做到并行处理,控制律适应对象的变化,从而起到智能控制的作用。文献[30]提出了具有结构和参数学习能力的自组织模糊神经网络控制器无需事先确定模糊控制规则,能在控制过程中通过神经网络的结构及参数学习在线调整模糊神经网络的结构,产生模糊控制规则,调整规则的参数,该控制器能用于一般的纯迟延时变对象的控制,具有良好的控制性能。模糊神经网络预测控制器设计是先将神经网络与预测控制相结合,实现对非线性、大时滞系统模型的精确预测,再将模糊控制与神经网络相结合,实现模糊神经预测控制。 1.2.2.4 内模控制
6
华北电力大学本科毕业论文设计(论文)
内模控制产生背景主要有两个方面:一是为了对当时提出的两种预测控制算法MAC和DMC进行系统分析,其次是作为Smith预估器的一种扩展,使设计更为简便,鲁棒及抗干扰性大为改善。在内模控制结构的系统中,由于引入了内部模型,反馈量由原来常规反馈控制系统中的输出量反馈变为扰动量反馈,当模型与系统匹配时,可以使得反馈信号中不含有迟延因子,克服了原来参与调节的反馈信号具有大迟延的缺点,且控制器的设计也变得较为容易。传统内模控制多采用检测对象的阶跃响应或脉冲响应的输入输出数据来预先建立对象的非参数模型,并根据此模型设计内模控制器。但对于具有大迟延和非线性特性的对象,采用传统的方法容易使得内部模型与对象失配,从而使系统的动态特性和控制质量变坏。神经网络近年来已广泛应用于控制领域,利用其对任意非线性映射的强大逼近能力,将内模控制推广到非线性系统。基于NN的内模控制系统不需要太多地了解被控对象信息,对被控对象模型的精度要求不高。
智能控制方法虽然克服了Smith 预估器和自适应控制的缺陷,但它们本身也并不完美,普遍存在控制精度不高等缺点。所以智能控制方法经常与Smith预估及自适应相结合,这也是目前研究的方向。
1.2.3 预测控制
实际工业过程中的多变量、非线性、时变和不确定性等特点以及工程应用中要求考虑控制的实时性、有效性使得以精确数学模型为基础的控制算法难以应用于复杂的工业过程。这些来自实际的原因阻碍了现代控制理论在工业控制过程中的有效的应用。为了克服理论和应用之间的不协调,70年代以来,人们试图面向工业过程的特点,寻找各种对模型要求低、在线计算方便、控制综合效果好的控制方法和算法。与此同时,计算机技术的飞速发展,使得高速、大容量、低成本的计算机应用越来越广泛,这也为新算法提供了可实现的重要基础。预测控制就是在这种情况下发展起来的一种新型计算机控制算法。预测控制不是某一种统一理论的产物,而是在工业实践过程中发展起来的,并在实际中得到了十分成功的应用。
到目前为止已经有许多种类不同的预测控制方法。预测控制在初期发展阶段,算法种类已相当繁多,但按其基本结构魔术,大致可以分为两类:第一类:基于非参数模型的预测控制算法,代表性的算法有模型算法控制(MAC)和动态矩阵控制(DMC)。这类算法分别采用有限脉冲响应模型和有限阶跃响应模型作为过程预测模型,无需考虑模型结构和阶次,可把过程时滞自然纳入模型中,尤其适合表示动态不规则对象特性,适合处理开环稳定多变量过程约束问题的控制。第二类:基于参数模型的预测控制算法。这类算法仍然保留了基于非参数模型的预测控制算法的基本特征,不过这里的被控对象模型采用的是受控自回归积分滑动平均模型(CARIMA)或受控自回归滑动平均模型(CARMA)。其中最具代表性的算法是广义预测控制算法(GPC)算法,它可用于开环不稳定、非最小相位和时变时
7
华北电力大学本科毕业论文设计(论文)
滞等较难控制的对象,并对系统的时滞和阶次不确定有良好的鲁棒性。对于多变量系统,算法实施较困难。
预测控制算法的三个本质特征是预测模型、滚动优化、模型误差反馈校正。由于这类算法用来描述过程动态行为的信息是直接从生产现场检测到的过程响应,无需通过复杂的系统辨识来建立数学模型,知识根据某一优化指标设计控制系统,确定一个控制量的时间序列,使未来一段时间内被调量和经柔化后的期望轨迹之间的误差为最小,多步预测的方式,扩大了反应过程未来变化趋势的信息量,因而使预测控制具有较高的鲁棒性。
1.2.4 鲁棒控制
进入20世纪80年代,随着鲁棒控制理论的研究日趋成熟,鲁棒控制已经开始向着工程
应用方面发展。鲁棒控制的主要思想就是利用系统模型中的不确定信息(包括:各种信号测量的误差、噪声信号的忽略、高阶系统的降阶、各种干扰信号、非线性系统的线性化、工作环境的影响等)来设计一个确定的控制器,而使得系统在该控制器的作用下对于设计时考虑的不确定范围内,系统的性能均能得到满足。由于利用鲁棒控制来解决时滞系统的不确定性恰能发挥其优点,因而今年来有关时滞系统的鲁棒控制取得了很大的发展。鲁棒控制还可以和智能控制方法结合起来,构成一些新的控制方法。
国内很多工程技术人员努力把各种时滞过程的控制方法应用到实际工程中去,目前大部分的控制仍然使用PID控制,Smith预估控制及其改造。
1.3 图形化用户界面
图形化用户界面
[33]
(Graphical User Interfaces,以下简称GUI)是一种图形化的沟
通界面,通过此界面可以很方便的达到一些特定控制的操作,而这些界面又是由按钮、窗口、工具栏、键盘操作等对象所构成的,以方便借助这些界面调用MATLAB来进行运算处理操作。GUI是未来的趋势,因为人类对于图形辨识的能力远超过其他表达方式,因此借助GUI程序能够设计出专属某个主图主题的图形化界面。
1.4 本文主要工作
当闭环系统中存在时滞环节时,系统的闭环特征方程中就存在迟延项,这影响了系统的稳定性,会造成控制结果下降,甚至不稳定。本文以电厂主汽温为控制对象,采用PID控制和Smith预估控制优化系统。计划通过Matlab编程界面实现微分先行、中间反馈、Smith预估及其改正方案进行控制系统设计,比较结果。学习研究目前的各种针对时滞系统的控制方法。
8
华北电力大学本科毕业论文设计(论文)
第二章 主汽温被控对象动态特性分析
主汽温是常见的大迟延对象,在火电厂中,主蒸汽温度是一个重要的被控参数。因此本文选用主汽温作为研究对象。
在火力发电厂中,锅炉的过热蒸汽温度是全厂整个汽水循环中工质温度的最高点,也是金属壁温的最高点,因此主蒸汽温度的控制显得尤为重要,火电厂主蒸汽的控制水平直接影响到锅炉的热效率和锅炉、过热器、汽轮机等设备的安全运行。主蒸汽的参数有压力、流量、温度等,其中温度是影响锅炉生产过程安全性和经济性的最重要的参数。过热器采用的是耐高温、高压的合金材料,但过热器正常运行时的温度已接近材料的最高温度,如果过热蒸汽的温度过高,容易损坏过热器,也会使蒸汽管道、汽轮机内部某些零部件产生过大的热膨胀变形而损坏,影响运行的安全性;过热蒸汽温度过低,将会使全厂的热效率降低,影响电厂的经济性。
2.1 主蒸汽温度控制任务及难点
为了保证过热蒸汽的品质和生产过程的安全性、经济性,过热蒸汽温度必须通过自动化手段加以控制。通常中、高压锅炉过热汽温的暂时偏差不允许超过10C,长期偏差不允许5C[9],由于机组运行中存在着许多不确定的因素主蒸汽温度超限时常发生,需要积极的寻找良好的控制策略,以保证主蒸汽温度在允许的范围内波动或超限时能迅速恢复到允许的范围内。因此,过热蒸汽温度的控制任务是:维持过热器出口蒸汽温度在生产允许的范围内。
主蒸汽温度控制难点具体表现在以下几个方面:
① 汽温过高会使锅炉受热面及蒸汽管壁金属材料的蠕变速度加快,影响使用寿命。例如,12CrMoV钢在585C环境下保证应用强度的时间约为10万小时,而在595C时到了3万小时就会使其丧失应用强度,而且如果受热面严重超温,将会由于管道材料强度的急剧下降而导致爆管;
② 汽温过低会使机组循环热效率降低,煤耗增加。根据理论估算可知:过热汽温降低10C,会使煤耗平均增加0.2%。此外汽温过低、汽轮机转子所受的轴向推力增大,对机组安全运行十分不利;
③ 汽温变化过大,除了使管材及相关部件产生疲劳之外,还将引起汽轮机汽缸的转子与汽缸的胀差变化,甚至产生剧烈振动,危及机组安全运行;
④ 影响汽温变化的因素有很多,例如:蒸汽负荷、减温水流量、烟气侧的过剩空气系数和火焰中心位置、燃料成分等都可以引起汽温的变化;
⑤ 汽温对象在各种扰动下(如负荷、工况变化等)反映出非线性、时变等特性,使其控制难度增大。
9
华北电力大学本科毕业论文设计(论文)
2.2 主蒸汽温度控制对象的动态特性
大型锅炉的过热器一般布置在炉膛上部和高温烟道中,过热器往往分成许多段,中间设置喷水减温器,减温水由锅炉给水系统供给,如图2-1所示:
图 2-1 过热蒸汽温度原理图
从图上可以看出蒸汽从汽包出来经过过热器的低温段至减温器,然后再到过热器的高
温段,最后至汽轮机。
2.2.1 主蒸汽温度控制系统调节信号的选择
影响过热器出口汽温的因素有很多,主要有以下三种扰动[26]。 ① 蒸汽流量扰动
汽机负荷变化会引起蒸汽量的变化。蒸汽量的变化将改变过热蒸汽和烟气之间的传热条件,导致汽温变化。图2-2是蒸汽流量扰动下过热蒸汽温度的响应曲线。可以看到,温度响应具有自平衡特性,而且惯性和迟延都比较小。这是因为蒸汽量变化时,沿过热器管道长度方向的各点温度几乎同时变化。
图 2-2 蒸汽流量扰动下的过热蒸汽温度的响应曲线
10
华北电力大学本科毕业论文设计(论文)
② 烟气侧传热量的扰动
燃料量增减,燃料种类的变化,送风量、吸风量的改变都将引起流速和烟气温度的变化,从而改变了传热情况,导致过热器出口温度的变化。由于烟气传热量的改变是沿着整个过热器长度方向上同时发生的,因此汽温变化的迟延很小,一般在10-20s之间。烟气侧的汽温响应曲线如图2-3所示。它与蒸汽量扰动下的情况相似。
图 2-3 烟气侧的汽温响应曲线
③ 喷水量扰动
应用喷水来控制蒸汽温度是目前广泛采用的一种方式。对于这种控制方式,喷水量扰动是基本扰动。从图2-4可以看出,过热器是具有分布参数的对象,可以把管内的蒸汽和金属管壁看做是无穷多个单容对象串联组成的多容对象。当喷水量发生变化后需要通过这些串联单容对象,最终引起出口蒸汽温度的变化。因此蒸汽温度的响应有很大的迟延。减温器离过热器出口越远,迟延越大。喷水量扰动下的动态特性曲线如图2-4所示。
图 2-4 喷水量扰动下的动态特性曲线
11
华北电力大学本科毕业论文设计(论文)
2.2.2 减温水扰动下主汽温的数学模型
减温水量作为基本扰动来完成控制就是用减温水量作为该系统的输入,把主汽温作为输出,管内蒸汽温度和管壁可看做是很多单容对象的串联,因此对象具有分布参数特性,并且该被控对象有较大的惯性和迟延。
用给水量来完成控制,减温水出口温度变化明显比过热气温变化要快,常常把这一段作为导前区,把从减温器出口到过热蒸汽出口这一段叫做惰性区,在减温水的扰动下,主汽温的动态特性可表示为:
k0sn (2-1) Ws1T0sG得。
0其中k0为放大系数,T0为时间常数,n为阶次。其传递函数由两点法可以通过实验测同理:导前区的传递函数也可表示为:
G12k2Ws1T2sn2(2-2)
其中k2为导前区的放大系数,T2为导前区的时间常数,n2为阶次,此传递函数同样也可以通过实验求得。
惰性区的传递函数也可以表示为:
G21s2sk11T1sn1(2-3)
其中k1为惰性区的放大系数,T1为惰性时间常数,n1为阶次,此传递函数无法通过实验求出,而是由下式求出:
G2s可得到:
G0s(2-4)
G1s
k0 k1k2
(2-5)
n0T02-n2T22T1n0T0n2T2n1(2-6)
(2-7)
n0T012
n2T22n0T02n2T22
华北电力大学本科毕业论文设计(论文)
参考文献[10]得出600MW直流锅炉主汽温度对象的动态特性,见下表: 负 荷 37% 50% 75% 100% 表1 600MW直流锅炉主汽温度对象动态特性
导 前 区 惰 性 区 25.07128s 23.067125s 21.657120s 20.815118s 81.048156.65 71.119142.1 71.202127.1 61.276118.4s 2.3 容积迟延和纯迟延
迟延过程是一类典型的工业工程,工业生产过程大多在不同程度上存在着迟延(包括
容积迟延和纯迟延)。容积迟延表示由于容积增多,响应曲线最大变化速度向后推迟的程度;而系统中被调量变化的时刻落后于扰动发生的时刻现象称为对象的传递迟延,由于迟延是物质(或能量)在传输过程中因传输距离的存在而发生,所以又称为纯迟延或传输迟延。
例如化工、炼油生产中的物料的传输,冶金、玻璃、造纸等工业中板材厚度的控制,加热炉、窑炉的传热,反应器的化学组成以及应用质量分析仪的系统等都存在着迟延。它的迟延特性决定了它是一类难以控制的对象。随着时滞的增加,引起相位迟延的增大,使交界频率和允许的最大增益下降,降低了系统的稳定性。
迟延产生的主要原因有:① 物料及能量在管道或容器中的传输及运送时间;② 物质反应及能量交换需要一定的过程;③ 许多设备串联在一起;④ 测量装置的时间迟延;⑤执行机构的动作时间。
一个纯迟延环节的输入量rt和输出量yt的关系为:
ytrt (2-8)
对式(2-8)两端进行Laplace变换,于是得到纯迟延环节的传递函数如下:
Yses
Rs在工业过程闭环控制系统控制回路中,若掺在纯迟延,即如在控制对象调节通道、测量元件及执行机构等环节存在纯迟延时,闭环特征方程中就存在纯迟延,而且存在纯迟延的环节较多时,系统纯迟延时间随之增加。由于纯迟延的存在使得被调量不能及时反映控制信号的动作,控制信号的作用只有在迟延以后才能反映到被调量;另一方面,当对象受到干扰而引起被调量改变时,控制器产生的控制作用不能即时对干扰产生抑制作用。因此,含有纯迟延环节的闭环控制系统必然存在着较大的超调量和较长的调节时间。因此纯
13
华北电力大学本科毕业论文设计(论文)
迟延对象纯迟延对象成为难控对象,而且纯迟延占整个动态过程的时间越长,难控的程度越大。因此纯迟延系统的控制一直受到许多学者的关注,成为最重要的研究课题之一。
对于一个有迟延对象,其传递函数形式为:
WsK1Tsn或者WsKes1Tcs7 8
其中n,T与Tc,的关系如下表2所示[12]: n 1 2 3 4 5 0 0 1 6 9 10 TcTTcT0.104 0.218 0.319 0.410 0.493 0.570 0.642 0.710 0.773 0.282 0.805 1.430 2.100 2.810 3.560 4.310 5.080 5.860 2.712 3.692 4.480 5.120 5.700 6.250 6.710 7.160 7.580 参照上表,在获得对象传递函数以后就能实现两种方式之间的变换。
2.4 本章小结
迟延过程是典型的生产工业工程,在工业生产过程中,被控对象除了容积迟延外,通常具有不同程度的纯迟延。而其中的纯迟延特性又决定了它是一种难以控制的对象。由于纯迟延的存在,使得被调量不能及时反映系统所承受的扰动,即使测量信号到达调节器,调节机关接受调节信号后立即动作,也要经过纯迟延时间以后才波及被调量是指受到控制。因此,这样的过程必然会产生较明显的超调量和较长的调节时间。所以具有纯迟延的过程较难控制,其难控程度随着纯迟延的增加而增加,当T增加时,过程中的相位迟延增加,超调增加,可能会出现聚爆、结焦等事故;有时则引起系统的不稳定,被调量超过安全限,危及设备人身安全。主汽温是常见的大迟延对象,在电厂中,主蒸汽温度是一个重要的被控参数。主蒸汽温度控制系统的任务是维持主蒸汽温度在允许的范围内,保护过热器使其管壁温度不超过允许的工作温度。主蒸汽温度过高会使过热器和汽轮机高压缸承受过高的热应力而损坏;温度偏低,又会降低发电机组热效率,影响经济运行。
本文使用Matlab软件对大迟延系统进行编译、演示、比较出各种大迟延解决方案的仿真效果。
14
华北电力大学本科毕业论文设计(论文)
第三章 Matlab界面设计与编译的研究
图形化用户界面[33](Graphical User Interfaces,以下简称GUI)是一种图形化的沟通
界面,通过此界面可以很方便的达到一些特定控制的操作,而这些界面又是由按钮、窗口、工具栏、键盘操作等对象所构成的,以方便借助这些界面调用MATLAB来进行运算处理操作。GUI是未来的趋势,因为人类对于图形辨识的能力远超过其他表达方式,因此借助GUI程序能够设计出专属某个主图主题的图形化界面。
Matlab中GUI的建立方式主要有两种。第一种是直接通过程序编写的方式产生对象,即利用uicontrol、uimenu、uicontextmenu等函数以编写M文件的方式来开发整个GUI。此种方式的优点在于GUI菜单的建立比较齐全,并且不会额外产生一个.fig文件,并且程序代码的通用性非常高,因此当完成一个GUI后,该程序代码就可以复制到一般的Matlab的M文件使用,也可以复制到GUIDE的M文件中使用,如已通过程序编写的方式编写好一系列的uimenu菜单选项,因此就可以直接将这些程序复制输入到GUIDE的Opening Function中,直接在GUIDE中运用这些菜单选项,如此就可以节省额外开发相同或类似对象的时间。程序编写来建立GUI对象的最大缺点就是GUI对象的位置的配置,若不是非常熟悉的用户可能会比较难以控制。
另一种方式是直接通过Matlab的GUI编辑界面——GUIDE来建立GUI。这个界面当前已改善得非常使用,它的开发环境可以直接通过鼠标将对象推拽到目的地,就可以快速地建构出整个GUI;此外,这种方式在M 文件的管理上比较好,可以快速且容易地找到修改代码内容。
掌握程序编写GUI的步骤:(1)建立figure对象以作为整个GUI的基础窗口并设置相关属性,然后建立的子对象就会依据这个figure对象的句柄值来不断加入到窗口中。(2)设置需要建立axes或uicontrol、uimenu与uicontextmenu对象,并设置相关属性及callback来实现相关的控制操作。(3)为了使建立的界面能够更加美观、具有弹性,可以加入坐标轴的子对象,充实坐标轴。
当使用GUIDE编辑器建立GUI 后,可以将所建立的GUI存储起来,以方便下次使用与修改。使用GUIDE编辑器将GUI存储后会出现两个文件:一是FIG文件(.fig),包含了所有使用GUIDE编辑器所建立的GUI对象(push buttons、menus、axes等)与图案,当下一次修改这些对象时,仅需使用GUIDE编辑器将FIG文件打开修改即可,并且每次修改后的值也会存至FIG文件中;二是M文件(扩展名.m),包含了所有控制GUI对象的callback程序,它是附着于FIG文件的,只要使用GUIDE编辑器存储后,就一定会有这个M文件,文件中每一个对象callback下的空白处就是需要编写的位置。
在M文件内的每个callback都可视为一个独立可执行的接口。因此,任一callback触发后所执行的运算值若要在其他callback中使用,就无法与Matlab工作空间内的变量继续执行操作,也就是说每个callback之间无法直接做沟通的操作,因此变量的传递会有问题。以下为几种callback之间最为常用的数据传递方式。
15
华北电力大学本科毕业论文设计(论文)
(1)、宣告为全局变量
将欲传递的变量在传递双方的callback位置中都设置为全局变量,就可以直接在任一方的callback中调用。此种方式是最简单的操作方式,但是GUI内的全域变量太多时,在执行上可能会造成混乱。
(2)、应用对象的UserData属性
直接通过对象的UserData属性来进行各个callback之间的数据存取操作,一般用其存储简单与单一的数据,myplotfcn函数用以获取该UserData属性内存的绘制数据,然后绘制图形。
(3)、应用setappdata、getappdata与rmappdata
它们克服了UserData的缺点使一个对象能够存取多个变量值,因此会比UserData属性在操作上更具有弹性与数据安全性。
据上画出界面如下图:
图3-1 界面
16
华北电力大学本科毕业论文设计(论文)
第四章 具有大迟延系统的过程控制策略相关研究
对于相关迟延过程,近几年先后出现了基于模型的方法和无模型的方法这两大类。基于模型的方法有:PID控制、Smith预估补偿法、鲁棒控制、滑模变结构控制等;无模型方法有:预测控制、神经网络控制、模糊Smith预估控制和自适应模糊法等等。
在纯滞后系统的控制中,为了充分发挥PID的控制作用,改善之后问题,主要采用常规PID的变形形式:微分先行控制和中间微分反馈控制。微分先行和中间反馈控制都是为了充分发挥微分作用提出的。微分的作用是导前,根据变化规律提前求出其变化率,相当于提取信息的变化趋势,所以对滞后系统,充分利用微分作用可以提前预知变化情况,进行有效的“提前控制”。
本文以表1中100%负荷下的600MW直流锅炉给出的动态特性可读出:其中导前区的传递函数为:
0.815118s惰性区的传递函数为:
2,
1.276118.4s得到:
6。
为了突出对象包含纯迟延,由上文表2阶数和时间常数T、Tc及的关系表中数据容易
0.815e-5.08s 导前区:
148.82s 惰性区:
1.276e-51.70s
1104.88s根据上文公式(2-1)、(2-2)、(2-3)、(2-4)、(2-5)、(2-6)、(2-7) 得到主汽温的动态特性可表示为: 或
1.04e-86s
1110.7s1.04114.6s10
4.1 常规PID控制方案
下图4-1是常规PID控制方案原理框图:
17
华北电力大学本科毕业论文设计(论文)
图4-1 常规PID控制方案原理框图
其阶跃响应曲线图4-2:
图4-2 常规PID阶跃响应曲线
4.2 微分先行控制方案
下图4—3是微分先行控制方案原理框图,即将微分作用移到反馈回路中,以加强微分作用,达到减小超调量的效果。
18
华北电力大学本科毕业论文设计(论文)
图4-3 微分先行控制方案原理框图
其阶跃响应曲线图4-4:
图4-4 微分先行阶跃响应曲线
4.3 中间反馈控制方案
下图4-5是中间反馈控制方案原理框图,适当配置零极点以改善控制品质。
19
华北电力大学本科毕业论文设计(论文)
图4-5 中间反馈控制方案原理框图
其阶跃响应曲线如图4-6:
图4-6 中间反馈跃响应曲线
4.4 Smith预估控制方案
系统带有纯滞后环节会导致系统对控制指令的反应不及时,甚至导致系统不稳定。纯
滞后系统采用常规的反馈控制方法(常规PID控制、微分先行控制及中间微分反馈控制等)往往难以取得显著的效果。针对纯滞后系统的有效控制方法是补偿控制方法。
纯滞后补偿控制的基本思路是:在控制系统中某处采取措施(如增加环节或增加控制支路等),使改变后系统的控制通道以及系统传递函数的分母不含有纯滞后环节,从而改善控制系统的控制性能及稳定性等。
4.4.1 建立Smith预估补偿数学模型
20
华北电力大学本科毕业论文设计(论文)
Smith预估补偿数学模型原理框图:
图4-7 Smith预估补偿数学模型原理框图
图中𝐺𝑝(𝑠)是对象除去纯迟延环节e−τs以后的传递函数,𝐺𝑠(𝑠)是史密斯预估补偿器的传递函数。如果系统中无此补偿器,则由调节器输出U(𝑠)到被调量Y(𝑠)之间的传递函数为:
𝑌(𝑠)𝑈(𝑠)
=𝐺𝑝(𝑠)𝑒−𝜏𝑠 (4-1)
(1)式中表明,收到调节作用之后的被调量要经过纯迟延τ之后才能返回到调节器。若系
采用预估补偿器则调节量U(s)将反馈到调节器的信号𝑌‘(𝑠)之间的传递函数是两个并联通道之和,即:
𝑌’(𝑠)𝑈(𝑠)
𝑌’(𝑠)𝑈(𝑠)
=𝐺𝑝(𝑠)𝑒−𝜏𝑠 +𝐺𝑠(𝑠) (4-2)
为使调节器采集的信号 𝑌’(𝑠)不至迟延τ,则要求(2)式为:
=𝐺𝑝(𝑠)𝑒−𝜏𝑠 +𝐺𝑠(s)=𝐺𝑝(s) (4-3)
G(𝑠)=𝐺𝑝(𝑠)𝑒−𝜏𝑠 (4-5)
从上式可得到预估补偿器(史密斯预估器)的传递函数为:
由此可见,此时在系统的特征方程中,已不包含e−τs项,即这个系统已经消除了纯迟延对系统控制品质的影响,而闭环传递函数分子上的e−τs说明被调量Y(𝑡)的响应还比设定值迟延τ时间。
4.4.2 Smith预估补偿的Matlab仿真
下图为Smith预估补偿的原理框图:
21
华北电力大学本科毕业论文设计(论文)
图4-8 Smith预估补偿的原理框图
其阶跃响应曲线图4-9:
图4-9 Smith预估补偿阶跃响应曲线
4.5 改进型Smith预估控制方案
常规Smith预估控制系统的传递函数是: 𝑌(𝑠)𝑈(𝑠)
=
𝐺𝑐(𝑠)𝐺𝑝(𝑠)
1+𝐺𝑐(𝑠)𝐺𝑝(𝑠)+𝐺𝑐(𝑠)[𝐺𝑚0(𝑠)−𝐺𝑚(𝑠)]
22
华北电力大学本科毕业论文设计(论文)
其中𝐺𝑝(𝑠)=𝐺𝑝0(𝑠)𝑒−𝐿𝑝𝑠, 𝐺𝑚(𝑠)=𝐺𝑚0(𝑠)𝑒−𝐿𝑚𝑠。如果参数匹配,即
𝐺𝑝(𝑠)=𝐺𝑚(𝑠),则闭环系统的特征方程为1+𝐺𝑐(𝑠)𝐺𝑚0(𝑠)=0[23]。可见Smith预估的最大优点是将时滞环节移到了闭环之外,使控制品质大大提高。但是这一条件是苛刻的,实际模型与预估模型总有偏差,这使闭环特征方程中依旧有时滞环节,控制品质显著恶化,甚至不稳定[24]。因此常规Smith预估控制系统很难在实际中得到真正的应用。针对这种情况提出了改进Smith预估模型。
4.5.1 建立改进型Smith预估补偿的数学模型
̅)(𝐿̅为过程纯迟延时间),改进型Smith预估控制设被控过程的传递函数为:𝐺𝑒𝑥𝑝(−𝑠𝐿器的结构示意图如下:
图4-10 改进型Smith预估控制器结构
̅̅̅)为过程的传递函数,r为设定值,d为扰动,y为输出,其中:̅𝐺𝐺𝑒𝑥𝑝(−𝑠𝐿𝑐为PID控制,L为模型纯迟延时间。图中的改进型Smith预估控制器比原型Smith预估控制器多了一个反馈环节M(s)的结构如下图:
图4-11 动态补偿器M(s)
其传递函数为:
23
华北电力大学本科毕业论文设计(论文)
M(𝑠)=
若B(s)是一个高增益低通滤波器(LPF)
1+𝐵(𝑠)
(4-6)
1+𝐵(𝑠)𝑒−𝐿1𝑠
𝐾𝑚
B(𝑠)=
𝜏𝑚𝑠+1
(4-7)
则在低频情况下,M(s)模拟了迟延的逆过程的效果,从而可以提高整个系统对扰动的克服能力。但实际上,𝑒𝐿1𝑠是一个超前环节,是无法真正实现的,但当系统有迟延时可以预估被控量的变化趋势。
首先整定控制器参数𝐾𝑚,𝜏𝑚,𝐿1,由于过程具有纯迟延特性,其特征函数含有无穷多个特征根,采用解析方法求极值几乎不可能。于是采用通过大量仿真实验提出的一些经验性的公式及表格,这些数据在较大的范围内具有良好的控制效果,在工业实际控制中也有效可行。
工业过程的模型虽然多种多样,千变万化,但实际上很大一部分过程可表示为如下二阶加迟延模型:
𝐺𝑝(𝑠)=
定义ξ的函数f(𝜉)如表3[24]: ξ f(𝜉) 定义:
0.2 1.3 0.3 1.4 0.4 1.5 𝑘𝑝𝑒−𝐿𝑠
𝑇2𝑆2+2𝜉𝑇𝑆+1
(4-8) 当ξ≥1,为二阶单调稳定过程。
表3 ξ的函数f(𝜉): 0.6 0.8 1.0 1.75 1.85 2.03 1.2 2.4 1.4 2.75 γ=μ=
𝐿
(4-9) 𝑓(𝜉)∗𝑇𝐿1𝐿
𝐿1β= 𝜏𝑚
γ,𝐾𝑚,𝜏𝑚,𝐿1的关系如表4 所示。由γ可直接求得𝐾𝑚。由(4)式的变换形式:
𝐿1=𝜇𝐿 (4-10) 𝐿1
𝜏𝑚= 𝛽即可整定参数𝜏𝑚,𝐿1的值
表4 γ,𝐾𝑚,𝜏𝑚,𝐿1的关系[24]
24
华北电力大学本科毕业论文设计(论文)
γ 𝐾𝑚 10 8 4 2 0.75 0.6 0.45 0.27 μ β 0.2 0.6 1.0 2.0 0.05 0.1 0.2 0.3 当γ>2时,即时滞与周期之比很大时,由于M(s)只在低频且L比较小的情况下模拟𝑟𝐿1𝑠环节,所以M(s)的作用已不大,可直接用M(s)=1。当ξ或γ取其他值时,可采用插值法。
下图为改进Smith预估补偿的原理框图:
图4-12 改进Smith预估补偿的原理框图
其阶跃响应曲线如图4-13:
25
华北电力大学本科毕业论文设计(论文)
图4-13 改进Smith预估补偿阶跃响应曲线
4.6 各种控制策略响应曲线对比:
通过对几种控制策略编程、演示的响应曲线对比分析得到以下结论:
1、常规PID控制系统中所需要的调节参数少,结构简单。但假如干扰后超调量明显
增大,稳定域变小。可见常规PID控制器适应性强,调整方便。但对于大时滞系统PID无法使用。
2、运用Smith补偿和改进型Smith补偿方案延迟时间,上升时间等动态指标有所改善,超调量%变大。可见Smith预估补偿控制方案对系统过程的精度要求很高。
4.7 本章小结
一般认为,广义对象的纯迟延时间与时间常数T之比大于0.5,说明该过程是具有大迟延的工艺过程。大迟延系统的解决方法有很多,最简单的是利用常规PID控制器的变形方案,如:微分先行控制方案和中间微分反馈控制方案等。
如果在控制精度要求很高的场合,则需要采取其他控制手段,如补偿控制,Smith预估补偿方案及其改进方案就是得到广泛应用得方案之一。
26
华北电力大学本科毕业论文设计(论文)
结论与展望
大迟延系统的控制一直是困扰过程控制领域的难题,也是重要的研究课题之一。本文以电厂主汽温为对象,分别选择则几种不同的控制策略进行研究学习。重点是通过对比得到以下重要结论:
1.现在时滞系统的主要控制方法还是PID 控制和Smith 预估控制。在小时滞或控制系统要求不太苛刻的情况下,利用常规控制器适应性强,调整方便的特点,采用PID控制及其改正方案(如:微分先行控制,串级控制以及中间反馈控制等)可以得到满意的控制效果。但是对于大时滞系统,PID的稳定域就会急剧变小,无法应用,那么就需要采用补偿方案,Smith预估补偿法具有鲁棒性好的特点,因此对于大迟延系统是一种极为有效的控制方法。
2.Smith 预估方案在控制质量的改善上与常规控制手段相比,显得既快速又只能,控制的精度是反馈控制所不能及的。从控制原理上讲,它是开环的,不通过反馈加以检验,反馈控制意味着存在一个可以测量出来的误差,并以此产生控制作用。总而言之,使用反馈控制,控制结果最终必然与设定值存在着偏差。而且,反馈控制在其控制过程中,对于引起误差的各种扰动,不能究其产生原因有区别的加以对待,而是应该根据最终的输出值与设定值得偏差动作,显得被动且不具有智能性。与之相对应的是,Smith 预估控制器是按修正后的反馈变量而不是按照实际过程变量进行控制的,如果所构造的数学模型与过程相匹配,控制器将获得理想的调节结果。Smith 预估方案采用的开环控制是针对工业模型的大迟延专门设计出的控制方案。方案的设计具有明显的目的性,即尽可能的改善系统因大迟延而引起的控制质量问题,其效果是显著的。
3. 同时 Smith 预估的缺点也因此而来,由于它是建立在精确的数学模型上的方案,因此在实际的应用中,当实际工况发生改变时,其缺点便凸显出来:必须依赖于精确的对象数学模型;抗内、外干扰能力差;在对象模型失配时会造成控制品质恶化。当控制系统中含有零极点时,易产生稳态误差,控制效果变差。因此对于具体如何改善Smith预估器的性能至今仍是重要的研究课题之一。在常规Smith预估控制的基础上,学者们提出了很多改正模型,以提高系统的稳定性。
针对课题目前的研究情况,可以在以下几方面继续深入研究:
1. Smith 预估补偿方案由于鲁棒性差而会引起振荡,与之相对比反馈的优点便凸显出来,即在负荷条件不明的情况下仍有控制能力,而且比较稳定。将二者结合起来取长补短将会是理想的控制方案,知识传递函数的形式过于复杂,还有待于深入研究。
2. 对Smith 预估器及其改进型分析其PID控制器的稳定性,因为PID控制器更接近实际应用。
27
华北电力大学本科毕业论文设计(论文)
参考文献
[1] Smith,O.J.H.,A controller to overcome dead time[A],ISA[J].NO.2.pp28-33,1958
[2] 张全庄,蓝羽.Smith预估器在大迟延中的应用[A].机床与液压[J].2006.NO.4.170-171,153
[3] 马平,王瑞,杜海莲,刘希念.神经网络内模控制及其在大迟延系统中的应用[A].华北电力大学学报
[J],2005-9,32(5)
[4]廖明,吴宇.神经网络内模控制算法的研究[J].电气传动自动化.1998,20(4):24-28,35 [5]冯晓露.模糊控制在电厂大迟延控制系统中的应用[A].热力发电[J],2003. [6]金以慧.过程控制[M].清华大学出版社,1998
[7]张静等.Matlab在控制系统中的应用[M].电子工业出版社.
[8]K.J.Astrom,C.C.Hang,and B.C.Lim. A new smith predictor for controlling a process with an integrator and
long dead-time[A].IEEE TRANSACTIONS ON AUTOMATIC CONTROL[J],VOL.39,NO.2.February 1994.
[9]范从搬.锅炉原理[M].北京:水利水电出版社,1995
[10]王华春.基于模糊神经网络的主汽温控制系统的研究[D].华北电力大学,2003. [11]王永初.迟延过程的预估与控制[M].北京:机械工业出版社,1987
[12]董秀成,杨光等.自适应Smith预估极点配置自校正PI控制器[A].电子科技大学学报[J],2000,29(1) [13] 谢书明,柴天佑.一种参数自适应模糊PD控制器[A].信息与控制[J],1998,27(4) [14]杨智,王劲岭.时滞控制系统的PID参数整定[A].甘肃工业大学学报[J],1997,23(2) [15]李卓.基于神经网络的模糊自适应PID控制方法[A].控制与决策[J],1996,11(3)
[16]要亚斌.600MW机组气温系统对象特性及控制策略研究[D],华北电力大学工程硕士学位论文摘要
[C],2008.
[17]要亚斌,张倩.600MW机组主汽温系统的多模型PID控制[A].仪器与仪表增刊[J],2008,29(4):629-632 [18]R.Marquezt.M.Fliess,H.Mounier. A non-conwentional Robust PI-controller for the Smith Predictor[A].
Proceedings of the 40th IEEE. Conference on decision and control Orlando,Florida USA,December 2001 [19]谭敬辉,张绍德.基于Matlab的纯迟延系统的模糊Smith控制器与仿真[A].
冶金动力[J],2010,2
[20]张静.基于RBF网络的微分先行PID控制器[A].自动测量与控制[J],2007,26(9).
[21]黄宇.几种新型控制方法在火电厂主汽温系统中的应用研究[D].华北电力大学工程硕士学位论文摘
要[C],2006
[22]李国勇.过程控制系统[M].北京:电子工业出版社,2009.
[23]Hang,C.C.et.al, A Performance study of control system with dead time[A],IEEE.IECI.VOL,27
pp234-241,1980
[24]傅燕,周琼,杨建刚.改进型Smith预估控制系统的仿真[A].计算机仿真[J],1998 [25]舒迪前.预测控制系统及其应用[M].北京:机械工业出版社.1996,127-173
28
华北电力大学本科毕业论文设计(论文)
[26]陈来九,热工过程自动调节和应用[M].北京:水利水电出版社,1982
[27]崔坤林,张翼飞.时滞系统的经典控制与智能控制[A],微计算机信息[J],2004,20(6):25-26 [28]Dahlin EB.,Designing and tuning digital controllers[J].
Instr.& Contr.Sys.,1968,41(7):77-79.
[29]王耀南.模糊神经网络在炉温控制中的应用[J].系统工程与电子技术[M],1997,(12):77-79 [30]叶其革,吴捷.一种自组织模糊神经网络控制器[A].控制与决策[J],1998,13(6):694-699. [31]荣雅君,窦春霞,袁石文.过热气温模糊神经网络预测控制器的设计[A].中国电机工程学报
[J],2003,23(1):177-180
[32]李遵基.热工自动控制系统[M].中国电力出版社.1997.
[33]李显宏.界面设计与编译技巧. 北京:电子工业出版社.2006.203-283
29
华北电力大学本科毕业论文设计(论文)
附录
function varargout = anjing(varargin) % ANJING MATLAB code for anjing.fig
% ANJING, by itself, creates a new ANJING or raises the existing % singleton*. %
% H = ANJING returns the handle to a new ANJING or the handle to % the existing singleton*. %
% ANJING('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in ANJING.M with the given input arguments. %
% ANJING('Property','Value',...) creates a new ANJING or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before anjing_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to anjing_OpeningFcn via varargin. %
% *See GUI Options on GUIDE's Tools menu. Choose \"GUI allows only one % instance to run (singleton)\". %
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help anjing
% Last Modified by GUIDE v2.5 08-Jun-2011 21:17:42
% Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @anjing_OpeningFcn, ... 'gui_OutputFcn', @anjing_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);
30
华北电力大学本科毕业论文设计(论文)
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
% End initialization code - DO NOT EDIT
% --- Executes just before anjing is made visible.
function anjing_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to anjing (see VARARGIN)
% Choose default command line output for anjing handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes anjing wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = anjing_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
31
华北电力大学本科毕业论文设计(论文)
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on button press in togglebutton1.
function togglebutton1_Callback(hObject, eventdata, handles) % hObject handle to togglebutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) plot(0,0);
set(handles.togglebutton5,'enable','off'); set(handles.togglebutton4,'enable','off'); set(handles.togglebutton3,'enable','off'); set(handles.togglebutton2,'enable','off'); set(handles.togglebutton1,'enable','on'); if get(handles.togglebutton1,'value')==1 set(handles.togglebutton1,'string','pause'); global Kp;global Ti;global Td; global ts; global t; global v; global yout; global rin;
prompt={'PID=Kp(1+1/TiS+TdS) Kp= ','Ti= ','Td='}; def={'1 ','6','0 '}; dlgtitle='PID参数设置 ';
answer=inputdlg(prompt,dlgtitle,1,def); if isempty(answer) Kp=1; Ti=6; Td=0; else
Kp=str2num(char(answer{1}));
32
华北电力大学本科毕业论文设计(论文)
Ti=str2num(char(answer{2})); Td=str2num(char(answer{3})); end
time=zeros(100,1); rin=ones(100,1); yout=zeros(100,1); u=zeros(100,1); du=zeros(100,1); error_1=0;error_2=0;
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; k=1; yout_1=0; rin(k)=1; rin_1=0; for k=1:1:100 ts1=21.5;
sys=tf([0 1.04],[110.7 1]); dsys=c2d(sys,ts1,'t'); [num,den]=tfdata(dsys,'v');
yout(k)=(den(2)*yout_1+num(1)*u_4+num(2)*u_5)/den(1); sys=tf([0.1 1],[1 1]); dsys=c2d(sys,ts1,'t'); [num,den]=tfdata(dsys,'v');
error(k)=(den(2)*error_1+den(1)*rin(k)+den(2)*rin_1-num(1)*yout(k)-num(2)*yout_1)/den(1);
yout_1=yout(k); rin_1=rin(k);
c1=Kp*(1+ts/Ti+Td/ts); c2=-Kp/(1+2*Td/ts); c3=Kp*Td/ts;
du(k)=c1*error(k)+c2*error_1+c3*error_2; du_1=du(k);
error_2=error_1;error_1=error(k); u(k)=u_1+du(k); time(k)=(k-1)*ts1;
33
华北电力大学本科毕业论文设计(论文)
time_1=time(k);
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); k=k+1; end
plot(time,rin(100,1),time,yout); else
get(handles.togglebutton1,'value')==0
set(handles.togglebutton1,'string','微分先行'); end
% Hint: get(hObject,'Value') returns toggle state of togglebutton1
% --- Executes on button press in togglebutton2.
function togglebutton2_Callback(hObject, eventdata, handles) % hObject handle to togglebutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) plot(0,0);
set(handles.togglebutton5,'enable','off'); set(handles.togglebutton4,'enable','off'); set(handles.togglebutton3,'enable','off'); set(handles.togglebutton2,'enable','on'); set(handles.togglebutton1,'enable','off'); if get(handles.togglebutton2,'value')==1 set(handles.togglebutton2,'string','pause'); global Kp;global Ti;global Td; global ts; global t; global v; global yout; global rin;
prompt={'PID=Kp(1+1/TiS+TdS) Kp= ','Ti= ','Td='}; def={'1 ','6','0.03 '};
34
华北电力大学本科毕业论文设计(论文)
dlgtitle='PID参数设置 ';
answer=inputdlg(prompt,dlgtitle,1,def); if isempty(answer) Kp=1; Ti=6; Td=0.03; else
Kp=str2num(char(answer{1})); Ti=str2num(char(answer{2})); Td=str2num(char(answer{3})); end
time=zeros(100,1); rin=ones(100,1); yout=zeros(100,1); u=zeros(100,1); du=zeros(100,1); error_1=0;error_2=0;
u1_1=0;u1_2=0;u1_3=0;u1_4=0;u1_5=0; u_1=0; k=1; yout_1=0; rin(k)=1; rin_1=0; for k=1:1:100 ts1=21.5;
sys=tf([0 1.04],[110.7 1]); dsys=c2d(sys,ts1,'t'); [num,den]=tfdata(dsys,'v');
yout(k)=(den(2)*yout_1+num(1)*u1_4+num(2)*u1_5)/den(1); yout_1=yout(k); sys=tf([0.045 0],[1 1]); dsys=c2d(sys,ts1,'t'); [num,den]=tfdata(dsys,'v');
u1(k)=(den(2)*u1_1+den(1)*u(k)+den(2)*u_1+num(1)*yout(k)-num(2)*yout_1)/den(1);
35
华北电力大学本科毕业论文设计(论文)
error(k)=rin(k)-yout(k); c1=Kp*(1+ts/Ti+Td/ts); c2=-Kp/(1+2*Td/ts); c3=Kp*Td/ts;
du(k)=c1*error(k)+c2*error_1+c3*error_2; error_2=error_1;error_1=error(k); u(k)=u_1+du(k); du_1=du(k); time(k)=(k-1)*ts1;
u1_5=u1_4;u1_4=u1_3;u1_3=u1_2;u1_2=u1_1;u1_1=u1(k); y_1=yout(k); u_1=u(k); k=k+1; end
plot(time,rin(100,1),'r',time,yout,'b'); else
get(handles.togglebutton2,'value')==0
set(handles.togglebutton2,'string','中间反馈'); end
% Hint: get(hObject,'Value') returns toggle state of togglebutton2
% --- Executes on button press in togglebutton3.
function togglebutton3_Callback(hObject, eventdata, handles) % hObject handle to togglebutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) plot(0,0);
set(handles.togglebutton5,'enable','off'); set(handles.togglebutton4,'enable','off'); set(handles.togglebutton3,'enable','on'); set(handles.togglebutton2,'enable','off'); set(handles.togglebutton1,'enable','off'); if get(handles.togglebutton3,'value')==1 set(handles.togglebutton3,'string','pause');
36
华北电力大学本科毕业论文设计(论文)
global Kp;global Ti;global Td; global ts; global t; global v; global yout; global rin;
prompt={'PID=Kp(1+1/TiS+TdS) Kp= ','Ti= ','Td='}; def={'1 ','6','0.3 '}; dlgtitle='PID参数设置 ';
answer=inputdlg(prompt,dlgtitle,1,def); if isempty(answer) Kp=1; Ti=6; Td=0.3; else
Kp=str2num(char(answer{1})); Ti=str2num(char(answer{2})); Td=str2num(char(answer{3})); end
time=zeros(100,1); rin=ones(100,1); yout=zeros(100,1); u=zeros(100,1); du=zeros(100,1); error_1=0;error_2=0;
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; k=1; yout_1=0; rin(k)=1; rin_1=0; for k=1:1:100 ts1=21.5;
sys=tf([0 1.04],[110.7 1]); dsys=c2d(sys,ts1,'t'); [num,den]=tfdata(dsys,'v');
37
华北电力大学本科毕业论文设计(论文)
yout(k)=(den(2)*yout_1+num(1)*u_4+num(2)*u_5)/den(1); error(k)=rin(k)-yout(k); c1=Kp*(1+ts/Ti+Td/ts); c2=-Kp/(1+2*Td/ts); c3=Kp*Td/ts;
du(k)=c1*error(k)+c2*error_1+c3*error_2; du_1=du(k);
error_2=error_1;error_1=error(k); u(k)=u_1+du(k); time(k)=(k-1)*ts1;
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_1=yout(k); k=k+1; end
plot(time,rin(100,1),'r',time,yout,'b'); else
get(handles.togglebutton3,'value')==0 set(handles.togglebutton3,'string','常规PID'); end
% Hint: get(hObject,'Value') returns toggle state of togglebutton3
% --- Executes on button press in togglebutton4.
function togglebutton4_Callback(hObject, eventdata, handles) % hObject handle to togglebutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) plot(0,0);
set(handles.togglebutton5,'enable','off'); set(handles.togglebutton4,'enable','on'); set(handles.togglebutton3,'enable','off'); set(handles.togglebutton2,'enable','off'); set(handles.togglebutton1,'enable','off'); if get(handles.togglebutton4,'value')==1 set(handles.togglebutton4,'string','pause');
38
华北电力大学本科毕业论文设计(论文)
global Kp;global Ti;global Td; global ts; global t; global v; global yout; global rin;
prompt={'PID=Kp(1+1/TiS+TdS) Kp= ','Ti= ','Td='}; def={'0.3 ','0.3','0.3 '}; dlgtitle='PID参数设置 ';
answer=inputdlg(prompt,dlgtitle,1,def); if isempty(answer) Kp=0.3; Ti=0.3; Td=0.3; else
Kp=str2num(char(answer{1})); Ti=str2num(char(answer{2})); Td=str2num(char(answer{3})); end
time=zeros(100,1); rin=ones(100,1); yout=zeros(100,1); u=zeros(100,1); du=zeros(100,1); error_1=0;error_2=0;
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; k=1; y1_1=0; yout_1=0; rin(k)=1; rin_1=0; for k=1:1:100 ts1=21.5;
sys=tf([0 1.04],[110.7 1]); dsys=c2d(sys,ts1,'t');
39
华北电力大学本科毕业论文设计(论文)
[num,den]=tfdata(dsys,'v');
yout(k)=(den(2)*yout_1+num(1)*u_4+num(2)*u_5)/den(1);
y1(k)=(den(2)*y1_1-num(1)*u(k)-num(2)*u_1+num(1)*u_4+num(2)*u_5)/den(1); y(k)=yout(k)-y1(k); error(k)=rin(k)-y(k);
c1=Kp*(1+ts/Ti+Td/ts); c2=-Kp/(1+2*Td/ts); c3=Kp*Td/ts;
du(k)=c1*error(k)+c2*error_1+c3*error_2; du_1=du(k);
error_2=error_1;error_1=error(k); u(k)=u_1+du(k); time(k)=(k-1)*ts1;
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_1=yout(k); y1_1=y1(k); k=k+1; end
plot(time,rin(100,1),'r',time,yout,'b'); else
get(handles.togglebutton4,'value')==0
set(handles.togglebutton4,'string','Smith预估'); end
% Hint: get(hObject,'Value') returns toggle state of togglebutton4
% --- Executes on button press in togglebutton5.
function togglebutton5_Callback(hObject, eventdata, handles) % hObject handle to togglebutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) plot(0,0);
set(handles.togglebutton5,'enable','on'); set(handles.togglebutton4,'enable','off');
40
华北电力大学本科毕业论文设计(论文)
set(handles.togglebutton3,'enable','off'); set(handles.togglebutton2,'enable','off'); set(handles.togglebutton1,'enable','off'); if get(handles.togglebutton5,'value')==1 set(handles.togglebutton5,'string','pause'); global Kp;global Ti;global Td; global ts; global t; global v; global yout; global rin;
prompt={'PID=Kp(1+1/TiS+TdS) Kp= ','Ti= ','Td='}; def={'1.9 ','4.5','6 '}; dlgtitle='PID参数设置 ';
answer=inputdlg(prompt,dlgtitle,1,def); if isempty(answer) Kp=1.9; Ti=4.5; Td=6; else
Kp=str2num(char(answer{1})); Ti=str2num(char(answer{2})); Td=str2num(char(answer{3})); end
time=zeros(100,1); rin=ones(100,1); yout=zeros(100,1); u=zeros(100,1); du=zeros(100,1); error_1=0;error_2=0;
u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; yout_1=0; y1_1=0; y2_1=0; y3_1=0;
41
华北电力大学本科毕业论文设计(论文)
y4_1=0;y4_2=0;y4_3=0;y4_4=0;y4_5=0; k=1; rin(k)=1; rin_1=0; for k=1:1:100 ts1=21.5;
sys=tf([0 1.04],[110.7 1]); dsys=c2d(sys,ts,'t'); [num,den]=tfdata(dsys,'v');
yout(k)=(den(2)*yout_1+num(1)*u_4+num(2)*u_5)/den(1); y_1=yout(k);
y1(k)=(den(2)*y1_1+num(1)*u_4+num(2)*u_5)/den(1); y3(k)=yout(k)-y1(k); y1_1=y1(k);
y2(k)=(den(2)*y2_1+num(1)*u(k)+num(2)*u_1)/den(1); u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1; y2_1=y2(k);
sys=tf([0 10],[150 1]); dsys=c2d(sys,ts,'t'); [num,den]=tfdata(dsys,'v');
y4(k)=(den(2)*y4_1+(den(1)+num(1))*y3(k)+(num(2)-den(2))*y3_1-num(1)*y4_4+num(2)*y4_5)/den(1);
y3_1=y3(k);
y4_5=y4_4;y4_4=y4_3;y4_3=y4_2;y4_2=y4_1; error(k)=rin(k)-(y2(k)+y4(k)); y4_1=y4(k);
c1=Kp*(1+ts/Ti+Td/ts); c2=-Kp/(1+2*Td/ts); c3=Kp*Td/ts;
du(k)=c1*error(k)+c2*error_1+c3*error_2; du_1=du(k);
error_2=error_1;error_1=error(k); u(k)=u_1+du(k); u_1=u(k);
42
华北电力大学本科毕业论文设计(论文)
time(k)=(k-1)*ts1; k=k+1; end
plot(time,rin(100,1),'r',time,(y2+y4),'b'); else
get(handles.togglebutton5,'value')==0
set(handles.togglebutton5,'string','改进Smith预估'); end
% Hint: get(hObject,'Value') returns toggle state of togglebutton5
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) hold off; plot(0,0);
set(handles.togglebutton5,'enable','on'); set(handles.togglebutton4,'enable','on'); set(handles.togglebutton3,'enable','on'); set(handles.togglebutton2,'enable','on'); set(handles.togglebutton1,'enable','on');
% -------------------------------------------------------------------- function Untitled_1_Callback(hObject, eventdata, handles) % hObject handle to Untitled_1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if get(handles.togglebutton1,'value')==1 image_data=imread('微分先行.jpg') image(image_data); end
if get(handles.togglebutton2,'value')==1
43
华北电力大学本科毕业论文设计(论文)
image_data=imread('中间反馈.jpg') image(image_data); end
if get(handles.togglebutton3,'value')==1 image_data=imread('常规PID.jpg') image(image_data); end
if get(handles.togglebutton4,'value')==1 image_data=imread('Smith预估.jpg') image(image_data); end
if get(handles.togglebutton5,'value')==1 image_data=imread('改进Smith预估.jpg') image(image_data); end
% -------------------------------------------------------------------- function Untitled_2_Callback(hObject, eventdata, handles) % hObject handle to Untitled_2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global ts;global dt;global v;
prompt={'采样时间 ts(s)= ','画图间隔 dt(s)= ','设定值变化率 v(s)= '}; def={'1','0.1','1'};
dlgtitle=' 相关参数设定 ';
answer=inputdlg(prompt,dlgtitle,1,def); if isempty(answer) ts=1; dt=0.1; v=1; else
ts=str2num(char(answer{1})); dt=str2num(char(answer{2})); v=str2num(char(answer{3}));
44
华北电力大学本科毕业论文设计(论文)
end
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles close;
structure with handles and user data (see GUIDATA) 45
华北电力大学本科毕业论文设计(论文)
致 谢
时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。离校日期已日趋临近,毕业论文的的完成也随之进入了尾声。从开始进入课题到论文的顺利完成,一直都离不开老师、同学、朋友给我热情的帮助,在这里请接受我诚挚的谢意!四年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。四年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。
伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师:李欣利老师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”之感触。
感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、室友、朋友给了我无言的帮助,在这里请接受我诚挚谢意!
同时也感谢我的学院及学校为我提供良好的做毕业设计的环境。
最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。
46
因篇幅问题不能全部显示,请点此查看更多更全内容