導航:首頁 > 源碼編譯 > 粒子群演算法優化pid

粒子群演算法優化pid

發布時間:2023-05-10 17:35:09

㈠ 【第14章】基於粒子群演算法的PID控制優化設計~~新手求助

%% 清空環境clearclc%% 參數設置w = 0.6; % 慣性因子 c1 = 2; % 加速常數c2 = 2; % 加速常數Dim = 3; % 維數SwarmSize = 100; % 粒子群規模ObjFun = @PSO_PID; % 待優化函數句柄MaxIter = 100; % 最大迭代次數 MinFit = 0.1; % 最小適應值 Vmax = 1;Vmin = -1;Ub = [300 300 300];Lb = [0 0 0];%% 粒子群初始化 Range = ones(SwarmSize,1)*(Ub-Lb); Swarm = rand(SwarmSize,Dim).*Range + ones(SwarmSize,1)*Lb; % 初始化粒子群 VStep = rand(SwarmSize,Dim)*(Vmax-Vmin) + Vmin; % 初始化速度 fSwarm = zeros(SwarmSize,1);for i=1:SwarmSize fSwarm(i, = feval(ObjFun,Swarm(i,); % 粒子群的適應值end程序到這里就出現了,求解釋!

㈡ 粒子群優化模糊PID控制的量化因子和比例因子出現問題請問能幫忙看看么

1、我在多個版本下進行過測試,情況不盡相同。其中在某個版本的確出現過一次這個問題,但後來一直未能復現那個現象,所以未能進一步分析。

2、大致看了一下程序的思想:這個程序通過粒子群方法對幾個增益系數進行優化,目標函數通過對模型模擬足夠長的時間求積分型性能指標ITAE,而模型本身則又通過模糊邏輯對PID控制系數進行調整。

程序的絕大多數運行時間都消耗在調用Simulink模型進行模擬上。從我電腦上的情況看,運行一次模擬有時需要十幾分鍾,有時甚至十幾個小時都沒結束(與待優化的幾個增益系數取值有關)碧昌,而根據主程序pso的參數設置,每一代迭代就需要調用粒子群規模的悔裂扒次數30,最多可能迭代50代,也就是最多可能模擬1500次。這樣很自然會造成【一直不停的運行】,而如果強制停止運行,很自然就是位於調用Simulink進行模擬的那行代碼上。

3、對於題主現在的程序,我有幾點疑問:
(1)當前的模型使用了FLS,然後用pso方法進行優化,是否有比較可信的文獻支撐?僅就對這個系統進行控制來說,總感覺有點把簡單問題復雜化了,應該有更簡單的做法。希望題主能提供更多的一些背景資料(例如主要參考文獻)。
(2)模型中存在一些比較可疑甚至錯誤的地方。例如,使用Derivative模塊提供微分信號是不可靠的做法,而FLC模塊前應該用Mux而不是Add(這個錯誤是致命的,可能求解時間過長的原因主要就是它,我沒進一步研究)。
(3)PID系源搭數相當於都疊加了一個基準,這種做法的必要性及其來源?

㈢ 粒子群優化演算法

姓名:楊晶晶  學號:21011210420  學院:通信工程學院

【嵌牛導讀】

傳統的多目標優化方法是將多目標問題通過加權求和轉化為單目標問題來處理的,而粒子演算法主要是解決一些多目標優化問題的(例如機械零件的多目標設計優化),其優點是容易實現,精度高,收斂速度快。

【嵌牛鼻子】粒子群演算法的概念、公式、調參以及與遺傳演算法的比較。

【嵌牛提問】什麼是粒子群演算法?它的計算流程是什麼?與遺傳演算法相比呢?

【嵌牛正文】

1. 概念

        粒子群優化演算法(PSO:Particle swarm optimization) 是一種進化計算技術(evolutionary computation),源於對鳥群捕食的行為研究。

        粒子群優化演算法的基本思想:是通過群體中個體之間的協作和信息共享來尋找最優解。

        PSO的優勢:在於簡單容易實現並且沒有許多參數的調節。目前已被廣泛應用於函數優化、神經網路訓練、模糊系統控制以及其他遺傳演算法的應用領域。

2. 演算法

2.1 問題抽象

        鳥被抽象為沒有質量和體積的微粒(點),並延伸到N維空間,粒子i在N維空間的位置表示為矢量Xi=(x1,x2,…,xN),飛行速度表示為矢量Vi=(v1,v2,…,vN)。每個粒子都有一個由目標函數決定的適應值(fitness value),並且知道自己到目前為止發現的最好位置(pbest)和現在的位置Xi。這個可以看作是粒子自己的飛行經驗。除此之外,每個粒子還知道到目前為止整個群體中所有粒子發現的最好位置(gbest)(gbest是pbest中的最好值),這個可以看作是粒子同伴的經驗。粒子就是通過自己的經驗和同伴中最好的經驗來決定下一步的運動。

2.2 更新規則

      PSO初始化為一群隨機粒子(隨機解)。然後通過迭代找到最優解。在每一次的迭代中,粒子通過跟蹤兩個「極值」(pbest,gbest)來更新自己。在找到這兩個最優值後,粒子通過下面的公式來更新自己的速度和位置。

      公式(1)的第一部分稱為【記憶項】,表示上次速度大小和方向的影響;公式(1)的第二部分稱為【自身認知項】,是從當前點指向粒子自身最好點的一個矢量,表示粒子的動作來源於自己經驗的部分;公式(1)的第三部分稱為【群體認知項】,是一個從當前點指向種群最好點的矢量,反映了粒子間的協同合作和知識共享。粒子就是通過自己的經驗和同伴中最好的經驗來決定下一步的運動。

      以上面兩個公式為基礎,形成了PSO的標准形式。

      公式(2)和 公式(3)被視為標准PSO演算法。

2.3 標准PSO演算法流程

    標准PSO演算法的流程:

    1)初始化一群微粒(群體規模為N),包括隨機位置和速度;

    2)評價每個微粒的適應度;

    3)對每個微粒,將其適應值與其經過的最好位置pbest作比較,如果較好,則將其作為當前的最好位置pbest;

    4)對每個微粒,將其適應值與其經過的最好位置gbest作比較,如果較好,則將其作為當前的最好位置gbest;

    5)根據公式(2)、(3)調整微粒速度和位置;

    6)未達到結束條件則轉第2)步。

        迭代終止條件根據具體問題一般選為最大迭代次數Gk或(和)微粒群迄今為止搜索到的最優位置滿足預定最小適應閾值。

      公式(2)和(3)中pbest和gbest分別表示微粒群的局部和全局最優位置。

    當C1=0時,則粒子沒有了認知能力,變為只有社會的模型(social-only):

被稱為全局PSO演算法。粒子有擴展搜索空間的能力,具有較快的收斂速度,但由於缺少局部搜索,對於復雜問題

比標准PSO 更易陷入局部最優。

    當C2=0時,則粒子之間沒有社會信息,模型變為只有認知(cognition-only)模型:

      被稱為局部PSO演算法。由於個體之間沒有信息的交流,整個群體相當於多個粒子進行盲目的隨機搜索,收斂速度慢,因而得到最優解的可能性小。

2.4 參數分析

        參數:群體規模N,慣性因子 ,學習因子c1和c2,最大速度Vmax,最大迭代次數Gk。

        群體規模N:一般取20~40,對較難或特定類別的問題可以取到100~200。

        最大速度Vmax:決定當前位置與最好位置之間的區域的解析度(或精度)。如果太快,則粒子有可能越過極小點;如果太慢,則粒子不能在局部極小點之外進行足夠的探索,會陷入到局部極值區域內。這種限制可以達到防止計算溢出、決定問題空間搜索的粒度的目的。

        權重因子:包括慣性因子和學習因子c1和c2。使粒子保持著運動慣性,使其具有擴展搜索空間的趨勢,有能力探索新的區域。c1和c2代表將每個粒子推向pbest和gbest位置的統計加速項的權值。較低的值允許粒子在被拉回之前可以在目標區域外徘徊,較高的值導致粒子突然地沖向或越過目標區域。

        參數設置:

        1)如果令c1=c2=0,粒子將一直以當前速度的飛行,直到邊界。很難找到最優解。

        2)如果=0,則速度只取決於當前位置和歷史最好位置,速度本身沒有記憶性。假設一個粒子處在全局最好位置,它將保持靜止,其他粒子則飛向它的最好位置和全局最好位置的加權中心。粒子將收縮到當前全局最好位置。在加上第一部分後,粒子有擴展搜索空間的趨勢,這也使得的作用表現為針對不同的搜索問題,調整演算法的全局和局部搜索能力的平衡。較大時,具有較強的全局搜索能力;較小時,具有較強的局部搜索能力。

        3)通常設c1=c2=2。Suganthan的實驗表明:c1和c2為常數時可以得到較好的解,但不一定必須等於2。Clerc引入收斂因子(constriction factor) K來保證收斂性。

      通常取為4.1,則K=0.729.實驗表明,與使用慣性權重的PSO演算法相比,使用收斂因子的PSO有更快的收斂速度。其實只要恰當的選取和c1、c2,兩種演算法是一樣的。因此使用收斂因子的PSO可以看作使用慣性權重PSO的特例。

        恰當的選取演算法的參數值可以改善演算法的性能。

3. PSO與其它演算法的比較

3.1 遺傳演算法和PSO的比較

  1)共性:

  (1)都屬於仿生演算法。

  (2)都屬於全局優化方法。

  (3)都屬於隨機搜索演算法。

  (4)都隱含並行性。

  (5)根據個體的適配信息進行搜索,因此不受函數約束條件的限制,如連續性、可導性等。

  (6)對高維復雜問題,往往會遇到早熟收斂和收斂 性能差的缺點,都無法保證收斂到最優點。

    2)差異:   

    (1)PSO有記憶,好的解的知識所有粒子都保 存,而GA(Genetic Algorithm),以前的知識隨著種群的改變被改變。

    (2)PSO中的粒子僅僅通過當前搜索到最優點進行共享信息,所以很大程度上這是一種單共享項信息機制。而GA中,染色體之間相互共享信息,使得整個種群都向最優區域移動。

    (3)GA的編碼技術和遺傳操作比較簡單,而PSO相對於GA,沒有交叉和變異操作,粒子只是通過內部速度進行更新,因此原理更簡單、參數更少、實現更容易。

    (4)應用於人工神經網路(ANN)

    GA可以用來研究NN的三個方面:網路連接權重、網路結構、學習演算法。優勢在於可處理傳統方法不能處理的問題,例如不可導的節點傳遞函數或沒有梯度信息。

    GA缺點:在某些問題上性能不是特別好;網路權重的編碼和遺傳運算元的選擇有時較麻煩。

    已有利用PSO來進行神經網路訓練。研究表明PSO是一種很有潛力的神經網路演算法。速度較快且有較好的結果。且沒有遺傳演算法碰到的問題。

㈣ 我用粒子群演算法優化PID控制器,但得到的參數是負值是怎麼回事,得到的波形也不好

對在程序中加約束條件,比如懲罰

㈤ 粒子群優化演算法的參數設置

從上面的例子我們可以看到應用PSO解決優化問題的過程中有兩個重要的步驟: 問題解的編碼和適應度函數PSO的一個優勢就是採用實數編碼, 不需要像遺傳演算法一樣是二進制編碼(或者採用針對實數的遺傳操作.例如對於問題 f(x) = x1^2 + x2^2+x3^2 求解,粒子可以直接編碼為 (x1, x2, x3), 而適應度函數就是f(x). 接著我們就可以利用前面的過程去尋優.這個尋優過程是一個疊代過程, 中止條件一般為設置為達到最大循環數或者最小錯誤
PSO中並沒有許多需要調節的參數,下面列出了這些參數以及經驗設置
粒子數: 一般取 20–40. 其實對於大部分的問題10個粒子已經足夠可以取得好的結果, 不過對於比較難的問題或者特定類別的問題, 粒子數可以取到100 或 200
粒子的長度: 這是由優化問題決定, 就是問題解的長度
粒子的范圍: 由優化問題決定,每一維可是設定不同的范圍
Vmax: 最大速度,決定粒子在一個循環中最大的移動距離,通常設定為粒子的范圍寬度,例如上面的例子里,粒子 (x1, x2, x3) x1 屬於 [-10, 10], 那麼 Vmax 的大小就是 20
學習因子: c1 和 c2 通常等於 2. 不過在文獻中也有其他的取值. 但是一般 c1 等於 c2 並且范圍在0和4之間
中止條件: 最大循環數以及最小錯誤要求. 例如, 在上面的神經網路訓練例子中, 最小錯誤可以設定為1個錯誤分類, 最大循環設定為2000, 這個中止條件由具體的問題確定.
全局PSO和局部PSO: 我們介紹了兩種版本的粒子群優化演算法: 全局版和局部版. 前者速度快不過有時會陷入局部最優. 後者收斂速度慢一點不過很難陷入局部最優. 在實際應用中, 可以先用全局PSO找到大致的結果,再用局部PSO進行搜索.
另外的一個參數是慣性權重, 由Shi 和Eberhart提出, 有興趣的可以參考他們1998年的論文(題目: A modified particle swarm optimizer)。

㈥ pso優化pid結果都是直線

說明沒有進行迭代,優化不成功。可能是陷入局部最小值或者適應度函數沒有設計好。
1.PSO是粒子群演算法(——ParticleSwarmOptimization)的英文縮寫,是一種基於種群的隨機優化技術,由Eberhart和Kennedy於1995年提出該演算法模仿昆蟲、獸群、鳥群和魚群等的群集行為,這些群體按照一種合作的方式尋找食物,群體中的每個成員通過學習它自身的經驗和其他成員的經驗來不斷改變其搜索模式。
2.Kennedy和Eberhart提出粒子群演算法的主要設計思想與兩個方面的研究密切相關:一是進化演算法,粒子群演算法和進化演算法一樣採用種群的方式進行搜索,這使得它可以同時搜索待優化目標函數空間中的較多區域。二是人工生命,它採用的主要工具是計算機,主要方法是利用計算機編程模擬。

㈦ 用粒子群演算法優化PID參數的具體過程是什麼, 最好結合模擬說明一下

這個關鍵亮滾橋是建立評價指標,比如採用超調量、響應時間,或者ITAE等指標最大敬猛或者最小,這樣就可以通備皮過粒子群演算法來不斷修正PID參數,從而優化參數了。
一般來講這樣的優化只能離線,不能在線

㈧ 粒子群優化演算法

         粒子群演算法 的思想源於對鳥/魚群捕食行為的研究,模擬鳥集群飛行覓食的行為,鳥之間通過集體的協作使群體達到最優目的,是一種基於Swarm Intelligence的優化方法。它沒有遺傳演算法的「交叉」(Crossover) 和「變異」(Mutation) 操作,它通過追隨當前搜索到的最優值來尋找全局最優。粒子群演算法與其他現代優化方法相比的一個明顯特色就是所 需要調整的參數很少、簡單易行 ,收斂速度快,已成為現代優化方法領域研究的熱點。

         設想這樣一個場景:一群鳥在隨機搜索食物。已知在這塊區域里只有一塊食物;所有的鳥都不知道食物在哪裡;但它們能感受到當前的位置離食物還有多遠。那麼找到食物的最優策略是什麼呢?

        1. 搜尋目前離食物最近的鳥的周圍區域

        2. 根據自己飛行的經驗判斷食物的所在。

        PSO正是從這種模型中得到了啟發,PSO的基礎是 信息的社會共享

        每個尋優的問題解都被想像成一隻鳥,稱為「粒子」。所有粒子都在一個D維空間進行搜索。

        所有的粒子都由一個fitness function 確定適應值以判斷目前的位置好壞。

        每一個粒子必須賦予記憶功能,能記住所搜尋到的最佳位置。

        每一個粒子還有一個速度以決定飛行的距離和方向。這個速度根據它本身的飛行經驗以及同伴的飛行經驗進行動態調整。

        粒子速度更新公式包含三部分: 第一部分為「慣性部分」,即對粒子先前速度的記憶;第二部分為「自我認知」部分,可理解為粒子i當前位置與自己最好位置之間的距離;第三部分為「社會經驗」部分,表示粒子間的信息共享與合作,可理解為粒子i當前位置與群體最好位置之間的距離。

        第1步   在初始化范圍內,對粒子群進行隨機初始化,包括隨機位置和速度

        第2步   根據fitness function,計算每個粒子的適應值

        第3步   對每個粒子,將其當前適應值與其個體歷史最佳位置(pbest)對應的適應值作比較,如果當前的適應值更高,則用當前位置更新粒子個體的歷史最優位置pbest

        第4步   對每個粒子,將其當前適應值與全局最佳位置(gbest)對應的適應值作比較,如果當前的適應值更高,則用當前位置更新粒子群體的歷史最優位置gbest

        第5步   更新粒子的速度和位置

        第6步   若未達到終止條件,則轉第2步

        【通常演算法達到最大迭代次數或者最佳適應度值得增量小於某個給定的閾值時演算法停止】

粒子群演算法流程圖如下:

以Ras函數(Rastrigin's Function)為目標函數,求其在x1,x2∈[-5,5]上的最小值。這個函數對模擬退火、進化計算等演算法具有很強的欺騙性,因為它有非常多的局部最小值點和局部最大值點,很容易使演算法陷入局部最優,而不能得到全局最優解。如下圖所示,該函數只在(0,0)處存在全局最小值0。

㈨ 關於遺傳演算法或粒子群演算法優化PID參數的問題,求大俠相助,萬分感激!

PID不懂,但是就第一問題說下,如果說每次的初始條件一樣的話,可以把參數固定。如果初始條件不一樣的話,要在每次使用前都進行優化。

關於目標函數哪個更好,倒不如問問你的同學和老師,這兒不是好地方。
目標函數是GA或者PSO優化的目標,通過目標對候選解進行優劣評價,然後演算法會指引種群向目標函數取得優值的范圍進行隨機搜索。

我只能解釋道這兒了~~

閱讀全文

與粒子群演算法優化pid相關的資料

熱點內容
如何找下載的app 瀏覽:470
程序員之死最新進展 瀏覽:261
台電u盤可以下載加密嗎 瀏覽:697
java培訓機構上海 瀏覽:616
長城伺服器怎麼裝機 瀏覽:355
pm和hm哪個軟體編程好 瀏覽:205
咋樣把文件夾強力去除 瀏覽:989
jvmgc演算法 瀏覽:599
我的世界怎樣控制命令方塊發文字 瀏覽:863
期貨翻番計演算法 瀏覽:495
華為底部app如何增加 瀏覽:115
為什麼用了幾個星期的安卓充電器就壞了 瀏覽:358
伺服器風扇響怎麼回事 瀏覽:16
django打包編譯 瀏覽:196
u盤加密碼視頻 瀏覽:165
cmake創建文件夾 瀏覽:935
SDP單片機 瀏覽:377
pdf拼合列印 瀏覽:524
big是哪個軟體的文件夾 瀏覽:780
win10ksm伺服器地址 瀏覽:341