

免费预览已结束,剩余18页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录摘要1关键词1abstract1keywords1 引言 11炉温控制系统结构及工作原理 22模糊控制器的设计3 2.1输入、输出的模糊化 32.2模糊控制规则 42.3模糊推理 52.4模糊判决52.5数字pid算法53利用matlab模糊逻辑工具箱设计模糊控制器过程63.1利用matlab模糊推理工具箱编辑模糊控制器过程63.1.1编辑模糊变量及变量的隶属度函数63.1.2编辑输入、输出变量的隶属函数63.1.3编辑模糊控制规则63.1.4模糊控制的生成73.2仿真模型的建立73.2.1对仿真结构图进行说明73.2.2注意仿真前,先进行部分设置83.3仿真结果84 matlab与vc+的混合编程介绍95温控制系统软件的介绍115.1软件实现功能115.2界面简介116模糊pid控制activex控件的编制12致谢 13参考文献 13附录a13基于模糊pid控制的电阻炉温度控制系统摘要:电阻炉是一个特性参数随炉温变化而变化的被控对象,炉温控制具有大惯性、大滞后、时变性的特点。传统pid难以达到较高要求,故本文应用一种参数自适应模糊pid控制方法,根据系统误差e和误差变化率ec对参数的要求在线整定pid参数kp、ki、kd。在用simulink仿真过程中,该控制器比常规pid具有良好的动、静态特性。简介了matlab与visual c+联合编程技术,采用matlab与visual c+联合编程和activcx技术将模糊pid控制activcx控件嵌入vc控制系统中,可使炉温准确快速地跟随设定值。另外,该系统可实时直观显示温度值和炉内加热电压值。关键词:电阻炉温度控制系统 ; 自适应 ; 混合编程 ; activexthe application of fuzzy-pid intemperature control of electric resistance furnacestudent majoring in automation zhao li tutor shi xunwenabstract: as the model parameters of resistance furnace vary with temperature , it show some character of big inertial,pure delay and inconstancy. the traditional method cant meet the higher technological requirements. therefore,this paper applies a parameter self-tuning fuzzy pid controllers method to rectify the parameters of pid controller online to meet the command in the case with variational error and its variance ratio .based on the simulink, a powerful simulation platform, the practice proves that the method has better steady accuracy and tracking performance than the traditional.the activcx along with the union programming technology of matlab and visual c+ was introduced and be used to realized the fuzzy-pid controller, which can make the initial temperature of electric resistance furnace followed by current temperature quickly and exactly. therefore, the temperature and voltage are also applied in the control system pane.key words: temperature control system of electric resistance furnace; self-adaptation; union programming ; activex引言 pid控制具有结构简单、稳定性能好、可靠性高等优点,尤其适用于可建立精确数学模型的确定性控制系统。在控制理论和技术飞速发展的今天,工业过程控制领域仍有大量回路在应用pid控制策略。pid控制中一个关键的问题便是pid参数的整定,传统的方法是在获取对象数学模型的基础上,根据某一整定原则来确定参数。但是在实际的应用中,许多被控过程机理复杂,具有高度非线性、时变不确定性和纯滞后等特点。在噪声、负载扰动等因素的影响下,过程参数甚至模型结构会随时间和工作环境的变化而变化。在这种情况下中,要求pid参数的整定减少对对象数学模型的依赖,并且pid参数能够在线整定,以满足实时控制的要求。模糊逻辑控制,简称模糊控制,它以模糊数学、模糊语言形式的知识表示和模糊逻辑规则推理为理论基础,其基本思想是利用计算机来实现人的控制经验,而这些经验多使用语言表达的具有相当模糊性的控制规则。模糊控制器之所以能获得巨大成功,主要是因为:(1)模糊控制是一种基于规则的控制。它直接采用语言性控制规则,其出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确数学模型,因而使得控制机理和策略易于接受和理解,设计简单,便于应用。(2)模糊控制算法是基于启发性的知识及语言决策规则设计的,这有利于模拟人工控制的过程和方法,增强控制系统的适应能力,使之具有一定的智能水平。(3)模糊控制系统的鲁棒性较强,干扰和参数变化对控制效果的影响被大大减弱,尤其适合于非线性、时变及纯滞后系统的控制。基于此,将模糊控制与pid控制结合起来得到一种复合控制,即模糊参数自适应pid控制。它是在一般pid控制系统的基础上加上一个模糊控制规则环节构成的。模糊控制单元根据当前的误差e(k)及其变化量ec(k),结合被控过程动态特性的变化,通过模糊规则推理,对pid控制器的三个参数kp、ki、kd,进行在线调整,从而实现了对pid参数的智能整定,且适用于普遍的工业被控对象。下面本文将详细论述自适应模糊pid控制系统的结构,建立过程及实现。1.炉温控制系统结构及工作原理如图1所示的两输入三输出模糊pid控制系统。整个控制系统以pc计算机为核心,控制系统与控制对象的接口利用一块多功能的综合接口板来实现,它安装在pc机的isa 总线插槽上,可完成多路输入输出信号的ad、da转换功能。现简单介绍多功能综合接口板的功能:pc-6327 高速光隔模出接口卡主要由控制逻辑电路、光电隔离电路、数模转换电路等部分组成。适用于具备isa 总线的pc系列微机,具有很好的兼容性。本卡采用三条总线光电隔离技术,使被控对象同计算机之间完全电气隔离。采用高速光电耦合器作为隔离器件,从而达到高速实时的操作。多路数据输出、适用范围广、操作使用简便、无须外加电源、抗干扰能力强等特点,使其应用十-ke模 糊控制器kppid控制器+y接口板d /dtkeckikdd/aa/d电阻炉r(k)分广泛。另外,其输出电压信号范围:010v ;最大输出通道数为8路。图1系统结构图温度控制系统的被控对象是电阻炉,被控参数为炉内温度,由热电偶检测炉内实际温度,经过温度变送器转换为05v的电压信号,经计算机采集后与设定温度进行比较,模糊控制器根据设定温度与实际温度的温差及温度的变化率,利用模糊控制算法求出控制输出量。该输出量穿入pid控制器,调整控制参数,控制可控硅调压器的输入,使可控硅的导通角改变。导通角越大,输送到电阻炉两端的交流电压就会愈高,电阻炉的输入功率也就增大,炉温上升;反之,导通角减小,电阻炉输入功率减小,依靠环境自然冷却。炉温偏差为零时,可控硅保持一定的导通角,电阻炉输入一定的功率,使炉温稳定在给定值。2.模糊控制器的设计参数自适应模糊pid控制器由模糊化、模糊推理和模糊判决三部分构成。模糊控制的关键在于模糊规则的合理性,它决定了对pid参数的调节机理及过程。由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取、动态特性不易掌握或变化非常显著的对象非常适用。自适应模糊pid控制器以误差e和误差变化ec作为输入,可以满足不同时刻的e和ec对pid参数自整定的要求。利用模糊控制规则在线对pid参数进行修改,便构成了自适应模糊pid控制器,其结构如图2所示。kide/dt模糊推理pid调节器对象rerrorkdkpy(k)图2 自适应模糊控制器结构pid参数模糊自整定是找出pid三个参数与e与ec之间的模糊关系,在运行通过不断检测e和ec,根据模糊控制原理来对3个参数进行在线修改,以满足不同e和ec时对控制参数的不同要求,而使被控对象有良好的动、静态性能。从系统的稳定性、响应速度、超调量和稳态精度等个方面来考虑,kp,ki,kd的作用如下:(1)比例系数kp的作用是加快系统的响应速度,提高系统的调节精度。kp越大,系统的响应速度越快,系统的调节精度越高,但易产生超调,甚至会导致系统不稳定。kp取值过小,则会降低调节精度,使响应速度缓慢,从而延长调节时间,使系统静态、动态特性变坏。(2)积分作用系数ki的作用是消除系统的稳态误差。ki越大,系统的静态误差消除越快,但ki过大,在响应过程的初期会产生积分饱和作用,从而引起响应过程的较大超调。若ki过小,将使系统静态误差难以消除,影响系统的调节精度。(3)微分作用系数kd的作用是改善系统的动态特性,其作用主要是在响应过程中抑制偏差向任何方向的变化,对偏差变化进行提前预报。但kp过大,会使影响过程提前制动,从而延长调节时间,而且会降低系统的抗干扰性能.2.1 输入、输出的模糊化 选择自适应模糊pid控制器的输入为设定水温与实际水温的偏差e和偏差的变化率ec, 输出为pid参数调整量kp、ki、kd,相应的模糊集分别为e,ec和kp,ki,kd,它是一个双输入三输出的模糊控制器。根据不同时刻的e和ec对pid参数进行在线修正.对于误差e,误差变化ec及参数调整量kp、ki、kd的模糊子集及其论域定义如下:e,ec和kp,ki,kd,的模糊子集均为:nb,nm,ns,zo,ps,pm,pn, 其中nb,nm,ns,zo,ps,pm,pn分别对应负大、负中、负小、零、正小、正中、正大。论域均为:-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6实践证明,系统的控制品质对输入输出量的隶属函数的形状是不敏感的,只与所定义的隶属函数的个数和每个隶属函数所覆盖的论域范围大小有密切的关系。故本文对输入量e,ec及输出量kp、ki、kd模糊集的隶属函数全部采用常用的三角形(trimf)如 图3所示图3 各变量的隶属曲线 2.2模糊控制规则 模糊控制规则是根据已知量e、ec求得输出量kp、ki、kd的推理规则,采用if-then的条件语句形式,即if e(k)= ai and ec(k)= bi then kp=ci,ki=di,kd=ei 其中:i=1,2,49,ai、bi 、ci、di、ei分别是e(k)、ec(k)、kp、ki、kd的语言变量值。模糊规则的推导是根据阶跃响应曲线得出的一般规则,适应性较强。在不同的e和ec下,被控过程对参数kp,ki,kd的自整定要求应满足以下规律:(1)当较大时,应取较大的kp和较小的kd,以使系统响应加快;(2)当中等时,应取较小的kp及适当的ki和kd,以使系统具有较小的超调;(3)当较小时,应取较大的kp和ki以及适当的kd,以避免在平衡点附近出现振荡,使系统具有较好的稳态性能。 如e(k)=pb, ec(k)=pb时,可取kp=nb、ki=pb、kd=pb。控制规则为:if e (k) = pb and e c (k)= pb then kp=nb,ki=pb,kd =pb实际上有如下三条规则组成:if e(k)= pb and ec(k)= pb then kp=nbif e(k)= pb and ec(k)= pb then ki=pbif e(k)= pb and ec(k)= pb then kp=pb在输出刚到设定值时,系统的e (k) = zo、e c (k)= ps,即为零误差,为使系统尽快趋于稳定状态,故应取较小的比例系数kp以避免振荡、较小的微分系数kd以减小超调,并令积分系数ki为0。故控制规则为:if e (k) = zo and e c (k)= ps then kp=ns,ki=ps,kd=ps,即为: if e(k) = zo and ec(k)= ps then kp=nsif e(k) = zo and ec(k)= ps then ki=psif e(k) = zo and ec(k)= ps then kd=ps根据以上一般性规则,在本设计中我们针对kp, ki ,kd三个参数分别给出了整定的模糊控制表如表1表3所示。kpecnbnmnszopspmpbenbpbpbpmpmpszonsnmpbpbpmpspszonsnspmpmpmpszonsnszopmpmpszonsnmnmpspspszonsnsnmnmpmpszonsnmnmnmnbpbzozonmnmnmnbnb表一 kp的模糊控制kiecnbnmnszopspmpbenbnbnbnmnmnszozonmnbnbnmnsnszozonsnbnmnsnszopspszonmnmnszopspmpmpsnmnszopspspmpbpmzozopspspmpbpbpbzozopspmpmpbpb表二 ki的模糊控制规则kdecnbnmnszopspmpbenbnbnbnmnmnszozonmnbnbnmnsnszozonsnbnmnsnszopspszonmnmnszopspmpmpsnmnszopspspmpbpmzozopspspmpbpbpbzozopspmpmpbpb表三 kd的模糊控制规则2.3模糊推理以kp为例说明推理过程,ki、kd可类似得到。对模糊规则:if e(k) = ai and ec(k)= bi then kp=ci前件强度的求取采取隶属度相乘的形式,即对于某一取值e(k)和ec(k),分别有uai(e(k)和ubi(ec(k),故可得到ui=uai(e(k)*ubi(ec(k)。然后将ui赋给后件kp的隶属度,即令uci (xi)=ui,则有kpi=xi。2.4模糊判决模糊判决采用重心法由e(k)、ec(k)的隶属度函数形状知,当其某一特定值时,所涉及的控制规则可以为一条、两条或四条,且对于前件强度总有,所以反模糊化由下式实现:kp=。同理对于ki、kd,分别有kd=,ki=。2.5数字pid算法传统的数字pid算法为u (k) =u(k)+u(k-1)=kp*e(k)-e(k-1)+ki*e(k)+kd*e(k)-2e(k-1)+e(k-2)+u(k-1)=kp*ec(k)+ki*e(k)+kd*ec(k)-ec(k-1)+u(k-1)e(k)=r(k)-y(k)e(k-1)=e(k-1)ec(k)=e(k)-e(k-1)入口e(k),ec(k)模糊化模糊整定kp,ki,kd计算当前kp,ki,kd器输出kp,ki,kd化返回pid控制器输出其中:u(k)、e(k)、ec(k)、kp(k)、ki(k)、kd(k)分别为第k次控制时控制器的输出、偏差信号、偏差变化、控制器的比例系数、积分系数、微分系数,u(k-1)为第k-1次控制时控制器的积分累积量,即u (k1)=。根据各模糊子集的隶属度赋值表和各参数的模糊控制模型,应用模糊合成推理设计pid参数的模糊矩阵表,在线修正pid参数,计算公式如下:kp=kp+kpki=ki+kikd=kd+kd上式中kp、ki、kd为原先整定好的pid参数,其中kp=0.2 ki=0.12,kd=0.15,而kp、ki、kd为模糊控制器的3个输出,可根据被控对象的状态自动调整pid三个控制参数的取值。图4 在线自校正工作流程图 3.利用matlab模糊逻辑工具箱设计模糊控制器3.1用matlab模糊推理工具箱编辑模糊控制器过程3.1.1编辑模糊变量及变量的隶属度函数。在 matlab命令窗口中键入fuzzy 命令,打开fis editor窗口,进入member function editor,在file菜单下选择mamdain型,然后在edit菜单下添加输入、输出,分别是e、ec、kp、ki、kd,双击每个图标就可以进行编辑。模糊决策一般采用mamdanis决策法,解模糊采用重心法(centroid)。3.1.2编辑输入、输出变量的隶属函数。图5 输入、输出的隶数函数双击编辑器窗口的某个输入或者输出图标,打开隶属函数编辑窗口,选定edit下的add mfs选择隶属度函数的个数为7个(nb,nm,ns,zo,ps,pm,pn),选中要编辑变量的图标,确定当前变量量化等级的范围为-6,6,然后确定隶属函数的类型为三角形。对选定的每一个模糊语言值的隶属度函数其参数都可以调整。调整的方法是,在membership function editor窗口中选隶属函数,在指定的位置用左键来拖动这一函数,最后对各变量的隶属度函数标明其对应模糊子集的模糊语言值如图六所示。所有的隶属度函数都标明以后,关闭隶属函数编辑窗口。每一个输入、输出变量隶属函数的编辑过程均相同.编辑输入、输出量的隶属度函数,如图5所示。3.1.3编辑模糊控制规则.在fis窗口双击模糊控制规则图标,或选中edit下拉菜单 rules选项,打开规则编辑窗口,如图6。只要在if、and(or)、then选择框中选中各自的语言变量,然后单击该窗口下面的add rule,该条规则就被写入规则框中。将表13所示的模糊规则表依次写入规则框以后,关闭该窗口。至此,模糊控制器编辑完成,保存文件,文件类型.fis图6 编辑模糊控制规则3.1.4模糊控制的生成。用file菜单下的export的to disk生成一个用户自己定义的文件,后缀为.fis。(本文为fuzzyrulers.fis),然后export 的save to workspace命令在工作区内生成矩阵。3.2仿真模型的建立:进入simulink环境下,再到fuzzy logic toolbox模块库中将fuzzy logic controller功能模块(或fuzzy logic controller with ruleviewer)拖到model中去,双击 fuzzy logic controller模块并在parameters中输入上面所建立的.fis文件的文件名(本例为fuzzyrules),添加其它模块,并连线。仿真结构图如图7所示。 图7仿真结构图3.2.1对仿真结构图进行说明.1.为防止失控现象发生,对误差变化量ec在输入模糊pid控制器之前,加限幅作故设定max voltage模块,对pid controller输出进行限幅。以更加逼近真实控制效果。3.2.2注意仿真前,先进行部分设置。仿真窗口中,单击mulation 下拉菜单中的simulation parameters,在对话框advanced页中,将optimizations栏中的boolean logic signals项设为off.在solver页中,设置stop time为20s,同时设置示波器scope 时间范围为20s。参数设定:ke=0.12,kec=0.12,ku=0.05,kp=0.08,ki=0.08,kd=0.01,kp=0.38 ,ki=0.4,kd=0.08 .信号阶越强度为4.3.3仿真结果:电阻炉随温度的升高,炉模型发生变化,有参数的变化,有阶次的变化,故设定两套电阻炉控制模型为 (1) (2)数据仿真时间为100s,分别改变k,t,d,以及.以观察在不同情况下,两种控制方式的控制效果.通过选择simulink中的start,启动仿真过程,双击图中的scope可观察仿真结果。仿真结果如图6-15所示,(其中图中的蓝线为常规pid控制的控制曲线,红线为该模糊pid控制的控制曲线) 通过大量的仿真研究,我们总结了自适应模糊pid控制器的特点及其参数设计规律如下:(1)首先应确定模糊控制器的量化因子和比例因子,因其对模糊控制器的控制性能影响较大。ke较大时,系统超调大,过渡过程较长。kec较大时,超调量减小,并且kec越大系统超调越小,但系统的响应速度会变慢。实际上,量化因子ke和kec的大小意味着对偏差和偏差变化的不同加权程度,并且ke和kec二者之间也相互影响,所以在选择量化因子时可以先根据常规pid控制器的阶跃响应曲线确定ke的数量级,然后按照基本是26倍的关系确定kec,再根据仿真的结果对ke和kec进行适当的调整。仿真发现,ke和kec都有一个取值范围,只要在范围之内,改变它们的参数值基本不影响模糊控制器的输出。(2)输出比例因子ku作为模糊控制器的总增益,它的大小直接影响着控制器的输出,因而对模糊控制系统的性能影响很大。ku过小会使系统动态响应过程变长,而ku过大则会导致系统振荡。(3)在选择调整因子kp、ki、kd时,由于其参数调整规律和常规pid参数调整规律基本相同,所以可在整定过的pid参数基础上根据响应特性,只调节一个因子,其余的因子按照pid参数之间的关系做适度的修正。大量的仿真表明,这种参数调整方法简单、适用性好。图7-1图7-2图7-3图7-4图7-5图7-1中,采用一阶滞后过程模型,k=3,分母系数t=1,s=5,延迟时间=3s图7-2中,采用一阶滞后过程模型,k=6,分母系数t=1,s=5,延迟时间=3s图7-3中,采用一阶滞后过程模型,k=3,分母系数t=1,s=5,延迟时间=6s图7-4中,采用二阶滞后过程模型,k=3,分母系数t=1,s=3,延迟时间=3s图7-5中,采用二阶滞后过程模型,k=3,分母系数m=1,n=4,p=3,延迟时间=3s从仿真图可以看出,系统加入模糊控制器后,虽然被控对象发生了参数变化,但由于模糊控制器能够根据系统误差e和误差变化率ec对pid的3个参数(kp、ki、kd)进行在线修正,所以我们所得到的系统动态响应曲线比较好,响应速度较快,超调小甚至无超调,当系统的温度设定值改变时,系统可以很好的跟随,这说明在常规pid控制中引入模糊控制器确实能很好地适应系统的突变要求。4 matlab与vc+的混合编程介绍炉温控制系统的实现主要是研究如何将在matlab环境下使用fuzzy logic contrl工具箱开发的模糊pid控制系统嵌入到vc+开发的温度控制系统中,以及温度控制系统界面的设计与开发的问题。那么将matlab环境下开发的算法应用到vc开发的程序中有何好处?又是怎样实现呢?matlab作为优秀的数值计算软件.提供了信号处理、工业控制、应用数学等各个领域的工具箱.特别是对模糊控制、神经网络控制以及pid等能控制提供了良好的支持。但它对运行环境的要求非常高.开发出的程序不能脱离matlab环境.,占用了庞大的系统资源;同时i/o接口功能不强.很难开发出满意的人机对话界面。作为高级语言的c+填补了matlab的以上缺点,从在c+的开发环境visual c+中很容易开发出视窗化的人机界面.但visual c+在开发算法上却显得非常的繁琐复杂.比如利用c+语言开发模糊控制算法或者神经网络控制算法有很大的困难而且要求非常高的编程技巧。若综合运用matlab和visual c+各自的优势.采用matlab与visual c+联合编程和activex技术则可以开发出功能强大的算法.又可以嵌入到监控组态软件中.能得到非常友好的人机界面。那么vc与matlab混合编程的途径有哪些呢?下面简单介绍几种:(1)vc和matlab集成最直接的途径引擎(engine)所谓engine,是指一组matlab提供的接口函数,支持c语言,通过engine调用matlab实际上是将matlab以active控件的方式启动,vc应用程序通过接口 函数,也就是引擎api函数与该控件进行交互。在具体应用中vc程序可作为前端客户机,通过调用engine在后台与matlab服务器建立连接,实现动态通信。在matlab引擎函数库中总共提供了13个c语言的引擎函数。通过这种13个引擎函数vc程序调用matlab可完成任何计算机计算、绘图操作,对所有的数据结构都提供100%的支持。 (2)vc和matlab集成最全面的途径数学库和图形库(2)matlab compiler提供数学库和图形库,可以将大部分m文件写成的应用程序编译成可执行程序脱离matlab环境独立运行。通过其编译器还可以将matlab中编写的m文件转换成c/c+代码,甚至是 c+ 编译器所能识别的源代码即.cpp或 文件和它的头文件.h 文件,进而可以集成到vc应用程序中生成可独立执行的应用程序。 (3)mathtools公司推出的matcom可将matlab的源代码译成同等功能的c +源码.既保持了matlab的优良算法.又保持了c+的高执行效率。它最主要的特点是能够将m语言文件转化为c+代码。这样就可以在visual c+中将其编译成可执行程序(.exe)或动态链接库(.dll),置于vc工程中,工程就可以直接调用库中封装的函数,由于matlab函数不需要 和vc代码一起编译,可以方便地用matlab做一些函数来扩展vc所编应用程序的功能。 (4)c和matlab集成最方便的途径matlab add-inmatlab add-in 功能是mathworks公司为在vc环境下方便的调用m文件提供的又一种方便的途径。它的特点是可以快速把m文件集成到vc中;可以通过m文件创建共享库或mex文件;内含matrix viewer可以方便地进行调试,程序打包等。 对比四种混合编程方法,如果应用不涉及matlab的内部类,不利用matlab功能强大的工具箱,最后一种方法最方便,比较理想。但如果应用matlab 模糊逻辑工具箱进行直观方便地设计模糊控制系统,则前几方法有其一定的可行性。matlab引擎虽具有对matlab 全部功能调用能力,但会打开一个新的matlab进程,运行效率低下。本文提出利用matlab开发相关算法.用matcom作为中间转换软件将matlab编制的m文件转换成可以在visual c+中调用的cpp文件.然后在visualc+中包装算法.编制成相应的activcx控件.供控制系统软件调用。其系统架构如图8所示。控制算法activex控件温控系统matlabmatcomvisual c+visual c+图8系统架构图5.炉温控制系统软件的介绍5.1软件实现功能本炉温控制系统具备基本的监控系统功能:1 显示当前采样温度值,设定温度值,以及电炉加热电压值。显示方法有数值显示和进度条显示,兼顾精确与直观.通过观察温度显示,可以快速获取当前控制信息.2.控制算法的选择,可以在常规pid和自适应fuzzy pid两种控制算法间切换。3.手动与自动的选择。开关设定到“手动”侧,用户可以自行设定批pid参数kp,kd,ki,如设定到“自动”侧,则系统按自适应fuzzy pid控制算法自动执行控制命令。在两种控制方式间切换时,必须按下“开始”按钮,更新参数,同时信息框中显示操作信息。4设计帮助按钮,编写帮助文档,使操作人员在操作过程中可方便的帮助文档获得操作帮助。5.2界面简介炉温控制系统的实现主要分两步模糊pid控制activex控件的编制和炉温控制系统界面的实现与控件的应用。下面先介绍界面的实现。程序界面如图9所示。新建一个单文档类工程fuzzypid,设定cfuzzypidview为cformview类的派生类,然后编辑对话框,添加如下资源。资源id说明idc_sethotedit,idc_curhotedit,idc_erroredit温度设定值,温度当前值,温差编辑框idc_kpedit,idc_kiedit,idc_kdeditpid参数编辑框idc_autoradio,idc_handradio控制方式选择idc_runbutton,idc_stopbutton开始,停止按钮idc_hotvaluestatic,idc_pidvaluestatic,idc_methodstatic静态显示文本图9 控制界面6.糊pid控制activex控件的编制模糊pid控制activex控件的编制分两步:首先,在matlab中编制模糊pid控制的m文件fuzzypid.m ,代码见附录一.其次,在visual c+中利用程序向导建立基于mfc activex control wizard的工程fuzzypid。利用matcom将fuzzypid.m文件导入到工程中,导入的过程自动将m文件转换成cpp文件。(1)用class wizard添加控件属性、方法和事件。在mfc class wizard中单击add property增加fpidkp(比例系数)、fpidkpi(微分系数)、fpidkd(积分系数),fpid_outmin(输出下限)、fpid_outmax(输出上限),以上属性均由getinvalue方法实现。单击addmethod增加 getinvalue(获取设定值)方法、getoutvalue(进行模糊pid运算,获取输出值)方法,在这里调用转换过来的m文件,实现模糊控制算法。(2)设置属性页,对照m文件中变量的要求,确定需要设定的参数和现场实时采集的数值,在属性页中设置好,这样才能保证在监控组态软件中调用activex控件时有相对应的接口。属性页设置如图12所示。(3)在dopropexchange数中系列化自定义属性,程序代码如下:void cfzypidctri:dopropexchange(cpropexchange* ppx)exchange version(ppx, makelono(wverminoswvermagjor);colecontrol:dopropexchange(ppx);px_float(ppx,fzypidp,m_fzypidp,0,0) /其他属性的系列化 (4)绘制控件.就是在ondraw函数里增加绘图代码。若需要动态控件,则需要通过画笔、画刷画出来;若是静态控件.则可以在位图资源中画好.然后用load bitmap函数调入。(5)以上实现了模糊pid控制activex控件的编制,最后需要测试改控件,在activex control test中点击insert control找到fuzzypid control确定即可。编制好activcx控件后.在装有温控软件的机器上注册改控件.就可以调用该模糊pidactivcx控件来实现温度的控制了.总之,利用activcx结合matlab与visual c+的联合编程技术.实现在温控软件中利用模糊pid进行炉温控制可取得满意的效果。该方法是一种高效的实用方法.对于不熟悉visual c+但是对activcx技术稍有了解的工程技术人员来说是一个相当有效的选择。谢辞本文是在石学文老师的悉心指导下完成的,在此向其表示最诚挚的感谢。在石老师的帮助,我对模糊控制有了更深的理解。石老师广博的知识和忘我的工作作风使我受益匪浅。我同时也十分感谢学校和院系为我提供的各种有利条件,感谢周围关心、爱护我的领导、老师和同学。最后向我的家人表示衷心的祝福,愿他们永远健康。参考文献1.章卫国,杨向忠.模糊控制理论与应用.西安: 西北工业大学出版社 20002.廉小亲.模糊控制技术.北京:中国电力出版社,20033.张国良
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年现代制造业管理考试试卷及答案
- 2025年市场研究与分析师职业考试试题及答案
- 2025年水资源管理专业考试试卷及答案
- 2025年教师招聘考试试题及答案
- 2025年工程造价与管理知识考试卷及答案
- 物资清查盘点管理制度
- 物资采购支付管理制度
- 特技培训日常管理制度
- 特殊人员窗口管理制度
- 特殊区域垃圾管理制度
- 电缆敷设专项施工方案
- 儿童下支气管肺炎护理查房课件
- 机车高压电器-高压连接器
- ic封装公司运营管理方案
- 软件项目管理 复习题(附参考答案)
- 有机电子学课件
- 我国煤机装备制造业发展现状与展望
- 围术期患者转运专家共识(2021版)
- 工商业用户安全用气培训课件
- 产品方案技术白皮书模板(含系统架构说明书)
- 能源动力类能源与动力工程专业
评论
0/150
提交评论