局部遮荫光伏matlab,一种基于随机蛙跳全局搜索算法的局部阴影光伏阵列MPPT控制的制作方法...
本發明涉及一種局部陰影光伏陣列多峰MPPT控制方法,特別涉及一種基于隨機蛙跳全局搜索算法的局部陰影光伏列陣多峰MPPT控制。
背景技術:
伴隨太陽能發電的普及,光伏陣列的運行環境變的越來越復雜,局部遮蔭導致光伏陣列輸出特性曲線出現了多個極值點,影響了光伏陣列的輸出效率,甚至出現熱斑現象而損壞光伏電池。為了使光伏系統工作在最大功率點,提高系統效率,需采用有效的多峰最大功率點跟蹤算法。
傳統的最大功率點跟蹤算法(如固定電壓法、擾動觀察法及增量電導法等)能較好地尋找均勻光照條件下最大功率點。但是在局部陰影光照條件下,光伏陣列的功率電壓曲線出現多個峰值點,常規的最大功率點跟蹤算法由于陷入局部極值點,不能準確跟蹤到最大功率點。隨著智能控制方法的興起,以粒子群算法等為代表的智能控制方法已成為現代控制理論的典型代表,被用于局部陰影下光伏列陣多峰MPPT控制問題,但這些算法的隨機參數多,收斂速度較慢,處理不好時可能陷入局部極值,最大功率點處會出現振蕩。
技術實現要素:
本發明的目的:針對局部陰影下光伏列陣MPPT現有控制技術的問題,提出一種調節參數少、搜索速度快、尋優能力強且穩定的基于隨機蛙跳全局搜索算法的局部陰影光伏陣列多峰MPPT控制方法。
本發明的目的通過以下技術方案實現的:
一種基于隨機蛙跳全局搜索算法的局部陰影光伏列陣多峰MPPT控制,包括如下的步驟:
步驟101:實時采集光伏列陣的環境溫度T和光照強度S;
步驟102:根據當前各個光伏列陣的環境溫度T和光照強度S,采用隨機蛙跳全局搜索算法迭代搜索出光伏列陣的總最大功率點;
步驟103:將隨機蛙跳全局搜索算法迭代搜索出光伏列陣的總最大功率與光伏列陣實際輸出的功率作差,其偏差值通過模糊PI控制算法得到PWM占空比控制量,用于產生PWM波;
步驟104:利用PWM模塊產生的PWM波來控制Boost電路,使光伏列陣穩定工作在最大功率點上。
所述步驟102中采用隨機蛙跳全局搜索算法迭代搜索出光伏列陣的總最大功率點的方法為:
全局搜索步驟
步驟2010:輸入各個光伏列陣的環境溫度T和光照強度S等數據,設置算法蛙群(控制變量I)的總數量H;
步驟2020:對SFLA算法進行初始化,隨機產生初始蛙群個體的初始位置E和初始速度V;
步驟2030:對群體中的蛙個體,根據光伏列陣的功率計算適應函數得出各個種群蛙個體對應的功率P(適應值);
步驟2040:根據功率P(適應值)的大小進行降序排列,選出種群中的最優個體Pgbest(最大功率),并且將蛙群分成族群,把H個蛙分配到m個族群中去,每個族群包括n個蛙個體,例如當m=3時,第1,2,3只青蛙會被依次分配到第1,2,3個族群中,第4,5,6也會被依次分配到第1,2,3個族群中,依此類推;
步驟2050:局部搜索過程,即:根據隨機蛙跳算法的算法公式,在每一個族群中進行進化;
步驟2051:計數器初始化。設族群的序號Im=0,用它來標記進化到了哪個族群并與族群總數m進行比較。設族群內部蛙個體獨立進化次數的序號In=0,用它與局部族群內部蛙個體進化次數Is比較以判斷獨立進化是否結束。同時,尋找當前族群Y^Im中最佳蛙個體位置和最差蛙個體位置,分別記為Ebest和Ebad;
步驟2052:設Im=Im+1,進行下一個族群;
步驟2053:設In=In+1,進行下一次獨立進化;
步驟2054:利用更新策略更新當前族群中最差青蛙的位置,更新策略為:根據蛙群隨機蛙個體與最優蛙個體距離,判斷其受力情況,計算蛙個體的引力加速度、斥力加速度和擾動加速度;
步驟2055:根據算法的速度更新公式更新種群蛙個體的速度,并根據算法的位置更新公式更新種群蛙個體的位置,如果蛙個體速度越過邊界,則把邊界值賦值給當前蛙個體速度,同理,如果蛙個體位置越過邊界,則把邊界值賦值給當前蛙個體位置;
步驟2056:如果步驟2055改進了最差蛙的位置,就用新產生的位置取代最差蛙的位置,否則就采用全局最好解Pgbest代替式中最差解Pbad,更新最差蛙的位置;
步驟2057:如果步驟2056還是沒有改進最差蛙的位置,則隨機產生一個處于濕地中任何位置的蛙來替代最差蛙,并重新計算其適應值;
步驟2058:更新Im族群的最優適應值Pbest與最差適應值Pbad;
步驟2059:如果In<Is,則跳到步驟2053,否則進行步驟2059,并讓In=0;
步驟2060:如果Im<m,則跳到步驟2052,否則跳出局部搜索,進行步驟2060,回到全局搜索;
步驟2060:將各個種群進行混合,在每個族群多經過一輪進化過程以后,將各個族群中的蛙再次進行重新排列和族群劃分,并再次記錄全局最優解Pg;
步驟2070:檢驗計算停止條件,如果滿足了算法收斂迭代條件,則停止算法的執行過程,否則跳轉到步驟2040;
步驟2080:輸出最優解,算法結束。
所述的步驟103中采用模糊PI控制算法得到PWM只能占空比控制量的步驟為:
步驟301:求解模糊控制輸入量:根據公式e=Pgbest-Ppv和Δe=ek-e(k-1)計算獲得偏差量e和偏差量增益Δe,定義模糊控制輸出量:PI調節的參數變化量ΔKp和Δki:其中,Pgbest為隨機蛙跳全局搜索算法得到的光伏陣列最大功率值;Ppv為光伏陣列實際輸出功率;ek為第k時刻的偏差量;e(k-1)為第k-1時刻的偏差量;
步驟302:選取模糊控制隸屬度函數并建立模糊規則,根據公式K*p=Kp+ΔKp和K*i=Ki+ΔKi得到模糊整定后PI調節的參數值K*p和K*i,其中,Kp和Ki為當前PI調節的參數值;
步驟303:將隨機蛙跳全局搜索算法局部進化搜索出光伏列陣的總最大功率與光伏列陣實際輸出的功率作差,其偏差值通過模糊PI控制算法得到PWM占空比控制量,將得到的偏差值與載波信號進行調制,輸出PWM脈沖波(占空比信號),對后續的升壓斬波(Boost)電路進行控制;
工作原理:本發明所用的基于隨機蛙跳全局搜索算法的MPPT控制方法,在算法中,以光伏陣列的輸出電流I作為算法的粒子,把光伏陣列局部陰影下輸出功率的數學模型作為適應度函數,通過對光伏陣列中各組件的光照強度和環境溫度的獲取,算法能實時高效的迭代搜索出光伏列陣的總最大功率,配合模糊PI對Boost電路的控制,能使光伏陣列穩定運行在最大功率點出。本發明的算法概念簡單,調節參數少,跟蹤速度快且準確,電壓輸出和電流輸出比較穩定,穩態振蕩
幾乎可忽略,能有效提高光伏系統的發電效率。
附圖說明
圖1:為本發明的原理圖;
圖2:為本發明的系統電路仿真模型;
圖3:為本發明的算法流程圖;
圖4:為本發明的應用案例仿真結果與現有方法的仿真結果對比;
具體實施方式
為了簡明本發明的特征和優點,下面結合附圖,對本發明進行詳細說明。
如圖1所示,本發明基于隨機蛙跳全局搜索算法實現局部陰影下光伏陣多峰MPPT控制。此時,光伏陣列的輸出呈現多峰的U-P特性曲線,本發明以隨機蛙跳全局搜索算法作為MPPT控制模塊,光伏陣列的光照強度和環境溫度信息傳入SFLA-MPPT模塊,得到優化的最大點功率,與光伏陣列實時測量功率比較得到偏差值,通過模糊PI結合PWM模塊和Boost電路,實現光伏陣列的實時最大功率點跟蹤。本實施例根據本發明的方法及工作原理在MATLAB 環境下搭建仿真模型。圖2為本發明的系統電路仿真模型。
如圖3所示,本發明操作步驟如下:
步驟1:隨機蛙跳全局搜索算法初始化,設定蛙群數目H=50,設定光伏電流I為可控量,位置可控范圍為minE=0.1,maxE=5.3。
步驟2:初始化蛙群的初始位置E與初始速度V。
步驟3:根據適應度(功率)函數,求得各個蛙個體的適應值(功率),進行降序排列,選出種群中的最優個體Pg(最大功率),并且將蛙群分成族群,把H個蛙分配到m個族群中去,每個族群包括n個蛙個體記錄最優個體,定義全局變量族群m=10,族群內蛙個體n=5。
步驟2:定義Im=0,In=0。
步驟4:進入下一個族群,Im=Im+1。
步驟5:族群中進入下一個獨立進化,In=In+1。
步驟6:定義各個族群內部獨立進化次數Is=15,并同時判定族群內部青蛙之間關系的同時,也要尋找當前族群Y^Im中最佳個體位置和最差個體位置,分別記為Ebest和Ebad;。隨機蛙跳全局尋優以蛙間存在的以下規律為基礎:當時,蛙體所受合力(關系不好不壞)為0,該位置為平衡位置。當時,此時蛙體間關系為排斥,因為蛙體間關系排斥比其之間的吸引變化快。當時, 此時蛙體間關系為引力,同樣因為其排斥比吸引變化快。針對蛙間的引斥力規則,提出了其受引力、斥力及不受力時所需滿足的條件;對于合力為0的蛙,通過模擬分子熱運動,使得蛙體能跳出局部解。
當時,即蛙體受引力。族群中其他個體向最優個體方向運動,其引力計算公式:
其中:G為引力常量,Mi、MBest分別為蛙個體Xi和最優蛙個體XBest的質量,Fi表示蛙個體Xi所受的引力。根據牛頓定理,由上式可知蛙個體Xi的引力加速度ai的計算公式:
當時,此時蛙合力表現為斥力。族群個體向最優蛙個體方向運動,斥力計算公式為式:
此時,斥力加速度 ai計算公式為:
當時,此時蛙所受合力為零,處于平衡位置。蛙個體的隨機擾動加速度為,其中:aij為為個體Xi在j維的加速度,分別為解空間第j維的上界、下界。A為振動幅度,本文取A=(1-0.9*t/G),其中t為當前迭代次數,G 為總迭代次數;N(0,1)為服從正態分布的隨機數。
族群中蛙個體Xi的速度更新公式:
蛙個體的Xi位置更新公式:
步驟7:進行判斷族群內部最差蛙個體位置是否得到更新,沒有則賦予最優個體的位置,有則進行判斷In與Is的關系,In>Is時跳出獨立進化,進行下一個族群的蛙個體的位置更新,否則繼續返回步驟5進行位置更新。
步驟8:進行下一個族群的內部蛙個體位置的更新。判斷Im與m之間的關系,如果Im>m,則跳出循壞。否則進行步驟4。
步驟9:進行適應值的計算,并進行降序排列同時判斷迭代次數是否大于K=5,大于,則輸出最優解Pgbest,否則,繼續步驟3。
步驟10:。求解模糊控制輸入量:根據公式e=Pgbest-Ppv和Δe=ek-e(k-1)計算獲得偏差量e和偏差量增益Δe,定義模糊控制輸出量:PI調節的參數變化量ΔKp和Δki:其中,Pgbest為隨機蛙跳全局搜索算法得到的光伏陣列最大功率值;Ppv為光伏陣列實際輸出功率;ek為第k時刻的偏差量;e(k-1)為第k-1時刻的偏差量;
步驟11:選取模糊控制隸屬度函數并建立模糊規則,根據公式K*p=Kp+ΔKp和K*i=Ki+ΔKi得到模糊整定后PI調節的參數值K*p和K*i,其中,Kp和Ki為當前PI調節的參數值;
步驟12:將隨機蛙跳全局搜索算法局部進化搜索出光伏列陣的總最大功率與光伏列陣實際輸出的功率作差,其偏差值通過模糊PI控制算法得到PWM占空比控制量,將得到的偏差值與載波信號進行調制,輸出PWM脈沖波(占空比信號),對后續的升壓斬波(Boost)電路進行控制。
總結
以上是生活随笔為你收集整理的局部遮荫光伏matlab,一种基于随机蛙跳全局搜索算法的局部阴影光伏阵列MPPT控制的制作方法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROS+雷达 运行数据记录
- 下一篇: stm32 SPI、FLASH