印刷機(jī)張力控制系統(tǒng)設(shè)計(jì)
2.2 軟件設(shè)計(jì)流程
STM32芯片的軟件編寫(xiě),可以使用程序編寫(xiě)軟件keil uvision4。keil uvision4不僅對(duì)Cortex_M3內(nèi)核有很好的支持,而且配置和使用也較為方便,同時(shí)還包含有STM32的固件庫(kù)函數(shù)。張力控制的軟件是整個(gè)控制過(guò)程的靈魂,在合理的硬件電路上,它主宰著所有的控制流程。當(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的讀寫(xiě)權(quán)限,最后使能總線(xiàn)上用到外設(shè)的時(shí)鐘。使能外設(shè)定時(shí)器3,開(kāi)啟PWM功能。
由圖1可知,控制器要處理兩個(gè)外部輸入信號(hào),一是測(cè)量角速度,我們可以通過(guò)測(cè)量滾軸旋轉(zhuǎn)一周所花的時(shí)間得到。這里使能了外部中斷和定時(shí)器2中斷,當(dāng)滾軸轉(zhuǎn)動(dòng)時(shí),軸上面的齒會(huì)使角速度測(cè)量器反饋給控制器一個(gè)上升沿,在下一個(gè)上升沿來(lái)時(shí),我們可以利用定時(shí)器2得到兩次上升沿經(jīng)過(guò)的時(shí)間,從而計(jì)算出滾軸的角速度。在給定了滾軸的直徑后,可以進(jìn)一步推算出滾軸的線(xiàn)速度;二是測(cè)量張力,正確利用STM32控制器的外設(shè)ADC,首先要把硬件對(duì)應(yīng)接入的GPIO引腳配置成模擬輸入模式。配置好ADC和DMA的工作模式,利用DMA功能把轉(zhuǎn)變成的數(shù)字量搬到固定的寄存器里,方便之后的數(shù)學(xué)運(yùn)算。
在完成輸入信號(hào)的讀取后,控制器要對(duì)張力采樣的信號(hào)進(jìn)行數(shù)字濾波,然后與用戶(hù)設(shè)定的張力值作比較,通過(guò)PID調(diào)節(jié),控制輸出PWM波。利用定時(shí)器2采集到的時(shí)間量結(jié)合用戶(hù)設(shè)定的滾軸直徑和材料厚度等參數(shù)可以推算出材料的長(zhǎng)度。當(dāng)收卷筒收到用戶(hù)需求時(shí),如果開(kāi)啟滿(mǎn)料報(bào)警,就可以提醒用戶(hù)更換卷筒了;同理,放卷時(shí)可以開(kāi)啟少料報(bào)警。當(dāng)測(cè)量的ADC數(shù)字量很小時(shí),若開(kāi)啟了零張力報(bào)警,可以提醒用戶(hù)工作異常。
程序在運(yùn)行時(shí),我們可以在FLASH里開(kāi)辟一段存儲(chǔ)空間,把用戶(hù)設(shè)定好的參數(shù)保存在這里,每次開(kāi)機(jī)時(shí),就可以先從這段存儲(chǔ)空間讀取參數(shù),這樣系統(tǒng)就不僅可以準(zhǔn)確運(yùn)行,而且減少了很多設(shè)置麻煩。然而系統(tǒng)在運(yùn)行時(shí),也有可能會(huì)突然停電,這時(shí)必須可以保存卷徑(收卷簡(jiǎn)或放卷簡(jiǎn)的直徑),下次開(kāi)機(jī)時(shí)卷徑就不必從初始值計(jì)算。STM32帶有可編程電壓監(jiān)測(cè)器,這里可以開(kāi)啟電壓監(jiān)測(cè)中斷功能,這樣就可以在掉電的瞬間利用片內(nèi)空白FLASH儲(chǔ)存當(dāng)前卷徑。下表1為張力控制過(guò)程中用戶(hù)需設(shè)定的部分參數(shù)。
從宏觀(guān)上,程序設(shè)置了3層頁(yè)面。最上一層是工作頁(yè)面,系統(tǒng)在正常運(yùn)行時(shí),處于該頁(yè)面;第二層是參數(shù)選擇頁(yè)面,用戶(hù)在這里選擇需要修改的參數(shù);第三層就是參數(shù)修改頁(yè)面,用戶(hù)可利用編碼器修改參數(shù)的大小,編碼器旋轉(zhuǎn)的快慢對(duì)應(yīng)著設(shè)定值變化的快慢,用戶(hù)也在這里對(duì)系統(tǒng)進(jìn)行調(diào)零和定標(biāo)。由于張力傳感器測(cè)量的是滾軸的重量和卷料的張力總和,而調(diào)零則是先測(cè)量滾軸的重量;定標(biāo)則是利用已知重量的法碼掛在滾軸上得到的信號(hào)量,如此,就可以準(zhǔn)確測(cè)量出卷料的張力。
3 張力控制過(guò)程
如圖2所示,張力的控制過(guò)程可以分為四個(gè)階段:預(yù)備階段,啟動(dòng)階段,運(yùn)行階段,停機(jī)階段。t0以前為預(yù)備階段,t0到t1為啟動(dòng)階段,t1到t2為運(yùn)行階段,t2到t3為停機(jī)階段,t3時(shí)間過(guò)后系統(tǒng)又重新進(jìn)入了預(yù)備階段,而T0為用戶(hù)設(shè)定張力。用戶(hù)可以通過(guò)設(shè)置表中的參數(shù)完成控制過(guò)程,預(yù)備階段可以說(shuō)是等待階段,用戶(hù)此時(shí)要把卷料準(zhǔn)備好,而系統(tǒng)有一定的預(yù)備輸出預(yù)熱磁粉。在滿(mǎn)足啟動(dòng)條件時(shí),系統(tǒng)就進(jìn)入了啟動(dòng)階段,這里有兩種啟動(dòng)方法,一是電平啟動(dòng),即用戶(hù)可以用開(kāi)關(guān)開(kāi)啟系統(tǒng);二是速度啟動(dòng),即當(dāng)滾軸速度達(dá)到一定值時(shí),系統(tǒng)自行進(jìn)入啟動(dòng)階段,用戶(hù)按需求設(shè)定的啟動(dòng)輸出使設(shè)備開(kāi)始運(yùn)轉(zhuǎn)。經(jīng)過(guò)啟動(dòng)時(shí)間,系統(tǒng)就進(jìn)入運(yùn)行階段,此時(shí)STM32控制器進(jìn)行PID調(diào)節(jié)自動(dòng)跟蹤,當(dāng)所測(cè)張力調(diào)節(jié)到設(shè)定值時(shí),輸出基本保持穩(wěn)定狀態(tài)。當(dāng)卷材收取或放出完畢后,若是電平啟動(dòng),則可以關(guān)閉開(kāi)關(guān)停機(jī)系統(tǒng),若是速度啟動(dòng),則當(dāng)速度降為設(shè)定值時(shí)自動(dòng)停機(jī)。停機(jī)時(shí)的停機(jī)增益是指運(yùn)行階段輸出值的增加倍數(shù)。
除了以上自動(dòng)張力控制外,還有另一個(gè)控制方法,即可以人為給定輸出值。人為給定輸出值是只在特殊情況下才會(huì)用到。然而做作為輸出的一種手段,也是必不可缺的功能。在張力控制過(guò)程中,也必須滿(mǎn)足在手動(dòng)和自動(dòng)的切換過(guò)程中,不會(huì)對(duì)輸出值有太大的變化,不然會(huì)至使卷料拉斷或松弛,造成巨大的損失。
4 結(jié)論
基于STM32閉環(huán)張力控制系統(tǒng)可以精確的控制張力,在印刷等輕工業(yè)中有著非常廣闊的前景。它不僅在信號(hào)的采集時(shí)有較高的精度,在控制過(guò)程中也有極強(qiáng)的穩(wěn)定性和可靠性。在配置參數(shù)時(shí)也非常靈活,可以滿(mǎn)足多種用戶(hù)的需求。在精度要求高的張力控制系統(tǒng)中,值得推廣應(yīng)用。
pid控制相關(guān)文章:pid控制原理
pid控制器相關(guān)文章:pid控制器原理
隔離器相關(guān)文章:隔離器原理 電容式接近開(kāi)關(guān)相關(guān)文章:電容式接近開(kāi)關(guān)原理
評(píng)論