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