版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 第一章 緒論</b></p><p> 1.1 課題研究對象</p><p> PID控制是最早發(fā)展起來的控制策略之一,由于其算法簡單,魯棒性好及可靠性高,被廣泛應(yīng)用于過程控制與運(yùn)動控制中,尤其適用于可建立精確數(shù)學(xué)模型的確定性系統(tǒng)。然而實(shí)際工業(yè)生產(chǎn)過程中往往具有非線性、時變不確定性,難以建立精確的數(shù)學(xué)模型,應(yīng)用常規(guī)的PID控制器不能
2、達(dá)到理想的控制效果,而且在實(shí)際生產(chǎn)現(xiàn)場中,由于受到參數(shù)整定方法的復(fù)雜的困擾,常規(guī)PID控制器參數(shù)往往整定不良、性能不佳,對運(yùn)行工況的實(shí)用性很差[1]。</p><p> 現(xiàn)代中小規(guī)模的控制工程通常采用基于IPC的控制系統(tǒng),系統(tǒng)具有數(shù)據(jù)采集、控制與管理功能。如能進(jìn)一步采用先進(jìn)控制算法,便可以設(shè)計(jì)出低成本的先進(jìn)控制系統(tǒng)。</p><p> 在該課題中,被控對象為電加熱器,要對其實(shí)現(xiàn)高精度的
3、恒溫控制,且調(diào)節(jié)時間盡可能短。硬件采用ADVANTECH的IPC和PCL-1800多功能卡,用VB編寫基于遺傳算法整定的PID控制算法的控制程序,主要是采用實(shí)數(shù)編碼。</p><p> 1.2 PID整定方法的發(fā)展</p><p> 在工程實(shí)際中,應(yīng)用最為廣泛的調(diào)節(jié)器控制規(guī)律為比例積分微分控制,簡稱PID控制,又稱PID調(diào)節(jié)。</p><p> PID控制器問
4、世至今已有近60年的歷史了,它以其結(jié)構(gòu)簡單、穩(wěn)定性好、工作可靠、調(diào)整方便而成為工業(yè)控制主要和可靠的技術(shù)工具。當(dāng)被控對象的結(jié)構(gòu)和參數(shù)不能完全掌握,或得不到精確的數(shù)學(xué)模型時,控制理論的其它設(shè)計(jì)技術(shù)難以使用,系統(tǒng)的控制器的結(jié)構(gòu)和參數(shù)必須依靠經(jīng)驗(yàn)和現(xiàn)場調(diào)試來確定,這時應(yīng)用PID控制技術(shù)最為方便。即當(dāng)我們不完全了解一個系統(tǒng)和被控對象﹐或不能通過有效的測量手段來獲得系統(tǒng)的參數(shù)的時候,便最適合用PID控制技術(shù)【2】。 </p><
5、p> 隨著計(jì)算機(jī)技術(shù)和最優(yōu)控制理論的發(fā)展,PID參數(shù)的整定方法發(fā)生了很大的變化,出現(xiàn)了一些基于計(jì)算機(jī)的PID參數(shù)最優(yōu)整定方法。最優(yōu)控制理論的應(yīng)用,加上計(jì)算機(jī)的高速運(yùn)算能力,賦予了PID參數(shù)優(yōu)化這樣的多變量最優(yōu)化問題新的生命力,PID控制器的最優(yōu)化整定方法是針對特定的系統(tǒng)建立數(shù)學(xué)模型,運(yùn)用各種數(shù)值解法按照一定的性能指標(biāo)進(jìn)行優(yōu)化。常用的性能指標(biāo)有各種積分型指標(biāo),如ISE、IAE、ISTE、ITAE等指標(biāo)。近年來,隨著智能控制理論的發(fā)
6、展,專家系統(tǒng)、模糊控制以及神經(jīng)網(wǎng)絡(luò)日益受到控制界的重視,出現(xiàn)了一些智能優(yōu)化手段,主要有專家智能型PID參數(shù)自整定技術(shù)、基于模糊推理的PID自尋優(yōu)技術(shù)、其他的如啟發(fā)式搜索、霍普費(fèi)爾德神經(jīng)網(wǎng)絡(luò)、模擬退火、遺傳算法(GA)智能整定技術(shù)。</p><p> 1.3 VB主要功能和特點(diǎn)</p><p> Visual Basic 是Microsoft 公司開發(fā)的Windows 應(yīng)用程序開發(fā)工
7、具,Visual ——“可視化的”,是一種開發(fā)圖形戶界面(GUI)的方法。1991年推出 VB1.0,1992、1993、1995、1997、1998,2000相繼推出:2.0, 3.0, 4.0, 5.0, 6.0,VB.Net(7.0)版本。5.0 ,6.0包含三種版本(學(xué)習(xí)版、專業(yè)版和企業(yè)版)</p><p> 英文Visual的意思是“視覺的”,“可視的Baisc”這個名字可能抽象了點(diǎn),但實(shí)際上它卻是
8、最直觀的編程方法,之所以叫做“可視”,你只要看到VB的界面就會明白,實(shí)際上你無需編程,就可以完成許多步驟。</p><p> 在VB中引入了控件的概念,在Windows中控件的身影無處不在,如按鈕、文本框等,VB把這些控件模式化,并且每個控件都有若干屬性用來控制控件的外觀,工作方法,能夠響應(yīng)用戶操作(事件)。這樣你就可以象在畫板上一樣,隨意點(diǎn)幾下鼠標(biāo),一個按鈕就完成了,這些在以前的編程語言下是要經(jīng)過相當(dāng)復(fù)雜的工
9、作的。</p><p><b> VB的特點(diǎn)如下:</b></p><p> 1. 具有面向?qū)ο蟮目梢暬O(shè)計(jì)工具;</p><p> 2. 事件驅(qū)動的編程機(jī)制;</p><p> 3. 提供了易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境;</p><p> 4. 結(jié)構(gòu)化的程序設(shè)計(jì)語言;</p&g
10、t;<p> 5. 支持多種數(shù)據(jù)庫系統(tǒng)的訪問;</p><p> 6. Active技術(shù);</p><p> 7. VB 6.0在開發(fā)環(huán)境上、網(wǎng)絡(luò)功能等的增強(qiáng);</p><p> 8. 完備的help聯(lián)機(jī)幫助功能。</p><p> Visual Basic6.0的新特性 </p><p>
11、1.數(shù)據(jù)訪問的新特性 </p><p> 2. Internet功能的增強(qiáng) </p><p> 3.控件、語言和向?qū)Х矫娴男略鎏匦?lt;/p><p> 4.高度可移植化的代碼 </p><p> 5.創(chuàng)建ActiveX控件更加輕松方便 </p><p> 6.在線幫助更加完善。 </p><
12、p> 我們知道現(xiàn)代中小規(guī)模的控制工程通常采用基于IPC的控制系統(tǒng),系統(tǒng)具有數(shù)據(jù)采集、控制與管理功能。如能進(jìn)一步采用先進(jìn)控制算法如遺傳算法,便可以設(shè)計(jì)出低成本的先進(jìn)控制系統(tǒng)。但是目前,關(guān)于遺傳算法的書籍大部分都針對它的理論方面。主要是采用MATLAB進(jìn)行編程仿真。雖然可以取得很好的仿真效果,但畢竟缺少使用性。而采用VB編程實(shí)現(xiàn),可以提供一個很好的人機(jī)界面,并且需要時即可以與外接設(shè)備進(jìn)行連接通訊,這樣便可以投入到應(yīng)用中。因此,鑒于實(shí)
13、用性方面的考慮,最后以VB進(jìn)行編制程序。</p><p> 圖1-1 VB集成開發(fā)環(huán)境</p><p> 1.4 PID參數(shù)的遺傳算法尋優(yōu)</p><p> 遺傳算法(GA)是一種建立在生物界自然選擇原理和自然遺傳機(jī)制的隨機(jī)化搜索法,它模擬了生物界中的生命進(jìn)化機(jī)制,在人工系統(tǒng)中實(shí)現(xiàn)特定目標(biāo)的優(yōu)化。遺傳算法是一個迭代過程,遺傳操作是在種群中進(jìn)行的,產(chǎn)生初始種群,
14、規(guī)模為N,即種群由N個個體組成,經(jīng)GA操作,生成一代一代新種群(每代N個個體)。從每一代種群中選出適應(yīng)度f高的優(yōu)質(zhì)個體,在解空間中,直到滿足要求的收斂指標(biāo),即得到問題最優(yōu)解【2】。</p><p> 在運(yùn)用遺傳算法對PID參數(shù)尋優(yōu)的個體評價過程中,許多個體所對應(yīng)的參數(shù)都可能使實(shí)際過程系統(tǒng)失控,這在應(yīng)用中是不能接受的,因此采用的是基于模型的PID控制器參數(shù)優(yōu)化,對過程不產(chǎn)生任何影響;同時優(yōu)化是基于模型,對模型響應(yīng)
15、的評價大大加快,可以在較短的時間得到最優(yōu)化結(jié)果。 PID控制器參數(shù)的優(yōu)化設(shè)計(jì)是一個組合優(yōu)化問題。遺傳算法求解組合優(yōu)化問題所涉及的主要問題有參數(shù)編碼方案、適應(yīng)度函數(shù)設(shè)計(jì)、遺傳算法參數(shù)選擇等。在優(yōu)化問題的實(shí)際應(yīng)用中,合理處理以上問題,構(gòu)造合適的遺傳算法框架,是遺傳算法的關(guān)鍵所在。</p><p><b> 遺傳算法概述</b></p><p> 2.1 什么是
16、遺傳算法 </p><p> 遺傳算法(genetic algorithms)簡稱GA。我們知道達(dá)爾文的自然選擇學(xué)說是一種被人們廣泛接受的生物進(jìn)化學(xué)說。這種學(xué)說認(rèn)為,生物要生存下去,就必須進(jìn)行生存斗爭。生存斗爭包括種內(nèi)斗爭、種間斗爭以及生物跟無機(jī)環(huán)境之間的斗爭三個方面。在生存斗爭中,具有有利變異的個體容易存活下來,并且有更多的機(jī)會將有利變異傳給后代;具有不利變異的個體就容易被淘汰,產(chǎn)生后代的機(jī)會也少的多。因此,
17、凡是在生存斗爭中獲勝的個體都是對環(huán)境適應(yīng)性比較強(qiáng)的。達(dá)爾文把這種在生存斗爭中適者生存,不適者淘汰的過程叫做自然選擇。它表明,遺傳和變異是決定生物進(jìn)化的內(nèi)在因素。自然界中的多種生物之所以能夠適應(yīng)環(huán)境而得以生存進(jìn)化,是和遺傳和變異生命現(xiàn)象分不開的。正是生物的這種遺傳特性,使生物界的物種能夠保持相對的穩(wěn)定;而生物的變異特性,使生物個體產(chǎn)生新的性狀,以致于形成新的物種,推動了生物的進(jìn)化和發(fā)展。遺傳算法是模擬達(dá)爾文的遺傳選擇和自然淘汰的生物進(jìn)化過
18、程的計(jì)算模型。它的思想源于生物遺傳學(xué)和適者生存的自然規(guī)律,是具有“生存+檢測”的迭代過程的搜索算法。遺傳算法以一種群體中的所有個體為對象,并利用隨機(jī)化技術(shù)指導(dǎo)對一個被編碼的參數(shù)</p><p> 2.2 遺傳算法的發(fā)展.</p><p> 早在20世紀(jì)50年代就有將進(jìn)化原理應(yīng)用于計(jì)算機(jī)科學(xué)的努力,但缺乏一種普遍的編碼方法,只能依賴于變異而非交配產(chǎn)生新的基因結(jié)構(gòu)。50年代末到60年代初
19、,受一些生物學(xué)家用計(jì)算機(jī)對生物系統(tǒng)進(jìn)行模擬的啟發(fā),Holland開始應(yīng)用模擬遺傳算子研究適應(yīng)性。在Bagley1967年關(guān)于自適應(yīng)下棋程序的論文中,他應(yīng)用遺傳算法搜索下棋游戲評價函數(shù)的參數(shù)集,并首次提出了遺傳算法這一術(shù)語。1975年Holland出版了遺傳算法歷史上的經(jīng)典著作《自然和人工系統(tǒng)中的適應(yīng)性》,系統(tǒng)闡述了遺傳算法的基本理論和方法,并提出了模式定理(schemata theorem),證明在遺傳算子選擇、交叉和變異的作用下,具有
20、低階、短定義距以及平均適應(yīng)度高于群體平均適應(yīng)度的模式在子代中將以指數(shù)級增長,這里的模式是某一類字符串,其某些位置有相似性。同年,DeJong完成了他的博士論文《遺傳自適應(yīng)系統(tǒng)的行為分析》,將Holland的模式理論與他的計(jì)算試驗(yàn)結(jié)合起來,進(jìn)一步完善了選擇、交叉和變異操作,提出了一些新的遺傳操作技術(shù)。</p><p> 進(jìn)入80年代后,遺傳算法得到了迅速發(fā)展,不僅理論研究十分活躍,而且在越來越多的應(yīng)用領(lǐng)域中得到應(yīng)
21、用。1983年,Holland的學(xué)生Goldberg將遺傳算法應(yīng)用于管道煤氣系統(tǒng)的優(yōu)化,很好地解決了這一非常復(fù)雜的問題。1989年,Goldberg出版了《搜索、優(yōu)化和機(jī)器學(xué)習(xí)中的遺傳算法》一書,這本可能是遺傳算法領(lǐng)域被引用次數(shù)最多的書為這一領(lǐng)域奠定了堅(jiān)實(shí)的科學(xué)基礎(chǔ)。80年代中期,Axelrod和Forrest合作,采用遺傳算法研究了博奕論中的一個經(jīng)典問題--囚徒困境。在機(jī)器學(xué)習(xí)方面,Holland自提出遺傳算法的基本理論后就致力于研究
22、分類器系統(tǒng)(classifier system),Holland 希望系統(tǒng)能將外界刺激進(jìn)行分類,然后送到需要的地方去,因此命名為分類器系統(tǒng),這里的classifier是指一個二進(jìn)制串,代表一類情況。分類器系統(tǒng)將某一條件是否為真與串的某一位相對應(yīng),從而將產(chǎn)生式系統(tǒng)中的規(guī)則編碼為二進(jìn)制串,這樣就可以應(yīng)用遺傳算法來進(jìn)行演化,同時引入了基于經(jīng)濟(jì)學(xué)原理的信用分配機(jī)制--桶隊(duì)(bucket brigade)算法來確定規(guī)則的相對強(qiáng)度[4]。</
23、p><p> Holland和Santa Fe的Arthur等人合作,用分類器系統(tǒng)模擬了一些經(jīng)濟(jì)現(xiàn)象,得到了滿意的結(jié)果。遺傳算法已有了許多發(fā)展,但一般來說,其基本過程是:首先采用某種編碼方式將解空間映射到編碼空間(可以是位串、實(shí)數(shù)、有序串、樹或圖,Holland最初的遺傳算法是基于二進(jìn)制串的,類似于生物染色體結(jié)構(gòu),易于用生物遺傳理論解釋,各種遺傳操作也易于實(shí)現(xiàn)。另外,可以證明,采用二進(jìn)制編碼式,算法處理的模式最多。
24、但是,在具體問題中,直接采用解空間的形式進(jìn)行編碼,可以直接在解的表現(xiàn)型上進(jìn)行遺傳操作,從而易于引入特定領(lǐng)域的啟發(fā)式信息,可以取得比二進(jìn)制編碼更高的效率。實(shí)數(shù)編碼一般用于數(shù)值優(yōu)化,有序串編碼一般用于組合優(yōu)化。),每個編碼對應(yīng)問題的一個解,稱為染色體或個體。一般通過隨機(jī)方法確定起始的一群個體,稱為種群,在種群中根據(jù)適應(yīng)值或某種競爭機(jī)制選擇個體(適應(yīng)值就是解的滿意程度,可以由外部顯式適應(yīng)度函數(shù)計(jì)算,也可以由系統(tǒng)本身產(chǎn)生,如由協(xié)同演化時不同對策
25、的博奕確定,或者由個體在群體中的存活量和繁殖量確定。),使用各種遺傳操作算子(包括雜交,變異,倒位等等)產(chǎn)生下一代(下一代可以完全替代原種群,即非重疊種群;</p><p> 遺傳算法發(fā)展的簡要回顧1950s,將進(jìn)化原理應(yīng)用于計(jì)算機(jī)科學(xué)的初步努力。50年代末到60年代初,Holland應(yīng)用模擬遺傳算子研究適應(yīng)性。1967年,Bagley的論文中首次提出了遺傳算法這一術(shù)語。1975年,Holland的經(jīng)典
26、著作《自然和人工系統(tǒng)中的適應(yīng)性》出版,系統(tǒng)闡述了遺傳算法的基本理論和方法。1975年,DeJong的博士論文《遺傳自適應(yīng)系統(tǒng)的行為分析》,將Holland的模式理論與他的計(jì)算試驗(yàn)結(jié)合起來。1983年,Holland的學(xué)生Goldberg將遺傳算法應(yīng)用于管道煤氣系統(tǒng)的優(yōu)化,取得了很好的效果。</p><p> 2.3遺傳算法的研究方向及應(yīng)用領(lǐng)域</p><p> 在遺傳算法的研究中,
27、可以看到主要有三類研究方向:1. 研究遺傳算法本身的理論基礎(chǔ)。2. 用遺傳算法作為工具解決工程問題,主要是進(jìn)行優(yōu)化,關(guān)心的是是否能在傳統(tǒng)方法上有所提高。3. 用遺傳算法研究演化現(xiàn)象,一般涉及到人工生命和復(fù)雜性科學(xué)領(lǐng)域。</p><p> 遺傳算法的一些應(yīng)用領(lǐng)域,主要在以下幾個方面:</p><p> 控制方面:煤氣管道控制,防避導(dǎo)彈控制,機(jī)器人控制</p><
28、p> 規(guī)劃方面:生產(chǎn)規(guī)劃,并行機(jī)任務(wù)分配</p><p> 設(shè)計(jì)方面:VLSI布局,背包問題,圖劃分問題</p><p> 圖像處理:模式識別,特征抽取</p><p> 信號處理:濾波器設(shè)計(jì)</p><p> 機(jī)器人方面:路徑規(guī)劃</p><p> 人工生命:生命的遺傳進(jìn)化</p>&
29、lt;p> 人工神經(jīng)網(wǎng)絡(luò):權(quán)值訓(xùn)練和網(wǎng)絡(luò)結(jié)構(gòu)生成</p><p> 2.4遺傳算法的主要步驟</p><p> 編碼:它首先采用某種編碼方式將解空間映射到編碼空間。它可以是位串、實(shí)數(shù)、有序串、樹或圖,Holland最初的遺傳算法是基于二進(jìn)制串的,類似于生物染色體結(jié)構(gòu),易于用生物遺傳理論解釋,各種遺傳操作也易于實(shí)現(xiàn)。另外,可以證明,采用二進(jìn)制編碼式,算法處理的模式最多。但是,在具
30、體問題中,直接采用解空間的形式進(jìn)行編碼,可以直接在解的表現(xiàn)型上進(jìn)行遺傳操作,從而易于引入特定領(lǐng)域的啟發(fā)式信息,可以取得比二進(jìn)制編碼更高的效率。實(shí)數(shù)編碼一般用于數(shù)值優(yōu)化,有序串編碼一般用于組合優(yōu)化。</p><p> 初始群體的生成:每個編碼對應(yīng)問題的一個解,稱為染色體或個體。一般通過隨機(jī)方法確定起始的一群個體,稱為種群。隨機(jī)產(chǎn)生N個初始串結(jié)構(gòu)數(shù)據(jù),每個串結(jié)構(gòu)數(shù)據(jù)稱為一個個體, N個個體構(gòu)成了一個群體。GA以這N
31、個串結(jié)構(gòu)數(shù)據(jù)作為初始點(diǎn)開始迭代。</p><p> 適應(yīng)性值評估檢測:適應(yīng)性函數(shù)表明個體或解的優(yōu)劣性。不同的問題,適應(yīng)性函數(shù)的定義方式也不同。</p><p> 復(fù)制選擇:選擇的目的是為了從當(dāng)前群體中選出優(yōu)良的個體,使它們有機(jī)會作為父代為下一代繁殖子孫。遺傳算法通過選擇過程體現(xiàn)這一思想,進(jìn)行選擇的原則是適應(yīng)性強(qiáng)的個體為下一代貢獻(xiàn)一個或多個后代的概率大。選擇實(shí)現(xiàn)了達(dá)爾文的適者生存原則。&
32、lt;/p><p> 交換:交換操作是遺傳算法中最主要的遺傳操作。通過交換操作可以得到新一代個體,新個體組合了其父輩個體的特性。交換體現(xiàn)了信息交換的思想。</p><p> 變異:變異首先在群體中隨機(jī)選擇一個個體,對于選中的個體以一定的概率隨機(jī)地改變串結(jié)構(gòu)數(shù)據(jù)中某個串的值。同生物界一樣,GA中變異發(fā)生的概率很低,通常取值在0.001~0.01之間。變異為新個體的產(chǎn)生提供了機(jī)會。</p
33、><p> 第三章遺傳算法的原理與實(shí)現(xiàn)</p><p><b> 3.1基本算法</b></p><p> 利用遺傳算法解最優(yōu)化問題,首先應(yīng)對可行域中的個體進(jìn)行編碼,然后在可行域中隨機(jī)挑選指定群體大小的一些個體組成作為進(jìn)化起點(diǎn)的第一代群體,并計(jì)算每個個體的目標(biāo)函數(shù)值,即該個體的適應(yīng)度。接著就像自然界中一樣,利用選擇機(jī)制從群體中隨機(jī)挑選個體作為
34、繁殖過程前的個體樣本。選擇機(jī)制保證適應(yīng)度較高的個體能夠保留較多的樣本;而適應(yīng)度較低的個體則保留較少的樣本,甚至被淘汰。在接下去的繁殖過程中,遺傳算法提供了交叉和變異兩種算法對挑選后的樣本進(jìn)行交換和基因突變[5]。交叉算法交換隨機(jī)挑選的兩個個體的某些位,變異算子則直接對一個個體中的隨機(jī)挑選的某一位進(jìn)行突變。這樣通過選擇和繁殖就產(chǎn)生了下一代群體。重復(fù)上述選擇和繁殖過程,直到結(jié)束條件得到滿足為止。進(jìn)化過程最后一代中的最優(yōu)解就是用遺傳算法解最優(yōu)
35、化問題所得到的最終結(jié)果。</p><p> 遺傳算法的準(zhǔn)備工作: 1)數(shù)據(jù)轉(zhuǎn)換操作,包括表現(xiàn)型到基因型的轉(zhuǎn)換和基因型到表現(xiàn)型的轉(zhuǎn)換。前者是把求解空間中的參數(shù)轉(zhuǎn)化成遺傳空間中的染色體或者個體(encoding),后者是它的逆操作(decoding)2)確定適應(yīng)度計(jì)算函數(shù),可以將個體值經(jīng)過該函數(shù)轉(zhuǎn)換為該個體的適應(yīng)度,該適應(yīng)度的高低要能充分反映該個體對于解得優(yōu)秀程度。遺傳算法的基本步驟遺傳算法是具有"
36、;生成+檢測"(generate-and-test)的迭代過程的搜索算法。</p><p> 基本過程為:1)編碼,創(chuàng)建初始集團(tuán)2)集團(tuán)中個體適應(yīng)度計(jì)算3)評估適應(yīng)度4)根據(jù)適應(yīng)度選擇個體5)被選擇個體進(jìn)行交叉繁殖,6)在繁殖的過程中引入變異機(jī)制7)繁殖出新的集團(tuán),回到第二步</p><p> 圖3-1 遺傳算法的過程</p><p>
37、 3.2遺傳算法的構(gòu)成要素</p><p> 通過前面的介紹我們知道,遺傳算法的主要步驟包括編碼、初始群體的生成、適應(yīng)性值評估檢測、復(fù)制選擇、交換、變異。因此,遺傳算法的主要構(gòu)成要素有染色體編碼方法,個體適應(yīng)度評價,遺傳算子和遺傳算法的運(yùn)行參數(shù)。</p><p> 3.2.1染色體編碼方法及初始化</p><p> 遺傳算法中一般有以下幾種編碼方式</p
38、><p> o二進(jìn)制編碼o實(shí)型編碼o有序編碼o變長串編碼o樹型編碼</p><p> 下面主要介紹二進(jìn)制編碼和實(shí)型編碼方式</p><p> 二進(jìn)制編碼:用長度為10位的二進(jìn)制編碼串分別表示兩個決策變量x1和x2。10位的二進(jìn)制串可以表示從0~1023之間的1024個不同的數(shù),故將x1,x2的定義域離散化為1023個均等的區(qū)域,包括兩個斷點(diǎn)在內(nèi)共有1024個不同的
39、點(diǎn)。從離散點(diǎn)-2.048到離散點(diǎn)2.048,依次讓它們分別對應(yīng)于從0000000000(0)~111111111(1023)之間的二進(jìn)制編碼。再將分別表示x1和x2的兩個10位長的二進(jìn)制編碼串連接在一起,組成一個20位長的二進(jìn)制編碼串,就構(gòu)成了這個函數(shù)優(yōu)化問題的染色體編碼方法。使用這種編碼方法,解空間和遺傳算法的搜索空間就具有一一對應(yīng)的關(guān)系。例如:x:0000110111 1101110001就表示一個個體的基因型,其中前十位表示x1,
40、后十位表示x2[11]。</p><p> 采用二進(jìn)制編碼后需要解碼,解碼時需要將20位長的二進(jìn)制編碼串切斷為兩個10位長的二進(jìn)制編碼串,然后分別將它們轉(zhuǎn)換為對應(yīng)的二進(jìn)制整數(shù)代碼,分別記為y1和y2。依據(jù)個體編碼方法和對定義域的離散化方法可知,將代碼y轉(zhuǎn)換為x的解碼公式為:</p><p> X=4.0968×y/1023-2.048</p><p>
41、 例如,對個體下:000110111 1101110001,它由兩個代碼組成:</p><p> Y1=55 Y2=881</p><p> 上述兩個代碼經(jīng)過解碼后,可得到兩個實(shí)際的值:</p><p> X1=-1.828 X2=1.476</p><p><b> 實(shí)型編碼:</b></p>
42、<p> 實(shí)型編碼算法的個體的每一位由0-9組成;</p><p> 串長由變量的個數(shù)、精度、上下界決定; </p><p> 總串(長)=所有變量的串(長)相加; </p><p> 一個變量對應(yīng)的串長計(jì)算??; </p><p> 解析一個變量串對應(yīng)的實(shí)際值 X = min + 串的結(jié)果*精度;</p>&
43、lt;p> 初始化:選擇一個群體,即選擇一個串或個體的集合bi,i=1,2,...n。這個初始的群體也就是問題假設(shè)解的集合。一般取n=30-160。通常以隨機(jī)方法產(chǎn)生串或個體的集合bi,i=1,2,...n。問題的最優(yōu)解將通過這些初始假設(shè)解進(jìn)化而求出。</p><p> 3.2.2復(fù)制(reproduction operator)</p><p> 根據(jù)適者生存原則選擇下一代的
44、個體。在選擇時,以適應(yīng)度為選擇原則。適應(yīng)度準(zhǔn)則體現(xiàn)了適者生存,不適應(yīng)者淘汰的自然法則。給出目標(biāo)函數(shù)f,則f(bi)稱為個體bi的適應(yīng)度。以為選中bi為下一代個體的次數(shù)。(1)適應(yīng)度較高的個體,繁殖下一代的數(shù)目較多。(2)適應(yīng)度較小的個體,繁殖下一代的數(shù)目較少;甚至被淘汰。這樣,就產(chǎn)生了對環(huán)境適應(yīng)能力較強(qiáng)的后代。對于問題求解角度來講,就是選擇出和最優(yōu)解較接近的中間解。</p><p> 選擇算子運(yùn)算的過程如
45、下:</p><p> 首先從舊的種群中選擇適應(yīng)度高的染色體,放入匹配集(緩沖區(qū)),為以后染色體交換、變異,產(chǎn)生新的染色體作準(zhǔn)備。選擇方法——適應(yīng)度比例法(轉(zhuǎn)輪法)某染色體被選的概率:Pc</p><p> xi 為種群中第i個染色體</p><p> 為第i個染色體的適應(yīng)度值</p><p> 為種群種所有染色體的適應(yīng)度值之和<
46、;/p><p><b> 具體步驟</b></p><p> 1)計(jì)算各染色體適應(yīng)度值</p><p> 2)累計(jì)所有染色體適應(yīng)度值,記錄中間累加值S - mid 和最</p><p> 后累加值 sum = ∑f(xi)</p><p> 3) 產(chǎn)生一個隨機(jī)數(shù) N,0< N <
47、 sum</p><p> 4) 選擇對應(yīng)中間累加值S - mid 的第一個染色體進(jìn)入交換集</p><p> 5) 重復(fù)(3)和(4),直到獲得足夠的染色體。</p><p> 圖3-2 用轉(zhuǎn)輪方法進(jìn)行選擇</p><p> 表3-1 轉(zhuǎn)輪方法各部分比例</p><p> 以下是10個染色體種群按比例的選擇
48、過程</p><p> 表3-2被選的染色體個數(shù)</p><p> 表3-3被選的染色體</p><p> 3.2.3 交叉(crossover operator)</p><p> 復(fù)制不能創(chuàng)新,交換解決染色體的創(chuàng)新</p><p> 對于選中用于繁殖下一代的個體,隨機(jī)地選擇兩個個體的相同位置,按交叉概率P
49、。在選中的位置實(shí)行交換。這個過程反映了隨機(jī)信息交換;目的在于產(chǎn)生新的基因組合,也即產(chǎn)生新的個體。交叉時,可實(shí)行單點(diǎn)交叉或多點(diǎn)交叉。 具體步驟</p><p> 先對配對庫中的個體進(jìn)行隨機(jī)配對.然后在配對的2個個體中設(shè)置交叉點(diǎn),交換2個個體的信息后產(chǎn)生下一代.比如( | 代表簡單串的交叉位置) ( 0110|1, 1100|0 ) --交叉--> (01100,11001) (
50、01|000, 11|011 ) --交叉--> (01011,11000)2個父代的個體在交叉后繁殖出了下一代的同樣數(shù)量的個體.復(fù)雜的交叉在交叉的位置,交叉的方法,雙親的數(shù)量上都可以選擇.其目的都在于盡可能的培育出更優(yōu)秀的后代。</p><p> 3.2.4變異(mutation operator)</p><p> 根據(jù)生物遺傳中基因變異的原理,以變異概率Pm對某些個體的
51、某些位執(zhí)行變異。在變異時,對執(zhí)行變異的串的對應(yīng)位求反,即把1變?yōu)?,把0變?yōu)?。變異概率Pm與生物變異極小的情況一致,所以,Pm的取值較小,一般取0.01-0.2。 例如有個體S=101011。 對其的第1,4位置的基因進(jìn)行變異,則有 S\’=001111 單靠變異不能在求解中得到好處。但是,它能保證算法過程不會產(chǎn)生無法進(jìn)化的單一群體。因?yàn)樵谒械膫€體一樣時,交叉是無法產(chǎn)生新的個體的,這時只能靠變異產(chǎn)生新的個體。也就是說,變異增
52、加了全局優(yōu)化的特質(zhì)。</p><p> 圖3-3遺傳算法的執(zhí)行過程</p><p> 3.3 遺傳算法的應(yīng)用</p><p> 遺傳算法在很多領(lǐng)域都得到應(yīng)用;比如從神經(jīng)網(wǎng)絡(luò)研究的角度上考慮,最關(guān)心的是遺傳算法在神經(jīng)網(wǎng)絡(luò)的應(yīng)用。在遺傳算法應(yīng)用中,應(yīng)先明確其特點(diǎn)和關(guān)鍵問題,才能對這種算法深入了解,靈活應(yīng)用,以及進(jìn)一步研究開發(fā)[6]。</p><
53、p> 3.3.1、遺傳算法的應(yīng)用關(guān)鍵 </p><p> 遺傳算法在應(yīng)用中最關(guān)鍵的問題有如下3個 1.串的編碼方式 這本質(zhì)是問題編碼。一般把問題的各種參數(shù)用二進(jìn)制編碼,構(gòu)成子串;然后把子串拼接 構(gòu)成“染色體”串。串長度及編碼形式對算法收斂影響極大。 2.適應(yīng)函數(shù)的確定 適應(yīng)函數(shù)(fitness function)也稱對象函數(shù)(object function),這是問題求解品質(zhì)
54、的測 量函數(shù);往往也稱為問題的“環(huán)境”。一般可以把問題的模型函數(shù)作為對象函數(shù);但有時需要另行構(gòu)造。 3.遺傳算法自身參數(shù)設(shè)定 遺傳算法自身參數(shù)有3個,即群體大小n、交叉概率Pc和變異概率Pm。 群體大小n太小時難以求出最優(yōu)解,太大則增長收斂時間。一般n=30-160。交叉概率Pc 太小時難以向前搜索,太大則容易破壞高適應(yīng)值的結(jié)構(gòu)。一般取Pc=0.25-0.75。變異概 率Pm太小時難以產(chǎn)生新的基因結(jié)構(gòu),太大使遺傳算法成了單純的隨機(jī)
55、搜索。一般取Pm=0 .01—0.2。</p><p> 3.3.2遺傳算法的應(yīng)用舉例</p><p> 設(shè)函數(shù)f(x)=x^2,求其在區(qū)間[0,31]的最大值</p><p> 變異概率取0.001</p><p> 表3-4初始種群和它的適應(yīng)度值</p><p> 表3-5染色體的交叉運(yùn)算</p&g
56、t;<p> 3.4遺傳算法的不足</p><p> 遺傳算法雖然可以在多種領(lǐng)域都有實(shí)際應(yīng)用,并且也展示了它潛力和寬廣前景;但是, 遺傳算法還有大量的問題需要研究,目前也還有各種不足。首先,在變量多,取值范圍大或無給定范圍時,收斂速度下降;其次,可找到最優(yōu)解附近,但無法精確確定最擾解位置;最后,遺傳算法的參數(shù)選擇尚未有定量方法。對遺傳算法,還需要進(jìn)一步研究其數(shù)學(xué)基礎(chǔ)理論;還需要在理論上證明它與其
57、它優(yōu)化技術(shù)的優(yōu)劣及原因;還需研究硬件化的遺傳算法;以及遺傳算法的通用編程和形式等。</p><p> 第四章 基于遺傳算法的PID控制器參數(shù)優(yōu)化</p><p> 4.1什么是PID調(diào)節(jié) </p><p> 目前工業(yè)自動化水平已成為衡量各行各業(yè)現(xiàn)代化水平的一個重要標(biāo)志。同時,控制理論的發(fā)展也經(jīng)歷了古典控制理論、現(xiàn)代控制理論和智能控制理論三個階段。智能控
58、制的典型實(shí)例是模糊全自動洗衣機(jī)等。自動控制系統(tǒng)可分為開環(huán)控制系統(tǒng)和閉環(huán)控制系統(tǒng)。一個控制系統(tǒng)包括控制器﹑傳感器﹑變送器﹑執(zhí)行機(jī)構(gòu)﹑輸入輸出接口??刂破鞯妮敵鼋?jīng)過輸出接口﹑執(zhí)行機(jī)構(gòu)﹐加到被控系統(tǒng)上﹔控制系統(tǒng)的被控量﹐經(jīng)過傳感器﹐變送器﹐通過輸入接口送到控制器。不同的控制系統(tǒng)﹐其傳感器﹑變送器﹑執(zhí)行機(jī)構(gòu)是不一樣的。比如壓力控制系統(tǒng)要采用壓力傳感器。電加熱控制系統(tǒng)的傳感器是溫度傳感器。目前,PID控制及其控制器或智能PID控制器(儀表)已經(jīng)很
59、多,產(chǎn)品已在工程實(shí)際中得到了廣泛的應(yīng)用,有各種各樣的PID控制器產(chǎn)品,各大公司均開發(fā)了具有PID參數(shù)自整定功能的智能調(diào)節(jié)器(intelligent regulator),其中PID控制器參數(shù)的自動調(diào)整是通過智能化調(diào)整或自校正、自適應(yīng)算法來實(shí)現(xiàn)。有利用PID控制實(shí)現(xiàn)的壓力、溫度、流量、液位控制器,能實(shí)現(xiàn)PID控制功能的可編程控制器(PLC),還有可實(shí)現(xiàn)PID控制的PC系統(tǒng)等等。 可編程控制器(PLC) 是利用其閉</p>&
60、lt;p> 4.1.1 PID調(diào)節(jié)器的三個參數(shù)</p><p> PID控制器就是根據(jù)系統(tǒng)的誤差利用比例積分微分計(jì)算出控制量,控制器輸</p><p> 出和控制器輸入(誤差)之間的關(guān)系在時域中可用公式表示如下:</p><p> 公式中 表示誤差、控制器的輸入, 是控制器的輸出, 為比例系數(shù)、 積分時間常數(shù)、為微分時間常數(shù)。式又可表示為:</p
61、><p> 公式中 和 分別為 和 的拉氏變換, , 。 、 、 分別為控制器的比例、積分、微分系數(shù)。 </p><p> 一、比例(P)控制 </p><p> 比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差訊號成比例關(guān)系。當(dāng)僅有比例控制時系統(tǒng)輸出存在穩(wěn)態(tài)誤差(Steady-state error)。 </p><p> 二、
62、積分(I)控制 </p><p> 在積分控制中,控制器的輸出與輸入誤差訊號的積分成正比關(guān)系。 </p><p> 對一個自動控制系統(tǒng),如果在進(jìn)入穩(wěn)態(tài)后存在穩(wěn)態(tài)誤差,則稱這個控制系統(tǒng)是有穩(wěn)態(tài)誤差的或簡稱有差系統(tǒng)(System with Steady-state Error)。為了消除穩(wěn)態(tài)誤差,在控制器中必須引入“積分項(xiàng)”。積分項(xiàng)對誤差取決于時間的積分,隨著時間的增加,積分項(xiàng)會增大。這樣
63、,即便誤差很小,積分項(xiàng)也會隨著時間的增加而加大,它推動控制器的輸出增大使穩(wěn)態(tài)誤差進(jìn)一步減小,直到等于零。 </p><p> 因此,比例+積分(PI)控制器,可以使系統(tǒng)在進(jìn)入穩(wěn)態(tài)后無穩(wěn)態(tài)誤差[7]。 </p><p> 三、微分(D)控制 </p><p> 在微分控制中,控制器的輸出與輸入誤差訊號的微分(即誤差的變化率)成正比關(guān)系。 </p>
64、<p> 自動控制系統(tǒng)在克服誤差的調(diào)節(jié)過程中可能會出現(xiàn)振蕩甚至失穩(wěn)。其原因是由于存在有較大慣性的組件(環(huán)節(jié))和(或)有滯后(delay)的組件,使力圖克服誤差的作用,其變化總是落后于誤差的變化。解決的辦法是使克服誤差的作用的變化要有些“超前”,即在誤差接近零時,克服誤差的作用就應(yīng)該是零。這就是說,在控制器中僅引入“比例”項(xiàng)往往是不夠的,比例項(xiàng)的作用僅是放大誤差的幅值,而目前需要增加的是“微分項(xiàng)”,它能預(yù)測誤差變化的趨勢,這樣
65、,具有比例+微分的控制器,就能夠提前使克服誤差的控制作用等于零,甚至為負(fù)值,從而避免了被控量的嚴(yán)重地沖過頭。 </p><p> 所以對有較大慣性和(或)滯后的被控對象,比例+微分(PD)的控制器能改善系統(tǒng)在調(diào)節(jié)過程中的動態(tài)特性。 </p><p> 4.1.2 PID數(shù)字控制器的參數(shù)整定</p><p> 一.采樣周期T的選擇</p><
66、p><b> T的選擇范圍:</b></p><p> Tmin < T < T采 < Tmax</p><p><b> 其中</b></p><p> Tmin:應(yīng)不小于控制程序執(zhí)行時間+執(zhí)行機(jī)構(gòu)動作時間+傳感器的反應(yīng)時間</p><p> 此外還要考慮計(jì)算精度
67、等。</p><p> T采:由采樣定理確定的采樣周期。</p><p> Tmax:由穩(wěn)定性條件確定的采樣周期。</p><p> 實(shí)際T的選擇范圍應(yīng)在Tmin 與T采之間。</p><p> 二.PID控制器參數(shù)Kp、KI、KD的整定</p><p><b> 湊試法:</b><
68、;/p><p> PID參數(shù)對系統(tǒng)性能指標(biāo)的影響(在只有某種控制起主要作用時)</p><p> KP 響應(yīng)加快 太大 超調(diào)大 </p><p> 靜態(tài)誤差變小 振蕩</p><p> KI T/TI 穩(wěn)態(tài)誤差消除加快 太大 超調(diào)大 </p>
69、<p><b> 振蕩</b></p><p> KD TD/T 響應(yīng)加快 太大 對干擾敏感 </p><p> 超調(diào)變小 超調(diào)變大</p><p><b> 湊試法步驟</b></p><p> 湊試的先后順序是:先KP、后
70、KI、再KD。</p><p> 整定目標(biāo)是:反應(yīng)快、超調(diào)小、穩(wěn)態(tài)誤差能滿足要求。</p><p> ?。?).(無積分、微分作用)逐步增大比例系數(shù)KP,若出現(xiàn)振蕩,則取KP為發(fā)生振蕩時的KP的一半,即 KP =0.5K振。</p><p> (2).若穩(wěn)態(tài)誤差不滿足要求,則適當(dāng)增大積分系數(shù)KI(比例系數(shù)KP可略為減小。)</p><p>
71、; ?。?).若快速性不滿足要求,則適當(dāng)增大微分系數(shù)KD。</p><p><b> 常見情況分析</b></p><p> 采用PID控制算法的控制系統(tǒng),若出現(xiàn)下列現(xiàn)象,請問應(yīng)如何整定PID參數(shù)。</p><p><b> 系統(tǒng)出現(xiàn)振蕩。</b></p><p> ①一般情況應(yīng)適當(dāng)減小KP
72、或KI,也可適當(dāng)調(diào)整KD。②若系統(tǒng)同時又有響應(yīng)遲緩、偏差消除太慢的問題,則應(yīng)適當(dāng)增大比例系數(shù)KP、積分系數(shù)KI或微分系數(shù)KD。③采樣周期太長也會影響穩(wěn)定性,此時應(yīng)縮短采樣周期。</p><p><b> 系統(tǒng)超調(diào)太大。</b></p><p> ①一般情況應(yīng)適當(dāng)減小KP或KI,也可適當(dāng)調(diào)整KD。②但若發(fā)現(xiàn)減小KP超調(diào)反而變大,同時系統(tǒng)又有響應(yīng)遲緩現(xiàn)象,則應(yīng)適當(dāng)增大
73、比例系數(shù)KP。</p><p> 系統(tǒng)出現(xiàn)擾動時偏差消除太慢。</p><p> 適當(dāng)增大KP或KI。</p><p><b> 對干擾太敏感。</b></p><p> ?、龠m當(dāng)減小Kd;②加強(qiáng)硬件與軟件抗干擾措施,例如采用軟件濾波等。</p><p> 擴(kuò)充臨界比例度法(基本步驟)
74、</p><p> 預(yù)選采樣周期T(足夠短);注意有純滯后時T應(yīng)小于純滯后時間 ?。</p><p> 增大KP 使系統(tǒng)出現(xiàn)振蕩,測臨界振蕩周期Ts與臨界比例系數(shù)Ks。</p><p> 選擇控制度(表示數(shù)字控制器相對于模擬控制器的控制效果,用兩者誤差平方之比來表示,工程用上一般可取Q=1.05)。</p><p> 擴(kuò)充響應(yīng)曲線法(
75、基本步驟)</p><p> 設(shè)一給定值并給一階躍輸入信號;</p><p><b> 測響應(yīng)曲線;</b></p><p><b> 用圖解法求與Tm;</b></p><p> 基于數(shù)學(xué)模型的方法(二階工程設(shè)計(jì)法)</p><p><b> 自整定方法
76、</b></p><p> 控制理論方法,例如,自校正PID控制算法。</p><p> 人工智能方法,例如,采用專家系統(tǒng)技術(shù)或神經(jīng)元網(wǎng)絡(luò)技術(shù)。</p><p> 4.2基于遺傳算法的PID整定</p><p> PID控制是最早發(fā)展起來的控制策略之一,因此PID控制參數(shù)的優(yōu)化成為人們關(guān)注的問題,它直接影響控制效果的好壞,
77、并和系統(tǒng)的安全、經(jīng)濟(jì)運(yùn)行有著密不可分的關(guān)系。傳統(tǒng)的整定方法有基本的時間長度PID控制算法、變參數(shù)的PID控制算法等。這里采用基于遺傳算法整定的PID控制算法,因?yàn)椴捎眠z傳算法進(jìn)行PID三個系數(shù)的整定,具有以下優(yōu)點(diǎn):</p><p> (1)與單純形法相比,遺傳算法同樣具有良好的尋優(yōu)特性,且它克服了單純形法參數(shù)初值的敏感性。在初始條件選擇不當(dāng)?shù)那闆r下,遺傳算法在不需要給出調(diào)節(jié)器初始參數(shù)的情況下,仍能尋找到合適的參
78、數(shù),使控制目標(biāo)滿足要求。</p><p> ?。?)與專家整定法相比,它具有操作方便,速度快的優(yōu)點(diǎn),不需要復(fù)雜的規(guī)則,只通過簡單的復(fù)制、交叉、變異,便可以達(dá)到尋優(yōu)。避免了專家整定法中前期大量知識庫整理工作及大量的仿真實(shí)驗(yàn)。</p><p> (3)遺傳算法是從多點(diǎn)開始并行操作,在解空間具有高效啟發(fā)式搜索,克服了從單點(diǎn)出發(fā)的弊端及搜索的盲目性。從而使尋優(yōu)速度更快,避免了過早陷入局部最優(yōu)解。
79、</p><p> ?。?)遺傳算法不僅適用于單目標(biāo)尋優(yōu),而且也適用于多目標(biāo)尋優(yōu),根據(jù)不同的控制系統(tǒng),針對一個或多個目標(biāo),遺傳算法均能夠在規(guī)定的范圍內(nèi)尋找到合適參數(shù)。</p><p> 目前,遺傳算法作為一種全局優(yōu)化算法,得到越來越多的應(yīng)用。近年來,遺傳算法在控制上的應(yīng)用日益增多。</p><p> 4.3 基于遺傳算法的PID整定原理</p>&
80、lt;p> 1.參數(shù)的確定及表示</p><p> 首先確定參數(shù)范圍,該范圍一般是由用戶給定的,然后由精度的要求,對其編碼。</p><p><b> 2.選取初始種群</b></p><p> 因?yàn)樾枰幊虂韺?shí)現(xiàn)各過程,所以采用計(jì)算機(jī)隨機(jī)產(chǎn)生種群。</p><p><b> 3.適配函數(shù)的確定
81、</b></p><p> 一般的尋優(yōu)方法在約束條件下可以求得滿足條件的一組參數(shù),在設(shè)計(jì)中是從改組參數(shù)中尋找一個最好的。衡量一個控制系統(tǒng)的指標(biāo)有三個,即穩(wěn)定性、準(zhǔn)確性和快速性。而上升時間反映了系統(tǒng)的快速性,上升時間越短,控制進(jìn)行的就越快,系統(tǒng)的品質(zhì)也就越好。但是如果單純的追求系統(tǒng)的動態(tài)特性,得到的參數(shù)很可能使控制信號過大,在實(shí)際應(yīng)用中會因系統(tǒng)中固有的飽和特性而導(dǎo)致系統(tǒng)不穩(wěn)定,為了防止控制能量過大,在
82、目標(biāo)函數(shù)中加入控制量[8]。因此為了使控制效果更好,我們給出了控制量、誤差和上升時間作為約束條件。因?yàn)檫m應(yīng)函數(shù)與目標(biāo)函數(shù)相關(guān),所以目標(biāo)函數(shù)確定以后,直接將其作為適配函數(shù)進(jìn)行參數(shù)尋優(yōu)。最優(yōu)的控制參數(shù)也就是在滿足約束條件下使f(x)最大時,x對應(yīng)的控制器參數(shù)[13]。</p><p> 利用遺傳算法優(yōu)化KP,KI,KD的具體步驟如下</p><p> 確定每個參數(shù)的大致范圍和編碼長度,進(jìn)行
83、編碼</p><p> 隨機(jī)產(chǎn)生n各個體構(gòu)成初始種群P(0)</p><p> 將種群中各個體解碼成對應(yīng)的參數(shù)值,用次參數(shù)求代價函數(shù)值J及適應(yīng)函數(shù)值f,取f=1/J</p><p> 應(yīng)用復(fù)制、交叉、變異算子對種群P(t)進(jìn)行操作,產(chǎn)生下一代種群p(t+1)</p><p> 重復(fù)步驟3和4,直至參數(shù)收斂或達(dá)到預(yù)定的目標(biāo)。</p
84、><p> 4.4 PID控制算法的程序?qū)崿F(xiàn)</p><p> 在考慮PID控制算法的程序?qū)崿F(xiàn)時,可將PID控制算式改寫成:</p><p> 其中KP:比例系數(shù)</p><p><b> Ki:積分系數(shù)</b></p><p><b> Kd:微分系數(shù)</b><
85、;/p><p> PID控制算式還可改寫成:</p><p> 其中KP:比例系數(shù)</p><p> Kip:積分系數(shù)Ki與比例系數(shù)KP之比值</p><p> Kdp:微分系數(shù)Kd與比例系數(shù)KP之比值</p><p> 在針對某種對象經(jīng)過多次試驗(yàn)歸納出比較好的Kip與Kdp的經(jīng)驗(yàn)數(shù)據(jù)后,式(5.3.2)的參數(shù)
86、整定可采用歸一參數(shù)整定法。</p><p> PID控制程序的調(diào)試可采用仿真調(diào)試法,即物理仿真調(diào)試或數(shù)字仿真調(diào)試。</p><p> 設(shè)被控對象的傳遞函數(shù)為:</p><p><b> 。</b></p><p> 取采樣周期T=5秒。則廣義對象的z傳遞函數(shù)為:</p><p> 數(shù)字仿
87、真所需的被控制量的差分表達(dá)式為:</p><p> y(k)=0.9927y(k-1)+0.00905u(k-27) </p><p> 4.5 基于實(shí)數(shù)編碼遺傳算法的PID整定原理</p><p> 本例中被控對象為一階模型</p><p> 采樣時間為5s,輸入指令為一階躍信號。</p><p> 為獲取
88、滿意的過渡過程動態(tài)特性,采用誤差絕對值時間積分性能指標(biāo)作為參數(shù)選擇的最小目標(biāo)函數(shù)。為了防止控制能量過大,在目標(biāo)函數(shù)中加入控制輸入的平方項(xiàng)。選用下式作為參數(shù)選取的最優(yōu)指標(biāo)</p><p> 式中,e(t)為系統(tǒng)誤差,u(t)為控制器輸出,為上升時間,w1,w2,w3為權(quán)值。</p><p> 為了避免超調(diào),采用了懲罰功能,即一旦產(chǎn)生超調(diào),將超調(diào)量作為最優(yōu)指標(biāo)的一項(xiàng),此時最優(yōu)指標(biāo)為:<
89、;/p><p> If ey(t)<0 </p><p> 式中,w3為權(quán)值,且w4》w1,ey(t)=y(tǒng)(t)-y(t-1) y(t)為被拉對象輸出</p><p> 遺傳算法中使用的樣本個數(shù)為10,交叉概率和變異概率分別為:pc=0.9,Pm=0.033。參數(shù)KP的取值范圍為[0,20],KI和KD的取值范圍為[0,1],取w1=0.999,W
90、2=0.001,w4=100,w3=2.0 采用實(shí)數(shù)編碼方式,經(jīng)過一百代進(jìn)化。最后得出最優(yōu)的結(jié)果。</p><p> 本一階系統(tǒng)的模型編程如下</p><p> Private Sub Simulating(n As Integer)</p><p> yout(n) = 0.9927 * y_1 + 0.01099 * u_(35) </p>
91、;<p> If n <= 35 Then yout(n) = yo </p><p><b> End Sub</b></p><p><b> 主程序如下</b></p><p> Private Sub Command1_Click() '主程序&
92、lt;/p><p> Call bianma '編碼</p><p> For kg = 1 To G 'G為代數(shù)</p><p> 'times(kg) = kg</p><p> Call PID
93、'主程序PID控制</p><p> Call evaluate '適應(yīng)值評估</p><p> Call SARP '選擇復(fù)制 </p><p> Call CROSSOVER '交叉</p><p>
94、; Call MUTATION '變異</p><p> TempE(10, 1) = BestS(1)</p><p> TempE(10, 2) = BestS(2)</p><p> TempE(10, 3) = BestS(3)</p><p> For i = 1 To 10<
95、/p><p> kpid(i, 1) = TempE(i, 1)</p><p> kpid(i, 2) = TempE(i, 2)</p><p> kpid(i, 3) = TempE(i, 3)</p><p><b> Next i</b></p><p> MSFlexGrid1.
96、Row = kg</p><p> Call MMI1 ' </p><p><b> Next kg</b></p><p> For k = 1 To P </p><p> Call MMI2(k)</p>&l
97、t;p> Call CurveGenerator(timef(k) * 1, yout(k) * 1) '畫輸出曲線</p><p><b> Next k</b></p><p><b> Call MMI3</b></p><p><b> End Sub<
98、/b></p><p> 圖4-1 基于遺傳算法整定的PID控制系統(tǒng)的人機(jī)界面</p><p> 4.6實(shí)數(shù)編碼遺傳算法的各程序塊介紹</p><p> 基于VB的實(shí)數(shù)編碼遺傳算法,主要設(shè)計(jì)思想如下。將編碼,PID控制,適應(yīng)值評估,復(fù)制,交叉,變異都作為一個獨(dú)立的子程序塊。由主程序產(chǎn)生初始種群,然后按照遺傳算法的基本步驟過程,調(diào)用各程序塊。開始設(shè)計(jì)程序
99、時,先設(shè)計(jì)一個界面,點(diǎn)擊各個按鈕,運(yùn)行各個子程序塊。這樣可以一步步調(diào)試各個子程序。下面主要介紹各子程序塊,即各步驟的VB編程實(shí)現(xiàn)。</p><p> 圖4-2 測試所用人機(jī)界面</p><p><b> 4.6.1編碼</b></p><p> 對于本一階系統(tǒng),在VB中的實(shí)現(xiàn)如下,由計(jì)算機(jī)在規(guī)定的范圍內(nèi)即KP[0-20],KI[0-1],
100、KD[0-1]之間隨機(jī)產(chǎn)生十個種群作為原始的值進(jìn)行進(jìn)化。因此它的初始值是雜亂無章的,由圖3.3便可以看出。經(jīng)過測試調(diào)整,最后的程序如下</p><p> Private Sub bianma() '編碼</p><p> Dim size As Integer, codel As Integer</p><p><b>
101、BsJ = 0</b></p><p> minx(1) = 0: MaxX(1) = 20 'P,參數(shù)整定范圍</p><p> minx(2) = 0: MaxX(2) = 1 'D,參數(shù)整定范圍</p><p> minx(3) = 0: MaxX(3) = 1 'I,參數(shù)整定范圍&l
102、t;/p><p> For i = 1 To 10</p><p> kpid(i, 1) = minx(1) + (MaxX(1) - minx(1)) * Rnd</p><p><b> Next i</b></p><p> For i = 1 To 10</p><p> kpid
103、(i, 2) = minx(2) + (MaxX(2) - minx(2)) * Rnd</p><p><b> Next i</b></p><p> For i = 1 To 10</p><p> kpid(i, 3) = minx(3) + (MaxX(3) - minx(3)) * Rnd</p><p&g
104、t;<b> Next i</b></p><p><b> End Sub</b></p><p> 4.6.2 PID控制</p><p> 為獲取滿意的過度過程動態(tài)特性,采用誤差絕對值時間積分性能指標(biāo)ITAE作為參數(shù)選擇的最小目標(biāo)函數(shù)。為了防止控制能量過大,在目便函數(shù)中加入控制輸入的平方項(xiàng)。選用式3作為參數(shù)選
105、取的最優(yōu)性能指標(biāo): </p><p><b> (3)</b></p><p> 按照要求,加入了超調(diào)懲罰功能。采用了增量式PID算式,初始溫度為50度??刂谱饔么螖?shù)為500次。yout(k)為被拉對象輸出。</p><p> Private Sub PID()<
106、;/p><p> Dim B As Double, s As Double, error_1 As Double</p><p> Dim r(500) As Double, eerror(500) As Double</p><p> Dim x(3) As Double, erry(500) As Double, error_2 As Double</p
107、><p> For j = 1 To 10</p><p> kpidi(j, 1) = kpid(j, 1)</p><p> kpidi(j, 2) = kpid(j, 2)</p><p> kpidi(j, 3) = kpid(j, 3)</p><p> For i = 1 To 50</p>
108、;<p><b> u_(i) = 0</b></p><p><b> Next i</b></p><p> y_1 = 0#: y_2 = 0#</p><p> x(1) = 0: x(2) = 0: x(3) = 0</p><p><b> B = 0&
109、lt;/b></p><p> error_1 = 0</p><p><b> tu = 1</b></p><p><b> s = 0</b></p><p> For k = 1 To P</p><p> timef(k) = k * Ts</
110、p><p> r(k) = rin</p><p> u(k) = u_(1) + kpidi(j, 1) * x(1) + kpidi(j, 2) * x(2) + kpidi(j, 3) * x(3)</p><p> If u(k) >= 10 * rin Then</p><p> u(k) = 10 * rin</p
111、><p><b> End If</b></p><p> If u(k) <= 0 Then</p><p><b> u(k) = 0</b></p><p><b> End If</b></p><p> Call Simulatin
112、g(k)</p><p> eerror(k) = r(k) - yout(k)</p><p> For i = 2 To 50</p><p> u_(i) = u_(i - 1)</p><p><b> Next i</b></p><p> u_(1) = u(k)</p
113、><p><b> y_2 = y_1</b></p><p> y_1 = yout(k)</p><p> If eerror(k) <= 0.004 Then flag = 1 'i.e. yout(k)+0.004 >= r(k)</p><p> 'x(1) = eerror
114、(k) 'Calculating P</p><p> 'x(2) = (eerror(k) - error_1) / Ts 'Calculating D</p><p> 'x(3) = x(3) + eerror(k) * Ts 'Calculating I</p><p> x(1) = eerror
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文-基于autocad和mpc02運(yùn)動控制程序的開發(fā)
- 設(shè)計(jì)與開發(fā)控制程序
- 畢業(yè)論文---網(wǎng)絡(luò)遠(yuǎn)程通信與控制程序設(shè)計(jì)
- 畢業(yè)論文---網(wǎng)絡(luò)遠(yuǎn)程通信與控制程序設(shè)計(jì)
- 設(shè)計(jì)開發(fā)控制程序
- 設(shè)計(jì)開發(fā)控制程序
- 市場開發(fā)控制程序
- 設(shè)計(jì)開發(fā)控制程序
- 畢業(yè)論文--電鑄過程plc控制程序設(shè)計(jì)
- 畢業(yè)論文--電鑄過程plc控制程序設(shè)計(jì)
- 設(shè)計(jì)和開發(fā)控制程序-
- 設(shè)計(jì)和開發(fā)控制程序
- 新產(chǎn)品開發(fā)控制程序
- 設(shè)計(jì)和開發(fā)控制程序
- 基于plc的家用車庫自動門控制程序畢業(yè)論文
- cs模式遠(yuǎn)程控制程序設(shè)計(jì)畢業(yè)論文
- cs模式遠(yuǎn)程控制程序設(shè)計(jì)畢業(yè)論文
- 項(xiàng)目開發(fā)質(zhì)量控制程序
- 畢業(yè)論文范文——基于plc作息時間控制程序設(shè)計(jì)
- 單軸控制程序開發(fā)手冊
評論
0/150
提交評論