勵磁軟件編程培訓(xùn)講義_第1頁
勵磁軟件編程培訓(xùn)講義_第2頁
勵磁軟件編程培訓(xùn)講義_第3頁
勵磁軟件編程培訓(xùn)講義_第4頁
勵磁軟件編程培訓(xùn)講義_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、勵磁軟件編程培訓(xùn)講義余翔內(nèi)容l規(guī)劃l邏輯l風(fēng)格l高級語言與低級語言l細節(jié)l資源l錯誤規(guī)劃l任何大型軟件都是由模塊構(gòu)成的。l由主干到分支,由整體到細節(jié),逐步細化。好處:明確軟件如何實現(xiàn),便于分工、實現(xiàn)以及后期維護。勵磁控制主循環(huán)中斷服務(wù)程序初始化主循環(huán)限制、保護通信錄波控制空載過壓V/F限制PT斷線斷路器過無功限制欠勵限制強勵限制功率柜退出振蕩短路與本地監(jiān)控通信與另一通道通信與集控室通信中斷服務(wù)程序外部信號輸入同步中斷內(nèi)部設(shè)置中斷定時器中斷測頻原方同步斷線檢測副方同步斷線檢測啟動控制脈沖付氏采樣輸出控制脈沖邏輯l軟件能否正常實現(xiàn)其功能的基礎(chǔ)l幾個失敗的例子RS232通信:PCV40無功過載限制R

2、S232通信:PCV40下發(fā)命令返回開始定時下發(fā)命令定時下發(fā)命令返回清除接收緩沖開始延時延時0.6秒清秒清除接收緩沖除接收緩沖有數(shù)據(jù)處理標(biāo)志是否開始返回設(shè)置數(shù)據(jù)處理標(biāo)志V40上傳數(shù)據(jù)上傳數(shù)據(jù)觸發(fā)事件觸發(fā)事件數(shù)據(jù)處理改進后下發(fā)命令返回清除接收緩沖開始開始返回數(shù)據(jù)處理定時下發(fā)命令定時下發(fā)命令V40上傳數(shù)據(jù)上傳數(shù)據(jù)觸發(fā)事件觸發(fā)事件過勵限制l勵磁系統(tǒng)強勵的原因大部分是由發(fā)電機或與其相聯(lián)系統(tǒng)發(fā)生短路故障,勵磁系統(tǒng)為保證電力系統(tǒng)穩(wěn)定和繼電保護可靠動作自動強行勵磁所致。設(shè)置這一限制的目的是防止勵磁繞組較長時間過電流而過熱。Ift(s)If0T1T0TxT2If1IfxIf2實現(xiàn)原理l設(shè)置熱量積分Hsum。I

3、fIf0時,根據(jù)If大小計算熱量積分步長,對Hsum進行累加。IfHmax則觸發(fā)限制。原來的算法IfIf0HH1H2l步長取法:求出限制曲線各個節(jié)點對應(yīng)的步長,然后根據(jù)If大小插值取得新步長。IfxHxIf2If1錯誤分析lH1T1=H2T2=Hmaxl步長:Hx=H1+(H2-H1)/(If2-If1)(Ifx-If1)l限制時間:Tx=T1+(T2-T1)/(If2-If1)(Ifx-If1)lHxTx=H1T1+Hmax+Hmax如果按照原來的算法,限制曲線僅在節(jié)點處準確,其余區(qū)域限制時間略小于限制要求。過勵限制00.51.01.52.02.50204060tIf修改后l正確取法:根據(jù)I

4、f插值求取對應(yīng)的限制時間,然后根據(jù)時間取步長。l步長與時間的關(guān)系:Step=Hmax/t編程風(fēng)格l變量命名l函數(shù)命名l流程圖l注釋l模塊化編程命名、注釋l建議使用有意義的英語單詞,如Cal_Alpha( )/控制角計算函數(shù)Auto_Ex_Fail_Flag/起勵失敗標(biāo)志每一個變量、函數(shù)聲明時都需要對其功能、應(yīng)用范圍進行注釋。l匈牙利命名法nOverExCount流程圖l便于后期維護、原理分析以及合作開發(fā)l自用到模塊級l新人接手則必須到具體的函數(shù)實現(xiàn)細節(jié)lRS232編程(16C550)問題:芯片說明書指出16C550可以使用FIFO接收指定長度數(shù)據(jù)。實際測試時DSP連續(xù)讀出的都是第一個字符。后來

5、沒有使用FIFO中斷,每次只讀一個字節(jié)。原因:16C550使用FIFO接收時讀取間隔不小于4ms。而DSP主頻30MHz,連續(xù)讀取時間隔僅33ns。還是RS232編程l循環(huán)讀寫串口,只能實現(xiàn)單工通信。開始讀串口寫串口延時等待錯誤原因:連續(xù)讀取導(dǎo)致芯片無法正常響應(yīng)。模塊化編程lC語言:字符縮進,先輸入、,再輸入模塊內(nèi)容。lVB:打開文件open語句后接著輸入Close語句關(guān)閉文件,最后輸入中間的處理部分。l匯編:象C語言一樣對寄存器進行壓棧保護,使各個函數(shù)模塊化,調(diào)用時不必考慮保護寄存器內(nèi)容。匯編語言的模塊化編程l小的程序不需要l函數(shù)需要在入口對需要使用的寄存器進行壓棧操作,在出口彈出。保證函數(shù)

6、的調(diào)用不會影響寄存器的內(nèi)容(保存參數(shù)的寄存器可以例外)。l沒有模塊化編程的程序,改動一處程序,可能引起其他部分的異常。高級語言和低級語言l高級語言編程效率高、可讀性好、移植性好l低級語言直接處理硬件資源,執(zhí)行效率高在X86CPU上運行的幾種語言lASM速度第一,可讀性差,調(diào)試麻煩。lPL/M 不支持浮點,速度略高于C??勺x性好。lC運行速度遜于匯編,可讀性好,編程效率高,模塊化編程。lBasic不能生成可執(zhí)行文件,編譯器邊解釋邊執(zhí)行,速度最慢??勺x性好,了解低級語言有利于理解高級語言lC+示例a=1;y=0;if (a | y+)/與y無關(guān)的代碼/此時y=0編譯成匯編語言cmp ax, 0jn

7、z loopmov ax,yinc axmov y,ax jz looploop:實例:3階矩陣乘法(C語言版)/* 3階矩陣乘法Result=A*B*輸入:浮點矩陣*A,*B,*Result*輸出:無*/Void MatrixMpy(float *A, float *B, float Result)函數(shù)體3階矩陣乘法(DSPC32匯編版)* 3階矩陣乘法Result=A*B*輸入:浮點矩陣A-ar0,B-ar1, Result-ar2 *輸出:無*MatrixMpypushr0pushfr0popfr0popr0rets函數(shù)體資源l技術(shù)支持l網(wǎng)上資源技術(shù)支持l面對新的硬件很難迅速提出可行的方

8、案,甚至連硬件體系是否滿足要求都不知道。l硬件供貨商的技術(shù)支持人員對硬件的了解程度遠勝于己,可以提供相關(guān)解決方案甚至是核心代碼。對于一些具體功能的實現(xiàn)也可以提供建設(shè)性意見。l硬件相關(guān)的開發(fā)環(huán)境通常帶有豐富的庫函數(shù),沒有可能也沒有必要去全部了解。對于實現(xiàn)某種功能,還是咨詢技術(shù)支持需要調(diào)用哪些函數(shù)為好。l硬件供貨商可以修改部分函數(shù)源代碼以滿足客戶要求。PCC勵磁實現(xiàn)方案l關(guān)鍵:輸出控制脈沖、交流采樣能達公司準備了兩個CPU模塊,一個專門用于實現(xiàn)交流采樣。l貝加萊公司的支持:控制脈沖輸出部分的原理和代碼交流采樣的實現(xiàn)原理l其他硬件相關(guān)功能:參數(shù)固化CAN通信(PCC模塊不支持1M波特率,CAN讀寫函

9、數(shù)中的id屬性含義不同)網(wǎng)上資源l硬件供貨商通常在自己的主頁提供了大量示范程序、相關(guān)軟件升級包。l對于某些常用功能網(wǎng)上通常也有相關(guān)代碼和說明。CAN通信(Sja1000)定點開方浮點與定點lIP161定點CPU中定點乘除僅幾個指令周期,而浮點乘除約幾十個周期,浮點開方接近ms級。l浮點DSP可以直接使用浮點操作數(shù)。錯誤l所有軟件都存在錯誤!l錯誤可分成兩種:影響正常執(zhí)行功能的錯誤;不影響功能,只對性能有一些影響。定點CPU中的浮點算法la=a*0.866la=(a1)+(a2)+(a3)-(a7)-(a10)即0.5+0.25+0.125-0.0078125-0.0009765625=0.8662109375相對誤差:0.0214%8660254.02/3排查錯誤l利用成熟的程序檢驗新的算法程序l錯誤定位斷點跳過部分函數(shù)功能缺陷:達不到的給定值P.U.t1.0VtRef錯誤原因l浮點計算定點化dRef=V-RefdAlpha=(KvdRef)12Vav=Vav+(dRefKi)12Alphaav=Alphaav+(dAlphaKi)12Alpha=Alphaav+dAlpha錯誤分析l分析dRefKi 、dAlphaKi小于212時,Vav和Alphaav不再變化。

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論