![基于MATLAB的開關(guān)磁阻電機調(diào)速系統(tǒng)的建模與仿真_第1頁](http://file4.renrendoc.com/view/212d88ddcb300545c481fc3e3423779a/212d88ddcb300545c481fc3e3423779a1.gif)
![基于MATLAB的開關(guān)磁阻電機調(diào)速系統(tǒng)的建模與仿真_第2頁](http://file4.renrendoc.com/view/212d88ddcb300545c481fc3e3423779a/212d88ddcb300545c481fc3e3423779a2.gif)
![基于MATLAB的開關(guān)磁阻電機調(diào)速系統(tǒng)的建模與仿真_第3頁](http://file4.renrendoc.com/view/212d88ddcb300545c481fc3e3423779a/212d88ddcb300545c481fc3e3423779a3.gif)
![基于MATLAB的開關(guān)磁阻電機調(diào)速系統(tǒng)的建模與仿真_第4頁](http://file4.renrendoc.com/view/212d88ddcb300545c481fc3e3423779a/212d88ddcb300545c481fc3e3423779a4.gif)
![基于MATLAB的開關(guān)磁阻電機調(diào)速系統(tǒng)的建模與仿真_第5頁](http://file4.renrendoc.com/view/212d88ddcb300545c481fc3e3423779a/212d88ddcb300545c481fc3e3423779a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄:
第一章開關(guān)磁阻電機調(diào)速系統(tǒng)的研究現(xiàn)狀
2
1.1開關(guān)磁阻電機調(diào)速系統(tǒng)的發(fā)展
2
1.2開關(guān)磁阻電機調(diào)速系統(tǒng)的特點和應(yīng)用領(lǐng)域
2
1.3當(dāng)前的主要研究熱點和發(fā)展方向
3
第二章開關(guān)磁阻電機調(diào)速系統(tǒng)的基本理論分析
4
2.1開關(guān)磁阻電動機調(diào)速系統(tǒng)的組成
4
2.2開關(guān)磁阻電動機介紹
4
2.3開關(guān)磁阻電機的國內(nèi)外研究
5
2.4開關(guān)磁阻電機結(jié)構(gòu)原理
6
2.5SRD系統(tǒng)功率變換器
8
2.6SRD系統(tǒng)功率控制器
9
2.7SRD系統(tǒng)檢測單元
10
第三章SRD系統(tǒng)的控制策略
11
3.1角度位置(APC)控制
11
3.2電流斬波(CCC)控制
12
3.3電壓PWM控制
13
3.4小結(jié)
13
第四章開關(guān)磁阻電機調(diào)速系統(tǒng)的數(shù)學(xué)建模與仿真
14
4.1開關(guān)磁阻電機調(diào)速系統(tǒng)的數(shù)學(xué)建模
14
4.2開關(guān)磁阻電機調(diào)速系統(tǒng)的仿真
21
總結(jié)
25
基于MATLAB的開關(guān)磁阻電機調(diào)速系統(tǒng)的建模與仿真
第一章開關(guān)磁阻電機調(diào)速系統(tǒng)的研究現(xiàn)狀
1.1開關(guān)磁阻電機調(diào)速系統(tǒng)的發(fā)展
20世紀(jì)60年代以前,在需要可逆、可調(diào)速與高性能的電氣傳動技術(shù)領(lǐng)域中,直流傳動系統(tǒng)一直占領(lǐng)統(tǒng)治地位。自60年代以后,隨著電力電子技術(shù)、微電子技術(shù)和現(xiàn)代控制理論的發(fā)展,交流電氣傳動技術(shù)發(fā)生了日新月異的變化,特別是異步電動機矢量控制和直接轉(zhuǎn)矩控制理論的產(chǎn)生及應(yīng)用技術(shù)的推廣,使得異步電動機變頻調(diào)速系統(tǒng)具備了寬調(diào)速范圍、高穩(wěn)態(tài)精度,快速動態(tài)響應(yīng)及四象限運行等良好的技術(shù)性能,其動、靜態(tài)特性完全可以和直流傳動系統(tǒng)相媲美,于是出現(xiàn)了交流傳動取代直流傳動的趨勢。但是,異步電動機變頻調(diào)速系統(tǒng)也尚有一些未盡如人意之處。
正是在電氣傳動技術(shù)得到迅猛發(fā)展的時代背景下,20世紀(jì)80年代國際上推出了一種新型交流電動機調(diào)速系統(tǒng)—開關(guān)磁阻電動機調(diào)速系統(tǒng)簡稱SRD(SwitchedReluctanceMotorDrive)。它是繼變頻調(diào)速、無換向器電動機調(diào)速系統(tǒng)之后,于80年代中期發(fā)展起來的新型交流調(diào)速系統(tǒng)。該系統(tǒng)是將新的電動機結(jié)構(gòu)—開關(guān)型磁阻電動機(SwitchedReluctanceMotor,簡稱SRM)與現(xiàn)代電力電子技術(shù)、控制技術(shù)合為一體,兼有異步電動機變頻調(diào)速系統(tǒng)和直流電動機調(diào)速系統(tǒng)的優(yōu)點,已成為當(dāng)代電氣傳動的熱門課題之一。
1.2開關(guān)磁阻電機調(diào)速系統(tǒng)的特點和應(yīng)用領(lǐng)域
開關(guān)磁阻電機是一種新型調(diào)速電機,調(diào)速系統(tǒng)兼具直流、交流兩類調(diào)速系統(tǒng)的優(yōu)點,是繼變頻調(diào)速系統(tǒng)、無刷直流電動機調(diào)速系統(tǒng)的最新一代無極調(diào)速系統(tǒng)。
開關(guān)磁阻電機調(diào)速系統(tǒng)的特點:
(1)電動機結(jié)構(gòu)簡單、成本低、適用于高速
(2)各相工作獨立、系統(tǒng)可靠性高
(3)功率電路簡單可靠
(4)起動轉(zhuǎn)矩高,啟動電流小
(5)可控參數(shù)多,調(diào)速性能好
(6)適用于頻繁啟動、停車以及正反轉(zhuǎn)運行
(7)效率高,損耗小
開關(guān)磁阻電動機調(diào)速系統(tǒng)作為一種新型的調(diào)速系統(tǒng),兼有直流傳動和普通交流傳動的優(yōu)點,以向各種傳統(tǒng)調(diào)速系統(tǒng)挑戰(zhàn)的勢頭正在逐步應(yīng)用在家用電器、一般工業(yè)、伺服與調(diào)速系統(tǒng)、牽引電動機、高速電動機、航天器械以及汽車輔助設(shè)備等領(lǐng)域,顯示出強大的市場競爭力。
開關(guān)磁阻電動機由于具有串勵直流電動機的特性,因此在發(fā)展的初期主要應(yīng)用在電力機車的牽引上。隨著進一步的發(fā)展,開關(guān)磁阻電動機調(diào)速系統(tǒng)將逐漸占據(jù)電氣傳動市場。另外,對于低壓、小功率的應(yīng)用場合,開關(guān)磁阻電動機遠優(yōu)于普通的異步電動機和直流電動機。例如使用開關(guān)磁阻電動機驅(qū)動風(fēng)扇、泵類、壓縮機等,可以在寬廣的速度范圍內(nèi)實現(xiàn)高效率的運行,且節(jié)能明顯,可以在短期內(nèi)收回成本。經(jīng)濟型小功率開關(guān)磁阻電動機調(diào)速系統(tǒng)有廣闊的市場,尤其是在家用電器方面的應(yīng)用。
1.3當(dāng)前的主要研究熱點和發(fā)展方向
開關(guān)磁阻電動機調(diào)速系統(tǒng)同樣也存在一些自身的不足和缺點,這主要表現(xiàn)在以下幾個方面:
(1)系統(tǒng)采用的是磁阻式電動機,其能量轉(zhuǎn)換密度低于電磁式電動機。
(2)開關(guān)磁阻電動機運行時轉(zhuǎn)矩脈動較大,通常轉(zhuǎn)矩脈動的典型值為±15%,由轉(zhuǎn)矩脈動導(dǎo)致的噪聲問題以及待定頻率下的諧振問題也較為突出。
(3)開關(guān)磁阻電動機相數(shù)越多,主接線數(shù)越多。
(4)系統(tǒng)運行需要電動機位置信號的反饋,而位置傳感器的引入使電動機結(jié)構(gòu)復(fù)雜,安裝調(diào)試困難。電動機和控制器之間的連線增加,而且位置傳感器的分辨率有限,使系統(tǒng)的運行性能下降。
(5)籠型異步電動機可以直接接入電網(wǎng)穩(wěn)定運行,可以沒有控制環(huán)節(jié),而開關(guān)磁阻電動機必須配合控制器才能穩(wěn)定工作。
針對上述缺點,國內(nèi)外對開關(guān)磁阻電動機調(diào)速系統(tǒng)做了進一步的研究,研究的方向有:
(1)進一步完善開關(guān)磁阻電動機的設(shè)計理論,建立一套效率高、適用于工程設(shè)計要求的優(yōu)化設(shè)計法。
(2)加強對鐵心損耗理論的研究。
(3)加強對轉(zhuǎn)矩脈動及噪聲的理論研究,提高電機的功率因數(shù)。
(4)改善電機靜態(tài)及動態(tài)性能仿真模型。
(5)完善開關(guān)磁阻電動機、功率變換器及控制器三者之間的協(xié)調(diào)設(shè)計。
(6)實用無位置傳感器方案的研究。
(7)開關(guān)磁阻電機轉(zhuǎn)矩波動最小化技術(shù)。
第二章開關(guān)磁阻電機調(diào)速系統(tǒng)的基本理論分析
2.1開關(guān)磁阻電動機調(diào)速系統(tǒng)的組成
開關(guān)磁阻電動機調(diào)速系統(tǒng)是一種新型機電一體化交流調(diào)速系統(tǒng),主要由四部分組成:開關(guān)磁阻電動機、功率變換器、控制器和檢測器,如圖2-1所示。
圖2-1:開關(guān)磁阻電機調(diào)速系統(tǒng)(SRD)框圖
2.2開關(guān)磁阻電動機介紹
開關(guān)磁阻電機(SR電機)的基本結(jié)構(gòu)及基本原理的提出可追溯到19世紀(jì)40年代,那時的電機研究人員已認識到利用順序磁拉力使電機旋轉(zhuǎn)是簡單易行的,但由于電機的運行特性(效率、功率因數(shù)、利用系數(shù)等)很差,僅應(yīng)用于少數(shù)小功率場所,因而一直沒有引起人們的研究興趣。直到20世紀(jì)60年代,大功率晶閘管投入使用,為開關(guān)磁阻電機的研究和發(fā)展奠定了重要的物質(zhì)基礎(chǔ)。
“開關(guān)磁阻電機(SwitchedReluctanceMotor)”一詞源見于美國學(xué)者S.A.Nasar1969年所撰論文,他描述了這種電機的兩個基本特征:①開關(guān)性——電機必須工作在一種連續(xù)的開關(guān)模式,這是為什么在各種新型半導(dǎo)體器件可以獲得后這種電機才可以發(fā)展的主要原因;②磁阻性——它是真正的磁阻電機,定轉(zhuǎn)子具有可變的磁阻回路,更確切的說是一種雙凸極電機。開關(guān)磁阻電機的概念非常久遠,可以追溯到19世紀(jì)稱為“電磁發(fā)動機”的發(fā)明,這也是現(xiàn)代步進電機的先驅(qū)。在美國,這種電機常常被稱為“可變磁阻電機(VariableReluctanceMotor,VR電機)”一詞,但是VR電機也是步進電機的一種形式,容易引起混淆。有時人們也用“無刷磁阻電機(BrushlessReluctanceMotor)”一詞,以強調(diào)這種電機的無刷性。“電子換向磁阻電機(ElectronicallycommutatedReluctanceMotor)”一詞也曾采用,從工作原理來看,甚至比“開關(guān)磁阻”的說法更準(zhǔn)確一些,但容易與電子換向的永磁直流電機相混。
2.3開關(guān)磁阻電機的國內(nèi)外研究
開關(guān)磁阻電機是80年代初隨著電力電子和控制技術(shù)的迅猛發(fā)展而發(fā)展起來的一種新型調(diào)速驅(qū)動系統(tǒng),具有結(jié)構(gòu)簡單、運行可靠及效率高等突出特點,成為交流電機調(diào)速系統(tǒng)、直流電機調(diào)速系統(tǒng)和無刷直流電機調(diào)速系統(tǒng)的強有力的競爭者,引起各國學(xué)者和企業(yè)界的廣泛關(guān)注。
2.3.1國外研究
1970年,英國Leeds大學(xué)步進電機研究小組首創(chuàng)一個開關(guān)磁阻電機(SwitchedReluctanceMotor,SRM)雛形,這是關(guān)于開關(guān)磁阻電機最早的研究。
1980年在英國成立了開關(guān)磁阻電機驅(qū)動裝置有限公司(SRDLtd.),專門進行SRD系統(tǒng)的研究、開發(fā)和設(shè)計。
1983年英國(SRDLtd.)首先推出了SRD系列產(chǎn)品,該產(chǎn)品命名為OULTON。1984年TASC驅(qū)動系統(tǒng)公司也推出了他們的產(chǎn)品。另外SRDLtd.研制了一種適用于有軌電車的驅(qū)動系統(tǒng),到1986年已運行500km。該產(chǎn)品的出現(xiàn),在電氣傳動界引起不小的反響。在很多性能指標(biāo)上達到了出人意料的高水平,整個系統(tǒng)的綜合性能價格指標(biāo)達到或超過了工業(yè)中長期廣泛應(yīng)用的一些變速傳動系統(tǒng)。
跨國電機公司Emerson電氣公司還將開關(guān)磁阻電機視為其下世紀(jì)調(diào)速驅(qū)動系統(tǒng)的新的技術(shù)、經(jīng)濟增長點。目前開關(guān)磁阻電機已廣泛或開始應(yīng)用于工業(yè)、航空業(yè)和家用電器等各個領(lǐng)域。
從近幾年國際會議上有關(guān)開關(guān)磁阻電機調(diào)速系統(tǒng)的文章來看,對開關(guān)磁阻電機調(diào)速系統(tǒng)的研究工作己從論證它的優(yōu)點、開發(fā)應(yīng)用的階段進入設(shè)計理論、優(yōu)化設(shè)計階段。對開關(guān)磁阻電機、控制器、功率轉(zhuǎn)換器等的運行理論、優(yōu)化設(shè)計、結(jié)構(gòu)形式等方面進行了更深入的研究。可以預(yù)料,隨著現(xiàn)代電子學(xué)的發(fā)展,微處理器運行速度的提高,高性能大容量電力電子器件的發(fā)展,在不久的將來有望實現(xiàn)高性能的控制策略,從而使開關(guān)磁阻電機調(diào)速系統(tǒng)的性能價格比得到進一步的提高。
2.3.2國內(nèi)研究
從1984年開始,我國許多單位先后開展了SR電機的研究工作,如北京紡織機電研究所、南京航空航天大學(xué)、東南大學(xué)、福州大學(xué)、華中理工大學(xué)、華南理工大學(xué)、河海大學(xué)、合肥工業(yè)大學(xué)、哈爾濱電工學(xué)院、南京調(diào)速電機廠、西安微電機研究所、上海電科所、上海中達一斯米克公司等,且開關(guān)磁阻電機調(diào)速系統(tǒng)的研究被列為中小型電機“七五科研規(guī)劃項目”。在借鑒國外經(jīng)驗的基礎(chǔ)上,我國SR電機調(diào)速系統(tǒng)的開發(fā)研究起點較高,目前各單位都集中于較優(yōu)的三相和四相控制方案,至今國內(nèi)已有十余家單位推出不同性能、不同用途的從1kw至55kw等多種規(guī)格的系列產(chǎn)品,應(yīng)用于紡織、冶金、機械、運輸?shù)刃袠I(yè)的數(shù)十種生產(chǎn)機械和交通工具中。
1988年在南京召開了第一屆開關(guān)磁阻電機研討會。1991年在武漢召開了第二屆研討會。1992年初成立了中國電工技術(shù)學(xué)會中小型電機專業(yè)委員會下設(shè)的開關(guān)磁阻電機學(xué)組,以推動開關(guān)磁阻電機研究工作的進一步發(fā)展。從此,我國對開關(guān)磁阻電機的研究工作己從摸索合理的設(shè)計方法發(fā)展為如何加速優(yōu)化以進行開關(guān)磁阻電機的設(shè)計,在開關(guān)磁阻電機繞組互感對運行的影響、轉(zhuǎn)矩脈振、最佳電流波形、振動與噪音、發(fā)熱以及鐵耗計算等方面出現(xiàn)了許多獨特的觀點和見解;在控制方面,正在進行用Intel公司的MCS-96或Motorola公司的M68000系列單片機取代MCS51單片機的工作,以提高控制系統(tǒng)的響應(yīng)速度,降低成本,實現(xiàn)復(fù)雜的控制策略。
近20年來,SR電機的研究在國內(nèi)外取得了很大的發(fā)展,但作為一種新型調(diào)速驅(qū)動系統(tǒng),研究的歷史還較短,其技術(shù)涉及到電機、微電子、電力電子、微機、控制、機械及工程應(yīng)用等眾多學(xué)科領(lǐng)域的新技術(shù),變頻調(diào)速感應(yīng)電機、無換向器直流電機等經(jīng)歷了幾個年代的開發(fā)推廣,目前己領(lǐng)先一步,有著極其廣闊的市場前景。
2.4開關(guān)磁阻電機結(jié)構(gòu)原理
開關(guān)磁阻電機是一種新型調(diào)速電機,調(diào)速系統(tǒng)兼具直流、交流兩類調(diào)速系統(tǒng)的優(yōu)點,是繼變頻調(diào)速系統(tǒng)、無刷直流電動機調(diào)速系統(tǒng)的最新一代無極調(diào)速系統(tǒng)。它的結(jié)構(gòu)簡單堅固,調(diào)速范圍寬,調(diào)速性能優(yōu)異,且在整個調(diào)速范圍內(nèi)都具有較高效率,系統(tǒng)可靠性高。主要由開關(guān)磁阻電機、功率變換器、控制器與位置檢測器四部分組成??刂破鲀?nèi)包含控制電路與功率變換器,而轉(zhuǎn)子位置檢測器則安裝在電機的一端。
其電機部分由于是運用了磁阻最小原理,故稱為磁阻電動機,又由于線圈電流通斷、磁通狀態(tài)直接受開關(guān)控制,故稱為開關(guān)磁阻電動機。
圖2-2:四相8/6極SR電動機A相電路結(jié)構(gòu)
圖中,﹑是電子開關(guān),﹑是二極管,是直流電源。電機定子和轉(zhuǎn)子呈凸極形狀,極數(shù)互不相等,轉(zhuǎn)子由疊片構(gòu)成,且?guī)в形恢脵z測器以提供轉(zhuǎn)子位置信號,使定子繞組按一定的順序通斷,維持電動機的連續(xù)運行。電機磁阻隨著轉(zhuǎn)子磁極與定子磁極的中心線對準(zhǔn)或錯開而變化,當(dāng)轉(zhuǎn)子磁極在定子磁極中心線位置時,相繞組電感最大,當(dāng)轉(zhuǎn)子極間中心線對準(zhǔn)定子磁極中心線時,相繞組電感最小。當(dāng)定子D-D′極勵磁時,所產(chǎn)生的磁力則力圖使轉(zhuǎn)子旋轉(zhuǎn)到轉(zhuǎn)子極軸線1-1′與定子極軸線D-D′重合的位置,并使D相勵磁繞組的電感最大。若以圖中定、轉(zhuǎn)子所處的相對位置作為起始位置,則依次給D→A→B→C相繞組通電,轉(zhuǎn)子即會以逆時針方向連續(xù)旋轉(zhuǎn);反之,若依次給B→A→D→C相通電,則電機即會沿著順時針方向旋轉(zhuǎn)??梢钥闯觯琒R電動機的轉(zhuǎn)向與相繞組的電流方向無關(guān),而僅取決于相繞組通電的順序。另外,當(dāng)主開關(guān)器件﹑導(dǎo)通時,A相繞組從直流電源吸收電能,而當(dāng)﹑關(guān)斷時,繞組電流經(jīng)續(xù)流二極管﹑繼續(xù)流通,并回饋給電源,因此,SR電機傳動的共性特點是具有能量再生作用,系統(tǒng)效率高。
圖2-3:相電感、轉(zhuǎn)矩隨轉(zhuǎn)子位置的變化圖
由于電動機磁路的非線性,通常SR電動機的轉(zhuǎn)矩應(yīng)根據(jù)磁共能來計算,即:
(2-1)式中——轉(zhuǎn)矩,——磁共能,——轉(zhuǎn)子位置角,——繞組電流
基于圖2-3a的簡化線性模型,式(2-1)可化簡為式(2-2),即:
(2-2)
通過控制加到SR電動機繞組中電流脈沖的幅值、寬度及其與轉(zhuǎn)子的相對位置,即可控制SR電動機轉(zhuǎn)矩的大小與方向,這正是SR電動機調(diào)速控制的基本原理。
2.5SRD系統(tǒng)功率變換器
功率變換器是SRD系統(tǒng)能量傳輸?shù)年P(guān)鍵部分,是影響系統(tǒng)性能價格比的主要因素,由蓄電池或交流電整流后得到的直流電提供電源,起控制繞組開通與關(guān)斷的作用。由于SR電機繞組電流是單向的,使得功率變換器主電路不僅結(jié)構(gòu)簡單,而且相繞組與主開關(guān)器件是串聯(lián)的,可以避免直通短路危險。但是合理選擇和設(shè)計功率變換器是提高SRD的性能價格比的關(guān)鍵之一,功率變換器主電路形式的選取對SRM的設(shè)計也直接產(chǎn)生影響。SR電機的功率變換器主電路的結(jié)構(gòu)形式與供電電壓、電動機相數(shù)及主開關(guān)器件的種類有關(guān)。
目前,常用的功變換器主電路有許多種,應(yīng)用最普遍的有不對稱半橋電路,雙繞組電路,裂相式電路,電容裂相型電路,H橋型電路等。
(a)不對稱半橋電路(b)雙繞組電路 (c)裂相式電路
圖2.4三種基本的功率變換電路
圖2.4(a)所示的主電路為單電源供電方式,每相有兩個主開關(guān),工作原理簡單。斬波時可以同時關(guān)斷兩個主開關(guān),也可只關(guān)斷一個。這種主電路中主開關(guān)承受的額定電壓為U0它可用于任何相數(shù)、任何功率等級的情況下,在高電壓、大功率場合下有明顯的優(yōu)勢,它用于任何相數(shù),任何功率等級的情況下,在高電壓、大功率場合下有明顯的優(yōu)勢。圖2.4(b)所示的主電路特點是有一個初級繞組W1與一個次級繞組W2完全鍋臺(通常采用雙股并繞)。工作時,電源通過開關(guān)管V向繞組W1供電;V關(guān)斷后,磁場儲能由W2通過續(xù)流二極管VD向電源回饋。V承受的最大工作電壓為2U,考慮到過電壓因素的影響,v的反向阻斷電壓定額通常取4Uo可以看出.這種主電路每相只有一個主開關(guān),所用開關(guān)器件數(shù)少。其缺點是電機與功率變換器的連線較多,電機的繞組利用率較低。圖2.4(c)所示的主電路為裂相式電路,以對稱電源供電。每相只有一個主開關(guān),上橋臂從上電源吸收能量,并將剩余的能量回饋到下電源,或從下電源吸取能量,將剩余的能量回饋到上電源。因此,為保證上、下橋電壓的平衡,這種主電路只能使用于偶數(shù)相電機。主開關(guān)正常工作時的最大反向電壓為U。由于每相繞組導(dǎo)通時繞組兩端電壓僅為U/2,要做到SRM出力相當(dāng),電機繞組的工作電流須為圖2.4(a)所示的主電路時的兩倍。這三種主電路各有優(yōu)、缺點。圖2.4(b)、(c)所示的主電路所需主開關(guān)的數(shù)目少,圖2.4(a)所示的主電路控制起來靈活,流經(jīng)主開關(guān)的電流小,適配電機的范圍大。由于各主電路的主開關(guān)總伏安容量大抵相等,成本相差不大。
2.6SRD系統(tǒng)功率控制器
控制電路是SRD系統(tǒng)的控制核心,與標(biāo)準(zhǔn)的自動控制系統(tǒng)相對應(yīng),控制電路充當(dāng)比較元件和校正裝置,它根據(jù)輸入(給定轉(zhuǎn)速)的要求,對控制對象SRM的轉(zhuǎn)速進行合理的調(diào)節(jié),使之與給定轉(zhuǎn)速趨于一致,以達到調(diào)速的目的,是SRD系統(tǒng)的中樞。它主要由單片機和外圍電路組成。單片機根據(jù)反饋的SRM轉(zhuǎn)子位置信號和轉(zhuǎn)速信號,采用一定的控制策略,控制功率電路中功率管的開通與關(guān)斷控制,獲得相應(yīng)的機械特性。控制器是調(diào)速系統(tǒng)的中樞。它綜合處理輸入的速度指令、速度反饋信號及電流傳感器、位置傳感器的反饋信息。由它來控制功率變換器中主開關(guān)器件的工作狀態(tài)。
在SRD系統(tǒng)中,要求控制器具有下述性能:實現(xiàn)電流斬波控制(CCC控制);實現(xiàn)角度位置控制(APC控制);實現(xiàn)啟動、制動、停車及四象限運行;速度調(diào)節(jié)。除單片機和外圍電路控制器外還有采用模糊控制理論與PID調(diào)節(jié)器相結(jié)合的控制方法控制開關(guān)磁阻電機驅(qū)動控制系統(tǒng),以DSP(TMS320LF2407)為核心開關(guān)磁阻電機調(diào)速系統(tǒng)控制器電路達到了簡化電路結(jié)構(gòu)、提高運行可靠性的目的,基于現(xiàn)場可編程門陣列(FPGA)的模糊控制器,提高整個調(diào)速系統(tǒng)的綜合性能,基于雙DSP的磁浮開關(guān)磁阻電機全數(shù)字控制器,以C8051F120為控制核心的高速開關(guān)磁阻電機數(shù)字控制器等。
2.7SRD系統(tǒng)檢測單元
檢測單元由位置檢測和電流檢測環(huán)節(jié)組成,提供轉(zhuǎn)子的位置信息以決定各項繞組的開通與關(guān)斷,提供電流信息來完成電流斬波控制或采取相應(yīng)的保護措施以防止過電流。
2.7.1位置檢測
位置檢測電路實際上是位置、速度器,負責(zé)給控制電路提供電機轉(zhuǎn)子的位置和轉(zhuǎn)速信息,這信息經(jīng)邏輯處理后形成功率開關(guān)的觸發(fā)信號,所以位置檢測器是開關(guān)磁阻調(diào)速電動機的關(guān)鍵部件和特征部件。位置檢測器通常由齒盤和光電傳感器組成,傳感器可以采用光敏式器件、電磁式器件或磁敏式器件。高精度的位置檢測器采用旋轉(zhuǎn)編碼器,但價格高。
SRD對位置檢測的一般要求是在運行速度范圍內(nèi)能滿足檢測的精度要求;其次要求電路簡單、工作可靠、抗干擾能力強;有的還要求能在惡劣環(huán)境下工作。
開關(guān)磁阻電機的位置檢測環(huán)節(jié),目前主要分為兩大類,即直接位置檢測和間接位置檢測。直接位置檢測一般是指使用光電式、磁敏式位置傳感器以及接近開關(guān)等器件進行位置檢測;而間接位置是指無位置傳感器檢測方法,比如定子繞阻瞬態(tài)電感信息的波形檢測法、基于狀態(tài)觀測器的無位置傳感器檢測法以及反串線圈檢測法等技術(shù)。
2.7.2電流檢測
SRD驅(qū)動系統(tǒng)無論在高速運行時,還是低速運行都需要對電流進行檢測,電流檢測是電流斬波控制方式的需要,也是過電流保護的需要。在SRD系統(tǒng)中,電流是單向、脈動的,而且波形隨運行方式,運行條件不同而不同,因此,要求電流檢測器的性能要好,快速性好;主電路與控制電路隔離良好,具有一定的抗干擾能力;靈敏度高,檢測頻帶范圍寬;工作范圍大,在工作范圍內(nèi)有良好的線性度。電流檢測可采用電阻取樣隔離法、磁敏電阻法、霍爾元件直接測量法等。
第三章SRD系統(tǒng)的控制策略
SR電動機的控制方式指電機運行時對哪些參數(shù)進行控制及如何進行控制,使電機達到期望的運行狀況(如期望的轉(zhuǎn)速、轉(zhuǎn)向、轉(zhuǎn)矩等),并使其保持較高的動態(tài)性能和運行效率。SR電動機的控制方式主要針對以上幾個可控變量來進行控制,一般分為:角度位置控制方式(AngularPositionControl,簡稱APC控制)、電流斬波控制方式(ChoppedCurrentControl,簡稱CCC控制)和電壓PWM控制方式。
3.1角度位置(APC)控制
角度控制就是對決定SR電機性能的兩個主要控制參數(shù)開通角和關(guān)斷角進行最優(yōu)控制。通過改變開通角和關(guān)斷角,可實現(xiàn)電磁轉(zhuǎn)矩性質(zhì)、大小和相電流波形的最優(yōu)控制,從而最佳地調(diào)節(jié)SRM的效率、轉(zhuǎn)子轉(zhuǎn)速以及轉(zhuǎn)向。在假設(shè)轉(zhuǎn)速、母線電壓不變的情況下,固定并調(diào)節(jié)隨著的增加,開通電流時間增加;同理,當(dāng)固定,調(diào)節(jié),隨著的減小,開通電流時間增加。并且調(diào)節(jié),相電流的改變更加顯著。
APC控制方式的特點:
首先,電機轉(zhuǎn)矩調(diào)節(jié)范圍大。假設(shè)定義電流存在區(qū)間占電流周期的比例為電流占空比,則在極端情況下,角度位置控制的電流占空比的變化范圍幾乎從0-100%,電流的大小直接影響著轉(zhuǎn)矩的大小,因此轉(zhuǎn)矩調(diào)節(jié)的范圍將很大。其次,電動機在角度位置控制方式下運行效率高。通過角度優(yōu)化,能使電動機在不同負載下保持較高的效率,可實現(xiàn)效率最優(yōu)控制或轉(zhuǎn)矩最優(yōu)控制。
但是,角度位置控制不太適用于低速。因為轉(zhuǎn)速降低時,旋轉(zhuǎn)電動勢減小,使電流峰值增大,必須進行限流,因此角度位置控制一般用于轉(zhuǎn)速較高的應(yīng)用場合。
3.2電流斬波(CCC)控制
電流斬波控制就是保持開通角和關(guān)斷角不變,通過給定的允許電流上限幅值和下限幅值來控制有效電壓的導(dǎo)通時間。開通角位置功率電路開關(guān)器件導(dǎo)通,繞組電流從O開始上升,當(dāng)電流超過指令值達到電流上限值時,開關(guān)器件關(guān)斷切斷繞組電流,繞組承受反壓,電流快速下降。經(jīng)一段時間后,電流低于指令值達到電流下限值時,重新使開關(guān)器件導(dǎo)通,繞組在正向電壓作用下電流又開始回升,不斷重復(fù)這一過程,則形成斬波電流波形,直至關(guān)斷角位置功率開關(guān)器件關(guān)斷,電流衰減至0,SRM進行換向,對換向后的繞組仍然采用電流斬波控制。
CCC控制方式的特點:
電流斬波控制較適用于電動機運行在低速的情況下。電機在低速運行時,繞組中旋轉(zhuǎn)電動勢小,電流增長快。在制動運行時,旋轉(zhuǎn)電動勢的方向與繞組端電壓方向相同,電流比低速運行時增長更快。兩種情況下,采用電流斬波控制方式正好能夠限制電流峰值超過允許值,起到良好有效的保護和調(diào)節(jié)效果。
當(dāng)斬波周期較小,并忽略相導(dǎo)通和相關(guān)斷時電流建立和消失的過程(轉(zhuǎn)速低時近似成立)時,電流波形呈較寬的平頂波,故產(chǎn)生的轉(zhuǎn)矩也比較平穩(wěn),合成轉(zhuǎn)矩脈動明顯比其它控制方式小,因此較適合用于轉(zhuǎn)矩調(diào)節(jié)系統(tǒng)。
但是該控制方式在用作調(diào)速系統(tǒng)時抗負載擾動性的動態(tài)響應(yīng)慢是其一弱點,因為提高調(diào)速系統(tǒng)在負載擾動下的快速響應(yīng),除轉(zhuǎn)速檢測調(diào)節(jié)環(huán)節(jié)動態(tài)響應(yīng)快外,系統(tǒng)自身的機械特性也十分重要。電流斬波控制方式中,由于電流峰值被限,當(dāng)電機轉(zhuǎn)速在負載擾動的作用下發(fā)生突變時,電流峰值無法自動適應(yīng),使之成為特性非常軟的系統(tǒng),因此,系統(tǒng)在負載擾動下的動態(tài)響應(yīng)十分緩慢。
3.3電壓PWM控制
電壓斬波控制是SRM在低速運行時,利用電壓PWM控制器對繞組采樣電流與指令電流進行跟蹤控制。開通角位置功率電路開關(guān)器件按最大占空比導(dǎo)通,繞組電流從0開始上升,當(dāng)電流超過指令值時,通過PID調(diào)解器或其他控制算法減小開關(guān)器件導(dǎo)通的占空比,使繞組電流減小并接近指令電流;當(dāng)繞組電流小于指令電流時,再增大開關(guān)器件導(dǎo)通的占空比,使繞組電流又開始增長并接近指令電流,以后不斷重復(fù)這一過程,形成電壓斬波控制,直至關(guān)斷角位置功率開關(guān)器件完全關(guān)斷,電流衰減至0,SRM換向,對換向后的繞組仍采用電壓斬波控制。
電壓PWM控制通過調(diào)節(jié)相繞組電壓的平均值,進而能間接地限制和調(diào)節(jié)相電流,因此既能用于高速調(diào)速系統(tǒng),又能用于低速調(diào)速系統(tǒng)。電壓PWM控制法雖然簡單,迫調(diào)速范圍較小。其它特點則與電流斬波控制方式相反,它適合于轉(zhuǎn)速調(diào)節(jié)系統(tǒng),抗負載擾動的動態(tài)響應(yīng)快,缺點是低速運行時轉(zhuǎn)矩脈動較大。
3.4小結(jié)
由上所述,開關(guān)磁組電動機調(diào)速系統(tǒng)可采用多種控制方式,不同方式對應(yīng)的電動機特性差異很大,因此選擇適當(dāng)?shù)目刂品绞绞窍到y(tǒng)設(shè)計者的重要任務(wù)。由于一般要求電動機轉(zhuǎn)速范圍較寬,負載轉(zhuǎn)矩適用范圍也較寬,為了使電動機在各種不同工作條件下均有較好的性能指標(biāo),一般可選用幾種控制方式的組合。
(1)高速角度控制、低速電流斬波控制
高速時采用角度控制,低速時采用電流斬波控制有利發(fā)揮三者的長處,克服二者的短處,能在較寬調(diào)速范圍內(nèi)使電動機有較好的特性和力能指標(biāo)。這種控制方法在國內(nèi)外產(chǎn)品較普遍采用。
這種控制方法的缺點在中速較突出,因為此時對兩種控制方式均較困難。若采用角度控制則電流脈沖窄而尖,轉(zhuǎn)矩脈動大,電流峰值也大。若采用電流斬波控制,則在后續(xù)流過程較長,影響出力與效率。其解決辦法是在低速電流斬波控制時結(jié)合角度控制,當(dāng)轉(zhuǎn)速提高時,使適當(dāng)提前。
(2)變角度電壓斬波控制
這種控制方法的要點是靠電壓斬波調(diào)節(jié)電動機的轉(zhuǎn)速和轉(zhuǎn)矩,并使和隨轉(zhuǎn)速改變。由于電動機工作時,希望盡量將繞組電流波形置于電感上升段。考慮到電流的建立過程和續(xù)流消失過程需一定時間,電流波形總比通電區(qū)間-有所滯后。當(dāng)轉(zhuǎn)速越高時,由于通電區(qū)間對應(yīng)的時間越短,電流波形滯后的就越多。因此要求通電區(qū)間提前的角度應(yīng)越多。此種工作方式轉(zhuǎn)速轉(zhuǎn)矩調(diào)節(jié)范圍大,高速低速均有較好的電動機性能,且不存在兩種不同控制方式互相轉(zhuǎn)換的問題,因此在近年一些國內(nèi)外產(chǎn)品采用。其缺點是控制方式的實現(xiàn)稍顯復(fù)雜,同時要求功率開關(guān)的工作頻率較高,否則斬波噪聲比較大。
第四章開關(guān)磁阻電機調(diào)速系統(tǒng)的數(shù)學(xué)建模與仿真
4.1開關(guān)磁阻電機調(diào)速系統(tǒng)的數(shù)學(xué)建模
4.1.1SR電機的方程
建立SR電動機數(shù)學(xué)模型時,為了簡化分析,特作如下假設(shè):
(1)忽略鐵心的磁滯和渦流效應(yīng),且不計磁場邊緣效應(yīng);
(2)在一個電流脈沖周期,轉(zhuǎn)速恒定不變;
(3)主電路供給電源的直流電壓恒定不變。
在建立各項方程前,設(shè)相SR電機各相結(jié)構(gòu)和參數(shù)一樣,且第相的磁鏈為、電壓為、電阻為、電感為、電流為、轉(zhuǎn)矩為,轉(zhuǎn)子位置角為,電機的實時轉(zhuǎn)速為。
下面分別針對這種“理想”的機電系統(tǒng)建立磁鏈方程、電壓方程和機械聯(lián)系方程。
1.磁鏈方程
一般來說,SR電動機的各相繞組磁鏈為該相電流與自感、其余各相電流以及轉(zhuǎn)子位置角的函數(shù),即:
(4-1)
由于SR電動機各相之間的互感相對自感來說甚小,為了便于計算,一般忽略相間互感,因此,磁鏈方程也可簡寫成該相電流和電感的乘積,即:
(4-2)
其中,每相的電感是相電流和轉(zhuǎn)子位置角的函數(shù),它隨著轉(zhuǎn)子角位置而變化,這正是SR電動機的特點。
2.電壓方程
由基爾霍夫定律可列寫出第相回路電壓平衡方程。施加在各定子繞組端的電壓等于電阻壓降和因磁鏈變化而產(chǎn)生的感應(yīng)電勢作用之和,故第k相繞組電壓方程:
(4-3)
將2-2代入上式可得:
(4-4)
3.機械方程
按照力學(xué)定律可得出在電動機電磁轉(zhuǎn)矩和負載轉(zhuǎn)矩作用下的轉(zhuǎn)子機械運動方程:
(4-5)
4.1.2SR電機系統(tǒng)的線性分析
電感與轉(zhuǎn)子位置角的關(guān)系分析
圖4-1電感與轉(zhuǎn)子位置角的關(guān)系
由圖,可以得到“理想化”的線性SR電動機電感的分段線性方程,其繞組電感與轉(zhuǎn)子位置角的關(guān)系如下:
=(4-6)
其中
繞組電流分析
SR電動機各相繞組通過功率電路供電,當(dāng)功率電路的開關(guān)器件導(dǎo)通時,繞組電壓為電源電壓。假設(shè)繞組電感僅是轉(zhuǎn)子位置的線性函數(shù),且在式(4-3)中,繞組的電阻壓降和相比起來很小,可以忽略掉,故(4-3)式可化簡成:
(4-7)又,故有
(4-8)方程的兩邊同乘繞組電流,可得功率平衡方程:
.(4-9)
由于繞組電感的表達式(4-6)是分段線性解析式,故需分段給出初始條件求解關(guān)于繞組電流的微分方程式。
(1)如圖4-1所示,在到區(qū)域,,將作為初值條件結(jié)合式(4-8)解得:
(4-10)
分析式(4-10)可知,若減小,則電流幅值會相應(yīng)的增加。因此通過合理選擇繞組開通角,即可使相電流在進入有效工作區(qū)域前達到一定的數(shù)值,以保證在電感上升段產(chǎn)生足夠大的電動轉(zhuǎn)矩。
(2)在到關(guān)斷角區(qū)段,,將(4-10)所推出的結(jié)果作為該區(qū)段的初值條件,結(jié)合式(4-8)解得:
(4-11)
對應(yīng)的電流變化率為:
(4-12)
(3)在到區(qū)域,,繞組處于續(xù)流狀態(tài),相電流在反向及旋轉(zhuǎn)電動勢的作用下以較快的速率下降。類似可得到電流表達式為:(4-13)
(4)在到區(qū)域,,繞組電流為:
(4-14)電流變化率為:
(4-15)
(5)在到區(qū)段,,同理易得繞組電流表達式為:
(4-16)
顯然,當(dāng)時,相電流己衰減至零。
這些分段電流函數(shù)可以用下面的通式統(tǒng)一描述,即:
(4-17)
電磁轉(zhuǎn)矩的分析
(4-18)
分析此式可知:
(1)SR電動機的轉(zhuǎn)矩方向不受電流方向的影響,僅取決于電感隨轉(zhuǎn)角的變化。只要在電感曲線的上升段通入繞組電流就會產(chǎn)生正向電磁轉(zhuǎn)矩,而在電感曲線的下降段通入繞組電流則會產(chǎn)生反向的電磁轉(zhuǎn)矩。
(2)電動機的電磁轉(zhuǎn)矩是由轉(zhuǎn)子轉(zhuǎn)動時氣隙磁導(dǎo)變化產(chǎn)生的,當(dāng)磁導(dǎo)對轉(zhuǎn)角的變化率越大時,轉(zhuǎn)矩也越大。
(3)電磁轉(zhuǎn)矩的大小同繞組電流的平方成正比,即使考慮到電流增大后鐵芯飽和的影響,轉(zhuǎn)矩不再與電流平方成正比,但仍隨電流的增大而增大,因此可以通過增大電流有效地增大轉(zhuǎn)矩。
轉(zhuǎn)速的分析
將上面得到的式(4-17)表示的繞組電流代入式(4-18)中,得到:
(4-19)
由此進一步得到:
(4-20)
其中。
4.1.3SR電機系統(tǒng)的非線性分析
SR電機運行的理論與任何電磁式機電裝置運行理論一樣,也可以認為是由電端口和機械端口組成的多端口裝置。當(dāng)不計磁滯、禍流,但考慮繞組間互感時,SR電機的方程可由下式表示:
(4-21)
(4-22)
(4-23)
(4-24)
(4-25)
式中:—k相繞組電壓—k相繞組電阻—k相繞組電流
—k相繞組磁鏈—轉(zhuǎn)子位置角—角速度—相繞組電磁轉(zhuǎn)矩
—SR電機電磁轉(zhuǎn)矩—SR電機相數(shù)—負載轉(zhuǎn)矩
—粘性摩擦系數(shù)—SR電機的轉(zhuǎn)子及負載的轉(zhuǎn)動慣量
式(4-21)為電機相繞組的電壓平衡方程,式(4-22)為電機相繞組的電磁轉(zhuǎn)矩方程,式(4-23)為電機的合成電磁轉(zhuǎn)矩方程,式(4-24)為電機電磁轉(zhuǎn)矩與負載轉(zhuǎn)矩平衡方程,式(4-25)為電機的轉(zhuǎn)速方程。
是各相繞組電流和轉(zhuǎn)子位置角的函數(shù),即:
(4-26)
電機的磁鏈可用各相電感和電流的乘積表示:
(4-27)其中,表示第k相自感,表示各相與第k相間的互感。
考慮互感影響時,可得:
(4-28)
由式(4-28)可見,由于考慮了各相繞組間的互感,電機的電壓平衡方程變得相當(dāng)復(fù)雜。當(dāng)忽略相間互感的影響時,既是相電流與轉(zhuǎn)子位置角度的函數(shù),又是相繞組電感與的函數(shù):
(4-29)
將式(4-28)代入式(4-21)得下式:
(4-30)
根據(jù)機電能量轉(zhuǎn)換的基本原理,電機任一相的瞬時電磁轉(zhuǎn)矩可以按下式求出:
(4-31)
式中:為繞組的貯能;
為繞組的磁共能,即為禍合磁場在轉(zhuǎn)子位置增量內(nèi)的磁共能增量。
于是有:
(4-32)可以得到用狀態(tài)方程表示的SR電機的數(shù)學(xué)模型;
(4-33)
式中:,其中、、、為各相繞組電磁轉(zhuǎn)矩。各相非線性電感的表示式為:
(4-34)
非線性電磁轉(zhuǎn)矩為:
(4-35)式中:
0
。該模型相對比較簡單,可在實際中用于研究電機的動態(tài)性能。
4.2開關(guān)磁阻電機調(diào)速系統(tǒng)的仿真
4.2.1SR電機模型
4.2.2A相繞組的仿真模型
4.2.3SRD系統(tǒng)模型
4.2.4電流控制器模型
4.2.5角度控制模型
4.2.6仿真結(jié)果與分析
基于以上建立的SRD系統(tǒng)的仿真模型,SR電機的參數(shù)取,,,,,,。對電機的不同轉(zhuǎn)速時的電流和合成轉(zhuǎn)矩進行了仿真。圖4-2給出了A相電壓的波形。圖4-3給出了轉(zhuǎn)矩仿真波形,由波形可以看出,在激勵相同時,負載越大,電機從啟動到穩(wěn)態(tài)運行時轉(zhuǎn)矩波動越大。而相同負載,激勵越大,轉(zhuǎn)矩的波動也越大。圖4-4給出了轉(zhuǎn)速的波形。
圖4-2A相電壓仿真波形
圖4-3負載轉(zhuǎn)矩仿真波形
圖4-4轉(zhuǎn)速仿真波形
圖4-5為電流仿真波形,其中,,。
圖4-5電流仿真波形
總結(jié)
本文主要針對開關(guān)磁阻電動機調(diào)速系統(tǒng)(SRD)的基本結(jié)構(gòu)及控制策略做了簡要的分析及研究,針對當(dāng)前最簡單的四相8/6極SR電動機的基本工作原理及理想方程做了一定的分析。在控制策略上選擇當(dāng)前主要的高速角度控制、低速電流斬波的控制方式。
根據(jù)開關(guān)磁阻電動機調(diào)速系統(tǒng)(SRD)的基本原理和SR電動機理想方程進一步的的出其線性與非線性方程,最后得出非線性情況下開關(guān)磁阻電動機調(diào)速系統(tǒng)的狀態(tài)方程,為系統(tǒng)仿真打下理論基礎(chǔ)。
最后運用MATLAB仿真軟件對開關(guān)磁阻電動機調(diào)速系統(tǒng)進行仿真,得出了較好的相電壓仿真波形,負載轉(zhuǎn)矩仿真波形,轉(zhuǎn)速仿真波形和電流仿真波形。全面了解了開關(guān)磁阻電動機調(diào)速系統(tǒng)的工作性質(zhì)。
通過這次系統(tǒng)建模與信號處理的課程設(shè)計了解了建立一個系統(tǒng)模型的步驟,即先要對該系統(tǒng)的工作方式進行研究,推出系統(tǒng)的數(shù)學(xué)建模方程,即把系統(tǒng)的物理模式轉(zhuǎn)化為數(shù)學(xué)方程,分析系統(tǒng)的控制策略,再利用相關(guān)的仿真軟件對系統(tǒng)進行仿真以得出系統(tǒng)的工作結(jié)果并分析這一整套的系統(tǒng)建模理論。通過這門課程的學(xué)習(xí)相信對于我們?nèi)蘸蟮难芯抗ぷ鲿泻艽蟮膸椭?/p>
最后感謝潘洪亮老師對于我們的專業(yè)指導(dǎo),讓我們學(xué)習(xí)了很多知識。師恩重于山,在此,對潘老師獻上誠摯的祝福和由衷的感謝。附錄資料:不需要的可以自行刪除
C語言編程規(guī)范(僅供參考)
1.基本要求
1.1程序結(jié)構(gòu)清析,簡單易懂,單個函數(shù)的程序行數(shù)不得超過100行。
1.2打算干什么,要簡單,直接了當(dāng),代碼精簡,避免垃圾程序。
1.3盡量使用標(biāo)準(zhǔn)庫函數(shù)和公共函數(shù)。
1.4不要隨意定義全局變量,盡量使用局部變量。
1.5使用括號以避免二義性。
2.可讀性要求
2.1可讀性第一,效率第二。
2.2保持注釋與代碼完全一致。
2.3每個源程序文件,都有文件頭說明,說明規(guī)格見規(guī)范。
2.4每個函數(shù),都有函數(shù)頭說明,說明規(guī)格見規(guī)范。
2.5主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時,注釋能反映其含義。
2.7常量定義(DEFINE)有相應(yīng)說明。
2.8處理過程的每個階段都有相關(guān)注釋說明。
2.9在典型算法前都有注釋。
2.10利用縮進來顯示程序的邏輯結(jié)構(gòu),縮進量一致并以Tab鍵為單位,定義Tab為6個
字節(jié)。
2.11循環(huán)、分支層次不要超過五層。
2.12注釋可以與語句在同一行,也可以在上行。
2.13空行和空白字符也是一種特殊注釋。
2.14一目了然的語句不加注釋。
2.15注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。
2.16注釋行數(shù)(不包括程序頭和函數(shù)頭說明部份)應(yīng)占總行數(shù)的1/5到1/3。
3.結(jié)構(gòu)化要求
3.1禁止出現(xiàn)兩條等價的支路。
3.2禁止GOTO語句。
3.3用IF語句來強調(diào)只執(zhí)行兩組語句中的一組。禁止ELSEGOTO和ELSERETURN。
3.4用CASE實現(xiàn)多路分支。
3.5避免從循環(huán)引出多個出口。
3.6函數(shù)只有一個出口。
3.7不使用條件賦值語句。
3.8避免不必要的分支。
3.9不要輕易用條件分支去替換邏輯表達式。
4.正確性與容錯性要求
4.1程序首先是正確,其次是優(yōu)美
4.2無法證明你的程序沒有錯誤,因此在編寫完一段程序后,應(yīng)先回頭檢查。
4.3改一個錯誤時可能產(chǎn)生新的錯誤,因此在修改前首先考慮對其它程序的影響。
4.4所有變量在調(diào)用前必須被初始化。
4.5對所有的用戶輸入,必須進行合法性檢查。
4.6不要比較浮點數(shù)的相等,
如:10.0*0.1==1.0,不可靠
4.7程序與環(huán)境或狀態(tài)發(fā)生關(guān)系時,必須主動去處理發(fā)生的意外事件,如文件能否
邏輯鎖定、打印機是否聯(lián)機等。
4.8單元測試也是編程的一部份,提交聯(lián)調(diào)測試的程序必須通過單元測試。
5.可重用性要求
5.1重復(fù)使用的完成相對獨立功能的算法或代碼應(yīng)抽象為公共控件或類。
5.2公共控件或類應(yīng)考慮OO思想,減少外界聯(lián)系,考慮獨立性或封裝性。
5.3公共控件或類應(yīng)建立使用模板。
附:C++編程規(guī)范,delphi作相應(yīng)的參考
1適用范圍
本標(biāo)準(zhǔn)適用于利用VisulC++,BorlandC++進行軟件程序開發(fā)的人員.。
.2變量命名
命名必須具有一定的實際意義,形式為xAbcFgh,x由變量類型確定,Abc、Fgh表示連續(xù)意
義字符串,如果連續(xù)意義字符串僅兩個,可都大寫.如OK.
具體例程:
BOOL類型bEnable;
ch*charchText
c*類對象cMain(對象實例)
h*Handle(句柄)hWnd
i*int
n*無符號整型
p*指針
sz,str*字符串
wWORD
x,y坐標(biāo)
Char或者TCHAR類型與WindowsAPI有直接聯(lián)系的用szAppName[10]形式否則用
FileName[10]形式,單個字符也可用小寫字母表示;
Int類型nCmdShow;
LONG類型lParam;
UINT類型uNotify;
DWORD類型dwStart;
PSTR類型pszTip;
LPSTR類型lpCmdLine
LPTSTR類型lpszClassName;
LPVOID類型lpReserved
WPARAM類型wParam,
LPARAM類型lParam
HWND類型hDlg;
HDC類型hDC;
HINSTANCE類型hInstance
HANDLE類型hInstance,
HICON類型hIcon;
intiTmp
floatfTmp
DWORDdw*
String,AnsiStringstr*
m_類成員變量m_nVal,m_bFlag
g_全局變量g_nMsg,g_bFlag
局部變量中可采用如下幾個通用變量:nTemp,nResult,I,J(一般用于循環(huán)變量)。
其他資源句柄同上
.3常量命名和宏定義
常量和宏定義必須具有一定的實際意義;
常量和宏定義在#include和函數(shù)定義之間;
常量和宏定義必須全部以大寫字母來撰寫,中間可根據(jù)意義的連續(xù)性用下劃線連接,每一
條定義的右側(cè)必須有一簡單的注釋,說明其作用;
資源名字定義格式:
菜單:IDM_XX或者CM_XX
位圖:IDB_XX
對話框:IDD_XX
字符串:IDS_XX
DLGINIT:DIALOG_XX
ICON:IDR_XX
.4函數(shù)命名
函數(shù)原型說明包括引用外來函數(shù)及內(nèi)部函數(shù),外部引用必須在右側(cè)注明函數(shù)來源:模
塊名及文件名,如是內(nèi)部函數(shù),只要注釋其定義文件名;
第一個字母必須使用大寫字母,要求用大小寫字母組合規(guī)范函數(shù)命名,必要時可用下劃線
間隔,示例如下:
voidUpdateDB_Tfgd(TRACK_NAME);file://ModuleName:r01/sdw.c
voidPrintTrackData(TRACK_NAME);file://ModuleName:r04/tern.c
voidImportantPoint(void);file://ModuleName:r01/sdw.c
voidShowChar(int,int,chtype);file://LocalModule
voidScrollUp_V(int,int);file://LocalModule
.5結(jié)構(gòu)體命名
結(jié)構(gòu)體類型命名必須全部用大寫字母,原則上前面以下劃線開始;結(jié)構(gòu)體變量命名必須用
大小寫字母組合,第一個字母必須使用大寫字母,必要時可用下劃線間隔。對于私有數(shù)
據(jù)區(qū),必須注明其所屬的進程。全局數(shù)據(jù)定義只需注意其用途。
示例如下:
typedefstruct
{
charszProductName[20];
charszAuthor[20];
charszReleaseDate[16];
charszVersion[10];
unsignedlongMaxTables;
unsignedlongUsedTables;
}DBS_DATABASE;
DBS_DATABASEGdataBase;
6控件的命名:
用小寫前綴表示類別
用小寫前綴表示類別:
fm窗口
cmd按鈕
cobcombo,下拉式列表框
txt文本輸入框
lablabal,標(biāo)簽
imgimage,圖象
picpicture
grdGrid,網(wǎng)格
scr滾動條
lst列表框
frmfram
7注釋
原則上注釋要求使用中文;
文件開始注釋內(nèi)容包括:公司名稱、版權(quán)、作者名稱、時間、模塊用途、背景介紹等,復(fù)
雜的算法需要加上流程說明;
函數(shù)注釋包括:輸入、輸出、函數(shù)描述、流程處理、全局變量、調(diào)用樣例等,復(fù)雜的函數(shù)
需要加上變量用途說明;
程序中注釋包括:修改時間和作者、方便理解的注釋等;
引用一:文件開頭的注釋模板
/******************************************************************
**文件名:
**Copyright(c)1998-1999*********公司技術(shù)開發(fā)部
**創(chuàng)建人:
**日期:
**修改人:
**日期:
**描述:
**
**版本:
**
******************************************************************/
引用二:函數(shù)開頭的注釋模板
/*****************************************************************
**函數(shù)名:
**輸入:a,b,c
**a
**b
**c
**輸出:x
**x為1,表示...
**x為0,表示...
**功能描述:
**全局變量:
**調(diào)用模塊:
**作者:
**日期:
**修改:
**日期:
**版本
****************************************************************/
引用三:程序中的注釋模板
/**/
/*注釋內(nèi)容*/
/**/
8程序
a.程序編碼力求簡潔,結(jié)構(gòu)清晰,避免太多的分支結(jié)構(gòu)及太過于技巧性的程序,
盡量不采用遞歸模式。
b.編寫程序時,亦必須想好測試的方法,換句話說,”單元測試”的測試方案應(yīng)
在程序編寫時一并擬好。
c.注釋一定要與程序一致。
d.版本封存以后的修改一定要將老語句用/**/封閉,不能自行刪除或修改,并要
在文件及函數(shù)的修改記錄中加以記錄。
e.程序中每個block的開頭”{"及"}”必須對齊,嵌套的block每進一套,
縮進一個tab,TAB為4個空格,block類型包括if、for、while、do等關(guān)鍵字引出的。
f.對于比較大的函數(shù),每個block和特殊的函數(shù)調(diào)用,都必須注明其功能,舉例如下
:
count.divisor=1193280/freq;//computethepropercount
OutByte((unsignedshort)67,(unsignedchar)182);//tell8253thata
countiscoming
OutByte((unsignedshort)66,count.c[0]);//sendlow-orderbyte
OutByte((unsignedshort)66,count.c[1]);//sendhigh-orderbyte
×××××××××××××××××××××××××××××××××××××××
bcb,delphi中的變量命名:
遵循匈牙利命名法,命
名必須有意義,制定如下規(guī)定
窗體:以大寫的W開始,如About版權(quán)窗體,命名為WAbout
文件:以大寫的F開始,如About版權(quán)窗體,文件命名為FAbout.cpp
按鈕(Button):如退出按鈕,命名為btnExit
……
基類:加base標(biāo)記,如報表基類,窗體命名為:WBaseRep,文件命名為FBaseRep.cpp
轉(zhuǎn)貼
>1.在.h/.cpp的開頭應(yīng)有一段格式統(tǒng)一的說明,內(nèi)容包括:
>a.文件名(FileName);
>b.創(chuàng)建人(Creater);
>c.文件創(chuàng)建時間(Date);
>d.簡短說明文件功能、用途(Comment)。
好習(xí)慣
>2.除非極其簡單,否則對函數(shù)應(yīng)有注釋說明。內(nèi)容包括:功能、入口/出口參數(shù),必
要
>時還可有備注或補充說明。
還是好習(xí)慣
>3.每列代碼的長度推薦為80列,最長不得超過120列;折行以對齊為準(zhǔn)。
太寬了,我的限制是60列,因為文本方式下屏幕一共80列,如果你用BC這一類的編輯
器,窗口邊框等又要占據(jù)一定空間,所以80列太寬
>4.循環(huán)、分支代碼,判斷條件與執(zhí)行代碼不得在同一行上。
很對
>5.指針的定義,*號既可以緊接類型,也可以在變量名之前。
>
>例:可寫做:int*pnsize;
>
>也可寫做:int*pnsize;
>
>但不得寫做:int*pnsize;
建議采用第二種,除非附加另外一條規(guī)定:一次只聲明一個變量,否則就會讓人混淆,
比如:
int*a,b;
看起來b好像也是個指針,其實不是。
>6.在類的成員函數(shù)內(nèi)調(diào)用非成員函數(shù)時,在非成員函數(shù)名前必須加上"::"。
這一條我倒覺得并不是必需的,我的看法是決不要讓你的類成員函數(shù)和全局函數(shù)的名稱
相同(或類似)
>7.函數(shù)入口參數(shù)有缺省值時,應(yīng)注釋說明。
>
>例:BOOLCWpsDib::PaintDIB(CDC*pDC,CRect&rc,
>intnBrightness,file://*=0*//
>BOOLbGrayScalefile://*=FALSE*//)
每個變量寫一行,必要時加上/*in,out*/注釋
>8.elseif必須寫在一行。
應(yīng)該盡量避免elseif這樣的結(jié)構(gòu)
>9.與‘{’、‘}’有關(guān)的各項規(guī)定:
>
>9.1‘{’、‘}’應(yīng)獨占一行。在該行內(nèi)可有注釋。
>9.2‘{’必須另起一行,‘{’之后的代碼必須縮進一個Tab。‘{’與‘}’必須在
同
>一列上。
>9.3在循環(huán)、分支之后若只有一行代碼,雖然可省略‘{’、‘}’,但不推薦這么
>做。若省略后可能引起歧義,則必須加上‘{’、‘}’。
持保留意見,因為GNU的代碼規(guī)范是這樣的:
if(NULL==ptr)
{
//dosomethinghere
}
或者
if(NULL==ptr){
//dosomethinghere
}
爭論哪個更好并沒有意義,關(guān)鍵是統(tǒng)一,如果用VC當(dāng)然你的辦法最方便,可是如果你用
emacs或者vi,就不是這樣了。
>10.與空格有關(guān)的各項規(guī)定。
>
>10.1在所有兩目、三目運算符的兩邊都必須有空格。在單目運算符兩端不必空格。
但
>在‘—>’、‘::’、‘.’、‘[’、‘]’等運算符前后,及‘&’(取地址)、‘*
>’(取值)等運算符之后不得有空格。
>10.2for、while、if等關(guān)鍵詞之后應(yīng)有1個空格,再接‘(’,之后無空格;在結(jié)
尾
>的‘)’前不得有空格。
我認為在括號兩端加空格并不是什么錯誤,尤其是在一個條件十分復(fù)雜的if語句里
>10.3調(diào)用函數(shù)、宏時,‘(’、‘)’前后不得有空格。
>10.4類型強制轉(zhuǎn)換時,‘(’‘)’前后不得有空格
同上
>11.與縮進有關(guān)的各項規(guī)定
>
>11.1縮進以Tab為單位。1個Tab為4個空格
我認為這個值應(yīng)該更大,我自己使用8個空格,如果你的代碼因為縮進幅度太大而導(dǎo)致
折行,那么幾乎可以肯定你的程序設(shè)計方案有問題。
>11.2下列情況,代碼縮進一個Tab:
>1.函數(shù)體相對函數(shù)名及'{'、'}'。
>2.if、else、for、while、do等之后的代碼。
>3.一行之內(nèi)寫不下,折行之后的代碼,應(yīng)在合理的位置進行折行。若有+-*/等
運
>算符,則運算符應(yīng)在上一行末尾,而不應(yīng)在下一行的行首。
這一條我反對,運算符應(yīng)該放在下一行行首,以使人能清楚的知道這一行是續(xù)上一行
的,比如
if(something
&&somethingelse
&&otherthings)
如果寫做
if(something&&
somethingelse&&
otherthings)
反而看不清楚
>11.3下列情況,不必縮進:switch之后的case、default。
編程規(guī)范與范例
目錄
1排版6
2注釋11
3標(biāo)識符命名18
4可讀性20
5變量、結(jié)構(gòu)22
6函數(shù)、過程28
7可測性36
8程序效率40
9質(zhì)量保證44
10代碼編輯、編譯、審查50
11代碼測試、維護52
12宏53
1排版
1-1:程序塊要采用縮進風(fēng)格編寫,縮進的空格數(shù)為4個。
說明:對于由開發(fā)工具自動生成的代碼可以有不一致。
1-2:相對獨立的程序塊之間、變量說明之后必須加空行。
示例:如下例子不符合規(guī)范。
if(!valid_ni(ni))
{
...//programcode
}
repssn_ind=ssn_data[index].repssn_index;
repssn_ni=ssn_data[index].ni;
應(yīng)如下書寫
if(!valid_ni(ni))
{
...//programcode
}
repssn_ind=ssn_data[index].repssn_index;
repssn_ni=ssn_data[index].ni;
1-3:較長的語句(>80字符)要分成多行書寫,長表達式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首,劃分出的新行要進行適當(dāng)?shù)目s進,使排版整齊,語句可讀。
示例:
perm_count_msg.head.len=NO7_TO_STAT_PERM_COUNT_LEN
+STAT_SIZE_PER_FRAM*sizeof(_UL);
act_task_table[frame_id*STAT_TASK_CHECK_NUMBER+index].occupied
=stat_poi[index].occupied;
act_task_table[taskno].duration_true_or_false
=SYS_get_sccp_statistic_state(stat_item);
report_or_not_flag=((taskno<MAX_ACT_TASK_NUMBER)
&&(n7stat_stat_item_valid(stat_item))
&&(act_task_table[taskno].result_data!=0));
1-4:循環(huán)、判斷等語句中若有較長的表達式或語句,則要進行適應(yīng)的劃分,長表達式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首。
示例:
if((taskno<max_act_task_number)
&&(n7stat_stat_item_valid(stat_item)))
{
...//programcode
}
for(i=0,j=0;(i<BufferKeyword[word_index].word_length)
&&(j<NewKeyword.word_length);i++,j++)
{
...//programcode
}
for(i=0,j=0;
(i<first_word_length)&&(j<second_word_length);
i++,j++)
{
...//programcode
}
¹1-5:若函數(shù)或過程中的參數(shù)較長,則要進行適當(dāng)?shù)膭澐帧?/p>
示例:
n7stat_str_compare((BYTE*)&stat_object,
(BYTE*)&(act_task_table[taskno].stat_object),
sizeof(_STAT_OBJECT));
n7stat_flash_act_duration(stat_item,frame_id*STAT_TASK_CHECK_NUMBER
+index,stat_object);
¹1-6:不允許把多個短語句寫在一行中,即一行只寫一條語句。
示例:如下例子不符合規(guī)范。
rect.length=0;rect.width=0;
應(yīng)如下書寫
rect.length=0;
rect.width=0;
1-7:if、for、do、while、case、switch、default等語句自占一行,且if、for、do、while等語句的執(zhí)行語句部分無論多少都要加括號{}。
示例:如下例子不符合規(guī)范。
if(pUserCR==NULL)return;
應(yīng)如下書寫:
if(pUserCR==NULL)
{
return;
}
1-8:對齊只使用空格鍵,不使用TAB鍵。
說明:以免用不同的編輯器閱讀程序時,因TAB鍵所設(shè)置的空格數(shù)目不同而造成程序布局不整齊,不要使用BC作為編輯器合版本,因為BC會自動將8個空格變?yōu)橐粋€TAB鍵,因此使用BC合入的版本大多會將縮進變亂。
1-9:函數(shù)或過程的開始、結(jié)構(gòu)的定義及循環(huán)、判斷等語句中的代碼都要采用縮進風(fēng)格,case語句下的情況處理語句也要遵從語句縮進要求。
1-10:程序塊的分界符(如C/C++語言的大括號‘{’和‘}’)應(yīng)各獨占一行并且位于同一列,同時與引用它們的語句左對齊。在函數(shù)體的開始、類的定義、結(jié)構(gòu)的定義、枚舉的定義以及if、for、do、while、switch、case語句中的程序都要采用如上的縮進方式。
示例:如下例子不符合規(guī)范。
for(...){
...//programcode
}
if(...)
{
...//programcode
}
voidexample_fun(void)
{
...//programcode
}
應(yīng)如下書寫。
for(...)
{
...//programcode
}
if(...)
{
...//programcode
}
voidexample_fun(void)
{
...//programcode
}
1-11:在兩個以上的關(guān)鍵字、變量、常量進行對等操作時,它們之間的操作符之前、之后或者前后要加空格;進行非對等操作時,如果是關(guān)系密切的立即操作符(如->),后不應(yīng)加空格。
說明:采用這種松散方式編寫代碼的目的是使代碼更加清晰。
由于留空格所產(chǎn)生的清晰性是相對的,所以,在已經(jīng)非常清晰的語句中沒有必要再留空格,如果語句已足夠清晰則括號內(nèi)側(cè)(即左括號后面和右括號前面)不需要加空格,多重括號間不必加空格,因為在C/C++語言中括號已經(jīng)是最清晰的標(biāo)志了。
在長語句中,如果需要加的空格非常多,那么應(yīng)該保持整體清晰,而在局部不加空格。給操作符留空格時不要連續(xù)留兩個以上空格。
示例:
(1)逗號、分號只在后面加空格。
inta,b,c;
(2)比較操作符,賦值操作符"="、"+=",算術(shù)操作符"+"、"%",邏輯操作符"&&"、"&",位域操作符"<<"、"^"等雙目操作符的前后加空格。
if(current_time>=MAX_TIME_VALUE)
a=b+c;
a*=2;
a=b^2;
(3)"!"、"~"、"++"、"--"、"&"(地址運算符)等單目操作符前后不加空格。
*p='a';//內(nèi)容操作"*"與內(nèi)容之間
flag=!isEmpty;//非操作"!"與內(nèi)容之間
p=&mem;//地址操作"&"與內(nèi)容之間
i++;//"++","--"與內(nèi)容之間
(4)"->"、"."前后不加空格。
p->id=pid;//
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版部編歷史七年級下冊《第8課 金與南宋的對峙》聽課評課記錄2
- 魯教版地理六年級下冊6.1《位置和范圍》聽課評課記錄1
- 青島版數(shù)學(xué)七年級下冊11.2《積的乘方與冪的乘方(1)》聽評課記錄
- 【人教版 七年級數(shù)學(xué) 上冊 第一章】1.3.2 第2課時《 有理數(shù)加減混合運算》聽評課記錄2
- 部編版八年級道德與法治上冊聽課評課記錄《2.2合理利用網(wǎng)絡(luò)》
- 華師大版數(shù)學(xué)七年級上冊《綜合與實踐 制作包裝盒》聽評課記錄
- 人民版道德與法治九年級下冊第七課《我們的文化自信》聽課評課記錄
- 六年級思想品德教學(xué)總結(jié)
- 醫(yī)院醫(yī)生聘用合同范本
- 城市個人財產(chǎn)房屋抵押貸款合同范本
- 復(fù)變函數(shù)與積分變換期末考試試卷及答案
- 初中班級成績分析課件
- 海洋工程裝備制造職業(yè)發(fā)展研究報告
- 勞務(wù)合同樣本下載
- 聰明格練習(xí)題(初、中級)
- 20XX年吉林省事業(yè)單位公開招聘人員審核備案表
- 產(chǎn)科危重癥識別與處理及危重癥管理培訓(xùn)課件
- 韻達快遞員工勞務(wù)合同范本
- 血液透析水處理系統(tǒng)演示
- TSSX 007-2023 植物油生育酚及生育三烯酚含量測定反相高效液相色譜法
評論
0/150
提交評論