【導(dǎo)讀】基于DSP和STM32的智能伺服控制器在位置閉環(huán)反饋伺服控制系統(tǒng)中有著廣泛的應(yīng)用。本設(shè)計采用TMS320F28335與STM32F103RET6雙核控制器,兩者通過SPI進行數(shù)據(jù)通信分工協(xié)作。另外,設(shè)計了完善的系統(tǒng)故障自檢測報警程序與復(fù)合控制算法程序,在提高了系統(tǒng)穩(wěn)定性與智能化的同時,又提高了整個系統(tǒng)的精度。
伺服控制系統(tǒng)大部分都采用傳統(tǒng)的硬件結(jié)構(gòu),控制算法比較固定,而且也無法實現(xiàn)不同工況下的高性能控制算法,難以滿足現(xiàn)代工業(yè)的需求。現(xiàn)階段迫切需要研制一種智能型、具有高可靠性、控制性能更加優(yōu)秀的電液伺服系統(tǒng)?;贒SP與STM32的智能型伺服控制器具有軟硬件結(jié)合程度更加緊密、系統(tǒng)的智能化程度更高、可實現(xiàn)多種控制策略的優(yōu)勢。本系統(tǒng)從實際的需求出發(fā),結(jié)合精確數(shù)字PID控制算法和Fuzzy控制算法自身的優(yōu)勢,組合成Fuzzy—PID控制算法,根據(jù)偏差的大小范圍選擇合適的控制算法進行調(diào)節(jié)。
本設(shè)計將兩款工控芯片——TI公司的浮點型DSPTMS320F28335和ST公司的ARM7升級版STM32F103RET6引入智能電液伺服系統(tǒng),設(shè)計了基于DSP與STM32的智能型伺服控制器,使電液控制技術(shù)進一步朝向數(shù)字化、集成化、智能化、輕量化、高精度、高可靠性、節(jié)能降耗的方向持續(xù)發(fā)展。
1、硬件設(shè)計
1.1 硬件總體結(jié)構(gòu)
本系統(tǒng)硬件主要由STM32F103RET6和TMS320F28335兩部分組成。STM32F103RET6主要控制外圍電路,包括輸入信號調(diào)理模塊、輸出信號調(diào)理模塊、A/D和D/A轉(zhuǎn)換模塊、硬件自檢測電路模塊、觸摸屏控制模塊、故障報警模塊;DSP芯片TMS320F28335主要完成算法的計算與以太網(wǎng)通信,包括外擴SRAM模塊、DM9000A以太網(wǎng)通信模塊、EEPROM存儲模塊。兩者通過SPI進行數(shù)據(jù)通信,包括各種參數(shù)、控制輸出量等。顯示模塊采用5.7寸電阻式觸摸屏,用于顯示各部分的工作狀態(tài)及運行情況,完成控制器各種參數(shù)的在線設(shè)定等人機交互。其硬件結(jié)構(gòu)如圖1所示。
1.2 I/U變換電路
由于指令輸入信號和反饋信號都是4~20 mA直流信號,所以需要將其轉(zhuǎn)換成STM32F103RET6的A/D轉(zhuǎn)換器可接受的0~3 V直流電壓信號。圖2為I/U變換電路。
電阻R25輸入一個“-2.5 V”參考電壓,由“虛斷”可知,經(jīng)過R25和R26電阻分壓后,在“1”點的電壓為:
所以U1=-0.1 V。由“虛短”可知,“2”點的電壓U2=U1=-0.1 V,所以當(dāng)4~20 mA電流信號輸入后,“3”點的電壓U3=I×(R14+R16)-0.1,即U3=0.025×I-0.1。當(dāng)I=4 mA時,U3=0 V;當(dāng)I=20 mA時,U3=0.4 V,這樣就完成了4~20 mA到0~0.4 V的電流/電壓轉(zhuǎn)換。后級運放為同相比例運算放大器,放大倍數(shù):
所以輸出電壓公式為UO=7.5×U3。當(dāng)輸入為4 mA時,UO=0 V;當(dāng)輸入為20 mA時,UO=7.5×0.4=3 V。經(jīng)過兩級運放,完成了從4~20 mA電流信號向0~3 V電壓信號的轉(zhuǎn)換。
[page]
1.3 U/I變換電路
STM32F103RET6的D/A轉(zhuǎn)換輸出為0~3 V的直流電壓信號,要想驅(qū)動伺服閥,必須通過U/I變換,轉(zhuǎn)變成4~20 mA直流電流信號,如圖3所示。
由圖3可知,I0≈I3由“虛斷”和“虛短”可知:
其中,0≤V1≤3V,由于電阻阻值有誤差,為了保證電路能從0~3 V轉(zhuǎn)換為4~20 mA,特意將電阻R44設(shè)置為200 Ω的滑動變阻器,用以彌補電阻阻值誤差帶來的影響。
圖4:主程序流程圖
2、軟件設(shè)計
2.1 STM32主程序設(shè)計
待系統(tǒng)上電初始化完成后,首先執(zhí)行故障自診斷程序,當(dāng)STM32F103RET6(以下簡稱STM32)無故障且外圍硬件電路無故障時,啟動STM32內(nèi)部A/D轉(zhuǎn)換器,對指令信號(或本地給定信號)與反饋信號進行采樣和模數(shù)轉(zhuǎn)換,并將采集的數(shù)據(jù)通過SPI通信傳給DSP進行運算。DSP再將計算結(jié)果通過SPI傳給STM32,STM32經(jīng)過內(nèi)部的D/A變換輸出模擬量來控制電液伺服閥,并可以通過觸摸屏查詢各種參數(shù)、輸出控制量的曲線圖,判斷計算偏差的大小。若偏差為0,則退出程序;反之,則繼續(xù)執(zhí)行以上過程,直至偏差為0。系統(tǒng)工作的流程如圖4所示。
控制器的軟件設(shè)計采用模塊化編程方案,軟件由STM32部分和DSP部分組成,STM32部分包括了系統(tǒng)初始化子程序、A/D轉(zhuǎn)換子程序、D/A轉(zhuǎn)換子程序、系統(tǒng)自檢報警子程序、SPI通信子程序。DSP部分包括控制算法子程序、以太網(wǎng)通信子程序、EEPROM存儲子程序、SPI數(shù)據(jù)通信子程序、系統(tǒng)初始化設(shè)置子程序。
2.2 DSP主程序設(shè)計
DSP部分的主程序主要的功能是:與STM32進行SPI通信,將STM32采集的數(shù)據(jù)通過控制算法計算出控制輸出量和以太網(wǎng)通信。在主函數(shù)中,首先禁用DSP內(nèi)部看門狗,初始化DSP時鐘;其次,初始化DSP各個內(nèi)部模塊,然后禁用全局中斷,初始化中斷向量表,根據(jù)需求對中斷進行配置;待所有初始化完成后再打開全局中斷,最后程序進入無限循環(huán)等待SPI和以太網(wǎng)中斷。主程序流程圖如圖5所示。
3、系統(tǒng)測試
本系統(tǒng)設(shè)計了參數(shù)在線設(shè)定、故障自檢測等功能,在系統(tǒng)整體的測試過程中,液晶顯示出故障的部分。經(jīng)過各項測試,測試結(jié)果表明該控制器運行可靠,具備良好的穩(wěn)態(tài)性能和動態(tài)品質(zhì),能夠獲得精密且實時的控制效果。表1為伺服控制器瞬時測試結(jié)果。
其測試條件為:本地控制工作模式下,輸入信號均為4~20 mA,且伺服閥為正作用,位置反饋為正作用。根據(jù)伺服閥電流的變化趨勢來確認(rèn)控制算法是否正確,在整個測試過程中,當(dāng)指令信號小于反饋信號時。伺服閥電流呈現(xiàn)減小變化的趨勢;當(dāng)指令信號大于反饋信號時,伺服閥電流呈現(xiàn)增大變化的趨勢。根據(jù)變化趨勢得出控制算法符合實際的調(diào)節(jié)規(guī)律。本伺服控制器的線性擬合度可達到0.078%,能完全滿足線性擬合度優(yōu)于0.1%的要求,完全達到了預(yù)期設(shè)定的目標(biāo)。
相關(guān)閱讀:
第四講:高能效太陽能充電控制器設(shè)計實例
基于單片機的微波爐控制器設(shè)計
電動車無刷電機超靜音控制器設(shè)計——基于高速A/D實現(xiàn)精準(zhǔn)電流補償