電機驅動控制器及其控制雙電機的方法
【專利摘要】本發明公開一種電機驅動控制器,根據所述控制命令、所述控制參數與所述第一位置值輸出第一速度環目標值,根據所述第一速度環目標值、所述控制參數與所述第一轉速值輸出第一電流環目標值,根據所述第一電流環目標值、所述控制參數以及所述第一控制電流輸出第一PWM信號,以實現對所述第一電機的控制,所述主控芯片根據所述控制命令、所述控制參數與所述第二位置值輸出第二速度環目標值,根據所述第二速度環目標值、所述控制參數與所述第二轉速值輸出第二電流環目標值,根據所述第二電流環目標值、所述控制參數以及所述第二控制電流輸出第二PWM信號,實現對所述第二電機的控制。本發明電機驅動控制器能同時控制兩個電機,且能降低系統的成本。
【專利說明】電機驅動控制器及其控制雙電機的方法
【技術領域】
[0001]本發明屬于機器人運動控制技術,主要涉及一種基于DSP的電機驅動控制器及其控制雙電機的方法。
【背景技術】
[0002]隨著機器人的作業環境及作業任務的日益復雜,對機器人的性能也提出了更高的要求。而電機作為機器人最主要的執行部件,在一定程度上決定了機器人的性能與價格。因此開發出控制效果好、成本低廉的電機驅動控制器有重要的工程和經濟意義。
[0003]傳統的機器人直流電機驅動器,采用一個驅動器驅動控制一路電機的方式實現。然而在移動機器人中需要控制的電機往往不止一個,因此造成了硬件資源和機器人內部空間的浪費,增加了系統成本。
[0004]現有技術中,CN200710051849揭露了一種基于DSP的模塊化機器人獨立關節控制,其采用CAN通信接口與上位機通信,但通信方式過于單一,控制軟件部分采用循環執行的方式完成,使得系統的資源可能被實時性要求不高的模塊持續占據,而對于實時性要求較高的控制算法,反而得不到系統資源,造成了系統資源分配不合理。并且一套控制器只能控制一個電機,如果機器人自由度較多,占據空間較大,成本較高。
【發明內容】
[0005]有鑒于此,有必要提供一種電機驅動控制器及其控制雙電機的方法,在有限的空間內讓機器人有最大的自由的同時降低系統成本。
[0006]本發明提供的電機驅動控制器用于控制雙電機,包括:主控芯片;通信模塊,與所述主控芯片的CAN通信接口電性連接,用于與所述上位機通信以獲取控制參數以及控制命令;存儲器,用于存儲所述控制參數以及所述控制命令;電機控制模塊,包括:第一速度與位置采集模塊,與所述主控芯片的QEP采集引腳電性連接,用于讀取所述第一電機的第一轉速值以及第一位置值;第二速度與位置采集模塊,與所述主控芯片的QEP采集引腳電性連接,用于讀取所述第二電機的第二轉速值以及第二位置值;第一電流環采集模塊,與所述主控芯片的AD轉換引腳電性連接,用于檢測所述第一電機的第一控制電流;以及第二電流環采集模塊,與所述主控芯片的AD轉換引腳電性連接,用于檢測所述第二電機的第二控制電流;電源模塊,用于為所述電機控制模塊提供+3.3V與+1.5V的電源。其中,所述主控芯片根據所述控制命令、所述控制參數與所述第一位置值輸出第一速度環目標值,根據所述第一速度環目標值、所述控制參數與所述第一轉速值輸出第一電流環目標值,根據所述第一電流環目標值、所述控制參數以及所述第一控制電流輸出第一脈沖(PWM,Pulse WidthModulation)信號,以實現對所述第一電機的控制,所述主控芯片根據所述控制命令、所述控制參數與所述第二位置值輸出第二速度環目標值,根據所述第二速度環目標值、所述控制參數與所述第二轉速值輸出第二電流環目標值,根據所述第二電流環目標值、所述控制參數以及所述第二控制電流輸出第二 PWM信號,以實現對所述第二電機的控制。[0007]本發明提供的電機驅動控制器控制雙電機的方法,包括:
[0008]通過所述上位機獲取所述第一電機與所述第二電機的控制參數;
[0009]通過上位機接收控制命令;
[0010]根據控制命令判斷是否所述第一電機受控;
[0011]若是,則在第一固定時間后讀取所述第一電機的第一位置值;
[0012]根據所述控制命令、所述第一電機的控制參數以及所述第一位置值進行PID計算,輸出所述第一電機的第一速度環目標值;
[0013]在第二固定時間后讀取所述第一電機的第一轉速值;
[0014]根據所述第一速度目標值、所述第一轉速值以及所述第一電機的孔子參數進行PID計算,輸出所述第一電流環目標值;
[0015]在第三固定時間后米集所述第一電機的第一控制電流;
[0016]根據所述第一電流環目標值、所述第一控制電流以及所述以電機的控制參數進行PID計算,輸出第一電機的第一 PWM信號;
[0017]根據所述第一 PWM信號控制所述第一電機
[0018]若不是所述第一電機受控,則在第一固定時間后讀取所述第二電機的第二位置值;
[0019]根據所述控制命令、所述第二電機的控制參數以及所述第二位置值進行PID計算,輸出所述第二電機的第二速度環目標值;
[0020]在第二固定時間后讀取所述第二電機的第二轉速值;
[0021]根據所述第二速度環目標值、所述第二轉速值以及所述第二電機的孔子參數進行PID計算,輸出所述第二電流環目標值;
[0022]在第三固定時間后采集所述第二電機的第二控制電流;
[0023]根據所述第二電流環目標值、所述第二控制電流以及所述以電機的控制參數進行PID計算,輸出第二電機的第二 PWM信號;以及
[0024]根據所述第二 PWM信號控制所述第二電機。。
[0025]本發明實施方式中的電機驅動控制器及其控制雙電機的方法應用于機器人中,能夠在滿足機器人自由度的同時能夠降低占用空間與系統成本。
【專利附圖】
【附圖說明】
[0026]圖1是為本發明一實施方式中電機驅動控制器的應用圖;
[0027]圖2是為本發明一實施方式中電機驅動控制器的模塊圖;
[0028]圖3是為本發明一實施方式中電機驅動控制器控制雙電機的流程圖;以及
[0029]圖4是本發明一實施方式中電機三環控制算法。
【具體實施方式】
[0030]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0031]請參閱圖1,圖1所示為本發明一實施方式中電機驅動控制器100的應用圖。[0032]在本實施方式中,電機驅動控制器100與上位機200、第一電機300A以及第二電機300B通信相連,所述電機驅動控制器100從上位機接收控制命令,來控制所述第一電機300A以及所述第二電機300B,并將所述第一電機300A以及所述第二電機300B的相應的控制情況反饋給所述上位機200,以實現所述電機驅動控制器100對所述第一電機300A以及所述第二電機300B的控制。
[0033]請參閱圖2,圖2所示為本發明一實施方式中電機驅動控制器100的模塊圖。
[0034]在本實施方式中,所述電機驅動控制器100包括主控芯片102、通信模塊104、存儲器106、電機控制模塊108以及電機驅動模塊110。
[0035]在本實施方式中,主控芯片102為DSP芯片,包括通信接口(圖未示)、脈沖(PWM,Pulse Width Modulation)發生引腳(圖未不)、正交脈沖編碼(QEP, Quadrature EncoderPulse)采集引腳(圖未示)、數模(AD)轉換引腳(圖未示)等。
[0036]通信模塊104與所述主控芯片102的通信接口電性連接,用于與所述上位機200通信以獲取控制參數以及控制命令。在本實施方式中,通信模塊104包括CAN通信模塊以及串行通信模塊,用于完成電機驅動控制器100與上位機200的通信,主要包括:a:第一電機300A與第二電機300B的控制模式以及控制目標值;以及b:將第一電機300A、第二電機300B以及電機驅動控制200的運行狀態傳遞給上位機。
[0037]存儲器106用于存儲所述通信模塊104接收到的控制參數以及控制命令。在本實施方式中,存儲器106與所述主控芯片的串行外設(SPI, Serial Peripheral Interface)接口連接。
[0038]在本實施方式中,存儲器106采用AT25640AN芯片,提供SPI通信方式,初次上電后將所述電機驅動控制器100的控制參數信息存儲起來,以便下次上電后直接調取控制參數。
[0039]電機控制模塊108,包括:第一速度與位置采集模塊1082A,第二速度與位置采集模塊1082B、第一電流環采集模塊1084A以及第二電流環采集模塊1084B。
[0040]第一速度與位置采集模塊1082A,與所述主控芯片102的QEP采集引腳電性連接,用于讀取所述第一電機300A的第一轉速值以及第一位置值。在本實施方式中,第一速度與位置采集模塊1082A為差分的碼盤接口,通過采集碼盤接口的數據來完成第一轉速值以及第一位置值的采集。
[0041]第二速度與位置采集模塊1082B,與所述主控芯片的QEP采集引腳電性連接,用于讀取所述第二電機300B的第二轉速值以及第二位置值;在本實施方式中,第二速度與位置采集模塊1082B為差分的碼盤接口,通過采集碼盤接口的數據來完成第二轉速值以及第二位置值的采集。
[0042]第一電流環采集模塊1084A,與所述主控芯片102的AD轉換引腳電性連接,用于檢測所述第一電機300A的第一控制電流。在本實施方式中,第一電流環米集模塊1084A分為采樣部分與放大部分,其中,采樣部分與所述電機驅動模塊110連接,為ACS712電流采集芯片,用來檢測第一電機300A的第一控制電流;放大部分由運算放大器LM358構成,包括2路AD采樣接口,一個AD采樣接口用來對第一電機300A的第一控制電流的采樣,用于將所述第一控制電流轉換為符合AD采集范圍的電壓信號,另一 AD采樣接口用來連接電位計。
[0043]第二電流環采集模塊1084B,與所述主控芯片102的AD轉換引腳電性連接,用于檢測所述第二電機300B的第二控制電流。在本實施方式中,第二電流環采集模塊1084B分為采樣部分與放大部分,其中,采樣部分與所述電機驅動模塊110連接,為ACS712電流采集芯片,用來檢測第二電機300B的第二控制電流;放大部分由運算放大器LM358構成,包括2路AD采樣接口,一個AD采樣接口用來對第二電機300B的第二控制電流的采樣,用于將所述第二控制電流轉換為符合AD采集范圍的電壓信號,另一 AD采樣接口用來連接電位計。
[0044]電源模塊110,用于為主控芯片102以及所述電機控制模塊108提供+3.3V與+1.5V的電源。在本實施方式中,電源模塊110才有TPS767芯片將+5V轉換為+3.3V與+1.5V。
[0045]在本實施方式中,所述主控芯片102根據所述控制命令、所述控制參數與所述第一位置值輸出第一速度環目標值,根據所述第一速度環目標值、所述控制參數與所述第一轉速值輸出第一電流環目標值,根據所述第一電流環目標值、所述控制參數以及所述第一控制電流輸出第一 PWM信號,以實現對所述第一電機300A的控制。
[0046]在本實施方式中,所述主控芯片102還根據所述控制命令、所述控制參數與所述第二位置值輸出第二速度環目標值,根據所述第二速度環目標值、所述控制參數與所述第二轉速值輸出第二電流環目標值,根據所述第二電流環目標值、所述控制參數以及所述第二控制電流輸出第二 PWM信號,以實現對所述第二電機300B的控制。
[0047]在本實施方式中,電機驅動模塊110與所述主控芯片102的PWM發生引腳電性連接,用于將所述主控芯片102輸出的第一 PWM信號轉換為第一控制電流,以便實現對第一電機300A的控制。
[0048]在本實施方式中,電機驅動模塊110還用于將所述主控芯片102輸出的第二 PWM信號轉換為第二控制電流,以便實現對第二電機300B的控制。
[0049]在本實施方式中,電源模塊110同時還采用MC7805芯片將+24V轉換為+5V為電機驅動模塊110供電,實現了控制部分與驅動部分獨立供電。
[0050]請參閱圖3,所示為本發明一實施方式中電機驅動控制器100控制雙電機(第一電機300A以及第二電機300B)的流程圖。電機驅動控制器100上電啟動后開始執行圖3所示的流程。
[0051]在步驟S300,主控芯片102通過通信模塊104獲取第一電機300A以及第二電機300B的控制參數。
[0052]在步驟S302,通信模塊104接收上位機發送的控制命令。
[0053]在步驟S304,主控芯片102判斷為第一電機300A受控。在本實施方式中,主控芯片102通過所述控制命令判斷是否為第一電機300A受控。
[0054]若是,則在步驟S306,第一速度與位置采集模塊1082A在第一固定時間后讀取第一電機300A的第一位置值。在本實施方式中,第一固定時間為3ms。
[0055]在步驟S308,主控芯片102根據控制命令、第一電機300A的控制參數以及第一電機300A的位置值進行PID計算,輸出第一電機300A的第一速度目標值。
[0056]在本實施方式中,PID算法根據給定值r(t)與實際輸出值u(t)構成控制偏差:e (t) =r (t) -u (t),將偏差比例(P)、積分(I)和微分(D)通過線性組合構成控制量,對被控對象進行控制。控制規則為:
[0057]PID控制算法:
【權利要求】
1.一種電機驅動控制器,與上位機、第一電機、第二電機通信相連,其中,所述上位機通過發送控制命令與所述電機驅動控制器通信,包括: 王控芯片; 通信模塊,與所述主控芯片的CAN通信接口電性連接,用于與所述上位機通信以獲取控制參數以及控制命令; 存儲器,用于存儲所述控制參數以及所述控制命令; 電機控制模塊,包括: 第一速度與位置采集模塊,與所述主控芯片的正交脈沖編碼(QEP,QuadratureEncoder Pulse)采集引腳電性連接,用于讀取所述第一電機的第一轉速值以及第一位置值; 第二速度與位置采集模塊,與所述主控芯片的QEP采集引腳電性連接,用于讀取所述第二電機的第二轉速值以及第二位置值; 第一電流環采集模塊,與所述主控芯片的AD轉換引腳電性連接,用于檢測所述第一電機的第一控制電流;以及 第二電流環采集模塊,與所述主控芯片的AD轉換引腳電性連接,用于檢測所述第二電機的第二控制電流; 電源模塊,用于為所述電機控制模塊提供+3.3V與+1.5V的電源 其中,所述主控芯片根據所述控制命令、所述控制參數與所述第一位置值輸出第一速度環目標值,根據所述第一速度環目標值、所述控制參數與所述第一轉速值輸出第一電流環目標值,根據所述第一電流環目標值、所述第一電機的控制參數以及所述第一控制電流輸出第一脈沖(PWM,Pulse Width Modulation)信號,以實現對所述第一電機的控制,所述主控芯片根據所述控制命令、所述第二電機的控制參數與所述第二位置值輸出第二速度環目標值,根據所述第二速度環目標值、所述第二電機的控制參數與所述第二轉速值輸出第二電流環目標值,根據所述第二電流環目標值、所述第二電機控制參數以及所述第二控制電流輸出第二 PWM信號,以實現對所述第二電機的控制。
2.如權利要求1所述的電機驅動控制器,其特征在于,還包括電機驅動模塊,與所述主控芯片的PWM發生引腳電性連接,用于將所述主控芯片輸出的第一 PWM信號轉換為第一控制電流。
3.如權利要求1所述的電機驅動控制器,其特征在于,電機驅動模塊,與所述主控芯片的PWM發生引腳電性連接,用于將所述主控芯片輸出的第二PWM信號轉換為第二控制電流。
4.如權利要求2或3所述的電機驅動控制器,其特征在于,所述電源模塊還用于為電機驅動模塊提供+5V的電源。
5.如權利要求1所述的電機驅動控制器,其特征在于,所述第一電流環采集模塊與所述第二電流環采集模塊包括采樣部分與放大部分,其中所述采樣部分為兩片電流采集芯片,與所述電機驅動模塊連接,分別檢測所述第一電機與第二電機的電機第一控制電流與第二控制電流,所述放大部分為運算放大器,用于將所述第一控制電流與所述第二控制電流轉換為符合AD采集范圍的電壓信號。
6.—種電機控 制器驅動雙電機的方法,其中所述電機驅動控制器與上位機、第一電機及第二電機通信相連,包括:通過所述上位機獲取所述第一電機與所述第二電機的控制參數; 通過上位機接收控制命令; 根據控制命令判斷是否所述第一電機受控; 若是,則在第一固定時間后讀取所述第一電機的第一位置值; 根據所述控制命令、所述第一電機的控制參數以及所述第一位置值進行PID計算,輸出所述第一電機的第一速度環目標值; 在第二固定時間后讀取所述第一電機的第一轉速值; 根據所述第一速度目標值、所述第一電機的控制參數、所述第一轉速值以及所述第一電機的孔子參數進行PID計算,輸出所述第一電流環目標值; 在第三固定時間后采集所述第一電機的第一控制電流; 根據所述第一電流環目標值、所述第一電機的控制參數、所述第一控制電流以及所述以電機的控制參數進行PID計算,輸出第一電機的第一 PWM信號; 根據所述第一 PWM信號控制所述第一電機; 若不是所述第一電機受控,則在第一固定時間后讀取所述第二電機的第二位置值;根據所述控制命令、 所述第二電機的控制參數以及所述第二位置值進行PID計算,輸出所述第二電機的第二速度環目標值; 在第二固定時間后讀取所述第二電機的第二轉速值; 根據所述第二速度環目標值、所述第二電機的控制參數、所述第二轉速值以及所述第二電機的孔子參數進行PID計算,輸出所述第二電流環目標值; 在第三固定時間后采集所述第二電機的第二控制電流; 根據所述第二電流環目標值、所述第二電機的控制參數、所述第二控制電流以及所述以電機的控制參數進行PID計算,輸出第二電機的第二 PWM信號;以及根據所述第二 PWM信號控制所述第二電機。
7.如權利要求6所述的電機控制器驅動雙電機的方法,其特征在于,所述第一固定時間為3ms o
8.如權利要求6所述的電機控制器驅動雙電機的方法,其特征在于,所述第二固定時間為1ms。
【文檔編號】H02P5/74GK103812392SQ201210445603
【公開日】2014年5月21日 申請日期:2012年11月8日 優先權日:2012年11月8日
【發明者】鄒風山, 孫秉斌, 劉曉帆, 董狀, 徐方, 曲道奎 申請人:沈陽新松機器人自動化股份有限公司