基于CAN總線的分布式位置伺服系統設計
3.2 單片機程序
單片機的主程序流程如圖3所示,包括單片機與82527的初始化程序和各子程序。對反復執行的程序段利用主程序調用子程序的方式實現。子程序主要有閉環控制子程序、故障處理子程序和參數修改子程序[6]。本文引用地址:http://www.104case.com/article/151843.htm
系統的閉環控制采用的是Bang-Bang算法。該算法是一種時間最優控制,且算法簡單,便于單片機實現,又能滿足系統控制精度的要求。設精度允許的推桿位置誤差帶為[-Δ1,Δ2],當前偏差為e(t),-Δ1≤e(t)≤Δ2時,可認為推桿當前位置即為給定要求的位置。若把控制量u(t)歸一化處理,則此算法可以表示為:
由于伺服電機正轉和反轉時推桿運動的慣性不同,所以正、反向最大誤差允許值Δ2和Δ1一般是不相等的。圖4是Bang-Bang算法子程序流圖。
故障處理程序處理的故障包括CAN通信中斷故障、位置反饋斷線故障、電機堵轉故障等,通過對這些故障的自動處理或給出提示信息提高了系統的可靠性。控制器在不同場合使用時,對一些參數的要求也不相同,如控制器CAN報文的ID、通信波特率、控制死區、位置標定等參數的值都可以通過CAN總線報文進行人工修改。本設計選用的X5045芯片帶有512字節的E2PROM,可由單片機對其存儲空間進行串行讀寫,因此,X5045芯片除了實現單片機的上電復位和看門狗功能外,還可把需要進行修改的參數存放在其E2PROM空間中。對故障處理和參數修改子程序的具體編寫這里不再詳述。
4 實驗結果及分析
本系統實現1個腳踏板同時對2個油門閥的控制,腳踏板電位器輸出的電壓信號經主控制器PLC的模擬量輸入口進行A/D轉換,再通過CAN總線接口發給2個伺服驅動節點,控制油門閥的開度快速精確跟蹤腳踏板的運動變化。在實際應用過程中,PLC還用于整車的其他控制功能。由于通信線使用的是普通雙絞線的特征阻抗120 Ω,所以需要在CAN總線兩端的CANH和CANL之間各加1個120 Ω的終端電阻,使總線阻抗匹配,以較好地抑制干擾。
經過實驗,系統能夠達到以下要求:
(1)在波特率250 Kb/s、總線長度100 m的情況下,各節點之間通信正常,2個伺服驅動節點能正常工作。
(2)推桿的有效運動長度約為50 mm,5 s內可實現全程運動,可滿足油門閥調節快速性的要求。
(3)圖5是調試過程中通過CodeSys開發環境的變量觀察窗口繪出的2個推桿運動的階躍響應曲線,其中圖5(a)是控制推桿伸出的情況,圖5(b)是縮回的情況。圖中,x表示位置給定量的階躍變化,y1、y2分別表示2個推桿位置對階躍給定的動態響應曲線。由圖可以看出,2個推桿的位置均能及時跟隨給定量的變化,并能達到控制精度的要求。
本文設計的分布式直流電動伺服系統已經應用在某大型工程運輸車的油門閥控制中,其工作穩定可靠,與氣動油門相比,大大提高了油門控制的響應速度和系統的可靠性。該系統的伺服驅動節點結構簡單、成本低廉,CAN總線網絡的應用使整個系統具有很強的通用性和可擴展性,根據應用需要可以方便地增減驅動節點的數量,實現更多軸和多點的伺服控制系統,并進一步實現多電機的協同控制。
伺服電機相關文章:伺服電機工作原理
評論