甩負荷項目開發(fā)文檔_第1頁
甩負荷項目開發(fā)文檔_第2頁
甩負荷項目開發(fā)文檔_第3頁
甩負荷項目開發(fā)文檔_第4頁
甩負荷項目開發(fā)文檔_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

InstituteofAdvancedPowerControlandReliabilityHarbinInstituteofTechnology.Harbin,InstituteofAdvancedPowerControlandReliabilityHarbinInstituteofTechnology.Harbin哈爾濱工業(yè)大學(xué)先進動力控制與可靠性研究所PAGE1哈爾濱汽輪機廠有限責(zé)任公司汽輪機動態(tài)特性計算通用平臺開發(fā)文檔200哈爾濱汽輪機廠有限責(zé)任公司哈爾濱工業(yè)大學(xué)先進動力控制與可靠性研究所

目錄基于BorlandC++Builder的圖形用戶接口開發(fā)BorlandC++Builder是一個開發(fā)方便、界面友好的軟件開發(fā)環(huán)境,可方便的編寫出高效并能脫離環(huán)境的軟件,它提供了用于設(shè)計,開發(fā),試驗,調(diào)試和發(fā)布應(yīng)用程序所需要的工具。C++Builder集成開發(fā)環(huán)境包含可視化窗體設(shè)計器,對象觀察器,組件面板,工程管理器,源代碼編輯器,調(diào)試程序及安裝工具等。在窗體設(shè)計器中,可以自由移動可視化表示的對象,同時在對象觀察器中編輯該對象的初始化運行時狀態(tài),在源代碼編輯器中編輯該對象執(zhí)行的邏輯。改變對象與代碼有關(guān)聯(lián)的屬性,對象觀察器會自動改變相應(yīng)的源代碼。另外,在源代碼編輯器中更改該對象的源代碼,對象觀察器也會立即放映出相應(yīng)的變化??梢钥闯?,C++Builder雖然在編寫圖形用戶接口(GUI)程序時具有優(yōu)越性,但同時也存在其局限性,即對于模型仿真、數(shù)值計算以及算法設(shè)計等問題需要編寫大量的程序代碼,效率遠遠低于Matlab語言?;贐orlandC++Builder與MATLAB混合編程鑒于BorlandC++Builder及MATLAB在不同方面具有的優(yōu)勢,為了保證系統(tǒng)開發(fā)的質(zhì)量,并加速開發(fā)進程,本系統(tǒng)采用C++builder6.0及MATLAB6.5聯(lián)合開發(fā),利用MATLAB6.5完成汽輪機各種數(shù)學(xué)模型的建立工作,利用C++builder6.0完成前臺顯示界面的開發(fā),二者的數(shù)據(jù)通信通過MATLAB提供的應(yīng)用程序接口函數(shù)(API)實現(xiàn)。MATLAB和C語言的接口方式主要有如下幾種方式:(1)編寫Mex文件;(2)利用MATLAB引擎函數(shù);(3)調(diào)用MATLAB自帶的C/C++數(shù)學(xué)庫;(4)利用MATLAB的編譯器產(chǎn)生C/C++源碼,C共享庫或C++靜態(tài)庫;第一種方法的MEX文件是一種“可以在MATLAB中調(diào)用的C或FORTRAN語言的衍生程序”,也就是說其源碼文件是由C或FORTRAN語言編寫的??梢詰?yīng)用于在MATLAB中調(diào)用已存在的較大的C或FORTRAN程序模塊和解決MATLAB的計算瓶頸問題(循環(huán)效率較低)。第二種方法是利用MATLAB引擎庫中匯集的函數(shù)在用戶自編的應(yīng)用程序中方便的實現(xiàn)對MATLAB的調(diào)用,也就是說自編界面運行在前臺,而MATLAB作為計算引擎運行在后臺,在Windows平臺下二者之間是借助ActiveX通信的,從而實現(xiàn)了MATLAB與外部程序的無縫結(jié)合,但此種方法不能脫離MATLAB環(huán)境的支持。第三種方法和第四種方法在得到了MATLAB中的數(shù)學(xué)庫和圖形庫的動態(tài)鏈接庫(DLL)支持后,可以生成獨立于MATLAB環(huán)境的應(yīng)用程序。由于在汽輪機甩負荷通用平臺中需包含諸如系統(tǒng)穩(wěn)定性分析、非線性系統(tǒng)模型線性化、BODE圖繪制以及零極點計算等十分復(fù)雜的數(shù)學(xué)建模和控制模型分析工作,無法完全脫離MATLAB而實現(xiàn),因此在系統(tǒng)開發(fā)中采用上述第二種混合編程方案,即基于MATLAB引擎的應(yīng)用程序接口技術(shù),從而實現(xiàn)C++builder6.0與MATLAB6.5的無縫連接,這樣我們就能夠充分使用MATLAB提供的強大功能??傮w開發(fā)方案總體框架和功能機組選擇界面仿真機組模型的選擇界面如上圖所示,用戶可以通過下拉菜單選擇要仿真的汽輪機組。單擊確定后,對應(yīng)于選中機組類型的仿真界面將被啟動,同時該對話框退出。機組仿真界面機組仿真界面的總體框架如上圖所示。采用多文檔的程序界面。用戶可以在一個主窗口內(nèi)建立和訪問多個子窗體,每個子窗體采用統(tǒng)一風(fēng)格,可調(diào)參數(shù)的設(shè)置在右邊操作,可視化的結(jié)果在左邊顯示。功能描述機組仿真界面中包含的主要功能如下:實現(xiàn)文件和程序的關(guān)聯(lián)功能,通過雙擊保存的參數(shù)文件可以自動打開程序并將參數(shù)顯示在界面中。實現(xiàn)了程序打開歷史文件的功能,保留了最后使用過的四個參數(shù)文件。支持參數(shù)文件拖拽打開的功能。只運行一個實例,在程序運行時,雙擊另一個參數(shù)文件,能實現(xiàn)在已存在的機組仿真界面中打開。支持保存機組結(jié)構(gòu)參數(shù)信息。用戶新建的機型參數(shù)通過界面輸入,然后可以將其保存到一個文件。用戶下次可以通過打開文件的操作將參數(shù)直接讀入到程序中進行分析。系統(tǒng)提供幫助文件??傮w流程仿真界面的操作流程如上圖所示。首先選擇機組類型,啟動仿真程序并且將MATLAB引擎打開;然后將機型參數(shù)和仿真參數(shù)通過用戶界面輸入,并將這些參數(shù)轉(zhuǎn)換為MATLAB引擎識別的mxArray類型的數(shù)據(jù);接著程序根據(jù)用戶選擇的仿真項目把仿真命令傳遞給MATLAB引擎,并將仿真結(jié)果從MATLAB引擎空間取回然后仿真結(jié)果進行可視化處理;最后用戶需要結(jié)束仿真時,首先關(guān)閉MATLAB引擎,然后程序退出。代碼實現(xiàn)MATLAB引擎操作當C++Builder和MATLAB進行數(shù)據(jù)通信時需要調(diào)用MATLAB提供的應(yīng)用程序接口(API)函數(shù),主要用到以下頭文件、數(shù)據(jù)結(jié)構(gòu)和API函數(shù):需要包含的頭文件:#include"engine.h"#include"matrix.h"數(shù)據(jù)結(jié)構(gòu):Engine*ep;mxArray*T;API函數(shù)Engine*engOpen(constchar*startcmd);intengPutVariable(Engine*ep,constchar*name,constmxArray*mp);intengEvalString(Engine*ep,constchar*string);mxArray*engGetVariable(Engine*ep,constchar*name);intengClose(Engine*ep);mxArray*mxCreateDoubleMatrix(intm,intn,mxComplexityComplexFlag);void*memcpy(void*dest,constvoid*src,size_tn);double*mxGetPr(constmxArray*array_ptr);intmxDestroyArray(constmxArray*mp);一個簡單的操作引擎的實例如下所示://定義引擎指針和數(shù)據(jù)指針Engine*ep;mxArray*T=NULL,*D=NULL;//打開MATLAB引擎if(!(ep=engOpen(NULL))){MessageBox((HWND)NULL,(LPSTR)"Can'tstartMATLABengine",(LPSTR)"啟動MATLAB引擎",MB_OK);exit(-1);}doubletime[10]={0,1,2,3,4,5,6,7,8,9};double*result;//產(chǎn)生矩陣變量T=mxCreateDoubleMatrix(1,10,mxREAL);memcpy((char*)mxGetPr(T),(char*)time,10*sizeof(double));//將變量X置入Matlab的工作空間engPutVariable(ep,"T",T);//計算engEvalString(ep,"D=.5.*(-9.8).*T.^2;");//獲取Matlab輸出engEvalString(ep,"plot(T,D);");engEvalString(ep,"title('Positionvs.Timeforafallingobject');");engEvalString(ep,"xlabel('Time(seconds)');");engEvalString(ep,"ylabel('Position(meters)');");//獲得計算結(jié)果D=engGetVariable(ep,"D");result=mxGetPr(D)MessageBox(NULL,"Pressanykey…","MATLABDraw",MB_OK);//關(guān)閉Matlab引擎,結(jié)束調(diào)用engClose(ep);//釋放變量mxDestroyArray(T);mxDestroyArray(D);實現(xiàn)MATLAB和C++Builder的編譯連接需要進行以下設(shè)置:打開C++Builder中的project菜單點擊options選項,再打開directories/conditions選項,將MATLAB6p5\extern\include添加到搜索路徑中。打開C++Builder中的project菜單點擊addtoprogect選項把matlab文件夾中的bin下的文件加入。文件和程序的關(guān)聯(lián)文件和程序進行關(guān)聯(lián)在程序設(shè)計中有著重要的作用,它的目的是要實現(xiàn)某種擴展名的文件由相應(yīng)的應(yīng)用程序來打開。另外,由于一般應(yīng)用程序都有自己特定擴展名的數(shù)據(jù)文件,這就要求軟件開發(fā)時在程序中實現(xiàn)自動關(guān)聯(lián)而不能由用戶手工去實現(xiàn)關(guān)聯(lián)。實現(xiàn)文件關(guān)聯(lián)的核心是對注冊表進行操作,所有的文件關(guān)聯(lián)都在HKEY—CLASSES—ROOT下面,要實現(xiàn)文件關(guān)聯(lián)必須在HKEY—CLASSES—ROOT中增加兩個鍵值,一是和文件擴展名對應(yīng)的類型說明,二是對這種類型文件的操作所需要執(zhí)行的應(yīng)用程序。以凝汽式汽輪機組仿真程序為例,功能是將凝汽式汽輪機組仿真程序保存的以“.nqs”擴展名的參數(shù)文件與該仿真程序相關(guān)聯(lián),雙擊此種類型的文件時就可以由相應(yīng)的仿真程序來打開,具體代碼如下://建立操作歷史文件的注冊表指針TRegistry*Registry;//在注冊表中打開主鍵,如果該主鍵不存在則新建該主鍵//Registry->RootKey=HKEY_CLASSES_ROOT;Registry->CreateKey("\\.nqs");Registry->OpenKey(".nqs",TRUE);Registry->WriteString("","NQS.Document");Registry->OpenKey("\\NQS.Document\\shell\\open\\command",TRUE);Registry->WriteString("",Application->ExeName+"%1");Registry->OpenKey("\\NQS.Document\\DefaultIcon",TRUE);Registry->WriteString("",GetCurrentDir()+"\\src\\htcapp.ico");Registry->OpenKey("\\NQS.Document",TRUE);Registry->WriteString("","NQSDocument");Registry->OpenKey("\\NQS.Document\\HistoryList\\NingQiShiList",TRUE);以上代碼實現(xiàn)了凝汽式汽輪機組參數(shù)文件與凝汽式汽輪機組仿真程序的關(guān)聯(lián),其中使用到了C++Builder提供的Tregistry組件,它提供了許多用于操作注冊表的API函數(shù),如:OpenKey打開注冊表的某個鍵,WriteString往注冊表了寫值等,這就避免了去使用比較麻煩的RegCreateKey、RegSetValue等Win32API來完成同樣的功能。進行了文件和應(yīng)用程序關(guān)聯(lián)以后,在應(yīng)用程序沒有啟動的情況下,當用戶在資源管理器中雙擊或單擊參數(shù)文件時,應(yīng)用程序需要獲悉用戶雙擊的參數(shù)文件名稱、路徑,并且需要對該文件進行操作等一系列處理??梢酝ㄟ^C++Builder提供的API函數(shù):ParamStr(i)可以獲得當前打開的文件的全路徑信息。以凝汽式汽輪機組仿真程序為例,對于程序未啟動的情況,處理通過在資源管理器中雙擊或單擊參數(shù)文件打開仿真程序的消息處理函數(shù)如下:void__fastcallTMainForm::FormActivate(TObject*Sender){ /*該函數(shù)完成在資源管理器中通過點擊文件啟動程序功能*/ /*工作包括:獲取點擊的文件名,更新當前參數(shù)文件名,建立窗體,更新菜單,更新歷史文件*/ if(ActiveNum==1) { CurrentParaFileName=ParamStr(1); MyCreateFcn(CurrentParaFileName); ActiveNum=0; }}進行了文件和應(yīng)用程序關(guān)聯(lián)以后,在應(yīng)用程序啟動的情況下,需要將當前用戶選擇的參數(shù)文件的文件信息以Windows消息的模式傳遞給當前已經(jīng)打開的應(yīng)用程序。因此需要在應(yīng)用程序的程序入口處添加對這一過程的處理,以凝汽式汽輪機組仿真程序為例,在程序入口處添加如下代碼:WINAPIWinMain(HINSTANCE,HINSTANCE,LPSTR,int){AnsiStringParam;for(inti=1;i<=ParamCount();i++){ Param=Param+ParamStr(i);}TCopyDataStructCopyDataStruct;CopyDataStruct.cbData=Param.Length()+1;CopyDataStruct.lpData=Param.c_str();SendMessage(MainWnd,WM_COPYDATA,0,LPARAM(&CopyDataStruct));}用戶選擇的參數(shù)文件的全路徑以消息的形式發(fā)出去后,還需要在應(yīng)用程序中對這一消息進行攔截以進行后續(xù)的操作,因此需要添加消息處理函數(shù),具體代碼和注釋如下所示void__fastcallTMainForm::WMCopyData(TWMCopyData&Message){/*該函數(shù)完成程序攔截相同程序副本發(fā)送的WM_COPYDATADA窗口消息的功能*//*需要的工作包括:攔截WM_COPYDATADA窗口消息,獲取消息參數(shù)中的文件名,更新當前參數(shù)文件名,建立窗體,更新菜單,更新歷史文件*/AnsiStringMessageFileName;MessageFileName=AnsiString((char*)Message.CopyDataStruct->lpData);if(CurrentParaFileName==MessageFileName){return;}CurrentParaFileName=MessageFileName;for(inti=MDIChildCount-1;i>=0;i--){MDIChildren[i]->Close();}MyCreateFcn(CurrentParaFileName);}歷史文件菜單歷史菜單在很多軟件中都有用到,文件菜單里面有許多使用過的文件名,這些就是歷史菜單,記錄了曾經(jīng)使用過的文件包括文件名、文件地址等信息。但是不是保存所有使用過的文件,而是只保存最近使用一部分,每當有新文件被打開后就會自動更新最早的一個文件。它的好處是可以快速打開上次或上幾次沒有編輯完的或還需要接著使用的文件。以凝汽式汽輪機組仿真程序為例,其運行情況如下圖所示??梢钥吹?,仿真程序提供了最近使用過的四個歷史文件。具體的代碼實現(xiàn)通過以下數(shù)據(jù)結(jié)構(gòu)和函數(shù)實現(xiàn):數(shù)據(jù)結(jié)構(gòu):TMenuItem*MySubItem[4];//定義動態(tài)創(chuàng)建的歷史文件菜單數(shù)組 StringItems[4];//建立顯示歷史文件的數(shù)組 intItemsCount;//定義程序中需要用到的歷史文件個數(shù)變量初始化函數(shù):void__fastcallTMainForm::Initialize(){ //讀items[i]字符串的值 Items[0]=Registry->ReadString("Item1"); Items[1]=Registry->ReadString("Item2"); Items[2]=Registry->ReadString("Item3"); Items[3]=Registry->ReadString("Item4"); //歷史菜單項的個數(shù)為4 for(inti=0;i<4;i++) { if(Items[i]=="") { continue; } try { MySubItem[i]=newTMenuItem(this); MySubItem[i]->Caption="&"+IntToStr(4-i)+""+Items[3-i]; MySubItem[i]->OnClick=MySubItemClick;MainMenu1->Items->Items[0]->Insert((MainMenu1->Items->Items[0]->IndexOf(Separator)+1),MySubItem[i]); ItemsCount++; }catch(Exception&e) { deleteMySubItem[i]; throw; } }}刷新歷史菜單函數(shù):void_fastcallTMainForm::Display(AnsiStringTempFile){ if(TempFile=="") { return; } else { //如果歷史菜單中已經(jīng)存在該項,直接退出 for(inti=0;i<4;i++) { if(TempFile==Items[i]) { return; } } //對打開的歷史文件進行排序,使最近打開的文件在最前面 for(inti=3;i>0;i--) { Items[i]=Items[i-1]; } Items[0]=TempFile; //打開一個文件增加一個菜單項目數(shù) ItemsCount++; //找到第一個分隔符的位置后加1就是歷史菜單項的位置 intindex=MainMenu1->Items->Items[0]->IndexOf(Separator)+1; //除去原有的歷史文件列表 if(ItemsCount<=4) { for(inti=1;i<ItemsCount;i++) MainMenu1->Items->Items[0]->Delete(index); } else { for(inti=0;i<4;i++) MainMenu1->Items->Items[0]->Delete(index); } //建立新的歷史文件列表 if(ItemsCount<=4) { for(inti=0;i<ItemsCount;i++) { MySubItem[i]=newTMenuItem(this); MySubItem[i]->Caption="&"+IntToStr(ItemsCount-i)+""+Items[ItemsCount-1-i]; MySubItem[i]->OnClick=MySubItemClick;MainMenu1->Items->Items[0]->Insert((MainMenu1->Items->Items[0]->IndexOf(Separator)+1),MySubItem[i]); } } else { for(inti=0;i<4;i++) { MySubItem[i]=newTMenuItem(this); MySubItem[i]->Caption="&"+IntToStr(4-i)+""+Items[3-i]; MySubItem[i]->OnClick=MySubItemClick;MainMenu1->Items->Items[0]->Insert((MainMenu1->Items->Items[0]->IndexOf(Separator)+1),MySubItem[i]); } } }}歷史菜單消息響應(yīng)函數(shù):void__fastcallTMainForm::MySubItemClick(TObject*Sender){/*處理文件歷史菜單消息:獲得歷史文件名,打開相應(yīng)文件名,更新當前參數(shù)文件名,建立窗體,更新菜單*/ TMenuItem*MySubItem; MySubItem=(TMenuItem*)(Sender);CurrentParaFileName=Items[File1->IndexOf(MySubItem)-File1->IndexOf(Separator)-1];MyCreateFcn(CurrentParaFileName);}終止函數(shù):void__fastcallTMainForm::Finalize(){//向注冊表寫入items[i]字符串的值Registry->WriteString("Item1",Items[0]);Registry->WriteString("Item2",Items[1]);Registry->WriteString("Item3",Items[2]);Registry->WriteString("Item4",Items[3]);deleteRegistry;}控制程序運行唯一實例開發(fā)仿真界面應(yīng)用程序時,需要啟動MATLAB引擎,如果程序不能運行唯一的實例,那么多個實例同時訪問MATLAB引擎中的變量時會發(fā)生變量干涉的現(xiàn)象,從而造成錯誤的仿真結(jié)果,因此需要控制程序運行唯一實例,其實現(xiàn)方法如下列步驟所示。判斷程序是否已經(jīng)運行用靜態(tài)函數(shù)CWnd::FindWindow()查找固定窗口,來判斷程序是否已經(jīng)運行。函數(shù)原型為:CWnd*PASCALFindWindow(LPCTSTRlpszClassName,LPCTSTRlpszWindowName);函數(shù)有兩個參數(shù),第一個是要找的窗口的類,第二個是要找的窗口的標題。在搜索的時候不一定兩者都知道,但至少要知道其中的一個。有的窗口的標題是比較容易得到的,如“計算器”,所以搜索時應(yīng)使用標題進行搜索。但有的軟件的標題不是固定的,如“記事本”,如果打開的文件不同,窗口標題也不同,這時使用窗口類搜索就比較方便。如果找到了滿足條件的窗口,這個函數(shù)返回該窗口的指針,否則返回值為NULL。判斷程序是否處于最小化狀態(tài)用函數(shù)BOOLIsIconic()用來判斷當前窗口是否處于最小化狀態(tài),如果窗口處于最小化狀態(tài),函數(shù)返回值為True,否則返回Flase?;謴?fù)窗口的正常狀態(tài)對于處于最小化狀態(tài)的窗口,可以調(diào)用CWnd::ShowWindow(intnCmdShow)恢復(fù)窗口的正常狀態(tài),該函數(shù)的原型為:BOOLShowWindow(intnCmdShow),如果窗口之前是可見的,函數(shù)調(diào)用后返回True,否則返回False。參數(shù)nCmdShow的值可以為以下任意個常數(shù):SW_HIDE:隱藏窗口,活動狀態(tài)給令一個窗口;SW_MINIMIZE:最小化窗口,活動狀態(tài)給另一個窗口;SW_RESTORE:用原來的大小和位置顯示一個窗口,同時令其進入活動狀態(tài);SW_SHOW:用當前的大小和位置顯示一個窗口,同時令其進入活動狀態(tài)SW_SHOWMAXIMIZED:最大化窗口,并將其激活;SW_SHOWMINIMIZED:最小化窗口,并將其激活;SW_SHOWMINNOACTIVE:最小化一個窗口,同時不改變活動窗口;SW_SHOWNA:用當前的大小和位置顯示一個窗口,不改變活動窗口;SW_SHOWNOACTIVATE:用最近的大小和位置顯示一個窗口,不改變活動窗口;SW_SHOWNORMAL:與SW_RESTORE相同;設(shè)置程序到桌面最前端使用WindowsAPI函數(shù)CWnd::SetForegroundWindow()函數(shù)可以將程序窗口設(shè)置為桌面的最前端。 綜上所述,以凝汽式汽輪機組仿真程序為例,實現(xiàn)控制仿真界面只運行一個實例的代碼如下:HWNDAppWnd=FindWindow("TApplication","凝汽式汽輪機仿真平臺");if(AppWnd){if(IsIconic(AppWnd)){ShowWindow(AppWnd,SW_RESTORE);}else{SetForegroundWindow(AppWnd);}}關(guān)鍵子程序程序開發(fā)過程中用到了大量的MATLAB與C++Builder的數(shù)據(jù)交互,整個過程非常繁瑣,代碼也比較冗長,維護起來非常麻煩。最終考慮將一些最關(guān)鍵的功能使用純C++形式的子程序封裝。水蒸氣參數(shù)計算子程序功能描述:容積時間常數(shù)計算時使用,用于在已知水蒸氣壓力、比焓兩個參數(shù)條件下計算水蒸氣比容。子程序接口:doubleph2v(doublep,doubleh)輸入?yún)?shù):水蒸氣壓力p(MPa)、比焓h(kj/kg)輸出參數(shù):水蒸氣比容v(立方米/千克)實現(xiàn)方式:水蒸氣參數(shù)表steam.dll的調(diào)用。結(jié)構(gòu)較簡單。汽缸通流部分蒸汽膨脹功計算子程序功能描述:容積時間常數(shù)計算時使用,用于計算某一個汽缸通流部分的膨脹功。子程序接口:doubleW_tongliu(intcharge,intgrade,double*l0,double*h0,double*p0,double*l,double*iner_radius,double*outer_radius,double*width,doublehk,doublepk,doubleefc)輸入?yún)?shù):該缸的抽汽級數(shù)charge通流部分級數(shù)grade新蒸汽入口及各級抽汽點軸向相對位置l0(為相對值,基準點可根據(jù)方便選取,量綱統(tǒng)一即可)新蒸汽入口及各級抽汽點處蒸汽比焓h0(kj/kg)新蒸汽入口及各級抽汽點處蒸汽壓力p0(MPa)各級葉片軸向相對位置(l0,在每級的動靜葉片間制取一個值,可取級前、中間、級后參數(shù),為相對值,量綱統(tǒng)一即可,作為插值點)各級通流部分內(nèi)徑iner_radius(mm,即葉根到轉(zhuǎn)子中心距離,計算容積用)各級通流部分內(nèi)徑outer_radius(mm,即葉頂?shù)睫D(zhuǎn)子中心距離,計算容積用)各級通流部分內(nèi)徑outer_radius(mm,即葉頂?shù)睫D(zhuǎn)子中心距離,計算容積用)各級通流部分寬度width(mm,即動靜葉片寬度之和,計算容積用)用到的排汽比焓hk(kj/kg,不一定為該缸的排汽參數(shù))用到的排汽壓力pk(MPa,不一定為該缸的排汽參數(shù))汽輪機效率efc輸出參數(shù):該汽缸蒸汽通流部分的膨脹功W_tongliu(kj)實現(xiàn)方式:將已知或可測參數(shù)新蒸汽入口及抽汽點處參數(shù)h0、p0、l0輸入程序作為擬合曲線點用,送入MATLAB工作空間,根據(jù)各級相對位置l進行插值,求得各級通流部分的參數(shù)h、p;然后將h、p取出送回C工作空間,調(diào)用ph2v求得各級通流部分的比容v。再將v送入到MATLAB工作空間,由iner_radius、outer_radius、width、h、p、pk、hk作矩陣運算,可求得膨脹功W_tongliu。流程圖:其他部分蒸汽膨脹功計算子程序功能描述:容積時間常數(shù)計算時使用,用于計算其他部分如管道、抽汽室、排汽室等部分的膨脹功,該部分蒸汽參數(shù)除比容外是已知的。子程序接口:doubleW_other(intsum,double*V_other,double*h_other,double*p_other,doublehk,doublepk,doubleefc)輸入?yún)?shù):容積的個數(shù)sum各容積大小V_other各容積比焓h_other各容積壓力p_other,所用的排汽比焓hk(kj/kg,不一定為該缸的排汽參數(shù))所用的排汽壓力pk(MPa,不一定為該缸的排汽參數(shù))汽輪機效率efc輸出參數(shù):各部分的膨脹功之和W_other(kj)實現(xiàn)方式:根據(jù)輸入?yún)?shù)h_other、p_other,,調(diào)用ph2v,求得各出比容v_other,將所有變量送到MATLAB工作空間,作矩陣運算,可求得膨脹功W_tongliu。流程圖:調(diào)節(jié)級出口參數(shù)計算子程序功能描述:容積時間常數(shù)計算時使用。調(diào)節(jié)級出口容積很大,該部分容積膨脹功不在通流部分內(nèi)計算,放在其他部分蒸汽膨脹功計算中需要知道該部分水蒸氣參數(shù),在此進行計算。子程序接口:double*parag1_h(double*l0,double*h0,double*p0,doublel,intcharge)輸入?yún)?shù):新蒸汽入口及各級抽汽點軸向相對位置l0(為相對值,基準點可根據(jù)方便選取,量綱統(tǒng)一即可)新蒸汽入口及各級抽汽點處蒸汽比焓h0(kj/kg)新蒸汽入口及各級抽汽點處蒸汽壓力p0(MPa)抽汽級數(shù)charge調(diào)節(jié)級出口軸向相對位置l(插值用)輸出參數(shù):調(diào)節(jié)級出口參數(shù)parag1_h,包括壓力(MPa)和比焓(kj/kg)實現(xiàn)方式:根據(jù)輸入?yún)?shù)l0、h0、p0,對位置l作插值。流程圖:時域分析子程序功能描述:根據(jù)要求,繪制時域分析參數(shù)變化過程曲線,并計算超調(diào)量、衰減率??衫L制多條曲線,以不同顏色及標示區(qū)分對比子程序接口:voidsimul(intcurve_num,AnsiString*model,AnsiString*result,AnsiString*label_line,TChart*chart,boolwithnewtitle,AnsiString*title0)輸入?yún)?shù):繪制的曲線條數(shù)curve_num繪制曲線所用的模型model,數(shù)目與curve_num對應(yīng)所要分析的變量名稱result,數(shù)目與curve_num對應(yīng)曲線標示label_line顯示這些曲線所用的空間chart是否需要求超調(diào)量及衰減率withnewtitlechart控件的標題title0輸出參數(shù):無實現(xiàn)方式:調(diào)用MATLAB引擎對模型仿真,取出所要的變量值,在C++Builder中對應(yīng)控件內(nèi)繪制。流程圖:頻域分析子程序功能描述:根據(jù)要求,繪制頻域分析時系統(tǒng)中參數(shù)變化bode圖子程序接口:voidbode(AnsiStringinput,AnsiStringmodel,AnsiStringlabel_line,TChart*chart_mag,TChart*chart_phase,boolwithtitle,AnsiString*title0)輸入?yún)?shù):可能用到的參數(shù)預(yù)輸入文件input繪制曲線所用的模型model,數(shù)目與curve_num對應(yīng)曲線標示label_line幅頻特性所用控件chart_mag相頻特性所用控件chart_phase是否需要求幅值裕量和相角裕量判斷表示withnewtitlechart控件的標題title0輸出參數(shù):無實現(xiàn)方式:調(diào)用MATLAB引擎對模型仿真,取出所要的變量值,在C++Builder中對應(yīng)控件內(nèi)繪制。流程圖:凝汽式汽輪發(fā)電機組開發(fā)方案整體功能和效果描述按照技術(shù)協(xié)議要求,凝汽式仿真平臺設(shè)置5個子窗體,分別完成參數(shù)設(shè)置、甩負荷分析、啟動工況模擬及分析、負荷控制穩(wěn)定性分析四部分功能。參數(shù)設(shè)置窗體對應(yīng)一個進行中的仿真項目,不可關(guān)閉。其他四個窗體有主菜單控制,可任意開關(guān)。幫助部分提供使用說明,包括模型建立及軟件使用方法說明。各窗口打開后整體效果如下圖所示。各窗體設(shè)計方案參數(shù)設(shè)置窗體整體效果如下圖所示功能:提供調(diào)節(jié)系統(tǒng)及機組特征參數(shù)輸入轉(zhuǎn)子時間常數(shù)及容積時間常數(shù)計算分直接輸入和間接輸入兩種輸入模式回?zé)嵯到y(tǒng)參數(shù)設(shè)置在新窗體進行,如下圖所示容積時間常數(shù)間接輸入部分有一個獨立模塊完成,如下圖所示判斷用戶是否輸入足夠的參數(shù)供仿真使用,以及參數(shù)輸入是否合法該頁面控件內(nèi)參數(shù)保存功能參數(shù)提交功能,將參數(shù)提交到MATLAB工作空間,并完成所需的轉(zhuǎn)子時間常數(shù)、容積時間常數(shù)、回?zé)嵯到y(tǒng)參數(shù)計算參數(shù)提交成功后,改變主窗體主菜單項,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單Enabled=true。關(guān)閉該窗口,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單設(shè)為Enabled=false。參數(shù)輸入及提交流程圖參數(shù)保存采用結(jié)構(gòu)體類型存放數(shù)據(jù),結(jié)構(gòu)如下甩負荷分析窗體效果如下圖所示。其他幾個窗體流程基本類似。啟動工況分析窗體窗口內(nèi)容排列如下功能設(shè)置:冷態(tài)啟動時,新蒸汽壓力控件Enabled=true;熱態(tài)啟動Enabled=true,控件text固定為1。啟動模擬時,控件顯示模式為 Edit_load_disturbance->Enabled=false; Edit_speed_disturbance->Enabled=false; GroupBox5->Visible=false; Chart1->Visible=true; Chart7->Visible=true; Chart_QDFM->Visible=false; Chart_QDGL->Visible=false; Chart_QDZS->Visible=false; Chart_QDmag->Visible=false;Chart_QDphase->Visible=false;穩(wěn)定性分析,時域分析時控件顯示模式為 Chart_QDFM->Visible=true; Chart_QDGL->Visible=true; Chart_QDZS->Visible=true; Chart_QDmag->Visible=false; Chart_QDphase->Visible=false; Edit_load_disturbance->Enabled=true;Edit_speed_disturbance->Enabled=true; Chart1->Visible=false; Chart7->Visible=false;穩(wěn)定性分析,頻域分析時控件顯示模式為 Chart_QDFM->Visible=false; Chart_QDGL->Visible=false; Chart_QDZS->Visible=false; Chart_QDmag->Visible=true; Chart_QDphase->Visible=true; Edit_load_disturbance->Enabled=false;Edit_speed_disturbance->Enabled=false; Chart1->Visible=false;Chart7->Visible=false;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。負荷穩(wěn)定性分析窗體頁面設(shè)置效果如下功能設(shè)置:冷態(tài)啟動時,新蒸汽壓力控件Enabled=true;熱態(tài)啟動Enabled=true,控件text固定為1。單機時域分析時,頁面控件控制方式為 Edit_disturb_load->Enabled=true; Edit_disturb_Pinlet->Enabled=true; Chart_speed->Visible=true; Chart_N->Visible=true;Chart_valve->Visible=true;單機頻域分析時,頁面控件控制方式為Chart_phase->Visible=true;Chart_mag->Visible=true;并網(wǎng)時域分析,非壓力控制時,頁面控件控制方式為Chart_speed->Visible=true;Chart_N->Visible=true;Chart_valve->Visible=true;Edit_zhoubo->Enabled=true;Edit_disturb_Pinlet->Enabled=true;GroupBox_pid->Visible=true;并網(wǎng)時域分析,壓力控制時,頁面控件控制方式為Chart_P_pipe->Visible=true;Chart_valve->Visible=true;Edit_disturb_steam->Enabled=true;GroupBox_p->Visible=true;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。再熱式汽輪發(fā)電機組開發(fā)方案整體功能和效果描述按照技術(shù)協(xié)議要求,再熱式仿真平臺設(shè)置5個子窗體,分別完成參數(shù)設(shè)置、甩負荷分析、啟動工況模擬及分析、負荷控制穩(wěn)定性分析四部分功能。參數(shù)設(shè)置窗體對應(yīng)一個進行中的仿真項目,不可關(guān)閉。其他四個窗體有主菜單控制,可任意開關(guān)。幫助部分提供使用說明,包括模型建立及軟件使用方法說明。各窗口打開后整體效果如下圖所示。各窗體設(shè)計方案參數(shù)設(shè)置窗體整體效果如下圖所示功能:提供調(diào)節(jié)系統(tǒng)及機組特征參數(shù)輸入轉(zhuǎn)子時間常數(shù)及容積時間常數(shù)計算分直接輸入和間接輸入兩種輸入模式回?zé)嵯到y(tǒng)參數(shù)設(shè)置在新窗體進行,如下圖所示容積時間常數(shù)間接輸入部分有一個獨立模塊完成,如下圖所示判斷用戶是否輸入足夠的參數(shù)供仿真使用,以及參數(shù)輸入是否合法該頁面控件內(nèi)參數(shù)保存功能參數(shù)提交功能,將參數(shù)提交到MATLAB工作空間,并完成所需的轉(zhuǎn)子時間常數(shù)、容積時間常數(shù)、回?zé)嵯到y(tǒng)參數(shù)計算參數(shù)提交成功后,改變主窗體主菜單項,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單Enabled=true。關(guān)閉該窗口,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單設(shè)為Enabled=false。參數(shù)輸入及提交流程圖參數(shù)保存采用結(jié)構(gòu)體類型存放數(shù)據(jù),結(jié)構(gòu)如下甩負荷分析窗體效果如下圖所示。其他幾個窗體流程基本類似。啟動工況分析窗體窗口內(nèi)容排列如下功能設(shè)置:冷態(tài)啟動時,新蒸汽壓力控件Enabled=true;熱態(tài)啟動Enabled=true,控件text固定為1。啟動模擬時,控件顯示模式為RadioGroup_analysis_type->ItemIndex=0;RadioGroup_analysis_type->Enabled=false;Chart_speed_start->Visible=true;Chart_valve_h_start->Visible=true;若非高壓缸啟動,加入Chart_valve_m_start->Visible=true;穩(wěn)定性分析,時域分析時控件顯示模式為RadioGroup_analysis_type->Enabled=true;RadioGroup_analysis_type->Enabled=true;Chart_speed->Visible=true;Chart_N->Visible=true;Chart_valve_h->Visible=true;Edit_load_disturbance->Enabled=true;Edit_speed_disturbance->Enabled=true;若非高壓缸啟動,加入Chart_valve_m->Visible=true;穩(wěn)定性分析,頻域分析時控件顯示模式為Chart_mag->Visible=true;Chart_phase->Visible=true;RadioGroup_analysis_type->Enabled=true;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。負荷穩(wěn)定性分析窗體頁面設(shè)置效果如下功能設(shè)置:單機時域分析時,頁面控件控制方式為Chart_speed->Visible=true;Chart_N->Visible=true;Chart_valve->Visible=true;Edit_disturb_load->Enabled=true;Edit_disturb_Pinlet->Enabled=true;單機頻域分析時,頁面控件控制方式為Chart_mag->Visible=true;Chart_phase->Visible=true;并網(wǎng)時域分析,頁面控件控制方式為Chart_speed->Visible=true;Chart_N->Visible=true;Chart_valve->Visible=true;Edit_zhoubo->Enabled=true;Edit_disturb_Pinlet->Enabled=true;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。核電汽輪發(fā)電機組開發(fā)方案整體功能和效果描述按照技術(shù)協(xié)議要求,核電機組仿真平臺設(shè)置5個子窗體,分別完成參數(shù)設(shè)置、甩負荷分析、啟動工況模擬及分析、負荷控制穩(wěn)定性分析四部分功能。參數(shù)設(shè)置窗體對應(yīng)一個進行中的仿真項目,不可關(guān)閉。其他四個窗體有主菜單控制,可任意開關(guān)。幫助部分提供使用說明,包括模型建立及軟件使用方法說明。各窗口打開后整體效果如下圖所示。各窗體設(shè)計方案參數(shù)設(shè)置窗體整體效果如下圖所示功能:提供調(diào)節(jié)系統(tǒng)及機組特征參數(shù)輸入轉(zhuǎn)子時間常數(shù)及容積時間常數(shù)計算分直接輸入和間接輸入兩種輸入模式回?zé)嵯到y(tǒng)參數(shù)設(shè)置在新窗體進行,如下圖所示容積時間常數(shù)間接輸入部分有一個獨立模塊完成,如下圖所示判斷用戶是否輸入足夠的參數(shù)供仿真使用,以及參數(shù)輸入是否合法該頁面控件內(nèi)參數(shù)保存功能參數(shù)提交功能,將參數(shù)提交到MATLAB工作空間,并完成所需的轉(zhuǎn)子時間常數(shù)、容積時間常數(shù)、回?zé)嵯到y(tǒng)參數(shù)計算參數(shù)提交成功后,改變主窗體主菜單項,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單Enabled=true。關(guān)閉該窗口,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單設(shè)為Enabled=false。參數(shù)輸入及提交流程圖參數(shù)保存采用結(jié)構(gòu)體類型存放數(shù)據(jù),結(jié)構(gòu)如下甩負荷分析窗體效果如下圖所示。其他幾個窗體流程基本類似。啟動工況分析窗體窗口內(nèi)容排列如下功能設(shè)置:冷態(tài)啟動時,新蒸汽壓力控件Enabled=true;熱態(tài)啟動Enabled=true,控件text固定為1。啟動模擬時,控件顯示模式及初值設(shè)置為 engEvalString(MainForm->ep,"ZZchu=0;"); RadioGroup_analysis_type->ItemIndex=0; RadioGroup_analysis_type->Enabled=false; Chart_speed_start->Visible=true; Chart_valve_h_start->Visible=true; Chart_valve_m_start->Visible=true;穩(wěn)定性分析,時域分析時控件顯示模式及初值設(shè)置為 engEvalString(MainForm->ep,"ZZchu=1;"); RadioGroup_analysis_type->Enabled=true;RadioGroup_analysis_type->Enabled=true;Chart_speed->Visible=true;Chart_N->Visible=true;Chart_valve_h->Visible=true;Chart_valve_m->Visible=true;Edit_load_disturbance->Enabled=true;Edit_speed_disturbance->Enabled=true;穩(wěn)定性分析,頻域分析時控件顯示模式為engEvalString(MainForm->ep,"ZZchu=1;"); RadioGroup_analysis_type->Enabled=true; Chart_mag->Visible=true;Chart_phase->Visible=true;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。負荷穩(wěn)定性分析窗體頁面設(shè)置效果如下功能設(shè)置:單機時域分析時,頁面控件控制方式為Chart_speed->Visible=true;Chart_N->Visible=true;Chart_valve->Visible=true;Edit_disturb_load->Enabled=true;Edit_disturb_Pinlet->Enabled=true;單機頻域分析時,頁面控件控制方式為Chart_mag->Visible=true;Chart_phase->Visible=true;并網(wǎng)時域分析,頁面控件控制方式為Chart_speed->Visible=true;Chart_N->Visible=true;Chart_valve->Visible=true;Edit_zhoubo->Enabled=true;Edit_disturb_Pinlet->Enabled=true;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。背壓式汽輪發(fā)電機組開發(fā)方案整體功能和效果描述按照技術(shù)協(xié)議要求,背壓機組仿真平臺設(shè)置4個子窗體,分別完成參數(shù)設(shè)置、甩負荷分析、負荷控制穩(wěn)定性分析三部分功能。參數(shù)設(shè)置窗體對應(yīng)一個進行中的仿真項目,不可關(guān)閉。其他四個窗體有主菜單控制,可任意開關(guān)。幫助部分提供使用說明,包括模型建立及軟件使用方法說明。各窗口打開后整體效果如下圖所示。各窗體設(shè)計方案參數(shù)設(shè)置窗體整體效果如下圖所示功能:提供調(diào)節(jié)系統(tǒng)及機組特征參數(shù)輸入轉(zhuǎn)子時間常數(shù)及容積時間常數(shù)計算分直接輸入和間接輸入兩種輸入模式容積時間常數(shù)間接輸入部分有一個獨立模塊完成,如下圖所示判斷用戶是否輸入足夠的參數(shù)供仿真使用,以及參數(shù)輸入是否合法該頁面控件內(nèi)參數(shù)保存功能參數(shù)提交功能,將參數(shù)提交到MATLAB工作空間,并完成所需的轉(zhuǎn)子時間常數(shù)、容積時間常數(shù)、回?zé)嵯到y(tǒng)參數(shù)計算參數(shù)提交成功后,改變主窗體主菜單項,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單Enabled=true。關(guān)閉該窗口,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單設(shè)為Enabled=false。參數(shù)輸入及提交流程圖參數(shù)保存采用結(jié)構(gòu)體類型存放數(shù)據(jù),結(jié)構(gòu)如下甩負荷分析窗體效果如下圖所示。其他幾個窗體流程基本類似。負荷穩(wěn)定性分析窗體頁面設(shè)置效果如下功能設(shè)置:單機時域分析時,頁面控件控制方式為Chart_speed->Visible=true; Chart_N->Visible=true; Edit_load_disturbance->Enabled=true; Edit_Bpress_disturbance->Enabled=true;單機頻域分析時,頁面控件控制方式為Chart_mag->Visible=true;Chart_phase->Visible=true;并網(wǎng)時域分析,電負荷運行時頁面控件控制方式為Edit_zhoubo_disturbance->Enabled=true;Edit_Bpress_disturbance->Enabled=true;Chart_N->Visible=true; Chart_speed->Visible=true;并網(wǎng)時域分析,熱負荷運行時頁面控件控制方式為 Edit_XQ->Enabled=true; Edit_Bpress_disturbance->Enabled=true; Chart_Pk->Visible=true;Chart_N->Visible=true; Chart_speed->Visible=true;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。單抽汽式汽輪發(fā)電機組開發(fā)方案整體功能和效果描述按照技術(shù)協(xié)議要求,單抽汽式汽輪機組仿真平臺設(shè)置5個子窗體,分別完成參數(shù)設(shè)置、甩負荷分析、啟動工況模擬及分析、負荷控制穩(wěn)定性分析四部分功能。參數(shù)設(shè)置窗體對應(yīng)一個進行中的仿真項目,不可關(guān)閉。其他四個窗體有主菜單控制,可任意開關(guān)。幫助部分提供使用說明,包括模型建立及軟件使用方法說明。各窗口打開后整體效果如下圖所示。各窗體設(shè)計方案參數(shù)設(shè)置窗體整體效果如下圖所示功能:提供調(diào)節(jié)系統(tǒng)及機組特征參數(shù)輸入轉(zhuǎn)子時間常數(shù)及容積時間常數(shù)計算分直接輸入和間接輸入兩種輸入模式容積時間常數(shù)間接輸入部分有一個獨立模塊完成,如下圖所示判斷用戶是否輸入足夠的參數(shù)供仿真使用,以及參數(shù)輸入是否合法該頁面控件內(nèi)參數(shù)保存功能參數(shù)提交功能,將參數(shù)提交到MATLAB工作空間,并完成所需的轉(zhuǎn)子時間常數(shù)、容積時間常數(shù)、回?zé)嵯到y(tǒng)參數(shù)計算參數(shù)提交成功后,改變主窗體主菜單項,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單Enabled=true。關(guān)閉該窗口,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單設(shè)為Enabled=false。參數(shù)輸入及提交流程圖參數(shù)保存采用結(jié)構(gòu)體類型存放數(shù)據(jù),結(jié)構(gòu)如下甩負荷分析窗體效果如下圖所示。其他幾個窗體流程基本類似。啟動工況分析窗體窗口內(nèi)容排列如下功能設(shè)置:冷態(tài)啟動時,新蒸汽壓力控件Enabled=true;熱態(tài)啟動Enabled=true,控件text固定為1。啟動模擬時,控件顯示模式及初值設(shè)置為 Edit_load_disturbance->Enabled=false; Edit_speed_disturbance->Enabled=false; GroupBox5->Visible=false; Chart1->Visible=true; Chart7->Visible=true; Chart_QDFM->Visible=false; Chart_QDGL->Visible=false; Chart_QDZS->Visible=false; Chart_QDmag->Visible=false; Chart_QDphase->Visible=false; engEvalString(MainForm->ep,"Zchu=0;");穩(wěn)定性分析,時域分析時控件顯示模式及初值設(shè)置為 Chart_QDFM->Visible=true; Chart_QDGL->Visible=true; Chart_QDZS->Visible=true; Chart_QDmag->Visible=false; Chart_QDphase->Visible=false; Edit_load_disturbance->Enabled=true; Edit_speed_disturbance->Enabled=true;穩(wěn)定性分析,頻域分析時控件顯示模式為 Chart_QDFM->Visible=false; Chart_QDGL->Visible=false; Chart_QDZS->Visible=false; Chart_QDmag->Visible=true; Chart_QDphase->Visible=true; Edit_load_disturbance->Enabled=false;Edit_speed_disturbance->Enabled=false;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。負荷穩(wěn)定性分析窗體頁面設(shè)置效果如下功能設(shè)置:單機時域分析時,頁面控件控制方式為Edit_load_disturbance->Enabled=true;Edit_Bpress_disturbance->Enabled=true;Chart_speed->Visible=true;Chart_N->Visible=true;單機頻域分析時,頁面控件控制方式為Chart_mag->Visible=true;Chart_phase->Visible=true;并網(wǎng)時域分析,頁面控件控制方式為Edit_disturb_steam->Enabled=true;Edit_Bpress_disturbance->Enabled=true;Edit_zhoubo_disturbance->Enabled=true;Chart_speed->Visible=true;Chart_N->Visible=true;Chart_extraction->Visible=true;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。雙抽汽式汽輪發(fā)電機組開發(fā)方案整體功能和效果描述按照技術(shù)協(xié)議要求,雙抽汽式汽輪機組仿真平臺設(shè)置5個子窗體,分別完成參數(shù)設(shè)置、甩負荷分析、啟動工況模擬及分析、負荷控制穩(wěn)定性分析四部分功能。參數(shù)設(shè)置窗體對應(yīng)一個進行中的仿真項目,不可關(guān)閉。其他四個窗體有主菜單控制,可任意開關(guān)。幫助部分提供使用說明,包括模型建立及軟件使用方法說明。各窗口打開后整體效果如下圖所示。各窗體設(shè)計方案參數(shù)設(shè)置窗體整體效果如下圖所示功能:提供調(diào)節(jié)系統(tǒng)及機組特征參數(shù)輸入轉(zhuǎn)子時間常數(shù)及容積時間常數(shù)計算分直接輸入和間接輸入兩種輸入模式容積時間常數(shù)間接輸入部分有一個獨立模塊完成,如下圖所示判斷用戶是否輸入足夠的參數(shù)供仿真使用,以及參數(shù)輸入是否合法該頁面控件內(nèi)參數(shù)保存功能參數(shù)提交功能,將參數(shù)提交到MATLAB工作空間,并完成所需的轉(zhuǎn)子時間常數(shù)、容積時間常數(shù)、回?zé)嵯到y(tǒng)參數(shù)計算參數(shù)提交成功后,改變主窗體主菜單項,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單Enabled=true。關(guān)閉該窗口,甩負荷分析、啟動工況分析、負荷穩(wěn)定性分析菜單設(shè)為Enabled=false。參數(shù)輸入及提交流程圖參數(shù)保存采用結(jié)構(gòu)體類型存放數(shù)據(jù),結(jié)構(gòu)如下甩負荷分析窗體效果如下圖所示。其他幾個窗體流程基本類似。啟動工況分析窗體窗口內(nèi)容排列如下功能設(shè)置:冷態(tài)啟動時,新蒸汽壓力控件Enabled=true;熱態(tài)啟動Enabled=true,控件text固定為1。啟動模擬時,控件顯示模式及初值設(shè)置為 Edit_load_disturbance->Enabled=false; Edit_speed_disturbance->Enabled=false; GroupBox5->Visible=false; Chart1->Visible=true; Chart7->Visible=true; Chart_QDFM->Visible=false; Chart_QDGL->Visible=false; Chart_QDZS->Visible=false; Chart_QDmag->Visible=false;Chart_QDphase->Visible=false;穩(wěn)定性分析,時域分析時控件顯示模式及初值設(shè)置為 Chart_QDFM->Visible=true; Chart_QDGL->Visible=true; Chart_QDZS->Visible=true; Chart_QDmag->Visible=false; Chart_QDphase->Visible=false; Edit_load_disturbance->Enabled=true; Edit_speed_disturbance->Enabled=true;穩(wěn)定性分析,頻域分析時控件顯示模式為Chart_QDFM->Visible=false;Chart_QDGL->Visible=false;Chart_QDZS->Visible=false;Chart_QDmag->Visible=true;Chart_QDphase->Visible=true;Edit_load_disturbance->Enabled=false;Edit_speed_disturbance->Enabled=false;曲線繪制:頁面控件調(diào)動與曲線繪制分開完成。整個曲線繪制過程與甩負荷分析過程一樣,將頁面數(shù)據(jù)送入MATLAB工作空間,選擇相應(yīng)的模型,調(diào)用simul和bode子程序即可。負荷穩(wěn)定性分析窗體頁面設(shè)置效果如下功能設(shè)置:單機時域分析時,頁面控件控制方式為CheckBox_cainuan->Checked=false; CheckBox_gongye->Checked=false;Edit_load_disturbance->Enabled=true;Edit_Bpress_disturbance->Enabled=true;Chart_speed->Visible=true;Chart_N->Visible=true;單機頻域分析時,頁面控件控制方式為CheckBox_cainuan->Checked=false; CheckBox_gongye->Checked=false;Chart_mag->Visible=true;Chart_phase->Visible=true;并網(wǎng)時域分析,頁面控件控制方式為Edit_disturb_steam->Enabled=true;CheckBox_cainuan->Enabled=true;CheckBox_cainuan->Checked=true;CheckBox_gongye->Checked=true;Edit_disturb_steam->Enabled=true;Edit_disturb_steam1->Enabled=true;Edit_Bpress_disturbance->Enabled=true;Edit_zhoubo_disturbance->Enabled=true;Chart_speed->Visible=true;Chart_N->Visible=true;Chart_extrac

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論