版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于單純形法的PID參數(shù)優(yōu)化設(shè)計(jì)</p><p><b> 摘要</b></p><p> PID參數(shù)整定是自動(dòng)控制領(lǐng)域研究的重要內(nèi)容,PID參數(shù)的最優(yōu)性決定了控制的穩(wěn)定性和快速性,也可保證系統(tǒng)的可靠性。傳統(tǒng)的PID參數(shù)多采用試驗(yàn)加試湊的方式由人工進(jìn)行優(yōu)化,往往費(fèi)時(shí)并且難以滿足控制的實(shí)時(shí)要求。為了解決PID參數(shù)的優(yōu)化問(wèn)題,采用單純形法對(duì)PID
2、參數(shù)尋優(yōu),以獲得滿意的控制效果。</p><p> 本文介紹了單純形法的基本原理,并針對(duì)單純形法在PID參數(shù)尋優(yōu)中存在的問(wèn)題進(jìn)行了分析,并對(duì)其進(jìn)行了實(shí)驗(yàn)仿真。結(jié)果表明,用單純形法整定PID參數(shù),可以提高優(yōu)化性能,對(duì)控制系統(tǒng)具有較好的控制精度、動(dòng)態(tài)性能。</p><p> 關(guān)鍵詞:PID控制器 單純形法 PID整定</p><p><b> 一、綜述&
3、lt;/b></p><p><b> 1.1選題背景</b></p><p> PID調(diào)節(jié)器是最早發(fā)展起來(lái)的控制策略之一,因?yàn)樗婕暗脑O(shè)計(jì)算法和控制結(jié)構(gòu)都是簡(jiǎn)單的,并且十分適用于工程應(yīng)用背景,此外PID控制方案并不要求精確的受控對(duì)象的數(shù)學(xué)模型,且采用PID控制的控制效果一般是比較令人滿意的,所以在工業(yè)實(shí)際應(yīng)用中,PID調(diào)節(jié)器是應(yīng)用最為廣泛的一種控制策略,
4、也是歷史最久、生命力最強(qiáng)的基本控制方式。調(diào)查結(jié)果表明在當(dāng)今使用的控制方式中,PID型占84.5%,優(yōu)化PID型占6.8%,現(xiàn)代控制型占有1.5%,手動(dòng)控制型6.6%,人工智能(AI)型占0. 6%。如果把PID型和優(yōu)化PID型二者加起來(lái)則占90%以上,這說(shuō)明PID控制方式占絕大多數(shù),如果把手動(dòng)控制型再與上述兩種加在一起,則占97. 5%,這說(shuō)明古典控制占絕大多數(shù)。就連科學(xué)技術(shù)高度發(fā)達(dá)的日本,PID控制的使用率也高達(dá)84.%。</p
5、><p> 這是由于理論分析及實(shí)際運(yùn)行經(jīng)驗(yàn)已經(jīng)證明了PID調(diào)節(jié)器對(duì)于相當(dāng)多的工業(yè)過(guò)程能夠起到較為滿足的控制效果。它結(jié)構(gòu)簡(jiǎn)單、適用面廣、魯棒性強(qiáng)、參數(shù)易于調(diào)整、在實(shí)際中容易被理解和實(shí)現(xiàn)、在長(zhǎng)期應(yīng)用中已積累了豐富的經(jīng)驗(yàn)。特別在工業(yè)過(guò)程中,由于控制對(duì)象的精確數(shù)學(xué)模型難以建立,系統(tǒng)的參數(shù)又經(jīng)常發(fā)生變化,運(yùn)用現(xiàn)代控制理論分析綜合要耗費(fèi)很大的代價(jià)進(jìn)行模型辨識(shí),但往往不能達(dá)到預(yù)期的效果,所以不論常規(guī)調(diào)節(jié)儀表還是數(shù)字智能儀表都廣泛
6、采用這種調(diào)節(jié)方式。正是PID控制算法具有以上多種優(yōu)點(diǎn),所以這種算法仍將在現(xiàn)場(chǎng)控制中居于主導(dǎo)地位</p><p> 隨著現(xiàn)代控制理論的建立和不斷發(fā)展完善,對(duì)過(guò)程控制提出了新的方法和思路,同日寸也由于生產(chǎn)工藝不斷地改進(jìn)提高,對(duì)過(guò)程控制也提出了高要求??蒲腥藛T在不斷探索新方法的同時(shí),也對(duì)傳統(tǒng)的PID控制的改進(jìn)做了大量的研究。因?yàn)镻ID控制有其固有的優(yōu)點(diǎn),使得PID控制在今后仍會(huì)大量使用,如何進(jìn)一步提高PID控制算法的
7、能力或者依據(jù)新的現(xiàn)代控制理論來(lái)設(shè)計(jì)PID控制算法是一個(gè)非常吸引人的課題。科研人員在這一領(lǐng)域做的工作主要有以下兩方面。</p><p> ?、?PID參數(shù)自整定。由于受控對(duì)象存在著大量不可知因素,如隨機(jī)擾動(dòng)、系統(tǒng)時(shí)變、敏感誤差等,這些不可知因素的作用常會(huì)導(dǎo)致受控對(duì)象參數(shù)的改變。在一個(gè)PID反饋控制回路中,受控對(duì)象參數(shù)的變化就會(huì)造成原來(lái)的PID參數(shù)控制性能的降低,為了克服這個(gè)問(wèn)題人們提出了PID參數(shù)自整定,也就是隨著
8、受控對(duì)象的變化PID調(diào)節(jié)器自我調(diào)整和重新設(shè)定PID參數(shù),科研人員根據(jù)古典控制理論和現(xiàn)代控制理論提出了許多種PID參數(shù)的在線自整定的方法。至今仍有人在這方面繼續(xù)作研究。PID參數(shù)在線自整定方法比較典型的有改進(jìn)型Ziegler-Nichols臨界比例度法、基于過(guò)程模型辨識(shí)的參數(shù)自整定、基于經(jīng)驗(yàn)的專家法參數(shù)自整定、模糊型PID調(diào)節(jié)器等。</p><p> ?、?PID參數(shù)優(yōu)化。PID參數(shù)優(yōu)化是指依據(jù)一定的控制目標(biāo)和給定
9、的生產(chǎn)過(guò)程的模型通過(guò)理論計(jì)算得到最優(yōu)的PID參數(shù),PID參數(shù)優(yōu)化在PID控制應(yīng)用之初人們就開始作了大量研究工作,已經(jīng)提出了許多種方法,如粒子群優(yōu)化算法,免疫算法,單純形法,差分進(jìn)化算法,神經(jīng)網(wǎng)絡(luò)算法,遺傳算法等。 </p><p> 本文就是應(yīng)用單純性算法對(duì)二階對(duì)象的PID控制器參數(shù)優(yōu)化,使系統(tǒng)進(jìn)行具有更好的性能。</p><p> 1.2 PID參數(shù)優(yōu)化方法綜述</p>
10、<p> 1.2.1 Ziegler-Nichols設(shè)定方法</p><p> Ziegler與Nichols(1942)提出了調(diào)節(jié)PID控制器的參數(shù)的經(jīng)驗(yàn)公式,這一調(diào)節(jié)器可根據(jù)帶有時(shí)滯環(huán)節(jié)的一階近似模型的階躍響應(yīng)或頻率響應(yīng)數(shù)據(jù)來(lái)設(shè)定。假設(shè)對(duì)象模型為</p><p> 根據(jù)對(duì)象參數(shù)K、T、和可以由經(jīng)驗(yàn)公式求取控制器的參數(shù)。</p><p> 1.
11、2.2臨界比例度法</p><p> 當(dāng)已系統(tǒng)的臨界比例增益和振蕩周期時(shí),也可以用經(jīng)驗(yàn)整定公式來(lái)確定PID控制器的參數(shù),例如:</p><p> 以上兩種傳統(tǒng)方法都是根據(jù)大量的實(shí)驗(yàn)計(jì)算或?qū)嶋H工程經(jīng)驗(yàn)所得到的數(shù)據(jù)整理匯總所得到的公式而得來(lái)的,在實(shí)際的工程應(yīng)用中有很大的弊端。</p><p> 1.2.3 單純形法</p><p> 單純
12、形是美國(guó)數(shù)學(xué)家G.B.丹齊克于1947年首先提出來(lái)的。它的理論根據(jù)是:線性規(guī)劃問(wèn)題的可行域是n維向量空間Rn中的多面凸集,其最優(yōu)值如果存在必在該凸集的某頂點(diǎn)處達(dá)到。單純形法的基本思想是:先找出一個(gè)基本可行解,對(duì)它進(jìn)行鑒別,看是否是最優(yōu)解;若不是,則按照一定法則轉(zhuǎn)換到另一改進(jìn)的基本可行解,再鑒別;若仍不是,則再轉(zhuǎn)換,按此重復(fù)進(jìn)行。因基本可行解的個(gè)數(shù)有限,故經(jīng)有限次轉(zhuǎn)換必能得出問(wèn)題的最優(yōu)解。如果問(wèn)題無(wú)最優(yōu)解也可用此法判別。</p>
13、;<p> 單純形法具有初值敏感性。在初始條件選擇不當(dāng)?shù)那闆r下,單純形法無(wú)法尋找到合適的參數(shù),控制目標(biāo)無(wú)法滿足要求。同時(shí)單純形法難以解決多值函數(shù)最優(yōu)化問(wèn)題。在多參數(shù)尋優(yōu)(如串級(jí)系統(tǒng))問(wèn)題中,容易造成尋優(yōu)失敗或時(shí)間過(guò)長(zhǎng)。</p><p> 1.2.4 粒子群優(yōu)化算法</p><p> 粒子群優(yōu)化(Particle Swarm Optimization - PSO) 算法是
14、近年來(lái)發(fā)展起來(lái)的一種新的進(jìn)化算法( Evolutionary Algorithm - EA) 。PSO 算法屬于進(jìn)化算法的一種,和遺傳算法相似,它也是從隨機(jī)解出發(fā),通過(guò)迭代尋找最優(yōu)解,它也是通過(guò)適應(yīng)度來(lái)評(píng)價(jià)解的品質(zhì)。但是它比遺傳算法規(guī)則更為簡(jiǎn)單,它沒(méi)有遺傳算法的“交叉”(Crossover) 和“變異”(Mutation) 操作。它通過(guò)追隨當(dāng)前搜索到的最優(yōu)值來(lái)尋找全局最優(yōu)。</p><p> 1.2.5 差分進(jìn)
15、化算法</p><p> 差分進(jìn)化(DE)算法是一種采用浮點(diǎn)矢量編碼的在連續(xù)空間中進(jìn)行隨機(jī)搜索的優(yōu)化算法。在差分進(jìn)化算法中,首先由父代個(gè)體間的差分矢量構(gòu)成變異算子;接著按一定的概率,父代個(gè)體與變異個(gè)體之間進(jìn)行交叉操作,生成一個(gè)試驗(yàn)個(gè)體;然后在父代個(gè)體和試驗(yàn)個(gè)體之間根據(jù)適應(yīng)度的大小進(jìn)行選擇操作,適應(yīng)度大的保存到下一代群體中去。</p><p> 1.2.6 神經(jīng)網(wǎng)絡(luò)法</p>
16、<p> 常規(guī)的PID參數(shù)優(yōu)化方法中,直接基于目標(biāo)函數(shù)的單純形法等優(yōu)化方法是最常用的方法,這是因?yàn)樵诠I(yè)控制中很多被控對(duì)象的模型難以用精確的數(shù)學(xué)模型描述,即使在某一工況下,被控對(duì)象可以用數(shù)學(xué)模型描述,但在運(yùn)行過(guò)程中,對(duì)象的特性一旦發(fā)生變化,這一確定的模型便不再適用。而神經(jīng)網(wǎng)絡(luò)的引人則在一定程度上解決和改善了這一問(wèn)題。在基于神經(jīng)網(wǎng)絡(luò)的PID參數(shù)優(yōu)化方法中,神經(jīng)網(wǎng)絡(luò)一般與被控對(duì)象并列,作為一個(gè)神經(jīng)網(wǎng)絡(luò)的辨識(shí)器。</p&
17、gt;<p> 在網(wǎng)絡(luò)經(jīng)過(guò)學(xué)習(xí)后,神經(jīng)網(wǎng)絡(luò)辨識(shí)器的輸出便可以很好地跟蹤被控對(duì)象的輸出。由于神經(jīng)網(wǎng)絡(luò)辨識(shí)器具有確定的結(jié)構(gòu),學(xué)習(xí)之后,其連接權(quán)及各節(jié)點(diǎn)的鬧值都有確定的數(shù)值。這時(shí),該神經(jīng)網(wǎng)絡(luò)辨識(shí)器的結(jié)構(gòu)就可以作為被控對(duì)象結(jié)構(gòu)的一個(gè)近似。用神經(jīng)網(wǎng)絡(luò)辨識(shí)器輸出與輸人的傳遞函數(shù)模型來(lái)近似地代替被控對(duì)象的模型,進(jìn)而用梯度下降法,擬牛頓法優(yōu)化出PID參數(shù)。</p><p> 1.3 本論文主要工作</p&
18、gt;<p> 本論文的主要工作是研究利用單純形法對(duì)二階系統(tǒng)的PID控制器參數(shù)進(jìn)行優(yōu)化,并且使用Matlab對(duì)控制系統(tǒng)進(jìn)行仿真。 </p><p> 首先,對(duì)單純形法進(jìn)行了介紹,包括單純形的概念,單純形算法的基本原理;其次,以二階系統(tǒng)為模型,利用單純形法對(duì)其PID控制器參數(shù)進(jìn)行優(yōu)化,最后利用 Matlab對(duì)優(yōu)化后控制系統(tǒng)進(jìn)行仿真研究。</p><p><b&g
19、t; 二、單純形算法</b></p><p> 2.1 單純形算法簡(jiǎn)介</p><p> 最優(yōu)化方法按照搜索機(jī)制的不同,具體可以分為兩類:一類是解析算法,一類是直接法。解析法是最優(yōu)化問(wèn)題的經(jīng)典算法,但是必須求解目標(biāo)函數(shù)的導(dǎo)數(shù)。這時(shí),就應(yīng)該放棄求梯度的方法,而采用直接法。直接法主要是在迭代過(guò)程中直接比較目標(biāo)函數(shù)值的大小,再根據(jù)一定的收斂終止條件,獲得最優(yōu)解。它的基本思想及迭
20、代過(guò)程,直觀易懂,易于為工程技術(shù)人員接受,但是它并未利用目標(biāo)函數(shù)的性質(zhì)及其解析性質(zhì),故收斂速度較慢。適合用于處理低維問(wèn)題。</p><p> 單純形是美國(guó)數(shù)學(xué)家家G.B.丹齊克于1947年首先提出來(lái)的。它的理論根據(jù)是:線性規(guī)劃問(wèn)題的可行域是n維向量空間Rn中的多面凸集,其最優(yōu)值如果存在必在該凸集的某頂點(diǎn)處達(dá)到。單純形法的基本過(guò)程是:先找出一個(gè)基本可行解,對(duì)它進(jìn)行鑒別,看是否是最優(yōu)解;若不是,則按照一定法則轉(zhuǎn)換到
21、另一改進(jìn)的基本可行解,再鑒別;若仍不是,則再轉(zhuǎn)換,按此重復(fù)進(jìn)行。因基本可行解的個(gè)數(shù)有限,故經(jīng)有限次轉(zhuǎn)換必能得出問(wèn)題的最優(yōu)解。如果問(wèn)題無(wú)最優(yōu)解也可用此法判別。</p><p> 2.2 單純形基本思想</p><p> 單純形尋優(yōu)算法的基本思想是:對(duì)于非線性模型中的n個(gè)待估參數(shù),以n+1個(gè)頂點(diǎn)構(gòu)成最簡(jiǎn)單的圖形,并對(duì)n+1個(gè)頂點(diǎn)的目標(biāo)函數(shù)值進(jìn)行比較,從結(jié)果來(lái)判斷其變化的大致趨勢(shì),并作為下一
22、步實(shí)驗(yàn)的參考,再利用一定的換點(diǎn)原則,使單純形想最優(yōu)點(diǎn)區(qū)域推進(jìn)。</p><p> 從這一點(diǎn)來(lái)說(shuō),單純形算法也是一種實(shí)驗(yàn)最優(yōu)化算法,純粹從實(shí)驗(yàn)的角度來(lái)尋找最優(yōu)目標(biāo)。在每次迭代時(shí),利用已有的單純形去尋找一個(gè)函數(shù)值更小的點(diǎn),如果得到這樣的一個(gè)更好的店,則用這個(gè)新點(diǎn)作為一個(gè)頂點(diǎn)構(gòu)造新的單純形。否則的話,將已有單純形縮小重復(fù)迭代。</p><p> 2.3 單純形算法流程</p>
23、<p> Step1:選取一組初始單純形頂點(diǎn)以及投影系數(shù)、放大系數(shù)和收縮系數(shù)。</p><p> Step2:計(jì)算各個(gè)頂點(diǎn)的目標(biāo)函數(shù)值,找出目標(biāo)函數(shù)最大值點(diǎn)和最小值點(diǎn)。</p><p> Step3:計(jì)算投影中心點(diǎn),根據(jù)投影系數(shù)確定投影點(diǎn)。</p><p> Step4:如果,利用代替并形成一個(gè)新的單純形,返回step2。</p>&
24、lt;p> Step5:放大單純形。令,如果,則放大成功,用代替并形成一個(gè)新的單純形,如果,則放大失敗,仍然用代替返回step2,繼續(xù)投影過(guò)程。</p><p> Step6:收縮單純形。如果對(duì)于除外的所有點(diǎn),都有以及,則用代替并對(duì)單純形縮?。?。如果仍然縮小單純形,但不改變先前的背投影點(diǎn);如果,則用來(lái)代替原來(lái)的被投影點(diǎn),再繼續(xù)進(jìn)行投影過(guò)程;如果,則該收縮過(guò)程失敗,此時(shí)用來(lái)代替所有的,然后繼續(xù)進(jìn)行投影過(guò)程
25、。</p><p> Step7:如果定點(diǎn)的相對(duì)誤差滿足給定的精度要求,則停止迭代,當(dāng)前單純性的形心即為最優(yōu)點(diǎn)。</p><p> 2.4 單純形算法的優(yōu)缺點(diǎn)</p><p> 單純形算法的優(yōu)點(diǎn)是不用求待求函數(shù)的一次倒數(shù)矩陣和海森矩陣,不用進(jìn)行復(fù)雜的矩陣運(yùn)算,占用內(nèi)存小,計(jì)算工作量小,對(duì)初值的要求不嚴(yán)格,對(duì)于大型復(fù)雜的函數(shù)求機(jī)制,不會(huì)出現(xiàn)收斂性能不穩(wěn)定的現(xiàn)象。
26、但是非線性規(guī)劃單純形算法也有很多的缺點(diǎn),如單純形算法的迭代次數(shù)太多,收斂速度緩慢,在迭代過(guò)程中有時(shí)會(huì)出現(xiàn)單純形退化現(xiàn)象等,這些缺點(diǎn)嚴(yán)重影響了飛仙線性規(guī)劃單純形算法的使用。</p><p> 單純形法并沒(méi)有很好地理論性質(zhì),即使收斂,收斂也是線性的。但它具有簡(jiǎn)單使用的有點(diǎn),計(jì)算表明單純形方法十分可靠,特別低,它能處理函數(shù)值變化劇烈的函數(shù)。</p><p> 本算法上機(jī)占用內(nèi)存很少,對(duì)變量不
27、多且精度要求不高的問(wèn)題此法很方便,但當(dāng)變量個(gè)數(shù)多于十個(gè)以上,此法就顯得不十分有效。</p><p> 三、二階系統(tǒng)PID控制器參數(shù)整定過(guò)程</p><p> 3.1 連續(xù)對(duì)象離散化</p><p> 由于工業(yè)領(lǐng)域中的被控對(duì)象一般為一階或二階環(huán)節(jié),因此,在本文里我們擬定受控對(duì)象的傳遞函數(shù)為如下:</p><p> 其中采樣時(shí)間為1s。&
28、lt;/p><p> 利用零階保持器法將化成如下:</p><p> 由于,控制量與之間的差分方程在程序可以如下實(shí)現(xiàn):</p><p> 3.2 PID控制器離散化</p><p> 理想模擬PID控制器的傳遞函數(shù)為:</p><p> 采用后向差分將上式離散化,得:</p><p>
29、增量式PID的后向差分方程為:</p><p><b> 3.3 性能指標(biāo)</b></p><p> 采用如下二次型性能指標(biāo)函數(shù):</p><p> 其中為常數(shù),取值范圍為。利用單純形法不斷計(jì)算目標(biāo)函數(shù)值,從而得到最優(yōu)的PID控制器的參數(shù)。</p><p> 3.4 實(shí)驗(yàn)結(jié)果分析</p><p
30、> 對(duì)象原階躍響應(yīng)圖如下:</p><p> 在程序中PID參數(shù)初始值選擇為:kp = 1,ki = 0.8, kd = 0.8;</p><p> 通過(guò)在MATLAB中調(diào)用程序整定PID控制器參數(shù)后,系統(tǒng)的階躍響應(yīng)圖如下;</p><p> 由系統(tǒng)階躍響應(yīng)圖可以看出,通過(guò)整定后系統(tǒng)的靜態(tài)指標(biāo)和動(dòng)態(tài)指標(biāo)都達(dá)到了要求,這說(shuō)明采用單純形法整定PID參數(shù)是正
31、確的、可行的。</p><p> 在單純形法程序中,選擇各個(gè)頂點(diǎn)與單純形的中心點(diǎn)的函數(shù)值的差值的平方和作為誤差,誤差限,整定過(guò)程中誤差收斂曲線如下:</p><p> 從誤差收斂曲線可以看出,單純形雖然最終誤差收斂到接近于0,但是中間卻出現(xiàn)比較大的峰值變化,這說(shuō)明在峰值變化出,單純形法陷入了不利的條件,這是由于單純形法對(duì)初值的敏感性所產(chǎn)生的。</p><p>
32、 性能指標(biāo)的收斂曲線如下:</p><p> 從二次型性能指標(biāo)的收斂曲線可以看出,在單純形法的迭代過(guò)程中,目標(biāo)函數(shù)值是一直減小的,這說(shuō)明單純形法收斂速度雖然慢,但是目標(biāo)函數(shù)值是在降低的,解是在向最優(yōu)解靠近的。所以用單純形法整定PID參數(shù)是可行的。</p><p><b> 四、總結(jié)</b></p><p> PID控制器結(jié)構(gòu)簡(jiǎn)單,容易實(shí)現(xiàn)
33、,且魯棒性好,因此廣泛應(yīng)用于各種控制領(lǐng)域,并取得了良好的控制效果。單純形算法是比較簡(jiǎn)單的算法之一,它過(guò)程簡(jiǎn)單易懂,在不需要考慮目標(biāo)函數(shù)值性質(zhì)的情況下就能找到問(wèn)題的最優(yōu)解。本文將單純形算法和PID控制結(jié)合起來(lái)應(yīng)用于二階系統(tǒng)的整定過(guò)程,利用單純形算法來(lái)整定PID控制中的三個(gè)參數(shù)(Kp,Ki,Kd),取得了滿意的效果。單純形算法算法運(yùn)用于PID的參數(shù)整定,就可以克服常規(guī)PID整定方法的缺點(diǎn),使要整定的參數(shù)精確收斂,從而使控制效果最優(yōu)。<
34、/p><p><b> 參考文獻(xiàn)</b></p><p> [1] 張磊,于單純形法PID控制器的最優(yōu)設(shè)計(jì)[J].信息與控制2004,33(3):55-60.</p><p> [2] 劉曉謙,王勇,穆順勇.基于單純形法的PID控制器參數(shù)優(yōu)化設(shè)計(jì)[J].2004,21(11):163-168.</p><p> [3
35、] 李勇,段正澄,胡倫驥.基于粒子群優(yōu)化算法的液壓伺服控制系統(tǒng)PID參數(shù)優(yōu)化[D].華中科技大學(xué).湖北武漢2007.</p><p> [4] 周劉喜,張興華,李緯. 基于差分進(jìn)化算法的PID優(yōu)化設(shè)計(jì)[D]. 南京工業(yè)大學(xué)自動(dòng)化學(xué)院,江蘇南京2000.</p><p> [5] 郭鵬,韓濮. 基于神經(jīng)網(wǎng)絡(luò)的PID參數(shù)優(yōu)化方法研究. 華北電力大學(xué)動(dòng)力系保定[D],2003.</p&
36、gt;<p><b> 程序附件:</b></p><p> clc;clear;close all;%清除變量、窗體、及工作區(qū)間</p><p> global rin yout timef</p><p> %*********第一步:?jiǎn)渭冃翁鎿Q法變量準(zhǔn)備及設(shè)定***********</p><p&
37、gt; x0 = [1 0.8 0.8];%Kp,Ti,Td初始值</p><p> l = 1e-6;%單純形棱長(zhǎng)</p><p> r = 1;%反射系數(shù)Gama,通常取1</p><p> e = 2;%延伸系數(shù),通常取2</p><p> n = 3;%n = 3表示問(wèn)題為三維空間最優(yōu)點(diǎn)求解</p><p
38、> c = 0.5;%收縮系數(shù),通常取0.5</p><p> Maxstep = 1000;%迭代最大次數(shù)</p><p> MarginErr = 5e-13;%誤差限</p><p> Bestv = zeros(1, 3);%最優(yōu)解</p><p> Bestf = 0;%最優(yōu)解對(duì)應(yīng)的函數(shù)值</p>&l
39、t;p> [v, f] = Initialize(x0, n, l);%調(diào)用初始化函數(shù)</p><p> %**第二步:?jiǎn)渭冃畏瓷?,延伸,收縮,減小棱長(zhǎng)得到最優(yōu)點(diǎn)****</p><p> Deltarecord = [];%誤差記錄矩陣</p><p> frecord = [];%函數(shù)值記錄矩陣</p><p> for
40、 i = 1 : Maxstep</p><p> %調(diào)用FYSJ函數(shù)求的下一次迭代所需要的單純形</p><p> [Nextv, Nextf, Delta, Meanf] = FYSJ(v, f, r, e, c, n);</p><p> Deltarecord = [Deltarecord Delta];%記錄誤差</p><p&g
41、t; if (Delta < MarginErr)</p><p> for i = 1 : 3</p><p> Bestv(i) = sum(Nextv(:, i)) / (n + 1);</p><p><b> end</b></p><p> Bestf = Targetf(Bestv);<
42、;/p><p> frecord = [frecord Bestf];%記錄函數(shù)值</p><p><b> break;</b></p><p><b> else</b></p><p> v = Nextv;</p><p> f = Nextf;</p&g
43、t;<p> frecord = [frecord Meanf];%記錄函數(shù)值</p><p><b> end</b></p><p><b> end</b></p><p> %********第三步:做出誤差收斂曲線,函數(shù)值變化曲線*******</p><p><
44、;b> figure;</b></p><p><b> %誤差收斂曲線</b></p><p> [msize, nsize] = size(Deltarecord);</p><p> t = 1 : nsize;</p><p> plot(t, Deltarecord, 'b&
45、#39;);</p><p> xlabel('時(shí)間');ylabel('誤差');</p><p> title('誤差收斂曲線');</p><p><b> figure;</b></p><p><b> %函數(shù)值變化曲線</b><
46、;/p><p> [msize, nsize] = size(frecord);</p><p> t = 1 : nsize;</p><p> plot(t, frecord, 'b');</p><p> xlabel('時(shí)間');ylabel('函數(shù)值');</p>&
47、lt;p> title('二次型性能指標(biāo)收斂曲線');</p><p><b> %系統(tǒng)響應(yīng)圖</b></p><p><b> figure;</b></p><p><b> hold on;</b></p><p> plot(timef,
48、 yout);</p><p> xlabel('時(shí)間');ylabel('輸出');</p><p> title('整定后系統(tǒng)階躍響應(yīng)圖');</p><p><b> %%</b></p><p> %此函數(shù)用來(lái)建立系統(tǒng)模型,并求解目標(biāo)函數(shù)</p>
49、<p> %Kpidi的三個(gè)參數(shù)分別為Kp,Ti,Td的值</p><p> %J為當(dāng)前目標(biāo)函數(shù)值</p><p><b> %%</b></p><p> function J = Targetf(Kpidi)</p><p> global rin yout timef</p>
50、<p> ts=1; %采樣時(shí)間為1s</p><p> num = [0.048 0.048 * 0.967];</p><p> den = [1 -1.905 0.905];%采用零階保持器離散化傳遞函數(shù)矩陣</p><p> rin = 1.0;%輸入為階躍輸入</p><p> u_1
51、= 0.0;u_2 = 0.0;</p><p> y_1 = 0.0;y_2 = 0.0;</p><p> x = [0,0,0]';</p><p> error_1 = 0;</p><p> P = 500;%采樣點(diǎn)數(shù)</p><p> for k = 1:1:P</p>&l
52、t;p> timef(k) = k * ts;</p><p> r(k) = rin;</p><p> u(k) = Kpidi(1) * x(1) + Kpidi(2) * x(2) + Kpidi(3) * x(3); </p><p> yout(k) = -den(2) * y_1 - den(3) * y_2 + num(1) * u_1
53、 + num(2) * u_2;</p><p> error(k) = r(k) - yout(k);</p><p> u_2 = u_1;</p><p> u_1 = u(k);</p><p> y_2 = y_1;</p><p> y_1 = yout(k); </p><
54、p> x(1)=error(k);% 誤差值</p><p> x(2)=(error(k)-error_1)/ts;%誤差變化量</p><p> x(3)=x(3)+error(k)*ts;%誤差積分</p><p> error_1=error(k);</p><p><b> end</b><
55、;/p><p> J = 0;%目標(biāo)函數(shù)J公式實(shí)現(xiàn)</p><p> for i=1:1:P </p><p> J = J + error(i)^2 + 0.5 * u(i)^2;</p><p><b> end</b></p><p><b> %%</b><
56、;/p><p> %此函數(shù)用來(lái)完成單純形替換法變量準(zhǔn)備及設(shè)定</p><p> %其中x0為Kp,Ti,Td初始值</p><p><b> %n為空間維度</b></p><p> %v為單純形的n+1個(gè)頂點(diǎn)</p><p> %f為單純形的n+1個(gè)頂點(diǎn)的函數(shù)值</p>&l
57、t;p><b> %%</b></p><p> function [v, f] = Initialize(x0, n, l)</p><p> p = l * (sqrt(n + 1) + n - 1) / (sqrt(2) * n);%z矩陣參數(shù)p</p><p> q = l * (sqrt(n + 1) - 1) / (
58、sqrt(2) * n);%z矩陣參數(shù)q</p><p> z = zeros(n + 1, n);</p><p><b> %初始化z矩陣</b></p><p> for i = 2 : (n + 1)</p><p> for j = 1 : n</p><p> if ((i
59、- 1) == j)</p><p> z(i, j) = p;</p><p><b> else</b></p><p> z(i, j) = q;</p><p><b> end</b></p><p><b> end</b><
60、/p><p><b> end</b></p><p> %初始化v1...vn,也是單純形的n+1個(gè)頂點(diǎn)</p><p> v = zeros(n + 1, n);</p><p> v(1, :) = x0;</p><p> for i = 2 : (n + 1)</p>
61、<p> v(i, :) = x0 + z(i, :);</p><p><b> end</b></p><p> %初始化頂點(diǎn)函數(shù)值矩陣</p><p> f = zeros(n + 1, 1);</p><p> for i = 1 : (n + 1)</p><p>
62、 f(i) = Targetf(v(i, :));</p><p><b> end</b></p><p><b> %%%</b></p><p> %本函數(shù)根據(jù)單純性求解最優(yōu)點(diǎn)的法則求解最優(yōu)點(diǎn)</p><p> %v,f為得到的初始單純性</p><p>
63、%Nextv為下一個(gè)單純形</p><p> %Nextf為下一個(gè)單純形函數(shù)值</p><p> %Delta為本次單純形的誤差</p><p><b> %%%</b></p><p> function [Nextv, Nextf, Delta, Meanf] = FYSJ(v, f, r, e, c, n)
64、</p><p> [fh, h] = max(f);%找出f中值最大的元素和其位置</p><p> [fl, l] = min(f);%找出f中值最大的元素和其位置</p><p> v0 = zeros(1, n);%去掉最壞頂點(diǎn)后的(n-1)空間中單純形的中心點(diǎn)</p><p> for i = 1 : n</p>
65、<p> v0(i) = (sum(v(:, i)) - v(h, i)) / n;</p><p><b> end</b></p><p> vr = zeros(1, n);</p><p> vr = v0 + r * (v0 - v(h, :));%通過(guò)v0反射vGama</p><p>
66、 fr = Targetf(vr);</p><p> %%%開始判斷,oh, my god, it's really terrible%%%</p><p> if (fr < fl)</p><p> %%%第一模塊%%%</p><p> %如果fr<fl,則繼續(xù)延伸</p><p>
67、; ve = v0 + e * (vr - v0);</p><p> fe = Targetf(ve);</p><p> if (fe <= fl)</p><p><b> %如果fe<fl</b></p><p> v(h, :) = ve;</p><p> f(
68、h) = fe;</p><p> [Delta, Meanf] = Error(v, f);</p><p><b> else</b></p><p> v(h, :) = vr;</p><p> f(h) = fr;</p><p> [Delta, Meanf] = Error
69、(v, f);</p><p><b> end</b></p><p> %%%第一模塊%%%</p><p><b> else</b></p><p> %%%第二模塊%%%</p><p> for i = 1 : n</p><p>
70、; if (i == h)</p><p><b> continue;</b></p><p><b> else</b></p><p> if (fr < f(i))</p><p> v(h, :) = vr;</p><p> f(h) = fr;
71、</p><p> [Delta, Meanf] = Error(v, f);</p><p><b> break;</b></p><p><b> end</b></p><p><b> end</b></p><p><b>
72、 end</b></p><p> %%%第二模塊%%%</p><p> %%%第三模塊%%%</p><p> if (fr > fh)</p><p> vc = v0 + c * (v(h, :) - v0);</p><p> fc = Targetf(vc);</p>
73、;<p><b> else</b></p><p> v(h, :) = vr;</p><p> f(h) = Targetf(vr);</p><p> vc = v0 + c * (v(h, :) - v0);</p><p> fc = Targetf(vc);</p>&
74、lt;p><b> end</b></p><p> %%%第三模塊%%%</p><p> %%%第三模塊%%%</p><p> if (fc <= fh)</p><p> v(h, :) = vc;</p><p> f(h) = fc;</p>&l
75、t;p> [Delta, Meanf] = Error(v, f);</p><p><b> else</b></p><p> for i = 1 : (n + 1)</p><p> v(i, :) = 0.5 * (v(i, :) + v(l, :));</p><p> f(i) = Targe
76、tf(v(i, :));</p><p> [Delta, Meanf] = Error(v, f);</p><p><b> end</b></p><p><b> end</b></p><p><b> end</b></p><p>
77、 Nextv = v;</p><p> Nextf = f;</p><p><b> %%%</b></p><p> %此函數(shù)用來(lái)求解判斷終止的誤差</p><p> %v,f為得到的初始單純性</p><p> %Delta為本次單純形的誤差</p><p&
78、gt;<b> %%%</b></p><p> function [Delta, Meanf] = Error(v, f)</p><p> Delta = 0;</p><p><b> %計(jì)算中心點(diǎn)維數(shù)</b></p><p> [m, n] = size(v);</p>
79、<p> if (m < n)</p><p> Meanv = zeros(n, 1);</p><p><b> n1 = m;</b></p><p><b> else</b></p><p> Meanv = zeros(m, 1);</p>&
80、lt;p><b> n1 = n;</b></p><p><b> end</b></p><p> %計(jì)算中心點(diǎn)向量meanv</p><p> for i = 1 : n1</p><p> Meanv(i) = sum(v(:, i)) / (n1 + 1);</p&g
81、t;<p><b> end</b></p><p> %計(jì)算中心點(diǎn)和單純形各個(gè)頂點(diǎn)的差值</p><p> for i = 1 : (n1 + 1)</p><p> Delta = Delta + (f(i) - Targetf(Meanv)) * (f(i) - Targetf(Meanv));</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單純形法matlab程序
- 單純形法的解題步驟
- 單純形法的算法探討.pdf
- 線性規(guī)劃單純形法(例題)
- 運(yùn)籌學(xué)畢業(yè)論文單純形法
- 單純形法例題
- 對(duì)偶單純形法c語(yǔ)言實(shí)現(xiàn)
- 單純形法的綜述及其應(yīng)用[畢業(yè)論文]
- 實(shí)驗(yàn)二matlab編程單純形法求解
- 基于線性規(guī)劃單純形法優(yōu)化礦山巖石運(yùn)輸調(diào)配.pdf
- 單純形法的綜述及其應(yīng)用-[開題報(bào)告]
- 單純形法的綜述及其應(yīng)用-文獻(xiàn)綜述
- 第1章線性規(guī)劃及單純形法
- 用對(duì)偶單純形法求解線性規(guī)劃問(wèn)題
- 運(yùn)籌學(xué)-第1章-3-單純形法
- 單純形法的綜述及其應(yīng)用[畢業(yè)論文+開題報(bào)告+文獻(xiàn)綜述]
- 基于遺傳算法和單純形法的救災(zāi)物資分配研究.pdf
- 管理運(yùn)籌學(xué)-單純形法的靈敏度分析與對(duì)偶
- 仿單純形法及其在短期水電系統(tǒng)發(fā)電調(diào)度中的應(yīng)用.pdf
- 運(yùn)籌學(xué)03單純形法的進(jìn)一步討論人工變量法
評(píng)論
0/150
提交評(píng)論