<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)89C51在直流調(diào)速控制系統(tǒng)中的應(yīng)用

          單片機(jī)89C51在直流調(diào)速控制系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2012-01-19 來源:網(wǎng)絡(luò) 收藏

          一、前言

          直流電動機(jī)具有良好的起動、制動性能,宜于在大范圍內(nèi)平滑調(diào)速,在許多需要調(diào)速或快速正反向的電力拖動領(lǐng)域中得到了廣泛的應(yīng)用。從控制的角度來看,直流調(diào)速還是交流拖動系統(tǒng)的基礎(chǔ)[4]。早期直流電動機(jī)的控制均以模擬電路為基礎(chǔ),采用運(yùn)算放大器、非線性集成電路以及少量的數(shù)字電路組成,控制系統(tǒng)的硬件部分非常復(fù)雜,功能單一,而且系統(tǒng)非常不靈活、調(diào)試?yán)щy,阻礙了直流電動機(jī)控制技術(shù)的發(fā)展和應(yīng)用范圍的推廣。隨著技術(shù)的日新月異,使得許多控制功能及算法可以采用軟件技術(shù)來完成,為直流電動機(jī)的控制提供了更大的靈活性,并使系統(tǒng)能達(dá)到更高的性能。采用構(gòu)成控制系統(tǒng),可以節(jié)約人力資源和降低系統(tǒng)成本,從而有效的提高工作效率[1]。

          二、轉(zhuǎn)速的測量原理

          轉(zhuǎn)速是工程上一個(gè)常用的參數(shù),旋轉(zhuǎn)體的轉(zhuǎn)速常以每分鐘的轉(zhuǎn)數(shù)來表示。其單位為r/min。轉(zhuǎn)速的測量方法很多,由于轉(zhuǎn)速是以單位時(shí)間內(nèi)的轉(zhuǎn)數(shù)來衡量的,因此采用霍爾元器件測量轉(zhuǎn)速是較為常用的一種測量方法。

          霍爾器件是有半導(dǎo)體材料制成的一種薄片,器件的長、寬、高分別為l、b、d。若在垂直于薄片平面(沿厚度d)方向施加外加磁場B,在沿l方向的兩個(gè)端面加以外電場,則有一定的電流經(jīng)過。由于電子在磁場中運(yùn)動,所以將受到一個(gè)洛侖磁力,其大小為:fl=qVB

          式中:fl――洛侖磁力,q――載流子電荷,V――載流子運(yùn)動速度,B――磁感應(yīng)強(qiáng)度。

          這樣使電子的運(yùn)動軌跡發(fā)生偏移,在霍爾元器件薄片的兩個(gè)側(cè)面分別產(chǎn)生電子積聚或電荷過剩,形成霍爾電場,霍爾元器件兩個(gè)側(cè)面間的電位差UH稱為霍爾電壓。

          霍爾電壓大小為:UH=RH×I×B/d(mV)

          式中:RH ---霍爾常數(shù),d---元件厚度,B---磁感應(yīng)強(qiáng)度,I---控制電流

          設(shè)KH= RH/d ,則UH=KH×I×B (mV)

          KH為霍爾器件的靈敏系數(shù)(mV/mA/T),它表示該霍爾元件在單位磁感應(yīng)強(qiáng)度和單位控制電流下輸出霍爾電動勢的大小。應(yīng)注意,當(dāng)電磁感應(yīng)強(qiáng)度B反向時(shí),霍爾電動勢也反向。若控制電流保持不變,則霍爾感應(yīng)電壓將隨外界磁場強(qiáng)度而變化,根據(jù)這一原理,可以將一塊永久磁鋼固定在電動機(jī)的轉(zhuǎn)軸上轉(zhuǎn)盤的邊沿,轉(zhuǎn)盤隨被測軸旋轉(zhuǎn),磁鋼也將跟著同步旋轉(zhuǎn),在轉(zhuǎn)盤附近安裝一個(gè)霍爾元件,轉(zhuǎn)盤隨軸旋轉(zhuǎn)時(shí),霍爾元件受到磁鋼所產(chǎn)生的磁場影響,故輸出脈沖信號,其頻率和轉(zhuǎn)速成正比,測出脈沖的周期或頻率即可計(jì)算出轉(zhuǎn)速。

          三、直流電動機(jī)系統(tǒng)硬件設(shè)計(jì)

          通過自制5V電源來確保工作電壓正常,由霍爾元件及外圍器件組成的測速電路將電動機(jī)轉(zhuǎn)速轉(zhuǎn)換成脈沖信號,送至的計(jì)數(shù)器T1,由T1測出電動機(jī)的實(shí)際轉(zhuǎn)速,并與設(shè)定值比較形成偏差。根據(jù)比較結(jié)果,使DAC0832輸出控制電壓增大或減小。功放電路將DAC0832輸出的模擬電壓轉(zhuǎn)換成具有一定輸出功率的電動機(jī)控制電壓。

          四、直流電動機(jī)系統(tǒng)軟件設(shè)計(jì)

          1、編程思路:控制系統(tǒng)程序的功能是用89C51單片機(jī)的T0、T1測出電動機(jī)的實(shí)際轉(zhuǎn)速,并與給定值進(jìn)行比較。根據(jù)比較結(jié)果,使DAC0832芯片的輸出控制電壓增大或減小。30H單元存放實(shí)際轉(zhuǎn)速與設(shè)定值是否相等的標(biāo)志。“1”表示相等,“0”表示不相等。40H單元存放送入DAC0832芯片的數(shù)字控制電壓。7FFFH為DAC0832地址。

          2、 系統(tǒng)流程圖如圖3所示:

          圖3直流電動機(jī)系統(tǒng)流程圖

          五、直流電動機(jī)轉(zhuǎn)速控制系統(tǒng)的工作原理

          直流電動機(jī)的轉(zhuǎn)速與施加于電動機(jī)兩端的電壓大小有關(guān)。本系統(tǒng)用DAC0832控制輸出到直流電動機(jī)的電壓的方法來控制電動機(jī)的轉(zhuǎn)速。當(dāng)電動機(jī)轉(zhuǎn)速小于設(shè)定值時(shí),DAC0832芯片的輸出電壓增大,當(dāng)大于設(shè)定值時(shí)則DAC0832芯片輸出電壓減小,從而使電動機(jī)以設(shè)定的速度恒速旋轉(zhuǎn)。我們采用比例調(diào)節(jié)器算法。控制規(guī)律:

          Y=KPe(t)+KI

          式中:Y---比例調(diào)節(jié)器輸出,KP---比例系數(shù),KI---積分系數(shù)

          e(t)---調(diào)節(jié)器的輸入,一般為偏差值。

          系統(tǒng)采用了比例積分調(diào)節(jié)器,簡稱PI調(diào)節(jié)器,使系統(tǒng)在擾動的作用下,通過PI調(diào)節(jié)器的調(diào)節(jié)器作用使電動機(jī)的轉(zhuǎn)速達(dá)到靜態(tài)無差,從而實(shí)現(xiàn)了靜態(tài)無差。無靜差調(diào)速系統(tǒng)中,比例積分調(diào)節(jié)器的比例部分使動態(tài)響應(yīng)比較快(無滯后),積分部分使系統(tǒng)消除靜差。

          六、結(jié)論

          本系統(tǒng)用單片機(jī)構(gòu)成電動機(jī)轉(zhuǎn)速的控制系統(tǒng),采用比例積分調(diào)節(jié)器算法,效率高,電路簡單,使用也比較廣泛。

          參考文獻(xiàn):

          1、尹耕欽,唐緒偉 城市交通信號燈模擬控制系統(tǒng) 微計(jì)算機(jī)信息 2005第10-1期

          2、樓然苗,李光飛編著《51單片機(jī)設(shè)計(jì)實(shí)例》北京航空航天大學(xué)出版社

          3、余永權(quán),汪明慧,黃英編著《單片機(jī)在控制系統(tǒng)中的的應(yīng)用》電子工業(yè)出版社

          4、陳伯時(shí) 主編 電力拖動自動控制系統(tǒng) 機(jī)械工業(yè)出版社



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();