馬記龍 蘭杰 林淑 王其君 趙偉
摘要:為了更好地辨識(shí)出大型雙饋風(fēng)電機(jī)組現(xiàn)場(chǎng)運(yùn)行的變頻器、變槳系統(tǒng)參數(shù),指導(dǎo)風(fēng)力發(fā)電機(jī)組控制算法設(shè)計(jì)。在理解系統(tǒng)辨識(shí)原理的基礎(chǔ)上,通過MATLAB GUI設(shè)計(jì)了基于風(fēng)力發(fā)電機(jī)組運(yùn)行特性并專用于風(fēng)機(jī)的系統(tǒng)辨識(shí)軟件,通過該軟件界面設(shè)計(jì)及程序編寫來詳述設(shè)計(jì)過程,通過該辨識(shí)軟件來進(jìn)行參數(shù)分析時(shí),辨識(shí)過程清晰明了,可以通過輸出曲線判斷辨識(shí)參數(shù)的合理性。該軟件使用方便,操作直觀,具有很強(qiáng)的實(shí)用性,也利于準(zhǔn)確地獲取模型參數(shù),利于工程設(shè)計(jì),確保風(fēng)機(jī)的安全運(yùn)行。
關(guān)鍵詞:系統(tǒng)辨識(shí);MATLAB;GUI;風(fēng)力機(jī)
中圖分類號(hào):TP312 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)31-0085-03
1 背景
隨著化石能源日益稀缺,全球環(huán)境越來越惡化,風(fēng)能作為一種儲(chǔ)量大、分布廣、綠色環(huán)??稍偕鍧嵞茉?,近年來受到了很多國家和地區(qū)的重視[1-2]。風(fēng)力機(jī)是風(fēng)電機(jī)組吸收和轉(zhuǎn)化風(fēng)能的關(guān)鍵設(shè)備,風(fēng)力機(jī)關(guān)鍵模型和參數(shù)的精確度,直接影響到風(fēng)機(jī)的性能。因此,為保證風(fēng)電機(jī)組安全、平穩(wěn)、可靠運(yùn)行,提高風(fēng)電機(jī)組的發(fā)電效率和品質(zhì),延長(zhǎng)風(fēng)機(jī)使用壽命至關(guān)重要。目前國內(nèi)外大量研究資料和文獻(xiàn)成果對(duì)風(fēng)電機(jī)組的性能做了研究[3]。如何保證風(fēng)機(jī)在實(shí)際運(yùn)行過程所設(shè)計(jì)的控制算法的精確性,從眾多實(shí)際風(fēng)場(chǎng)數(shù)據(jù)中辨識(shí)出精確的變頻器、變槳系統(tǒng)控制參數(shù)成為亟待解決的問題。本文針對(duì)此情況,在深入理解系統(tǒng)辨識(shí)原理的基礎(chǔ)上,通過MATLAB GUI開發(fā)界面設(shè)計(jì)了基于風(fēng)力發(fā)電機(jī)組運(yùn)行特性并專用于風(fēng)機(jī)的系統(tǒng)辨識(shí)軟件。利用此辨識(shí)軟件,風(fēng)機(jī)數(shù)據(jù)分析者不需要實(shí)時(shí)修改程序代碼,而只用導(dǎo)入風(fēng)場(chǎng)主控采集的運(yùn)行數(shù)據(jù),在界面上進(jìn)行相應(yīng)的操作后通過辨識(shí)控件按鈕來直觀地觀察辨識(shí)結(jié)果,進(jìn)而獲取變頻器、變槳系統(tǒng)的參數(shù),還可以反復(fù)更改參數(shù)來重新進(jìn)行辨識(shí)以獲取最優(yōu)參數(shù),以指導(dǎo)風(fēng)力機(jī)控制算法設(shè)計(jì),確保風(fēng)機(jī)安全運(yùn)行。
2 基本原理
系統(tǒng)辨識(shí)即在已知數(shù)據(jù)的基礎(chǔ)上,按照一定的準(zhǔn)則下,通過實(shí)驗(yàn)數(shù)據(jù)進(jìn)行模擬實(shí)驗(yàn)以確定一個(gè)與所測(cè)系統(tǒng)等價(jià)的模型[4]。在理解辨識(shí)原理和方法的基礎(chǔ)上,本文根據(jù)風(fēng)機(jī)運(yùn)行特性,采用離線辨識(shí)算法[5-6]。離線辨識(shí)算法:通常即指批處理算法,是把已經(jīng)采集到的系統(tǒng)Input & Output數(shù)據(jù)進(jìn)行計(jì)算。即先對(duì)采集到的數(shù)據(jù)預(yù)處理,待選定好系統(tǒng)辨識(shí)算法后,則通過一次計(jì)算即可獲得所需的模型參數(shù),待模型確定之后,再通過仿真進(jìn)行驗(yàn)證,具體流程如圖1所示。
風(fēng)力發(fā)電機(jī)組現(xiàn)場(chǎng)進(jìn)行測(cè)試,為準(zhǔn)確把握風(fēng)機(jī)變槳系統(tǒng)響應(yīng)特性,需對(duì)變槳系統(tǒng)進(jìn)行辨識(shí)工作,以低階(通常為二階)的線性模型代替實(shí)際物理模型[7-8]。變槳系統(tǒng)的模型響應(yīng)特性如下:
[G=1s2ω2+2ξsω+1e-τs] ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
其中:[ω]是自然頻率,[ξ]是阻尼比,[τ]是延遲時(shí)間。
對(duì)于風(fēng)力發(fā)電機(jī)變頻器響應(yīng)特性,通常用如下模型來代表:
[G=1τs+1e-ds] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
其中:[τ]是時(shí)間常數(shù),[d]是延遲時(shí)間。
3 基于GUI系統(tǒng)辨識(shí)軟件的實(shí)現(xiàn)
MATLAB中提供的GUIDE(Graphical User Interface Development Environment,圖形用戶接口開發(fā)環(huán)境)設(shè)計(jì)工具,是專門為用戶提供的快速創(chuàng)建GUI的工具包,用戶操作鼠標(biāo)就可以把需要添加的控件拽到設(shè)計(jì)面板中,通過M語言實(shí)現(xiàn)代碼編寫然后激活GUI中的控件,就能夠?qū)崿F(xiàn)預(yù)期的功能[9-11]。
3.1 軟件界面設(shè)計(jì)
啟動(dòng)MATLAB,在命令窗口首先輸入“guide”,然后回車則至GUI開發(fā)環(huán)境,接著新建一個(gè)GUI文件。或者單擊MATLAB主窗口的按鈕,生成的GUIDE快速啟動(dòng)對(duì)話框按鈕。
本文設(shè)計(jì)的GUI控制面板所用控件有:13個(gè)靜態(tài)文本(Static Text)控件、4個(gè)觸控按鈕(Push Button)控件、2個(gè)列表框(Listbox)控件、3個(gè)彈起式菜單(Pop-up Menu)控件、6個(gè)可編輯文本(Edit Text)控件和2個(gè)復(fù)選框(Check Box)控件。
本文先修改控件的“String”“FontSize”和“Tag”三個(gè)屬性。 “String”定義控件的顯示字符?!癋ontSize”定義控件的字體大小?!癟ag”定義控件的一個(gè)標(biāo)識(shí)名稱。且各控件分別對(duì)應(yīng)唯一的標(biāo)識(shí)名稱,這樣在編程時(shí)就能唯一地執(zhí)行跟蹤該控件,并完成相關(guān)的操作。完成設(shè)置后的界面如圖1所示。
將GUI文件命為ex,然后點(diǎn)擊保存。這樣GUI的信息將會(huì)自動(dòng)保存到在ex.fig和ex.m文件中。已生成的M文件則會(huì)控制GUI及其操作響應(yīng)。運(yùn)行GUI所需代碼均此M文件中,可通過ex.m編程來控制控件。
3.2 辨識(shí)程序的編寫
在進(jìn)行程序編寫時(shí),應(yīng)特別注意:ex.m文件中的主函數(shù)不能修改。本文主要包含如下8個(gè)函數(shù)的編寫:
1)ex_OpeningFcn函數(shù)
ex_OpeningFcn函數(shù)進(jìn)行程序的初始化操作。主要使用set函數(shù),具體如下:
set (handles.A,’PropertyName’,PropertyValue);
其中,handles.A指向要進(jìn)行初始化的控件,A:此控件的標(biāo)識(shí)符;PropertyName:句柄中要進(jìn)行初始化所對(duì)應(yīng)的屬性名稱;PropertyValu:具體的初始化值。
如:利用set函數(shù)對(duì)“列表框的值”控件進(jìn)行初始化設(shè)置,具體如下:
set (handles.listbox_variables,'value',[]);
在ex_OpeningFcn函數(shù)下,可以用多個(gè)set函數(shù)來對(duì)其進(jìn)行初始化。
2)pushbutton_filename_Callback函數(shù)
pushbutton_filename_Callback函數(shù)用來實(shí)現(xiàn)數(shù)據(jù)輸入,數(shù)據(jù)一般格式為“.cvs”“.xls/.xlsx”格式。主要代碼為:
[filename pathname] = uigetfile({'*.xls;*.xlsx;*csv'},'Pick a file',newpath);
3)pushbutton_selection_Callback函數(shù)
pushbutton_filename_Callback函數(shù)用來實(shí)現(xiàn)變量的選取。
4)listbox_variables_Callback函數(shù)
listbox_variables_Callback函數(shù)用來實(shí)現(xiàn)自動(dòng)處理表頭并顯示。
5)listbox_scalar_Callback函數(shù)
listbox_scalar_Callback函數(shù)用來實(shí)現(xiàn)坐標(biāo)縮放對(duì)比不同曲線。
6)pushbutton_plot_Callback函 數(shù)
pushbutton_plot_Callback 函數(shù)用來繪制被選變量時(shí)域坐標(biāo)下的曲線。
7)pushbutton_psd_Callback函數(shù)
pushbutton_psd_Callback函數(shù)用來繪制被選變量的頻譜分析曲線。
8)pushbutton_id_Callback函數(shù)
pushbutton_id_Callback函數(shù)是“ID”按鈕的回調(diào)函數(shù)。具有如下功能:
①系統(tǒng)辨識(shí)主要代碼
處理數(shù)據(jù)前,先用get函數(shù)來讀取風(fēng)場(chǎng)主控采集輸入的數(shù)據(jù)。代碼如下:
get (handles.A,’PropertyName’);
其中,A:所獲得數(shù)據(jù)的控件的標(biāo)識(shí)符,handles.A:控件的句柄,PropertyName:要獲得的控件對(duì)應(yīng)的屬性名稱。
例如,用get函數(shù)讀取獲得分子輸入控件,具體如下:
get (handles.edit_numerator,’string’);
用get函數(shù)讀取獲取分母輸入控件,具體如下:
get (handles.edit_denominator,'string');
用get函數(shù)讀取獲得延時(shí)輸入控件,具體如下:
get (handles.edit_IODelay,'string');
注意,用get函數(shù)獲得的數(shù)據(jù)從數(shù)據(jù)類型上來說實(shí)為字符串,將字符串轉(zhuǎn)化為數(shù)字則需調(diào)用str2num函數(shù)。以分子輸入控件中的數(shù)據(jù)獲取為例,具體如下:
numerator = str2num(numerator);
同理,獲取分母輸入控件的數(shù)據(jù)代碼如下:
denominator = str2num(denominator);
利用下列代碼來獲取被控對(duì)象的傳遞函數(shù):
G = tf(numerator,denominator,'iodelay',delay*2);
②繪制曲線
程序主要是將現(xiàn)場(chǎng)數(shù)據(jù)快速地導(dǎo)入到系統(tǒng)辨識(shí)軟件中去,就能就快速地得到辨識(shí)結(jié)果,繪制擬合曲線,且可方便的更改辨識(shí)參數(shù),非常方便地對(duì)比不同參數(shù)下的辨識(shí)效果,亦可反復(fù)地辨識(shí),從而準(zhǔn)確、快速地找到最符合實(shí)際系統(tǒng)的傳遞函數(shù),以便用于風(fēng)機(jī)控制算法參數(shù)設(shè)計(jì)。
所有程序的編寫完成并保存后,運(yùn)行程序即可實(shí)現(xiàn)系統(tǒng)的辨識(shí)。
4 應(yīng)用實(shí)例
本文是基于風(fēng)力發(fā)電機(jī)組風(fēng)場(chǎng)主控采集數(shù)據(jù)的辨識(shí)應(yīng)用實(shí)例,主控采樣數(shù)據(jù)來自風(fēng)機(jī)的變槳階躍響應(yīng)和發(fā)電機(jī)變頻器響應(yīng)。輸入數(shù)據(jù)是發(fā)電機(jī)扭矩給定、發(fā)電機(jī)扭矩反饋、槳葉設(shè)定角度、槳葉1角度、槳葉2角度、槳葉3角度。
將現(xiàn)場(chǎng)實(shí)測(cè)的發(fā)電機(jī)變頻器風(fēng)場(chǎng)數(shù)據(jù)導(dǎo)入到辨識(shí)軟件如圖2所示,點(diǎn)擊ID控件按鈕進(jìn)行系統(tǒng)辨識(shí),結(jié)果如圖3所示。
從圖3可知,辨識(shí)出來的發(fā)電機(jī)扭矩響應(yīng)曲線與發(fā)電機(jī)實(shí)際曲線基本一致,驗(yàn)證了辨識(shí)參數(shù)的正確性。辨識(shí)得到的發(fā)電機(jī)+變頻器的參數(shù)為:[d=0.08,τ=0.06]。
將現(xiàn)場(chǎng)實(shí)測(cè)的變槳階躍數(shù)據(jù)導(dǎo)入到辨識(shí)軟件中如圖4所示,點(diǎn)擊ID控件按鈕進(jìn)行系統(tǒng)辨識(shí)結(jié)果如圖5所示。
從圖5可知,辨識(shí)出來的變槳系統(tǒng)響應(yīng)曲線與實(shí)際變槳系統(tǒng)響應(yīng)曲線基本一致,驗(yàn)證了辨識(shí)參數(shù)的正確性。通過系統(tǒng)辨識(shí)得到的變槳系統(tǒng)參數(shù)為:[ω=10.05,ξ=1,τ=0.1]。
5 結(jié)束語
本文利用MATLAB GUIDE設(shè)計(jì)的基于風(fēng)力發(fā)電機(jī)組的系統(tǒng)辨識(shí)軟件,風(fēng)機(jī)數(shù)據(jù)分析者不需要實(shí)時(shí)修改程序代碼,而只用導(dǎo)入風(fēng)場(chǎng)主控采集的運(yùn)行數(shù)據(jù),在界面上進(jìn)行相應(yīng)的操作后通過辨識(shí)控件按鈕直觀地觀察辨識(shí)結(jié)果,同時(shí)可清晰明了地更改辨識(shí)參數(shù),再多參數(shù)也可反復(fù)辨識(shí),非常方便地對(duì)比不同參數(shù)下的辨識(shí)效果,從而準(zhǔn)確、清晰地辨識(shí)出滿足變頻器、變槳系統(tǒng)運(yùn)行要求的參數(shù),以指導(dǎo)風(fēng)機(jī)控制算法參數(shù)設(shè)計(jì),便于工程上的應(yīng)用。
參考文獻(xiàn):
[1] 陳貞,倪維斗,李政.風(fēng)電特性的初步研究[J].太陽能學(xué)報(bào),2011,32(2):210-215.
[2] 葉成城,曹云峰,蔡旭.兆瓦級(jí)風(fēng)機(jī)電動(dòng)變槳距系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電力電子技術(shù),2013,47(2):61-63.
[3] 張仰飛,袁越,陳小虎,等.風(fēng)力機(jī)參數(shù)的可辨識(shí)分析[J].電力系統(tǒng)自動(dòng)化,2009,33(6):86-89.
[4] 李言俊,張科,余瑞星.系統(tǒng)辨識(shí)理論及應(yīng)用[M].北京:國防工業(yè)出版社,2011.
[5] 鄭劍翔.MATLAB系統(tǒng)辨識(shí)工具箱在系統(tǒng)控制設(shè)計(jì)中的應(yīng)用[J].福州大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,38(5):703-707.
[6] 倪博溢,蕭德云.MATLAB環(huán)境下的系統(tǒng)辨識(shí)仿真工具箱[J].系統(tǒng)仿真學(xué)報(bào),2006,18(6):1493-1496.
[7] 李輝,楊超,趙斌,等.風(fēng)電機(jī)組電動(dòng)變槳系統(tǒng)建模及運(yùn)行特性評(píng)估與測(cè)試[J].電力系統(tǒng)自動(dòng)化,2013,37(11):20-25,32.
[8] 胡壽松.自動(dòng)控制原理[M].5版.北京:科學(xué)出版社,2007.
[9] 陳垚光.精通MATLAB GUI設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013.
[10] 黃昆,趙剛,郭小強(qiáng).基于GUI的系統(tǒng)辨識(shí)軟件設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2011,11(13):3082-3084,3094.
[11] 姚秀芳,崔松菲.基于MATLAB GUIDE的程序設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2009,5(27):7767-7768,7772.
【通聯(lián)編輯:謝媛媛】
收稿日期:2021-06-20
作者簡(jiǎn)介:馬記龍(1988—),男,四川簡(jiǎn)陽人,工程師,學(xué)士,研究方向?yàn)轱L(fēng)力發(fā)電機(jī)組智能算法設(shè)計(jì)及故障診斷;蘭杰(1985—),男,四川高縣人,高級(jí)工程師,碩士,研究方向?yàn)轱L(fēng)力發(fā)電機(jī)組控制算法設(shè)計(jì)及故障診斷;林淑(1986—),女,四川資中人,工程師,碩士,研究方向?yàn)轱L(fēng)力發(fā)電機(jī)組電氣設(shè)計(jì)、防雷接地;王其君(1982—),男,四川簡(jiǎn)陽人,高級(jí)工程師,碩士,研究方向?yàn)轱L(fēng)力發(fā)電機(jī)組載荷設(shè)計(jì);趙偉(1983—),男,四川眉山人,高級(jí)工程師,碩士,研究方向?yàn)轱L(fēng)力發(fā)電機(jī)組載荷設(shè)計(jì)。