5.2.1 軟體的實現
DSP程式中的工作主要是在各個中斷服務常式中執行,中斷的配置如圖5.2所示,
裡面包含了三個以計時器觸發的定時中斷,與一個由外部觸發的不定時中斷。透過 RS232傳輸介面與電腦之間的資料傳遞是在背景程式中執行的,DSP於接收資料時該中 斷會不定時的被觸發,而將裡面的資料數據傳至電腦。
設定兩個頻率為20k Hz的定時中斷,其中一個負責接收A/D轉換器的轉換結果,另 一個中斷的服務常式流程圖如圖5.3,負責由速度控制器的輸出結果產生單相的電流命 令以及電流控制器的運算,並且使用電流控制器的輸出產生b、c兩相的互補訊號,進 而產生PWM開關控制的訊號。
第三個定時中斷的中斷頻率為2 kHz,服務常式如圖5.4所示,負責將回授回來的霍 爾元件訊號做為轉速計算的依據,因本實驗只有速度迴路控制,可將以霍爾元件訊號 計算出來的轉速作為速度回授。
Background Process Communication Function
LED Display Function ISR c_int2( )
PWM Synchronization Rotor Position Estimation
Current Control
ISR c_int8( ) Rotor Speed Estimation
Speed Control Position Control Efficiency Upgrading
ISR c_int5( ) Receive RS232 Package
Periodic Interrupt (20 kHz)
Periodic Interrupt (2 kHz)
Aperiodic Interrupt ISR c_int1( )
A/D Converter External Signal Sampling
Periodic Interrupt (20kHz)
圖5.2 DSP程式的中斷配置
PWM duty ratio limitation
Servo ready?
Disable PWM output PWM output
no yes
RET ISR-2
Clear interrupt flags
Reset watchdog timer
Read Hall signals and currents from A/D converter Read Hall signals and
currents from A/D converter
Phase current command modulation
Phase current command modulation
Phase current controllers Phase current
controllers
圖5.3 內迴路控制之程式流程圖
Output current peak value command
Speed controller Speed controller Position control?
no
yes ISR-8
RET
Speed calculation using Hall signals Speed calculation using Hall signals
Record data for communication
Position controller Position controller
Rotation angle accumulation Rotation angle
accumulation
圖5.4 外迴路控制之程式流程圖
5.2.2 數位化的數值考量
以數位的方式實現控制器與演算法時,由於處理器的字元的長度是固定的,數值 的表示範圍與精確度之間需要做取捨,會造成在數位類比訊號轉換的過程中、數值的 儲存、以及數值運算過程中會有誤差產生,造成的誤差稱為量化誤差(Quantization error)。除此之外,本論文實驗使用的計算核心DSP2407A為定點運算的處理器,程式 設計上就必須要使用Q格式的觀念,所謂的Q格式是在一個二進位的整數值中由設計者 設定一個無形的小數點,Q值為小數點之後的位元數,Q值越大數值的精確度越高,但 是可以表示的數值範圍越小。舉例來說,使用16位元的暫存器,Q15便是代表以15個位 元表示小數點後的數值,因此儲存的數值範圍為最小數值為-1到最大的數值為1-2-15之 有號數,最小可以表示的數值為2-15;使用其他的Q格式,如Q3格式的數值範圍為 -4096~4095.875,精度為2-3;若不使用Q格式則暫存器所能表示的數值範圍為最大,由 -32768~32767,精度為1。使用定點運算,數值的精準度及數值範圍沒有辦法兼顧,兩 者之間的取捨需要設計者針對於系統的需求而做設定。
5.2.3 單相電流調節技術之速度控制實驗結果
本節呈現使用線性型霍爾元件感測器之單相電流調節技術之馬達速度控制的實驗 結果,包含了定轉速命令、步階命令、斜坡命令下的各種轉速實驗結果。圖5.5為b、c 相PWM的實際訊號,確定了b、c相的電壓訊號為互補的訊號。圖5.6為馬達單相電流控 制於速度命令500 rpm的實驗圖,實際上因霍爾感測器訊號波形為非理想的弦波,所以 弦波查表計算出來的速度誤差約200 rpm。圖5.7至圖5.9分別為定轉速命令為1000 rpm、
3000 rpm、4000 rpm下的實驗,由霍爾訊號計算出來的速度與速度命令誤差約200 rpm。圖5.10為給定速度斜坡命令以及步階命令由500 rpm加速至4000 rpm再減速的實驗 結果,顯示了加減速控制與追隨命令之能力。
上圖:b相電壓訊號 下圖:c相電壓訊號
Duty_b Duty_c 50us
圖5.5 實際b、c二相PWM開關訊號
Speed (rpm)
Current (A)
Position (degree)
Speed Error (rpm)
200 400 600 800 1000
-2 -1 0 1
0 200 400
-200 0 200
Speed reference Speed hall
Ia Ib Ic
±200rpm Ic
Ib
圖5.6 永磁同步馬達速度控制於500 rpm
Speed
Speed Error (rpm)
Speed Reference Speed Hall
Ia
Speed Error (rpm)
-Speed Hall
-Speed Reference
±200rpm
Speed Reference Speed Hall Speed Reference Speed Hall
Ib Ic
圖5.8 永磁同步馬達伺服控制於3000 rpm
Speed (rpm)
Current (A)
Position (degree)
Speed Error (rpm)
3500 4000 4500
-2 0 2
0 200 400
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
-500 0 500
sec
Speed reference Speed hall
Ia Ib Ic
Ic
Ib
圖5.9 永磁同步馬達速度伺服控制於4000 rpm
圖5.10 速度命令分別為步階及斜坡命令500 rpm到4000 rpm