<li id="wkceg"></li>
<rt id="wkceg"><delect id="wkceg"></delect></rt>
<bdo id="wkceg"></bdo>
<strike id="wkceg"><acronym id="wkceg"></acronym></strike>

  • 帳號(hào):
    密碼:
    智動(dòng)化 / 文章 /

    在高速運(yùn)動(dòng)控制要求下 CPU與FPGA的分工合作
    [作者 盧傑瑞]   2020年09月16日 星期三 瀏覽人次: [10305]

    基本上有接觸過(guò)自動(dòng)控制架構(gòu)的每個(gè)人,幾乎都知道可以透過(guò)CPU、FPGA以及PLC來(lái)進(jìn)行複雜伺服馬達(dá)的運(yùn)動(dòng)控制,例如雙軸插值(Interpolation)、凸輪控制等。但是到目前為止,甚少發(fā)現(xiàn)利用PLC來(lái)負(fù)責(zé)這些動(dòng)作的計(jì)算。


    這時(shí)會(huì)有個(gè)疑問(wèn)出現(xiàn),為什麼不利用PLC來(lái)控制?通常來(lái)說(shuō),這些由PLC進(jìn)行控制非常不錯(cuò),但是PLC大多是負(fù)責(zé)多工的(multi-tasking)處理,所以幾乎沒(méi)有餘力可以再負(fù)擔(dān)複雜的伺服馬達(dá)計(jì)算。


    因此在進(jìn)行運(yùn)動(dòng)控制時(shí),就需要採(cǎi)單一Tasking處理才能達(dá)到高速運(yùn)算的作業(yè)目標(biāo)。另外,也不適合用PLC來(lái)編寫雙軸插值和凸輪控制等複雜的作業(yè),最好將伺服放大器和CPU組合一起作為伺服馬達(dá)的專用機(jī)制,即使以後進(jìn)行修改也可以降低成本。


    不適合透過(guò)PLC單獨(dú)對(duì)伺服馬達(dá)高速控制

    因此,透過(guò)CPU、FPGA與其他機(jī)構(gòu)的搭配可以減輕PLC程式的負(fù)擔(dān),另一方面,CPU具有高速計(jì)算能力適用於控制伺服馬達(dá),因此PLC可以專注擔(dān)任其他機(jī)器控制(感應(yīng)馬達(dá)等)和訊息控制來(lái)分配處理負(fù)載。


    什麼是簡(jiǎn)單運(yùn)動(dòng)單元(Simple Motion Unit)?簡(jiǎn)單運(yùn)動(dòng)單元可以執(zhí)行與CPU相同的控制(雙軸插值、凸輪控制等),並且可以透過(guò)來(lái)自PLC的命令輕鬆進(jìn)行操作。


    由於它是受限需要於PLC的命令輸出,因此在連續(xù)執(zhí)行伺服馬達(dá)時(shí),CPU可以比簡(jiǎn)單運(yùn)動(dòng)單元更快地完成操作。此外,簡(jiǎn)單運(yùn)動(dòng)單元還有一個(gè)優(yōu)點(diǎn)就是比CPU便宜,並且可以使用常規(guī)MOV命令輕鬆控制PLC的程序。不過(guò)卻有一些情況,並不常利用這種廉價(jià)而又容易進(jìn)行操控,簡(jiǎn)單運(yùn)動(dòng)單元來(lái)做為伺服馬達(dá)的馬達(dá),而是要使用麻煩的CPU呢?


    這是因?yàn)樵谶M(jìn)行高度運(yùn)動(dòng)控制時(shí),又可以不受PLC掃描時(shí)間影響的一種高速系統(tǒng)架構(gòu)。PLC的掃描時(shí)間會(huì)受到程式容量的影響,因此伺服馬達(dá)的多軸控制無(wú)法避免增加PLC的程式量。如果CPU可以控制伺服馬達(dá)的操作模式和時(shí)序,就可以大幅減少PLC程序的負(fù)載。


    運(yùn)算單元的配置相當(dāng)重要

    運(yùn)動(dòng)系統(tǒng)控制的過(guò)程包括在設(shè)備的智慧化和自動(dòng)化中,具有離線(Off Line)計(jì)算能力以及智慧,並透過(guò)線上(On Line)計(jì)算實(shí)現(xiàn)功能的流程。由於離線計(jì)算沒(méi)有時(shí)間限制,因此即使運(yùn)算單元的能力不佳也可以利用時(shí)間來(lái)彌補(bǔ),但是在即時(shí)的On Line計(jì)算中,運(yùn)算單元的配置就變得相當(dāng)重要。


    對(duì)於軟性即時(shí)(Soft Real Time)處理,可以採(cǎi)用具有高性能OS的CPU,但是當(dāng)需要FArm/硬性即時(shí)(Hard Real Time)處理,或許微處理器或FPGA會(huì)更易於使用。因?yàn)镕PGA除了有高精緻的優(yōu)點(diǎn),在需要即時(shí)處理的情況下更具有優(yōu)勢(shì)。


    舉例來(lái)說(shuō),圖1是利用FPGA完成的一個(gè)採(cǎi)樣頻率為1 MHz的機(jī)器人運(yùn)動(dòng)控制系統(tǒng),在這樣的FPGA高精細(xì)執(zhí)行高速訊號(hào)處理的架構(gòu)下,可以獲得的控制性能非常好,可以輕鬆達(dá)到精確控制 (使用解析度為10 nm的光學(xué)編碼器進(jìn)行定位,並且誤差在1或2個(gè)脈衝之內(nèi))。還可以藉由FPGA的高精細(xì)度,透過(guò)高速訊號(hào)處理等方式消除運(yùn)算系?中的噪訊,提高控制系?的增益。



    圖1 : 利用FPGA完成1 MHz採(cǎi)樣頻率運(yùn)動(dòng)控制實(shí)驗(yàn)(source:Increments)
    圖1 : 利用FPGA完成1 MHz採(cǎi)樣頻率運(yùn)動(dòng)控制實(shí)驗(yàn)(source:Increments)

    這樣一來(lái),就可以不用受到像傳統(tǒng)的H∞最佳化控制理論的限制與約束,可以提高增益,使得系統(tǒng)性能得以大幅度提升。這樣的機(jī)制比起費(fèi)盡心力的設(shè)計(jì)補(bǔ)償器更容易獲得更好的性能。


    CPU與FPGA的互補(bǔ)與優(yōu)劣勢(shì)

    就工業(yè)控制器的開(kāi)發(fā)與使用而言,所有工程師都希望盡可能地降低控制器成本,微控制器已經(jīng)大量的使用,例如安川電機(jī)和三菱CPLD,由於物聯(lián)網(wǎng)的趨勢(shì)而被廣泛使用。現(xiàn)今由於缺乏通用介面(尤其是通訊系統(tǒng))的靈活性,而又回到了採(cǎi)用微控制器,或者導(dǎo)入SoC FPGA來(lái)實(shí)現(xiàn)Linux on ARM中的高階功能,同時(shí)在FPGA中進(jìn)行控制的例子。


    雖說(shuō)FPGA的優(yōu)勢(shì)性目前正在擴(kuò)大,如果不能在指令級(jí)確保並行性,與CPU相較之下就會(huì)顯得遜色,畢竟這樣的FPGA只能當(dāng)作運(yùn)算工具,用來(lái)執(zhí)行向量運(yùn)算的並行ALU。


    實(shí)際上用於機(jī)器人運(yùn)動(dòng)控制的命令值生成與數(shù)據(jù)相關(guān),是循序運(yùn)算或使用三角函數(shù)計(jì)算的,因此使用FPGA進(jìn)行效率非常低。反之,這會(huì)使得CPU被採(cǎi)用的頻率更高,即使非常努力的設(shè)計(jì)FPGA運(yùn)用架構(gòu),相信也無(wú)法達(dá)到期望值。


    另外,因?yàn)閷?duì)於機(jī)器人的運(yùn)動(dòng)控制,在校正錯(cuò)誤的反饋(Feedback)這一部分,包括從觀察(計(jì)算器輸入)到校正指令輸出(計(jì)算器輸出)的過(guò)程,當(dāng)然是愈快愈好。所以希望能獲得高速處理能力,而工程師就需要更高密度的設(shè)計(jì)I/O系統(tǒng)和電路,這也是FPGA將常被導(dǎo)入架構(gòu)應(yīng)用的原因之一。


    如同人體的反射動(dòng)作與思考判斷後動(dòng)作

    為了更容易理解上述的要求,在這裡以模擬的方式來(lái)說(shuō)明該運(yùn)算單元(圖2)。



    圖2 : 訊號(hào)判斷的處理與傳輸架構(gòu) (source:Increments)
    圖2 : 訊號(hào)判斷的處理與傳輸架構(gòu) (source:Increments)

    就人體身體的感測(cè)機(jī)制而言,例如包括眼睛、耳朵和皮膚等生理感測(cè)器,從外界的刺激現(xiàn)象獲得感受訊號(hào)後,會(huì)將這些感受訊號(hào)傳遞至入體內(nèi)相關(guān)機(jī)制,有一些訊號(hào)會(huì)進(jìn)入大腦,有一些訊號(hào)會(huì)進(jìn)入脊髓,並對(duì)肌肉或骨骼系統(tǒng)等發(fā)出命令。


    而進(jìn)入大腦的訊號(hào)通過(guò)間腦的中繼中心,隨後在顳葉和頂葉進(jìn)行判別,再透過(guò)顳葉和枕葉的感覺(jué)部分,在額葉做出決定並在小腦發(fā)出動(dòng)作控制訊號(hào),這些訊號(hào)再通過(guò)間腦進(jìn)入肌肉骨骼系統(tǒng)。


    這樣的處理機(jī)制相當(dāng)類似於CPU的功能。因?yàn)槔肍PGA中的平行算術(shù)邏輯單元(Arithmetic Logic Unit;ALU)來(lái)執(zhí)行的加速運(yùn)算,等同於增加頂葉和額葉等結(jié)合區(qū)的面積並增加計(jì)算量。


    另一方面,因?yàn)榧顾璺瓷鋭?dòng)作沒(méi)有經(jīng)過(guò)大腦,因此速度很快,這樣的反射中心類似於為FPGA上精心設(shè)計(jì)的I/O系統(tǒng)電路。由於肌肉骨骼系統(tǒng)是在腦以外勵(lì)起作用並反映,就像是效應(yīng)器,使用筆和紙進(jìn)行記錄和讀取等使用外部工具。


    在使用SoC FPGA的設(shè)計(jì)中,就像需要利用大腦的訊號(hào)處理是透過(guò)CPU進(jìn)行運(yùn)算,而脊髓所發(fā)生的反射動(dòng)作則是經(jīng)過(guò)FPGA處理。CPU可以進(jìn)行運(yùn)算程序來(lái)完成許多不同的事情,但是各種過(guò)程(中斷和匯流排控制)都需要時(shí)間等待,才能在CPU處理。


    源於I/O所造成時(shí)間的延遲累加

    透過(guò)以下的例子,就可以了解運(yùn)算工作分配的重要性,如果不能善用類似脊髓可自發(fā)生反射動(dòng)作的FPGA,解決一些即時(shí)性的Feedback或校正錯(cuò)誤,而是無(wú)限度的將計(jì)算工作丟給CPU,就會(huì)出現(xiàn)不斷累加的計(jì)算時(shí)間延遲結(jié)果。


    這個(gè)例子是測(cè)量每個(gè)程序所需的過(guò)程時(shí)間來(lái)了解反應(yīng)速度的區(qū)別。在此項(xiàng)實(shí)測(cè)中,採(cǎi)用ARM CPU與FPGA搭配,並用AXI4通訊協(xié)定來(lái)連接,對(duì)應(yīng)在Arm CPU上映射的I /O的寫/讀速度(圖3)。這個(gè)測(cè)試是執(zhí)行30000次所需的控制時(shí)間,每次讀寫100次所花費(fèi)的時(shí)間除以100,而測(cè)量計(jì)時(shí)器放置在FPGA上。



    圖3 : 利用ARM CPU上映射的I /O的寫/讀速度(source:Increments)
    圖3 : 利用ARM CPU上映射的I /O的寫/讀速度(source:Increments)

    執(zhí)行機(jī)器人運(yùn)動(dòng)控制所需的代碼,在此是採(cǎi)用了時(shí)鐘獲取時(shí)間(clock_gettime),由於時(shí)鐘獲取時(shí)間本身的負(fù)荷,會(huì)有1us左右的誤差。可以發(fā)現(xiàn)進(jìn)行第10000次之後,在計(jì)算三角函數(shù)時(shí)所需要的計(jì)算時(shí)間出現(xiàn)了增加的現(xiàn)象。



    圖4 : 進(jìn)行第10000次之後,計(jì)算時(shí)間出現(xiàn)增加(source:Increments)
    圖4 : 進(jìn)行第10000次之後,計(jì)算時(shí)間出現(xiàn)增加(source:Increments)

    從受體到效應(yīng)器的往返時(shí)間

    結(jié)果是,從FPGA向Arm CPU發(fā)送出中斷,並使用FPGA上的計(jì)時(shí)器,測(cè)量了直到從Arm進(jìn)行I/O寫入為止的時(shí)間。同時(shí)也考慮到AXI4的速度和Arm計(jì)算時(shí)間,它花費(fèi)了很長(zhǎng)的時(shí)間。從往返時(shí)間中減去AXI4通訊時(shí)間和Arm操作時(shí)間,使用處理器的程序處理時(shí)間如下(圖5~6)。



    圖5 :  3萬(wàn)次的封包來(lái)回時(shí)間(source:Increments)
    圖5 : 3萬(wàn)次的封包來(lái)回時(shí)間(source:Increments)

    圖6 :  3萬(wàn)次的運(yùn)算處理時(shí)間(source:Increments)
    圖6 : 3萬(wàn)次的運(yùn)算處理時(shí)間(source:Increments)

    從例子可以發(fā)現(xiàn),在處理中斷的過(guò)程中,可以發(fā)現(xiàn)有延遲的情況出現(xiàn),由於中斷使用UIO的速度很慢,所以應(yīng)該利用內(nèi)和運(yùn)算來(lái)進(jìn)行處理,相信回應(yīng)速度會(huì)比較快(圖7)。



    圖7 : 利用內(nèi)和運(yùn)算進(jìn)行處理,相信回應(yīng)速度會(huì)比較快。(source:Increments)
    圖7 : 利用內(nèi)和運(yùn)算進(jìn)行處理,相信回應(yīng)速度會(huì)比較快。(source:Increments)

    如果要在短時(shí)間內(nèi)使用Arm處理器進(jìn)行採(cǎi)樣,就必須管理時(shí)程。如果想利用Arm CPU進(jìn)行短時(shí)間採(cǎi)樣時(shí),就不得不認(rèn)真考慮處理中斷這個(gè)動(dòng)作時(shí)所耗費(fèi)的時(shí)間。


    而在控制方面,訊號(hào)處理系統(tǒng)會(huì)受到時(shí)間軸的抖動(dòng)影響,可以對(duì)FPGA做精確時(shí)間的平均採(cǎi)樣,或許這非常有用。另外,還能透過(guò)FPGA本身的高精緻度特性,在電腦程式中建立很多執(zhí)行緒,每個(gè)執(zhí)行緒都有自己的時(shí)鐘,並且嚴(yán)格定時(shí),相信這對(duì)於在執(zhí)行各種操作的機(jī)器人運(yùn)動(dòng)控制系統(tǒng)中是非常有用的。


    相關(guān)文章
    ? 以馬達(dá)控制器ROS1驅(qū)動(dòng)程式實(shí)現(xiàn)機(jī)器人作業(yè)系統(tǒng)
    ? CAD/CAM軟體無(wú)縫加值協(xié)作
    ? 確保機(jī)器人的安全未來(lái):資安的角色
    ? 雙臂機(jī)器人引風(fēng)潮 類人形應(yīng)用猶欠東風(fēng)
    ? 多重技術(shù)融合正在影響機(jī)器人發(fā)展
    comments powered by Disqus
      相關(guān)新聞
    » 博世憑藉其科技領(lǐng)導(dǎo)者實(shí)力
    » 法人開(kāi)放50條試製線撐中小企業(yè) 開(kāi)發(fā)AI新品及培育實(shí)作人才
    » TrendForce:自動(dòng)化成關(guān)稅戰(zhàn)避風(fēng)港 美智慧工廠成本遠(yuǎn)超陸廠
    » 風(fēng)電就業(yè)與國(guó)際接軌 產(chǎn)訓(xùn)合一為產(chǎn)業(yè)供應(yīng)鏈培育專才
    » 機(jī)械公會(huì)參訪金豐淨(jìng)零轉(zhuǎn)型 籲產(chǎn)業(yè)跟進(jìn)解出口衝擊
      相關(guān)產(chǎn)品
    » 泓格iSN-811C-MTCP紅外線感測(cè)模組 從溫度掌握工業(yè)製造的安全與先機(jī)
    » 凌華科技透過(guò) NVIDIA JetPack 6.1 增強(qiáng)邊緣 AI 解決方案
    » 安勤推出搭載NVIDIA Jetson平臺(tái)邊緣AI方案新系列
    » 臺(tái)達(dá)全新溫度控制器 DTDM系列實(shí)現(xiàn)導(dǎo)體加工精準(zhǔn)控溫
    » 西門子推出下一代AI增強(qiáng)型電子系統(tǒng)設(shè)計(jì)軟體 提升使用者體驗(yàn)

    ?
    刊登廣告 新聞信箱 讀者信箱 著作權(quán)聲明 隱私權(quán)聲明 本站介紹

    Copyright ©1999-2025 遠(yuǎn)播資訊股份有限公司版權(quán)所有 Powered by O3
    地址:臺(tái)北數(shù)位產(chǎn)業(yè)園區(qū)(digiBlock Taipei) 103臺(tái)北市大同區(qū)承德路三段287-2號(hào)A棟204室
    電話 (02)2585-5526 #0 轉(zhuǎn)接至總機(jī) / E-Mail: webmaster@hope.com.tw
    主站蜘蛛池模板: 久治县| 石河子市| 洪江市| 英吉沙县| 合山市| 高平市| 五河县| 成武县| 玛沁县| 碌曲县| 交口县| 东明县| 安仁县| 枣庄市| 滦南县| 罗田县| 南阳市| 阿图什市| 沙湾县| 铜陵市| 连平县| 拉萨市| 永胜县| 皮山县| 盐津县| 沙坪坝区| 江津市| 宁都县| 伊宁县| 大冶市| 桦南县| 麻江县| 西平县| 太白县| 扬中市| 翼城县| 恩施市| 宿迁市| 勃利县| 曲阜市| 桂平市|