版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于89c52單片機(jī)的PWM直流電機(jī)PID控制調(diào)速系統(tǒng)</p><p><b> 實(shí)驗(yàn)報(bào)告</b></p><p><b> 系統(tǒng)總體方案設(shè)計(jì)</b></p><p> 直流電機(jī)轉(zhuǎn)速開(kāi)環(huán)控制與閉環(huán)控制的選取</p><p> 對(duì)直流電機(jī)轉(zhuǎn)速的控制有一般有兩種方式,一種是
2、開(kāi)環(huán)控制,一種是閉環(huán)控制。開(kāi)環(huán)控制的優(yōu)點(diǎn)是簡(jiǎn)單、穩(wěn)定、可靠。若組成系統(tǒng)的元件特性和參數(shù)值比較穩(wěn)定,且外界干擾較小,開(kāi)環(huán)控制能夠保持一定的精度。缺點(diǎn)是精度通常較低,無(wú)自動(dòng)糾偏能力;閉環(huán)控制的優(yōu)點(diǎn)是控制的精度可以達(dá)到很高,而且對(duì)外界的干擾和系統(tǒng)的參數(shù)變化有很好的抑制作用,且可以通過(guò)輸出反饋控制系統(tǒng)的控制過(guò)程。缺點(diǎn)是存在穩(wěn)定性,振蕩,超調(diào)等一系列問(wèn)題,對(duì)系統(tǒng)的性能分析和設(shè)計(jì)遠(yuǎn)比開(kāi)環(huán)控制麻煩。</p><p> 經(jīng)過(guò)利
3、弊的取舍,本次試驗(yàn)選擇的是閉環(huán)控制,因?yàn)闇?zhǔn)備應(yīng)用PID算法控制電機(jī)的轉(zhuǎn)速,故而需要有實(shí)際轉(zhuǎn)速進(jìn)行反饋與給定的轉(zhuǎn)速形成對(duì)比,進(jìn)而通過(guò)算法輸出PWM波形來(lái)控制直流電機(jī)。</p><p> 既然選擇了直流電機(jī)轉(zhuǎn)速閉環(huán)控制,可根據(jù)反饋機(jī)制大概做出其控制模型。</p><p> 直流電機(jī)調(diào)速方式的選取</p><p> 直流無(wú)刷電機(jī)由電動(dòng)機(jī)、轉(zhuǎn)子位置傳感器和電子開(kāi)關(guān)線路
4、三部分組成。直流電源通過(guò)開(kāi)關(guān)線路向電動(dòng)機(jī)定子繞組供電,電動(dòng)機(jī)轉(zhuǎn)子位置由位置傳感器檢測(cè)并提供信號(hào)去觸發(fā)開(kāi)關(guān)線路中的功率開(kāi)關(guān)元件使之導(dǎo)通或截止,從而控制電動(dòng)機(jī)的轉(zhuǎn)動(dòng)。在應(yīng)用實(shí)例中,磁極旋轉(zhuǎn),電樞靜止,電樞繞組里的電流換向借助于位置傳感器和電子開(kāi)關(guān)電路來(lái)實(shí)現(xiàn)。電機(jī)的電樞繞組作成三相,轉(zhuǎn)子由永磁材料制成,與轉(zhuǎn)子軸相連的位置傳感器采用霍爾傳感器。3600范圍內(nèi),兩兩相差1200安裝,共安裝三個(gè)。為了提高電機(jī)的特性,電機(jī)采用二相導(dǎo)通星形三相六狀態(tài)的
5、工作方式。開(kāi)關(guān)電路采用三相橋式接線方式。</p><p> 基于直流電機(jī)的特性,本次試驗(yàn)使用的是PWM脈寬調(diào)制方法。脈寬調(diào)制 (PWM)是利用數(shù)字輸出對(duì)模擬電路進(jìn)行控制的一種有效技術(shù),尤其是在對(duì)電機(jī)的轉(zhuǎn)速控制方面,可大大節(jié)省能量。PWM 具有很強(qiáng)的抗噪性,且有節(jié)約空間、比較經(jīng)濟(jì)等特點(diǎn)。模擬控制電路有以下缺陷:模擬電路容易隨時(shí)間漂移,會(huì)產(chǎn)生一些不必要的熱損耗,以及對(duì)噪聲敏感等。而在用了PWM技術(shù)后,避免了以上的缺
6、陷,實(shí)現(xiàn)了用數(shù)字方式來(lái)控制模擬信號(hào),可以大幅度降低成本和功耗。PWM對(duì)調(diào)速系統(tǒng)來(lái)說(shuō),系統(tǒng)的響應(yīng)速度和穩(wěn)定精度等指標(biāo)比較好;電樞電流的脈動(dòng)量小,容易連續(xù),而且可以不必外加濾波電抗也可以平穩(wěn)工作;系統(tǒng)的調(diào)速范圍寬;使用元件少、線路簡(jiǎn)單。</p><p><b> PWM的原理:</b></p><p> 理論基礎(chǔ):沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時(shí),其效
7、果基本相同。沖量指窄脈沖的面積。效果基本相同,是指環(huán)節(jié)的輸出響應(yīng)波形基本相同。低頻段非常接近,僅在高頻段略有差異。</p><p> 用一系列等幅不等寬的脈沖來(lái)代替一個(gè)正弦半波,正弦半波N等分,看成N個(gè)相連的脈沖序列,寬度相等,但幅值不等;用矩形脈沖代替,等幅,不等寬,中點(diǎn)重合,面積(沖量)相等,寬度按正弦規(guī)律變化。脈沖寬度調(diào)制波通常由一列占空比不同的矩形脈沖構(gòu)成,其占空比與信號(hào)的瞬時(shí)采樣值成比例。圖1所示為脈
8、沖寬度調(diào)制系統(tǒng)的原理框圖和波形圖。該系統(tǒng)有一個(gè)比較器和一個(gè)周期為T(mén)s的鋸齒波發(fā)生器組成。語(yǔ)音信號(hào)如果大于鋸齒波信號(hào),比較器輸出正常數(shù)A,否則輸出0。因此,從圖1中可以看出,比較器輸出一列下降沿調(diào)制的脈沖寬度調(diào)制波。</p><p> 直流電機(jī)測(cè)速裝置的選取</p><p> 經(jīng)過(guò)查閱了大量資料,發(fā)現(xiàn)目前常用的測(cè)速裝置有三種。</p><p><b>
9、 直流測(cè)速發(fā)電機(jī)測(cè)速</b></p><p> 直流測(cè)速發(fā)電機(jī)可分為勵(lì)磁式和永磁式兩種。勵(lì)磁式由勵(lì)磁繞組接成他勵(lì),永磁式采用矯頑力高的磁鋼制成磁極。由于永磁式不需另加勵(lì)磁電源,也不因勵(lì)磁繞組溫度變化而影響輸出電壓,故應(yīng)用較廣。</p><p> 根據(jù)已學(xué)過(guò)的直流發(fā)電機(jī)的工作原理知,電刷兩端的感應(yīng)電勢(shì) :</p><p> Ea = Ceфn=Ke
10、n可知</p><p> 1.電刷兩端的感應(yīng)電勢(shì)與電機(jī)的轉(zhuǎn)速成正比。</p><p> 2.直流發(fā)電機(jī)能夠把轉(zhuǎn)速信號(hào)換成電勢(shì)信號(hào),從而用來(lái)測(cè)速。</p><p> 自動(dòng)控制系統(tǒng)對(duì)測(cè)速發(fā)動(dòng)機(jī)的要求為:1.輸出電壓與轉(zhuǎn)速的關(guān)系曲線為線性。2.輸出特性的斜率要大。3.溫度變化對(duì)輸出特性的影響要小。4.輸出電壓的波紋要小。5.正反轉(zhuǎn)兩個(gè)方向的輸出特性要一致。</
11、p><p> 圖中實(shí)線為直流測(cè)速發(fā)電機(jī)的理想輸出特性,虛線為實(shí)際輸出特性,實(shí)際特性與要求的線性特性之間存在誤差,且該誤差與負(fù)載電阻有關(guān)。</p><p> 直流測(cè)速發(fā)電機(jī)的優(yōu)點(diǎn)是原理簡(jiǎn)單,且在一定范圍內(nèi)能夠滿足系統(tǒng)的需求。缺點(diǎn)是其輸出的是電壓值,如果使用在數(shù)字信號(hào)電路里是必須得用AD轉(zhuǎn)換芯片轉(zhuǎn)化成數(shù)字信號(hào)。而且其需要處于線性區(qū),但是現(xiàn)實(shí)中線性的系統(tǒng)基本上很少,故而現(xiàn)在已經(jīng)不常用。鑒于本實(shí)驗(yàn)
12、使用的是單片機(jī)控制系統(tǒng),故而此測(cè)速方式不適用。</p><p><b> 霍爾傳感器測(cè)速</b></p><p> 霍爾傳感器是根據(jù)霍爾效應(yīng)制作的一種磁場(chǎng)傳感器?;魻栃?yīng)是磁電效應(yīng)的一種,這一現(xiàn)象是霍爾(A.H.Hall,1855—1938)于1879年在研究金屬的導(dǎo)電機(jī)構(gòu)時(shí)發(fā)現(xiàn)的。后來(lái)發(fā)現(xiàn)半導(dǎo)體、導(dǎo)電流體等也有這種效應(yīng),而半導(dǎo)體的霍爾效應(yīng)比金屬?gòu)?qiáng)得多,利用這現(xiàn)象
13、制成的各種霍爾元件,廣泛地應(yīng)用于工業(yè)自動(dòng)化技術(shù)、檢測(cè)技術(shù)及信息處理等方面。霍爾效應(yīng)是研究半導(dǎo)體材料性能的基本方法。通過(guò)霍爾效應(yīng)實(shí)驗(yàn)測(cè)定的霍爾系數(shù),能夠判斷半導(dǎo)體材料的導(dǎo)電類型、載流子濃度及載流子遷移率等重要參數(shù)。</p><p> 電機(jī)每轉(zhuǎn)一圈,每一相霍爾傳感器產(chǎn)生2脈沖,且其周期與電機(jī)轉(zhuǎn)速成反比,因此可以利用霍爾傳感器信號(hào)得到電機(jī)的實(shí)際轉(zhuǎn)速。為盡可能縮短一次速度采樣的時(shí)間,可測(cè)得任意一相霍爾傳感器的一個(gè)正脈沖
14、的寬度,則電機(jī)的實(shí)際轉(zhuǎn)速為: </p><p><b> V=N*30;</b></p><p> V:速度 R/min</p><p> N:每秒采樣的脈沖個(gè)數(shù)</p><p> 霍爾傳感器輸出的是脈沖,可以直接將輸出脈沖接入單片機(jī)外部計(jì)數(shù)器,故而非常簡(jiǎn)單實(shí)用。</p><p><
15、b> 光電編碼器測(cè)速</b></p><p> 其效果跟霍爾測(cè)速一致,但是霍爾元件利用的是電磁產(chǎn)生脈沖,光電編碼器利用的是光產(chǎn)生脈沖。它的原理是通過(guò)電動(dòng)機(jī)的轉(zhuǎn)動(dòng)帶動(dòng)碼盤(pán)的轉(zhuǎn)動(dòng),碼盤(pán)上有很多縫隙,縫隙每經(jīng)過(guò)紅外管一次就會(huì)產(chǎn)生一個(gè)脈沖,進(jìn)而直接輸入單片機(jī),經(jīng)過(guò)算法處理得到實(shí)際轉(zhuǎn)速。</p><p> 經(jīng)過(guò)分析,本次試驗(yàn)選取的是光電碼盤(pán)測(cè)速。首先是因?yàn)橥瑫r(shí)測(cè)量霍爾元件和光
16、電編碼器,發(fā)現(xiàn)光電編碼器的靈敏度更高,且其價(jià)格便宜。最關(guān)鍵的是它很好用。</p><p><b> 系統(tǒng)控制算法的選取</b></p><p> 控制算法是微機(jī)化控制軟件系統(tǒng)的一個(gè)重要組成部分,可以說(shuō)整個(gè)系統(tǒng)的控制功能主要由控制算法來(lái)實(shí)線。所以控制算法的好壞直接決定了這個(gè)系統(tǒng)的好壞。根據(jù)偏差的比例(P)、積分(I)、微分(D)進(jìn)行控制,稱為PID控制。它能滿足相當(dāng)
17、多工業(yè)對(duì)象的控制要求,至今仍是一種應(yīng)用最廣的控制算法。由于是用單片機(jī)控制的系統(tǒng),故而我們采用數(shù)字PID控制。</p><p> 模擬PID控制規(guī)律的離散化</p><p> 數(shù)字PID控制器的差分方程</p><p> 式中 稱為比例項(xiàng)</p><p><b> 稱為積分項(xiàng)</b>
18、</p><p><b> 稱為微分項(xiàng)</b></p><p><b> 常用的控制方式</b></p><p> 1、P控制 </p><p> 2、PI控制 </p><p> 3、PD控制 </p>
19、<p> 4、PID控制 </p><p> PID算法的兩種類型</p><p> 1、位置型控制――例如圖5-1-5調(diào)節(jié)閥控制</p><p> 2、增量型控制――例如圖5-1-6步進(jìn)電機(jī)控制</p><p> 由于控制的是直流電機(jī),當(dāng)執(zhí)行機(jī)構(gòu)采用控制直流電機(jī)的直流PWM裝置和晶閘管整流裝置時(shí),可以采
20、用數(shù)字PID位置型控制算法;當(dāng)執(zhí)行結(jié)構(gòu)采用步進(jìn)電機(jī),每個(gè)采樣周期控制輸出的控制量時(shí),是相對(duì)于上次控制量的增加,故此時(shí)要采用數(shù)字PID增量型控制算法。</p><p> 由于此實(shí)驗(yàn)控制的是直流電機(jī),故而采用數(shù)字PID位置型控制算法。</p><p> 數(shù)字PID控制器主要參數(shù)是Kp,τi,τD和采樣周期Ts。系統(tǒng)的設(shè)計(jì)任務(wù)是選取合適的PID控制器參數(shù)使整個(gè)系統(tǒng)具有滿意的動(dòng)態(tài)特性,并滿足穩(wěn)
21、態(tài)誤差要求。具體的參數(shù)選取要靠matlab仿真,仿真結(jié)果見(jiàn)下文matlab篇。</p><p><b> 系統(tǒng)總體設(shè)計(jì)</b></p><p> 用AT89C52單片機(jī)作為控制核心;用uln2003驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),用pwm波來(lái)控制此芯片間接控制電機(jī)轉(zhuǎn)速;用光電編碼器測(cè)速進(jìn)行反饋;用復(fù)位開(kāi)關(guān)進(jìn)行電機(jī)給定速度的調(diào)節(jié),由加速鍵,減速鍵和清零鍵構(gòu)成。如圖:</p>
22、;<p><b> 第二章、硬件設(shè)計(jì)</b></p><p> 2.1 AT89C52芯片介紹</p><p> AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MC
23、S-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。</p><p><b> 其主要功能特性:</b></p><p> 1、兼容MCS51指令系統(tǒng)</p><p> 2、8k可反復(fù)擦寫(xiě)(大于1000次)Flash ROM;</p><p> 3、32
24、個(gè)雙向I/O口;</p><p> 4、256x8bit內(nèi)部RAM;</p><p> 5、3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷;</p><p> 6、時(shí)鐘頻率0-24MHz;</p><p> 7、2個(gè)串行中斷,可編程UART串行通道;</p><p> 8、2個(gè)外部中斷源,共8個(gè)中斷源;</p>
25、<p> 9、2個(gè)讀寫(xiě)中斷口線,3級(jí)加密位;</p><p> 10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能;</p><p> 11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應(yīng)不同產(chǎn)品的需求。</p><p> AT89C52為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上
26、與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5
27、V電源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(32~39 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。</
28、p><p> 2.2直流電機(jī)驅(qū)動(dòng)芯片ULN2803的設(shè)計(jì)</p><p> 此驅(qū)動(dòng)芯片采用的是高電壓大電流八達(dá)林頓晶體管陣列,該陣列的八個(gè)NPN達(dá)林頓管連接晶體管是低邏輯電平數(shù)字電路和大電流高電壓要求的燈、繼電器、打印機(jī)和其他類似負(fù)載間的接口的理想器件。廣泛應(yīng)用于計(jì)算機(jī),工業(yè)和消費(fèi)類產(chǎn)品中。所有器件有集電極開(kāi)路輸出和用于瞬變抑制的續(xù)流二極管。ULN2803的設(shè)計(jì)與標(biāo)準(zhǔn)TTL系列兼容,而UL
29、N2804可使6至15伏高電平CMOS或PMOS優(yōu)化。它的最大額定值為如下表:</p><p> ULN2803是一個(gè)7路反向器電路,即當(dāng)輸入端為高電平時(shí)ULN2803輸出端為低電平,當(dāng)輸入端為低電平時(shí)ULN2803輸出端為高電平,繼電器得電吸合。</p><p> 本次試驗(yàn)驅(qū)動(dòng)電路如下:</p><p> 通過(guò)在1B接口輸入PWM波形,1C口輸出相反電平。
30、</p><p> 2.3 數(shù)顯管顯示給定速度和實(shí)際速度模塊</p><p> 此處用的是共陰極數(shù)顯管,為四位數(shù)顯管。其段選接在P0口,由于P0口是高阻態(tài),故而接在單片機(jī)上時(shí)要接上拉電阻,一般上拉電阻定為10k。其位選接在P2口。驅(qū)動(dòng)數(shù)顯管的芯片有很多,有一個(gè)很流行的是74HC573鎖存器,但是由于單片機(jī)的接口充足,所以這里沒(méi)有采用驅(qū)動(dòng)裝置,用的是小的數(shù)顯管,也不需要用三極管放大電流,
31、所以側(cè)重它的編程。顯示的方法是應(yīng)用的動(dòng)態(tài)顯示,應(yīng)用人的視覺(jué)暫留來(lái)顯示數(shù)值。</p><p><b> 此模塊電路圖如下:</b></p><p> 2.4 按鍵模塊設(shè)計(jì)</p><p> 鍵盤(pán)分為編碼鍵盤(pán)和非編碼鍵盤(pán)??寇浖幊虂?lái)識(shí)別的鍵盤(pán)稱為非編碼鍵盤(pán),在單片機(jī)組成的各種系統(tǒng)中,用的較多的是非編碼鍵盤(pán)。非編碼鍵盤(pán)又分為獨(dú)立鍵盤(pán)和行列式鍵
32、盤(pán)。</p><p> 單片機(jī)檢測(cè)按鍵的原理是:?jiǎn)纹瑱C(jī)I/O口既可作為輸出也可作為輸入使用,當(dāng)檢測(cè)按鍵時(shí)用的是它的輸入功能,我們把按鍵的一端接地,另一端與單片機(jī)的某個(gè)I/O口相連,開(kāi)始時(shí)先給該I/O口賦以高電平,然后讓單片機(jī)不斷的檢測(cè)該I/O口是否變?yōu)榈碗娖剑?dāng)按鍵閉合時(shí),既相當(dāng)于該I/O口通過(guò)按鍵與地相連,變成低電平,程序一旦檢測(cè)到I/O口變成低電平則說(shuō)明按鍵被按下,然后執(zhí)行相應(yīng)的指令。</p>
33、<p> 但是在按鍵按下的時(shí)候,由于按鍵是彈性的,這過(guò)程會(huì)產(chǎn)生抖動(dòng),抖動(dòng)時(shí)間的長(zhǎng)短和按鍵的機(jī)械特性有關(guān),一般為5—10ms。</p><p> 通常我們手動(dòng)按下鍵然后立即釋放,這個(gè)動(dòng)作中穩(wěn)定閉合的時(shí)間超過(guò)20ms。因此單片機(jī)在檢測(cè)鍵盤(pán)是否按下時(shí)都要加上去抖動(dòng)操作,有專用的去抖動(dòng)電路,也有專用的去抖動(dòng)芯片,但通常我們用軟件掩飾的方法就能很容易的解決抖動(dòng)問(wèn)題,而沒(méi)有必要再添加多余的硬件電路。</
34、p><p> 剛開(kāi)始想用4*4鍵盤(pán)輸入給定速度,但是仔細(xì)考慮了一下性價(jià)比,經(jīng)過(guò)慎重選擇,我拋棄了這個(gè)鍵盤(pán),改用3個(gè)復(fù)位開(kāi)關(guān)調(diào)節(jié)給定速度。具體過(guò)程是:一個(gè)復(fù)位開(kāi)關(guān)決定了速度的加,每一次加一定的速度值;還有一個(gè)復(fù)位開(kāi)關(guān)見(jiàn)決定了速度的減,每一次減一定的速度值;還有一個(gè)復(fù)位鍵是用來(lái)置零的。加速鍵接在p1.0口上,減速鍵接在P1.1口上,置零鍵接在P1.3口上。</p><p> 2.5 測(cè)速模塊設(shè)
35、計(jì)</p><p> 本實(shí)驗(yàn)應(yīng)用的是紅外管輸入脈沖,深色物的紅外反射率因不同的材料而不同,發(fā)射管發(fā)射出紅外線,在材料上反射回來(lái),由接受管接受。當(dāng)有信號(hào)反射回來(lái)時(shí)輸出低電平,沒(méi)有反射時(shí)輸出高電平。</p><p> 這個(gè)光電編碼器整體是買(mǎi)來(lái)的實(shí)物,在仿真軟件protues中沒(méi)有很合適的仿真物,我用可以直接輸出脈沖的直流電機(jī)代替了。買(mǎi)的時(shí)候我進(jìn)行了現(xiàn)場(chǎng)的測(cè)試,發(fā)現(xiàn)它非常的靈敏,作為電動(dòng)機(jī)轉(zhuǎn)
36、速的測(cè)量綽綽有余了。</p><p> 第三章、 軟件部分設(shè)計(jì)</p><p> 3.1 數(shù)顯管顯示軟件設(shè)計(jì)部分(void SegRefre())</p><p> 數(shù)顯管有八位,前四位顯示的是給定速度,后四位現(xiàn)實(shí)的是實(shí)際測(cè)得的轉(zhuǎn)速。假設(shè)前四位數(shù)顯管為管A,后四位為管B,則經(jīng)過(guò)分析研究作出數(shù)顯管AB的程序流程圖分別如下:</p><p>
37、;<b> 程序?yàn)椋?lt;/b></p><p> void SegRefre() //數(shù)碼管顯示刷新</p><p><b> { </b></p><p> Data_Buffer[0] = SpeedSet/1000;</p><p> Data_Buffer[1] = Spe
38、edSet%1000/100;</p><p> Data_Buffer[2] = SpeedSet%100/10;</p><p> Data_Buffer[3] = SpeedSet%10;</p><p> Data_Buffer[4] = num/1000;</p><p> Data_Buffer[5] = num%1000
39、/100;</p><p> Data_Buffer[6] = num%100/10;</p><p> Data_Buffer[7] = num%10;</p><p><b> }</b></p><p> 3.2 外部中斷p3.3計(jì)數(shù)程序(void exter0() interrupt 0)</p&g
40、t;<p> 此外部中斷主要用于對(duì)測(cè)速產(chǎn)生的脈沖進(jìn)行計(jì)數(shù)。程序流程圖為:</p><p><b> 程序如下:</b></p><p> void exter0() interrupt 0 //外部中斷脈沖計(jì)數(shù)</p><p><b> {</b></p><p> Inpl
41、use++;</p><p><b> }</b></p><p> 3.3 定時(shí)器0中斷軟件設(shè)計(jì)(void timer0() interrupt 1)</p><p> 定時(shí)器0中斷主要用于數(shù)顯管顯示數(shù)值和一定時(shí)間間隔內(nèi)對(duì)轉(zhuǎn)速進(jìn)行采樣計(jì)算PID控制,初始化中斷時(shí)間設(shè)置為2ms。</p><p><b>
42、 程序流程圖為:</b></p><p><b> 程序如下:</b></p><p> void timer0() interrupt 1 </p><p><b> {</b></p><p> static unsigned char Bit = 0;//靜態(tài)變量,退出
43、程序后,值保留</p><p> static unsigned int time = 0;</p><p> static unsigned int aa = 0;</p><p> TH0 = THCO;</p><p> TL0 = TLCO;</p><p> aa ++ ; //100MS串
44、口輸出一次數(shù)據(jù)</p><p> if ( aa == 50)</p><p><b> {</b></p><p><b> aa = 0;</b></p><p> flag0 = 1;</p><p><b> }</b></p&g
45、t;<p> cnt ++ ;// PID脈沖周期</p><p><b> Bit ++ ;</b></p><p> time ++ ;//轉(zhuǎn)速測(cè)量周期</p><p> if(Bit >= 8) Bit=0;</p><p> P2 = 0xff;</p><p&g
46、t;<b> //先關(guān)位</b></p><p> P0 = Duan[Data_Buffer[ Bit ] ];//開(kāi)段碼</p><p> switch(Bit)//送位碼</p><p><b> {</b></p><p> case 0: P2 = 0XFE; brea
47、k;</p><p> case 1: P2 = 0XFD; break;</p><p> case 2: P2 = 0XFB; break;</p><p> case 3: P2 = 0XF7; break;</p><p> case 4: P2 = 0XEF; break;</p><p> cas
48、e 5: P2 = 0XDF; break;</p><p> case 6: P2 = 0XBF; break;</p><p> case 7: P2 = 0X7F; break;</p><p><b> }</b></p><p> if(time >= 500) //1s鐘讀取一次轉(zhuǎn)速<
49、/p><p><b> {</b></p><p><b> time = 0;</b></p><p> num = Inpluse*10; //計(jì)算轉(zhuǎn)速</p><p> Inpluse = 0;</p><p> PIDControl();// 1s 控制一次&
50、lt;/p><p><b> } </b></p><p><b> }</b></p><p> 3.4 PWM算法程序設(shè)計(jì)(void PWMOUT())</p><p> Pwm是通過(guò)PID計(jì)算出來(lái)的偏差來(lái)調(diào)整輸出脈沖的寬度還控制電機(jī)的轉(zhuǎn)速的。</p><p>&l
51、t;b> 程序流程圖如下:</b></p><p><b> 程序如下:</b></p><p> void PWMOUT() //PWm輸出</p><p><b> {</b></p><p> if ( cnt < PWMTime )<
52、;/p><p><b> { </b></p><p> PWM_FC = 0 ;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
53、<p> PWM_FC = 1 ;</p><p><b> } </b></p><p> if ( cnt > 250) cnt = 0 ; </p><p><b> }</b></p><p> 3.5 PID控制算法程序設(shè)計(jì)(void PIDControl(
54、))</p><p> 當(dāng)電機(jī)轉(zhuǎn)速的設(shè)定值突然改變,或電機(jī)的轉(zhuǎn)速發(fā)生突變時(shí),會(huì)引起偏差的階躍,使e增大,PID的輸出uk將急劇增加或減小,以至于超過(guò)控制量的上下限,電機(jī)的轉(zhuǎn)速SPEEDSET雖然不斷上升,但由于控制量受到限制,其增長(zhǎng)的速度減慢,偏差E將比正常情況下持續(xù)更長(zhǎng)的時(shí)間保持在較大的偏差值,該程序主要是把設(shè)定的轉(zhuǎn)速減當(dāng)前測(cè)量得到的轉(zhuǎn)速來(lái)計(jì)算偏差,從而用PWM輸出方式來(lái)確定輸出脈沖的寬度。</p>
55、;<p><b> 程序流程圖如下:</b></p><p><b> 程序如下:</b></p><p> void PIDControl() //PID偏差計(jì)算</p><p><b> {</b></p><p> e = SpeedSet -
56、 num ;</p><p> duk=( Kp*(e - e1) + Ki*e + Kd*(e - 2*e1 + e2))/100 ;</p><p> uk = uk1 + duk ;</p><p> out = (int)uk ;</p><p> if(out > 250)</p><p>&l
57、t;b> {</b></p><p> out = 250 ;</p><p><b> }</b></p><p> else if(out < 0)</p><p><b> {</b></p><p><b> out =
58、0 ;</b></p><p><b> } </b></p><p> uk1 = uk ;</p><p><b> e2 = e1 ;</b></p><p><b> e1 = e ;</b></p><p> PWMTim
59、e = out ;</p><p><b> } </b></p><p> void delay(uchar x)</p><p><b> { </b></p><p> uint i = 0,j = 0;</p><p> for(i = x ;
60、 i > 0 ; i--)</p><p> for(j = 50 ; j > 0 ; j--) ;</p><p><b> }</b></p><p> 3.6 按鍵程序設(shè)計(jì)</p><p> 由于按鍵與數(shù)顯管的顯示相關(guān),故其程序流程圖已給,下面只給其算法如下:</p><p&
61、gt; void SetSpeed() //按鍵 速度設(shè)定</p><p><b> {</b></p><p> if ( AddSpeed==0)</p><p><b> {</b></p><p> delay(20) ;//有鍵按下</p><p&g
62、t; if( AddSpeed==0)</p><p><b> {</b></p><p> SpeedSet=SpeedSet+50 ;</p><p> if( SpeedSet>9999) </p><p><b> {</b></p><p> S
63、peedSet=0;</p><p><b> }</b></p><p> while(!AddSpeed);//等待按鍵釋放</p><p><b> }</b></p><p><b> }</b></p><p> if ( SubSp
64、eed == 0) //速度減</p><p><b> {</b></p><p> delay(20);</p><p> if( SubSpeed == 0)</p><p><b> {</b></p><p> SpeedSet -= 50;</p&
65、gt;<p><b> //有鍵按下</b></p><p> if (SpeedSet<=0) SpeedSet = 0;</p><p> while(!SubSpeed);</p><p><b> }</b></p><p><b> }</b&
66、gt;</p><p> if (Stop == 0) //電機(jī)停止</p><p><b> {</b></p><p> delay(20);</p><p> if(Stop==0)</p><p><b> {</b></p><p&g
67、t; SpeedSet = 0;</p><p> PWM_FC = 1 ;</p><p><b> }</b></p><p> while(!Stop);</p><p><b> } </b></p><p><b> }</b&g
68、t;</p><p> 第四章、 基于matlab的PID參數(shù)設(shè)計(jì)及仿真</p><p> 4.1 各部分傳遞函數(shù)參數(shù)的整定</p><p> 有前面所說(shuō)的控制模型可知,系統(tǒng)的架構(gòu)模型有PID,PWM,直流電機(jī)這3個(gè),故而只需求取PWM,和直流電機(jī)的傳遞函數(shù)即可。</p><p><b> 經(jīng)查資料知道</b>&
69、lt;/p><p> Pwm的傳遞函數(shù)為: </p><p> 直流電機(jī)的傳遞函數(shù)為:</p><p> 根據(jù)傳遞函數(shù)搭建的仿真模型為:</p><p> 4.2 PID參數(shù)的整定</p><p> 下面我們通過(guò)仿真來(lái)確定離散PID控制器的參數(shù),一般有兩種方法。</p><p>&l
70、t;b> 我們用試湊法</b></p><p> 試湊法要求按照先求出Kp,后求出,最后求出的順序來(lái)調(diào)試系統(tǒng)的PID參數(shù),目標(biāo)是知道調(diào)到滿意的結(jié)果為止。由于直流電機(jī)的純滯后時(shí)間為零點(diǎn)零幾秒左右,可以選擇一個(gè)足夠短的采樣周期,使其為直流電機(jī)對(duì)象的純滯后時(shí)間的十分之一以下。在此我選擇十分之一,因此Ts是零點(diǎn)零幾秒的數(shù)量級(jí),確定它為0.001s來(lái)整定控制參數(shù)。</p><p&g
71、t; 經(jīng)過(guò)整定后發(fā)現(xiàn)當(dāng)Kp=0.5,Ki=7,Kd=0.001時(shí)比較合適。</p><p><b> 波形如下</b></p><p> 從仿真波形可知,電機(jī)轉(zhuǎn)速的上升時(shí)間為0.3s左右,沒(méi)有超調(diào),靜差為0,說(shuō)明其過(guò)度特性很好。也說(shuō)明1ms的采樣周期很合適。</p><p><b> 第五章、 結(jié)果分析</b>&l
72、t;/p><p> 這里主要分析的結(jié)果是電機(jī)啟動(dòng)到電機(jī)達(dá)到給定轉(zhuǎn)速所需要的時(shí)間:</p><p><b> 仿真開(kāi)始:</b></p><p><b> 達(dá)到給定速度時(shí):</b></p><p> 可知其所需要的時(shí)間為31秒,比想象中的長(zhǎng),但是誤差很小,基本上達(dá)到指定速度后就不會(huì)再改變了。<
73、;/p><p> 我也試著改進(jìn)參數(shù)使其時(shí)間變得更短,但是實(shí)際操作起來(lái)發(fā)現(xiàn)當(dāng)你改變參數(shù)的時(shí)候,它的超調(diào)會(huì)很大,而且波動(dòng)很強(qiáng),不適合作為pid參數(shù),綜上,pid參數(shù)還是matlab仿真得來(lái)的參數(shù)最好的。但是用matlab仿真發(fā)現(xiàn)電機(jī)達(dá)到穩(wěn)態(tài)所需的時(shí)間僅為0.3s左右,本人認(rèn)為用proteus仿真出來(lái)的更具有實(shí)用性,matlab仿真的主要目的還是選擇最合適的pid參數(shù)。</p><p> 第六章
74、、實(shí)驗(yàn)總結(jié)及感想</p><p> 這次實(shí)驗(yàn)周期很長(zhǎng),從6月25號(hào)開(kāi)始做一直到7月7號(hào)才結(jié)束,期間也碰到了許多難題,在此簡(jiǎn)要總結(jié)一下。</p><p> 由于本人單片機(jī)基礎(chǔ)很不牢固,但是這個(gè)課程設(shè)計(jì)要用到單片機(jī),所以首先做的是不斷琢磨單片機(jī)的基本功能和基本外設(shè),如定時(shí)器計(jì)數(shù)器的使用,數(shù)顯管的顯示和鍵盤(pán)的輸入,剛開(kāi)始認(rèn)真研究單片機(jī)的時(shí)候基本上遇到的問(wèn)題都是問(wèn)題,舉步維艱,也曾到圖書(shū)館翻了
75、很多關(guān)于單片機(jī)的書(shū),經(jīng)過(guò)不斷學(xué)習(xí),最后考慮到有一定的c語(yǔ)言基礎(chǔ),而匯編語(yǔ)言短時(shí)間內(nèi)學(xué)不扎實(shí),果斷選擇了用c語(yǔ)言編程。進(jìn)過(guò)幾天不斷的學(xué)習(xí),對(duì)單片機(jī)的理解也越來(lái)越深,知道的也越來(lái)越多,這為做此課程設(shè)計(jì)打下了很扎實(shí)的基礎(chǔ)。</p><p> 開(kāi)始做此課設(shè)時(shí)考慮到要輸入數(shù)據(jù)和輸出數(shù)據(jù),但是這期間走了很多彎路。剛才是準(zhǔn)備使用4*4矩陣鍵盤(pán)進(jìn)行給定轉(zhuǎn)速的輸出,最后鑒于本人的單片機(jī)基礎(chǔ)有限,發(fā)現(xiàn)此程序很復(fù)雜,進(jìn)過(guò)很長(zhǎng)時(shí)間的研
76、究,最后明智的拋棄了他,而選擇速度增加鍵減少鍵和清零鍵取代。數(shù)顯管剛開(kāi)始想選用74HC573鎖存器來(lái)進(jìn)行動(dòng)態(tài)數(shù)顯管的顯示,但是發(fā)現(xiàn)數(shù)顯管的前4位后后四位如果不使用同一個(gè)顯示算法的話會(huì)簡(jiǎn)單很多,而且最后發(fā)現(xiàn)單片機(jī)的I/O口很充足,所以就直接用16個(gè)I/O來(lái)進(jìn)行數(shù)顯管的顯示了,這樣很適合自己想的算法,然后省下了很大的麻煩。</p><p> 大的范圍就遇到這兩個(gè)問(wèn)題,小的范圍內(nèi)發(fā)現(xiàn)了很多細(xì)節(jié)上的理解錯(cuò)誤,比如數(shù)據(jù)類
77、型的設(shè)定,當(dāng)設(shè)定的速度通過(guò)subspeed鍵減小到0的時(shí)候再減會(huì)出現(xiàn)數(shù)顯管上顯示436的數(shù)字,這很不符合邏輯,因?yàn)殚_(kāi)始已經(jīng)設(shè)定當(dāng)setspeed小于0的時(shí)候永遠(yuǎn)為0。進(jìn)過(guò)仔細(xì)分析發(fā)現(xiàn)setspeed的數(shù)據(jù)類型不能為unsigned,而是singed,因?yàn)楫?dāng)你小于0的時(shí)候,unsigned雖說(shuō)不輸出負(fù)數(shù),但是會(huì)輸出它的反碼,反碼會(huì)對(duì)應(yīng)一個(gè)值,如果signed的話就不會(huì)這么做,直接為0。事實(shí)上改過(guò)來(lái)之后就解決了這個(gè)問(wèn)題,讓我了解到了數(shù)據(jù)類型
78、是多么的重要。還遇到的問(wèn)題比如數(shù)顯管其他位都很正常,但是只有第二位總是閃,這讓我難為了很久也找不到毛病,最后無(wú)意間刪掉了一段沒(méi)有用的程序后一切都好了,這讓我了解到程序一定要精簡(jiǎn),不然你永遠(yuǎn)不會(huì)知道它會(huì)出現(xiàn)什么不可預(yù)知的錯(cuò)誤。其他小的問(wèn)題也有很多,但是都被我經(jīng)過(guò)仔細(xì)的研究慢慢的克服,最后仿真結(jié)果和硬件都很合適。</p><p> 總之單片機(jī)是個(gè)很細(xì)致的學(xué)科,我們要堅(jiān)持做完,碰到問(wèn)題一定要仔細(xì)想,這樣才能發(fā)現(xiàn)它的強(qiáng)
79、大。</p><p><b> 參考文獻(xiàn):</b></p><p> 我的參考文獻(xiàn)很少,自己買(mǎi)的其中一本書(shū)就是很著名的郭天祥老師書(shū)叫《51單片機(jī)c語(yǔ)言教程》外加全套開(kāi)發(fā)板,另外圖書(shū)館里的單片機(jī)書(shū)基本上都翻過(guò)。電機(jī)部分參考自控原理書(shū)里的電機(jī)傳遞函數(shù)。還有keil教程和proteus教程</p><p> 附錄一 硬件系統(tǒng)電路原理圖</
80、p><p><b> 附錄二:程序源代碼</b></p><p> #include <reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> #
81、define THCO 0xf8</p><p> #define TLCO 0x30 //2ms</p><p> uchar code Duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共陰極數(shù)碼管,0-9段碼表</p><p> uchar Data_Buffer[8]
82、={0,0,0,0,0,0,0,0};//數(shù)碼管顯示數(shù)值,數(shù)組變量定義</p><p> uchar Data[4]={0,0,0,0};</p><p> uchar Arry[4]={0,0,0,0};</p><p> bitflag1 = 0 ;</p><p> bit flag0 = 0;</p>
83、<p> unsigned char i = 0 ;</p><p> sbit AddSpeed=P1^1;</p><p> sbit SubSpeed=P1^2;</p><p> sbit Stop=P1^3;//按鍵調(diào)速</p><p> sbit PWM_FC=P1^0;//PWM控制端<
84、/p><p> int e=0,e1=0,e2=0;//PID偏</p><p> float uk=0,uk1=0.0,duk=0.0;//PID輸出值</p><p> float Kp=0.5,Ki=7,Kd=0.001;//PID控制系數(shù)</p><p> int out=0;</p><p&g
85、t; signed int SpeedSet=500;</p><p> uint cnt=0;</p><p> uint Inpluse=0,num=0; //脈沖計(jì)數(shù)單元</p><p> uint PWMTime=0;//脈沖寬度</p><p> void PIDControl();</p>
86、<p> void SystemInit();</p><p> void delay(uchar x);</p><p> void PWMOUT();</p><p> void SetSpeed();</p><p> void SegRefre();</p><p>
87、 void main()</p><p><b> {</b></p><p> SystemInit() ;</p><p><b> while(1)</b></p><p><b> { </b></p><p> SetSpeed
88、() ;</p><p> SegRefre() ;</p><p> PWMOUT() ;</p><p><b> }</b></p><p><b> }</b></p><p> void PIDControl() //PID偏差計(jì)算</p>
89、<p><b> {</b></p><p> e = SpeedSet - num ;</p><p> duk=( Kp*(e - e1) + Ki*e + Kd*(e - 2*e1 + e2))/100 ;</p><p> uk = uk1 + duk ;</p><p> out = (
90、int)uk ;</p><p> if(out > 250)</p><p><b> {</b></p><p> out = 250 ;</p><p><b> }</b></p><p> else if(out < 0)</p>
91、<p><b> {</b></p><p><b> out = 0 ;</b></p><p><b> } </b></p><p> uk1 = uk ;</p><p><b> e2 = e1 ;</b></p>
92、;<p><b> e1 = e ;</b></p><p> PWMTime = out ;</p><p><b> } </b></p><p> void delay(uchar x)</p><p><b> { </b><
93、/p><p> uint i = 0,j = 0;</p><p> for(i = x ; i > 0 ; i--)</p><p> for(j = 50 ; j > 0 ; j--) ;</p><p><b> }</b></p><p> void PWMOUT()
94、 //PWm輸出</p><p><b> {</b></p><p> if ( cnt < PWMTime )</p><p><b> { </b></p><p> PWM_FC = 0 ;</p><p><b> }&l
95、t;/b></p><p><b> else</b></p><p><b> {</b></p><p> PWM_FC = 1 ;</p><p><b> } </b></p><p> if ( cnt > 250) c
96、nt = 0 ; </p><p><b> }</b></p><p> void SystemInit()</p><p><b> {</b></p><p> TMOD = 0x21;//定時(shí)器0,計(jì)數(shù)器的初始化</p><p> TH0 = THCO
97、 ;</p><p> TL0 = TLCO ;</p><p><b> TR0 = 1 ;</b></p><p><b> ET0 = 1 ;</b></p><p><b> EX0 = 1 ;</b></p><p><b>
98、 IT0 = 1 ;</b></p><p> PCON = 0x00 ; //方式一,8位數(shù)據(jù)位,一位起始位和一位結(jié)束位</p><p> SCON = 0x50 ; //串口通信控制寄存器 模式一,收發(fā)使能</p><p> TH1= 0xfd ;//波特率為9600,11.0592HZ</p><
99、;p> TL1= 0xfd ;</p><p><b> ES = 1 ;</b></p><p> TR1= 1 ;</p><p><b> EA = 1 ;</b></p><p><b> e = 0 ;</b></p><p&
100、gt;<b> e1 = 0 ;</b></p><p><b> e2 = 0 ;</b></p><p><b> }</b></p><p> void SetSpeed() //按鍵 速度設(shè)定</p><p><b> {</b>&
101、lt;/p><p> if ( AddSpeed==0)</p><p><b> {</b></p><p> delay(20) ;//有鍵按下 延時(shí)10ms</p><p> if( AddSpeed==0)</p><p><b> {</b></p&
102、gt;<p> SpeedSet=SpeedSet+50 ;</p><p> if( SpeedSet>9999) </p><p><b> {</b></p><p> SpeedSet=0;</p><p><b> }</b></p><p
103、> while(!AddSpeed);//等待按鍵釋放</p><p><b> }</b></p><p><b> }</b></p><p> if ( SubSpeed == 0) //速度減</p><p><b> {</b></p>
104、<p> delay(20);</p><p> if( SubSpeed == 0)</p><p><b> {</b></p><p> SpeedSet -= 50;</p><p><b> //有鍵按下</b></p><p> if (Sp
105、eedSet<=0) SpeedSet = 0;</p><p> while(!SubSpeed);</p><p><b> }</b></p><p><b> }</b></p><p> if (Stop == 0) //電機(jī)停止</p><p>&
106、lt;b> {</b></p><p> delay(20);</p><p> if(Stop==0)</p><p><b> {</b></p><p> SpeedSet = 0;</p><p> PWM_FC = 1 ;</p>&l
107、t;p><b> }</b></p><p> while(!Stop);</p><p><b> } </b></p><p><b> }</b></p><p> void SegRefre() //數(shù)碼管顯示刷新</p><p&g
108、t;<b> { </b></p><p> Data_Buffer[0] = SpeedSet/1000;</p><p> Data_Buffer[1] = SpeedSet%1000/100;</p><p> Data_Buffer[2] = SpeedSet%100/10;</p><p>
109、Data_Buffer[3] = SpeedSet%10;</p><p> Data_Buffer[4] = num/1000;</p><p> Data_Buffer[5] = num%1000/100;</p><p> Data_Buffer[6] = num%100/10;</p><p> Data_Buffer[7]
110、= num%10;</p><p><b> }</b></p><p> void exter0() interrupt 0 //外部中斷脈沖計(jì)數(shù)</p><p><b> {</b></p><p> Inpluse++;</p><p><b> }
111、</b></p><p> void timer0() interrupt 1 </p><p><b> {</b></p><p> static unsigned char Bit = 0;//靜態(tài)變量,退出程序后,值保留</p><p> static unsigned int time =
112、 0;</p><p> static unsigned int aa = 0;</p><p> TH0 = THCO;</p><p> TL0 = TLCO;</p><p> aa ++ ; //100MS串口輸出一次數(shù)據(jù)</p><p> if ( aa == 50)</p>
113、<p><b> {</b></p><p><b> aa = 0;</b></p><p> flag0 = 1;</p><p><b> }</b></p><p> cnt ++ ;// PID脈沖周期</p><p>&l
114、t;b> Bit ++ ;</b></p><p> time ++ ;//轉(zhuǎn)速測(cè)量周期</p><p> if(Bit >= 8) Bit=0;</p><p> P2 = 0xff;</p><p><b> //先關(guān)位</b></p><p> P0 =
115、Duan[Data_Buffer[ Bit ] ];//開(kāi)段碼</p><p> switch(Bit)//送位碼</p><p><b> {</b></p><p> case 0: P2 = 0XFE; break;</p><p> case 1: P2 = 0XFD; break;</p
116、><p> case 2: P2 = 0XFB; break;</p><p> case 3: P2 = 0XF7; break;</p><p> case 4: P2 = 0XEF; break;</p><p> case 5: P2 = 0XDF; break;</p><p> case 6: P2
117、= 0XBF; break;</p><p> case 7: P2 = 0X7F; break;</p><p><b> }</b></p><p> if(time >= 500) //1s鐘讀取一次轉(zhuǎn)速</p><p><b> {</b></p><p
118、><b> time = 0;</b></p><p> num = Inpluse*10; //計(jì)算轉(zhuǎn)速</p><p> Inpluse = 0;</p><p> PIDControl();// 1s 控制一次</p><p><b> } </b></p>&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 直流電機(jī)轉(zhuǎn)速pid控制課程設(shè)計(jì)報(bào)告
- 直流電機(jī)轉(zhuǎn)速計(jì)算機(jī)控制系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)控制課程設(shè)計(jì)——直流電機(jī)pwm調(diào)速系統(tǒng)的計(jì)算機(jī)控制
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)---直流電機(jī)pwm調(diào)速系統(tǒng)
- 計(jì)算機(jī)課程設(shè)計(jì)---直流電機(jī)速度控制
- 基于CPLD計(jì)算機(jī)控制直流電機(jī).pdf
- 計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)--單閉環(huán)直流電機(jī)調(diào)速系統(tǒng)
- 直流電機(jī)轉(zhuǎn)速測(cè)量與控制課程設(shè)計(jì)
- 直流電機(jī)順序控制課程設(shè)計(jì)報(bào)告
- 直流電機(jī)課程設(shè)計(jì)--直流電機(jī)控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---直流電機(jī)速度控制
- 電子課程設(shè)計(jì)報(bào)告(直流電機(jī)轉(zhuǎn)速測(cè)量)
- 直流電機(jī)pid轉(zhuǎn)速閉環(huán)調(diào)速控制系統(tǒng)
- 直流電機(jī)轉(zhuǎn)速控制器設(shè)計(jì)開(kāi)題報(bào)告
- 直流電機(jī)計(jì)算機(jī)控制綜合平臺(tái)驅(qū)動(dòng)模塊及控制軟件設(shè)計(jì).pdf
- 微機(jī)接口課程設(shè)計(jì)--直流電機(jī)控制
- 直流電機(jī)轉(zhuǎn)速測(cè)量與控制
- 直流電機(jī)轉(zhuǎn)速分段pid控制的單片機(jī)實(shí)現(xiàn)
- 課程設(shè)計(jì)--直流電機(jī)調(diào)速控制的設(shè)計(jì)
- 直流電機(jī)pid閉環(huán)數(shù)字控制設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論