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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 張力控制 收卷 放卷 PID調(diào)節(jié)

          張力控制 收卷 放卷 PID調(diào)節(jié)

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

          2.2 軟件設(shè)計(jì)流程
          STM32芯片的軟件編寫,可以使用程序編寫軟件keil uvision4。keil uvision4不僅對Cortex_M3內(nèi)核有很好的支持,而且配置和使用也較為方便,同時(shí)還包含有STM32的固件庫函數(shù)。的軟件是整個(gè)控制過程的靈魂,在合理的硬件電路上,它主宰著所有的控制流程。當(dāng)芯片上電工作時(shí),我們必須把系統(tǒng)時(shí)鐘和一些需要用到的外設(shè)進(jìn)行初始化。然后利用時(shí)間片輪轉(zhuǎn)的方式實(shí)時(shí)地控制輸入、輸出和顯示模塊。
          系統(tǒng)初始化是為芯片可以正常的工作做準(zhǔn)備。這里首先要初始化系統(tǒng)的時(shí)鐘,把工作頻率由8 M(外接8 M石英晶體)倍頻到72 M,然后初始化內(nèi)部FLASH的讀寫權(quán)限,最后使能總線上用到外設(shè)的時(shí)鐘。使能外設(shè)定時(shí)器3,開啟PWM功能。
          由圖1可知,控制器要處理兩個(gè)外部輸入信號,一是測量角速度,我們可以通過測量滾軸旋轉(zhuǎn)一周所花的時(shí)間得到。這里使能了外部中斷和定時(shí)器2中斷,當(dāng)滾軸轉(zhuǎn)動(dòng)時(shí),軸上面的齒會使角速度測量器反饋給控制器一個(gè)上升沿,在下一個(gè)上升沿來時(shí),我們可以利用定時(shí)器2得到兩次上升沿經(jīng)過的時(shí)間,從而計(jì)算出滾軸的角速度。在給定了滾軸的直徑后,可以進(jìn)一步推算出滾軸的線速度;二是測量張力,正確利用STM32控制器的外設(shè)ADC,首先要把硬件對應(yīng)接入的GPIO引腳配置成模擬輸入模式。配置好ADC和DMA的工作模式,利用DMA功能把轉(zhuǎn)變成的數(shù)字量搬到固定的寄存器里,方便之后的數(shù)學(xué)運(yùn)算。
          在完成輸入信號的讀取后,控制器要對張力采樣的信號進(jìn)行數(shù)字濾波,然后與用戶設(shè)定的張力值作比較,通過,控制輸出PWM波。利用定時(shí)器2采集到的時(shí)間量結(jié)合用戶設(shè)定的滾軸直徑和材料厚度等參數(shù)可以推算出材料的長度。當(dāng)筒收到用戶需求時(shí),如果開啟滿料報(bào)警,就可以提醒用戶更換卷筒了;同理,時(shí)可以開啟少料報(bào)警。當(dāng)測量的ADC數(shù)字量很小時(shí),若開啟了零張力報(bào)警,可以提醒用戶工作異常。

          程序在運(yùn)行時(shí),我們可以在FLASH里開辟一段存儲空間,把用戶設(shè)定好的參數(shù)保存在這里,每次開機(jī)時(shí),就可以先從這段存儲空間讀取參數(shù),這樣系統(tǒng)就不僅可以準(zhǔn)確運(yùn)行,而且減少了很多設(shè)置麻煩。然而系統(tǒng)在運(yùn)行時(shí),也有可能會突然停電,這時(shí)必須可以保存卷徑(簡或簡的直徑),下次開機(jī)時(shí)卷徑就不必從初始值計(jì)算。STM32帶有可編程電壓監(jiān)測器,這里可以開啟電壓監(jiān)測中斷功能,這樣就可以在掉電的瞬間利用片內(nèi)空白FLASH儲存當(dāng)前卷徑。下表1為過程中用戶需設(shè)定的部分參數(shù)。


          從宏觀上,程序設(shè)置了3層頁面。最上一層是工作頁面,系統(tǒng)在正常運(yùn)行時(shí),處于該頁面;第二層是參數(shù)選擇頁面,用戶在這里選擇需要修改的參數(shù);第三層就是參數(shù)修改頁面,用戶可利用編碼器修改參數(shù)的大小,編碼器旋轉(zhuǎn)的快慢對應(yīng)著設(shè)定值變化的快慢,用戶也在這里對系統(tǒng)進(jìn)行調(diào)零和定標(biāo)。由于張力傳感器測量的是滾軸的重量和卷料的張力總和,而調(diào)零則是先測量滾軸的重量;定標(biāo)則是利用已知重量的法碼掛在滾軸上得到的信號量,如此,就可以準(zhǔn)確測量出卷料的張力。

          3 過程
          如圖2所示,張力的控制過程可以分為四個(gè)階段:預(yù)備階段,啟動(dòng)階段,運(yùn)行階段,停機(jī)階段。t0以前為預(yù)備階段,t0到t1為啟動(dòng)階段,t1到t2為運(yùn)行階段,t2到t3為停機(jī)階段,t3時(shí)間過后系統(tǒng)又重新進(jìn)入了預(yù)備階段,而T0為用戶設(shè)定張力。用戶可以通過設(shè)置表中的參數(shù)完成控制過程,預(yù)備階段可以說是等待階段,用戶此時(shí)要把卷料準(zhǔn)備好,而系統(tǒng)有一定的預(yù)備輸出預(yù)熱磁粉。在滿足啟動(dòng)條件時(shí),系統(tǒng)就進(jìn)入了啟動(dòng)階段,這里有兩種啟動(dòng)方法,一是電平啟動(dòng),即用戶可以用開關(guān)開啟系統(tǒng);二是速度啟動(dòng),即當(dāng)滾軸速度達(dá)到一定值時(shí),系統(tǒng)自行進(jìn)入啟動(dòng)階段,用戶按需求設(shè)定的啟動(dòng)輸出使設(shè)備開始運(yùn)轉(zhuǎn)。經(jīng)過啟動(dòng)時(shí)間,系統(tǒng)就進(jìn)入運(yùn)行階段,此時(shí)STM32控制器進(jìn)行自動(dòng)跟蹤,當(dāng)所測張力調(diào)節(jié)到設(shè)定值時(shí),輸出基本保持穩(wěn)定狀態(tài)。當(dāng)卷材收取或放出完畢后,若是電平啟動(dòng),則可以關(guān)閉開關(guān)停機(jī)系統(tǒng),若是速度啟動(dòng),則當(dāng)速度降為設(shè)定值時(shí)自動(dòng)停機(jī)。停機(jī)時(shí)的停機(jī)增益是指運(yùn)行階段輸出值的增加倍數(shù)。


          除了以上自動(dòng)張力控制外,還有另一個(gè)控制方法,即可以人為給定輸出值。人為給定輸出值是只在特殊情況下才會用到。然而做作為輸出的一種手段,也是必不可缺的功能。在張力控制過程中,也必須滿足在手動(dòng)和自動(dòng)的切換過程中,不會對輸出值有太大的變化,不然會至使卷料拉斷或松弛,造成巨大的損失。

          4 結(jié)論
          基于STM32閉環(huán)張力控制系統(tǒng)可以精確的控制張力,在印刷等輕工業(yè)中有著非常廣闊的前景。它不僅在信號的采集時(shí)有較高的精度,在控制過程中也有極強(qiáng)的穩(wěn)定性和可靠性。在配置參數(shù)時(shí)也非常靈活,可以滿足多種用戶的需求。在精度要求高的張力控制系統(tǒng)中,值得推廣應(yīng)用。

          pid控制相關(guān)文章:pid控制原理


          pid控制器相關(guān)文章:pid控制器原理


          隔離器相關(guān)文章:隔離器原理
          電容式接近開關(guān)相關(guān)文章:電容式接近開關(guān)原理
          接近開關(guān)相關(guān)文章:接近開關(guān)原理

          上一頁 1 2 下一頁

          評論


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