基于CAN總線的分布式機器人控制系統設計
圖3控制器硬件電路原理簡圖
2.1 主處理器芯片
本設計核心控制芯片采用Motorola DSP56F807,該芯片混合了DSP 的高速運算能力與MCU 的控制特性于一體,提供了許多專用于電動機控制的外設,包括兩個脈寬調制模塊(PWMA、PWMB)、2個相位檢測器模塊(quadrature decoder)、12位精度的模數轉換模塊(ADC)、4個定時器模塊、通訊外設模塊(SCI、SPI、CAN)等,因此非常適合于對實現機器人各關節運動的直流無刷電機進行數字控制[4]。
2.2 CAN接口電路
DSP56F807芯片內集成了CAN控制器,要完成數據幀的收發還需外加CAN驅動器芯片,本設計采用Philips公司的PCA82C250為CAN驅動器。為了增強抗外部干擾,在DSP56F807的MSCAN_TX和MSCAN_RX引腳與CAN驅動器之間加兩個高速光電耦合器6N137。
2.3 電機驅動電路
電機驅動采用Motorola公司的MPM3003,它內部由上橋臂的3個P-溝道功率型MOSFET 和下橋臂的3個N-溝道功率型MOSFET組成三相橋式電路,是理想的伺服電機驅動集成電路芯片[5]。因PWM輸出電壓不能直接推動MPM3003,在PWM輸出口和MPM3003之間加一個TTL到CMOS轉換芯片MC14504B。
2.4 電源電路
控制器上同時需要5.0V 和3.3V 兩種電源。外部采用的是直流24V電源,通過MAX724將24V 穩壓到5.0V,再通過MAX604將5.0V穩壓到3.3V。為了減少電磁干擾,使用磁珠隔離3.3V 的數字電源和模擬電源。
因篇幅有限,其它的電路模塊不再一一介紹。
3 控制器軟件設計
控制器軟件設計是在Codewarrior6.0集成開發環境下進行的,采用模塊化設計,可分為初始化模塊、主循環模塊和中斷子程序模塊,整個控制功能由各中斷子程序實現,如圖4所示。初始化模塊的作用是初始化DSP 及控制參數,主循環模塊是一個死循環,主要是查詢是否有中斷產生,如果有中斷則轉而去執行相應的中斷服務子程序。數字PID控制子程序是實現控制功能的主體,完成對關節的位置、速度PID控制,通過定時器中斷實現。
圖4控制器軟件結構簡圖
對于數字PID控制子程序中的PID算法,采用了一種改進的變速積分PID算法,有效地克服了常規PID算法中出現積分飽和時,造成超調量增加,使調節品質變壞的缺點。變速積分法的基本思想是設法改變積分項的累加速度,使其與偏差大小相對應,偏差大時,減弱積分作用,反之則加強。
常規PID算法數字離散化為:
式中,KP,KI,KD分別為調節器的比例、積分和微分系數;E(k),E(k-1)分別為第k次和k-1次的期望偏差值;U(k)為第k次的調節器輸出。
改進后的變速積分PID算法為:
f[E(k)]是E(k)的函數,當|E(k)|≤B時,進行常規的PID控制;當|E(k)|>(A+B)后,不再進行積分項的累加;而當B|E(k)|>(A+B)時,f[E(k)]隨E(k)的減小而增大,累加速度加快。其中,A,B為分離區間。
4 結論
本文設計的機器人分布式控制系統,采用CAN總線作為通信方式,和過去機器人控制中常用的RS485總線相比具有通訊穩定可靠、實時性高等優點。在下位關節控制器中選用了Motorola DSP56F807作為控制芯片,既能方便地利用豐富的外圍模塊實現控制功能,又能以較快的運算速度實現復雜的控制算法,克服了過去利用MCU作為控制芯片時,難以實現復雜的控制算法的缺點。在控制器軟件中采用了改進的變速積分PID算法,對關節位置、速度進行數字PID控制。該控制系統即插即用,功能擴展和故障處理方便;連線簡單,過去對6DOF的機械手進行控制,需118根線纜(包括電機線、傳感器線和其它開關量控制線),現在只需一根雙絞線,外觀也很美觀;另外,各關節控制器直接分布在控制現場,使模擬信號傳輸距離明顯縮短,有效地改善了抗干擾能力。
伺服電機相關文章:伺服電機工作原理
pid控制器相關文章:pid控制器原理
雙絞線傳輸器相關文章:雙絞線傳輸器原理
評論