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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于細(xì)分驅(qū)動(dòng)的船用儀表步進(jìn)電機(jī)控制的實(shí)現(xiàn)

          基于細(xì)分驅(qū)動(dòng)的船用儀表步進(jìn)電機(jī)控制的實(shí)現(xiàn)

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


          由于溫度與電壓之間的非線性關(guān)系及電機(jī)齒輪的誤差影響,導(dǎo)致滿度定位有偏差,可以通過分段線性處理的方法,在半滿量程點(diǎn)、2/3滿量程點(diǎn)和滿量程點(diǎn),對式(4)進(jìn)行補(bǔ)償修正,從而獲得準(zhǔn)確的定位。

          3.2 儀表指針跟蹤算法的實(shí)現(xiàn)

          儀表指針運(yùn)行的效果要求平滑且跟蹤快,要滿足這兩項(xiàng)要求,必須要有好的升降頻控制算法,因此必須在軟件設(shè)計(jì)上配合實(shí)現(xiàn)硬件電路的。硬件電路提供驅(qū)動(dòng)的階梯波形,軟件設(shè)計(jì)將控制此波形的時(shí)間間隔,使得指針快速、精準(zhǔn)地定位,并且平滑、無卡滯地運(yùn)行。

          常用的升降頻控制方法有3種:直線升降頻、指數(shù)曲線升降頻、拋物線升降頻。直線升降頻是以恒定的加速度進(jìn)行升降,平穩(wěn)性較好,適用于速度變化較大的快速定位方式。軟件實(shí)現(xiàn)比較簡單,但其加速度時(shí)間比較長。指數(shù)升降頻控制具有較強(qiáng)的跟蹤能力,但當(dāng)速度變化較大的時(shí)侯其平衡性較差。拋物線升降頻是將直線升降頻和指數(shù)曲線升降頻相融合,充分考慮到低速時(shí)的有效轉(zhuǎn)矩,使升降速的時(shí)間大為縮短,同時(shí)又考慮使其具有較強(qiáng)的跟蹤能力。

          指針跟蹤程序流程圖如圖5所示,查參數(shù)-微步數(shù)表得到目標(biāo)微步數(shù)后,與當(dāng)前位置比較確定指針的轉(zhuǎn)動(dòng)方向和轉(zhuǎn)角。為使指針能快速跟蹤、準(zhǔn)確定位,需要按,建立一張位置差值-指針?biāo)俣缺恚?dāng)目標(biāo)位置離當(dāng)前位置較遠(yuǎn)時(shí),指針?biāo)俣容^快,反之則較慢,如參數(shù)突然變化較大,不能直接從上一較快(較慢)的指針?biāo)俣纫淮巫兓捷^慢(較快)的目標(biāo)速度,會(huì)使指針產(chǎn)生卡滯、抖動(dòng)等現(xiàn)象。

          應(yīng)用到船用儀表中,推動(dòng)了數(shù)字化指針儀表的發(fā)展,顯示方式更符合人機(jī)工程學(xué)的要求。本文對實(shí)現(xiàn)組合電阻式步進(jìn)電機(jī)的軟硬件設(shè)計(jì)進(jìn)行了描述,與專用芯片法(硬件)和PWM脈寬調(diào)制法(軟件)相比,性價(jià)比較好。儀表指針跟蹤位置的準(zhǔn)確性、快速性及運(yùn)行平穩(wěn)性都超過了普通模擬指針表的功能,有著較強(qiáng)的通用性和廣闊的應(yīng)用前景。


          上一頁 1 2 3 下一頁

          評論


          相關(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); })();