*曾彬洋
(中國石油工程建設有限公司西南分公司 四川 610000)
PID(比例積分微分)算法在石化行業(yè)的過程控制中具有重要地位。目前石化工廠的過程控制回路的PID參數(shù)整定通常使用試湊法,通過人工不斷試錯和分析來完成,但耗費大量時間和人力。需要操作人員具備一定的經(jīng)驗和技巧,多次嘗試才能找到相對最佳的PID參數(shù)組合。而當系統(tǒng)非常復雜或存在多個干擾因素時,試湊法很難獲得穩(wěn)定的性能。
在實際應用中考慮各種因素,尋找更加高效和可靠的方法來獲取最佳PID參數(shù)組合。遺傳算法(Genetic Algorithm)是一種基于自然進化理論的計算機算法,可以解決經(jīng)典優(yōu)化問題和具有實際應用價值的復雜問題?;谶z傳算法的PID自整定通常使用一系列控制仿真來進行,可以獲得較為合適的PID參數(shù),以滿足控制性能要求[1]。自整定PID控制器具有自適應調節(jié)能力,其參數(shù)可以根據(jù)系統(tǒng)響應自動調整,從而達到滿意的控制效果。遺傳算法作為一種優(yōu)化算法[2],能夠有效地搜索PID參數(shù)空間,找到最佳的PID參數(shù)組合,從而提高控制性能。本文將介紹一種基于遺傳算法的預測自整定PID控制器,通過模型預測和誤差調整的方式,自適應地調整PID參數(shù),實現(xiàn)系統(tǒng)的自動調節(jié),從而進一步提高控制性能。
PID算法是一種反饋控制系統(tǒng),用于調節(jié)期望的輸出的一種控制方法[3]。將PID控制器的公式進行離散化處理。對于比例參數(shù)、積分時間和微分時間,需要根據(jù)采樣周期T進行離散化處理。通過Z變換,將PID控制器的連續(xù)時間公式轉換為離散時間的差分方程形式:
在遺傳算法中,解決方案被表示為一個種群,并通過一系列的演化操作進行進化。每個解決方案的適應度通過評估其在給定系統(tǒng)中的性能來確定。通過選擇適應度較好的個體,結合隨機變異操作,生成下一代解決方案[4]。這個過程不斷迭代,直到找到滿意的解決方案。使用遺傳算法來進行PID參數(shù)整定的好處在于它能夠在較短時間內計算出參數(shù),并且能夠處理復雜的搜索空間[5-6]。遺傳算法能夠通過自適應的迭代過程來搜索最佳的參數(shù)組合,從而使得PID控制器在不同的工況和系統(tǒng)變化下都能表現(xiàn)良好。相比于人工整定,遺傳算法能夠處理噪聲和欺騙性問題,因為它能夠通過多樣性的種群、適應度函數(shù)的選擇、迭代的搜索過程以及參數(shù)范圍的探索來適應不同的工況和系統(tǒng)變化,具有較強的魯棒性。通過調整選擇和變異操作的參數(shù),可以控制遺傳算法的搜索策略,以找到更好的解決方案。
整定PID參數(shù)的遺傳算法首先創(chuàng)建一個初始的解決方案種群,然后使用適應度函數(shù)進行評估[7],該函數(shù)衡量解決方案與預期目標之間的接近程度。然后選擇性能最好的解決方案,并進行交叉操作,將兩個解決方案結合起來創(chuàng)建一個新的、更好的解決方案。圖1為改進算法的基本流程框圖。
在遺傳算法優(yōu)化的PID中,種群是由多個個體組成的集合,每個個體表示一個可能的PID參數(shù)組合。種群的大小取決于問題復雜性和算法需求,較大的種群規(guī)??梢栽黾铀阉髂芰?,但也會增加計算量。種群中的每個個體通過選擇、交叉和變異等操作進化和改進。通過基于適應度評價的選擇操作,確定哪些個體參與繁殖產(chǎn)生下一代。經(jīng)過交叉和變異操作后,新個體被添加到種群中,適應度較低的個體可能被淘汰。這樣的迭代進化過程使得種群逐漸優(yōu)化,直到找到滿意的PID參數(shù)組合。種群是遺傳算法優(yōu)化的PID中的關鍵概念,代表了一組候選解決方案,并通過進化過程搜索最佳的參數(shù)組合。
合適的種群規(guī)模對于遺傳算法的有效性和穩(wěn)健性至關重要。如果種群規(guī)模設置過小,可能會導致有效等位基因不足,影響整個種群的質量和多樣性[8]。種群規(guī)模設置過大,會導致遺傳算子中的隨機誤差增加,計算資源的浪費增加,并且結果的收斂性和穩(wěn)健性都會下降[9]。根據(jù)經(jīng)驗種群數(shù)量,較小的種群規(guī)模容易導致早熟收斂,無法發(fā)現(xiàn)更好的解。過大的種群規(guī)模會增加計算負擔。因此,將種群大小控制在20~100之間可以在搜索能力和計算效率之間找到較好的平衡點。
適應度評估函數(shù)用于衡量每個個體在問題域中的適應程度,它決定了個體在選擇操作中被選中的概率。適應度評估函數(shù)的具體形式取決于解決的問題和所需的優(yōu)化目標。設種群中的染色體的適應度為
使用MATLAB中的遺傳算法優(yōu)化工具箱(GAOT)編寫程序對改進算法進行仿真。在運用遺傳算法之前,需對遺傳算法進行初始化。初始化種群規(guī)模、變量邊界和所需的評估函數(shù)。
其中,populationSize=20,40,80:定義合適種群規(guī)模數(shù)量,搜索參數(shù)空間,并增加找到最優(yōu)解的機會。variableBounds=[-90 90;-90 90;-90 90]:變量邊界,用于限定每個個體(即PID參數(shù))的取值范圍,使用一個3行2列的矩陣,該變量邊界限定了PID參數(shù)在-90~90之間的取值,可以確保得到的參數(shù)具有物理可行性,降低計算成本。過大或過小的取值可能導致控制系統(tǒng)不穩(wěn)定或無法達到所需的響應。evalFN:評估函數(shù),指定用于計算適應度值的函數(shù)的文件名,該函數(shù)接收PID參數(shù)作為輸入,執(zhí)行相應的代碼,并將適應度值返回給主代碼。evalOps:評估函數(shù)的額外參數(shù)。options=[1e-7 1]:優(yōu)化選項,包含目標函數(shù)收斂限制和目標函數(shù)容差,目標函數(shù)收斂限制設定為1e-7,表示當適應度值小于或等于該值時,算法將停止迭代,目標函數(shù)容差設定為1,用于控制算法的收斂速度和精度。initializega:初始化遺傳算法,根據(jù)給定的種群規(guī)模、變量邊界、評估函數(shù)和優(yōu)化選項來創(chuàng)建初始種群。創(chuàng)建一個由定義種群成員組成的初始總體,其中每個成員的P、I、D參數(shù)隨機選擇在-90~90之間,并保留小數(shù)點后7位。接下來,遺傳算法將應用進化遺傳算法的操作,如選擇、交叉和變異[10-11]來不斷迭代地優(yōu)化PID參數(shù),以找到最優(yōu)解。
MATLAB代碼中定義termFN=’maxGenTerm’:遺傳算法終止函數(shù),使用maxGenTerm函數(shù),在繁殖100代之后終止遺傳算法的運行。termOps=100:用于定義終止函數(shù)的額外參數(shù),即遺傳算法繁殖100代之后停止。selectFN=’normGeomSelect’:選擇函數(shù)的名稱,用于選擇每一代中最適應的染色體。使用norm-GeomSelect函數(shù),根據(jù)適應度值進行選擇。selectOps=0.08:用于設置選擇函數(shù)的額外參數(shù),設置選擇概率為0.08,表示以該概率選擇下一代中的最適應染色體。xOverFNs=’arithXover’:交叉函數(shù)的名稱,用于執(zhí)行染色體之間的交叉操作。使用了arithXover函數(shù),該函數(shù)專門用于處理浮點數(shù)的交叉操作。x-OverOps=4:定義交叉函數(shù)的額外參數(shù),設置交叉操作的選項,表示在交叉過程中使用4個交叉點。mut-FNs=’unifMutation’:變異函數(shù)的名稱,用于執(zhí)行染色體的變異操作。使用了unifMutation函數(shù),該函數(shù)用于執(zhí)行均勻突變操作。mutOps=8:用于設置變異函數(shù)的額外參數(shù),設置變異操作的選項,異幅度設置為8。
為了找到最佳的PID控制器,需創(chuàng)建一個目標函數(shù)來評估系統(tǒng)。這個目標函數(shù)可以基于超調、上升時間或穩(wěn)定時間等方面最小化誤差,以盡量減少受控系統(tǒng)的誤差。每個個體的染色體通過目標函數(shù)進行評估,并給出一個適應度值,適應度值越大表示適應度越好。遺傳算法使用適應度值來生成由適應度較高個體組成的新群體。設計適應度函數(shù)是遺傳算法中的關鍵因素之一。它用于評估個體在解決問題中的優(yōu)劣程度,并指導選擇和交叉的進化過程。適應度函數(shù)的目標是根據(jù)個體的特征來評估其適應度。通過合理設計適應度函數(shù),可以引導算法朝著更好的解決方案進行搜索。
定義目標函數(shù)Kp=x_pop(2);Ki=x_pop(3);Kd=x_pop(1);pid_den=[1 0];pid_num=[Kd Kp Ki];pid_sys=tf(pid_num,pid_den),作用是根據(jù)給定的x_pop向量中的元素賦值給控制器的參數(shù)、和,然后構造一個傳遞函數(shù)對象pid_sys,其中分子為pid_num,分母為[1 0]。
將新形成的PID控制器傳入具有系統(tǒng)傳遞函數(shù)的單位反饋回路中。系統(tǒng)傳遞函數(shù)作為全局變量導入,然后向受控系統(tǒng)提供階躍輸入,并使用MSE(均方誤差)來評估誤差。在PID控制器的優(yōu)化過程中,希望通過調整PID參數(shù)來使系統(tǒng)的輸出盡可能接近期望值。均方誤差是衡量系統(tǒng)輸出與期望值之間差異的常用指標之一。MSE是一種常用的回歸模型的性能評估指標,其易于計算,是所有觀測值與預測值之間平方誤差的平均數(shù)。MSE的表達:
它對較大的誤差有較高的容忍度,并且通過平方誤差放大了較大誤差的影響。根據(jù)MSE的大小評估個體的適應度,以引導進化過程朝著更小誤差的解決方案進行搜索。計算誤差error,其中y是一個包含300個元素的向量。然后通過計算誤差平方error_sq,再將其除以誤差向量的長度來得到均方誤差MSE。遺傳算法的優(yōu)化過程就是通過不斷調整PID參數(shù)組合來最小化均方誤差。遺傳算法根據(jù)評估函數(shù)的值來評估每個個體(PID參數(shù)組合)的適應度,并基于適應度進行選擇、交叉和變異操作,以逐步優(yōu)化PID參數(shù)組合,使得系統(tǒng)輸出的均方誤差越來越小,從而獲得更好的控制效果。
經(jīng)過MATLAB程序仿真,圖2、圖3、圖4為不同種群數(shù)量仿真的階躍響應圖,可看到種群數(shù)量為80的系統(tǒng)響應更好。顯示這種進化遺傳算法優(yōu)化PID控制器在階躍響應方面有比較好的性能,該算法可以提供高效、準確的控制系統(tǒng)設計。圖5為適應度函數(shù)值隨迭代次數(shù)仿真圖,橫軸表示迭代的代數(shù),縱軸表示適應度函數(shù)值。隨著代數(shù)的增加,適應度函數(shù)值逐漸降低的趨勢,說明每一代都能得到更優(yōu)秀的染色體,從而使得適應度函數(shù)值逐步接近最優(yōu)解,表明本算法有較快的收斂速度。
圖4 種群數(shù)量80的遺傳算法PID的階躍響應曲線
圖5 適應度函數(shù)值
經(jīng)過仿真,使用遺傳算法進行參數(shù)優(yōu)化可以比較準確地找到最優(yōu)的PID參數(shù)組合。相比于傳統(tǒng)的經(jīng)驗整定方法,遺傳算法可以全面地搜索參數(shù)空間,并根據(jù)特定的目標函數(shù),如階躍響應的性能指標進行優(yōu)化。遺傳算法則通過在參數(shù)空間中搜索尋找最佳解,可以適應不同的系統(tǒng)和控制需求。
通過仿真顯示,遺傳算法設計的PID相較于傳統(tǒng)方法具有較快的系統(tǒng)響應速度,遺傳算法能夠通過優(yōu)化參數(shù)的組合。遺傳算法設計的PID控制器能夠在上升時間、穩(wěn)定時間等性能指標方面表現(xiàn)出色。在仿真實驗中,這些指標可以被準確地測量和評估,從而證明遺傳算法的優(yōu)越性。遺傳算法能夠自動搜索最優(yōu)的參數(shù)組合,免去了繁瑣的手動調參過程。傳統(tǒng)方法常常需要經(jīng)驗豐富的工程師進行耗時的參數(shù)調整,而遺傳算法能夠高效地找到最佳參數(shù)組合,節(jié)省了調試時間和人力成本。遺傳算法能夠適應不同的系統(tǒng)和工況條件。它可以根據(jù)實際情況靈活地調整參數(shù),以滿足系統(tǒng)的要求。遺傳算法設計的PID在系統(tǒng)響應速度、性能指標、調參效率和適應性方面相對于傳統(tǒng)方法具有明顯的優(yōu)勢。