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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > μC/OSII嵌入式操作系統(tǒng)在機(jī)電控制中的應(yīng)用

          μC/OSII嵌入式操作系統(tǒng)在機(jī)電控制中的應(yīng)用

          作者: 時(shí)間:2009-09-02 來源:網(wǎng)絡(luò) 收藏

            4.2 系統(tǒng)軟件

            該系統(tǒng)軟件是基于μC/為RT開發(fā)的專用軟件。主要包括以下幾部分:

            (1) 多任務(wù)管理;

            (2) 內(nèi)存資源管理;

            (3)中斷管理;

            (4)UART接口管理;

            (5) ISA接口管理;

            (6) 電機(jī)ADRC算法。

            其中(1)、(2)、(3)由μC/實(shí)現(xiàn)(與接口有關(guān)的中斷服務(wù)程序需用戶編寫),其余為用戶編程實(shí)現(xiàn)。傳統(tǒng)的各類電機(jī)器中大多采用各種各樣的PID,如非線性PID,模糊PID等,這里電機(jī)采用自抗擾控制ADRC(auto_disturbance rejector controller)算法。為了提高算法的效果,對(duì)原來ADRC算法進(jìn)行了適當(dāng)?shù)母倪M(jìn),采用變參數(shù)思想,稱之為模糊ADRC。

            4.3 μC/OS的移植軟件

            μC/OS的移植工作主要包括:

            (1)聲明10個(gè)數(shù)據(jù)類型。在文件OS_CPU.H 中定義9個(gè)數(shù)據(jù)類型和一個(gè)堆棧寬度。

            (2)用#define設(shè)置一個(gè)表示堆棧增長方向的常量OS_STK_GROWTH x 。

            (3)用#define聲明三個(gè)宏。

            (4)用C語言編寫六個(gè)簡單的函數(shù)。

            由于μC/OS是源碼公開的免費(fèi)型RTOS,其上有許多成功的移植實(shí)例共享。按照上述軟硬件設(shè)計(jì)思想,我們?cè)O(shè)計(jì)了Stewart平臺(tái)專用伺服控制器??刂破髂芎芎玫馗櫰谕盘?hào),并能在很短的時(shí)間內(nèi)消除干擾的影響。  

            5 結(jié)束語

            系統(tǒng)及其已成為當(dāng)前研究和的熱點(diǎn),采用系統(tǒng)的控制系統(tǒng)較傳統(tǒng)控制系統(tǒng)在可靠性、體積、功耗、性價(jià)比等方面都具有明顯的優(yōu)勢(shì),相信不久的將來嵌入式系統(tǒng)會(huì)廣泛于各類控制中,并能取得更好的控制效果和更好的系統(tǒng)綜合性能。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評(píng)論


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