2009年3月31日 星期二

SVPWM

其實在看SVPWM(space vector PWM)的時後還滿吃力的,因為有很多都看不懂。


即使最近在上老大的課,也不見得都聽得懂, 這次改變方式,邊看Application Notes 邊聽課。


順便偷看Sample Code(壓縮檔裡的source內的SVM.c),不過為了求解,還是有必要將其看懂,並修正。


這是利用sample code 產生的SVPWM,這樣看好像看不出什麼問題。



抓其中一個相來看。




放大後可以看到利用查表法會有較明顯的鋸齒波。


利用線性內插查表法就可以比較平滑。


再看其中一個SIN波


放大看也是有一樣的問題,鋸齒波滿嚴重的。


不過用線性內插看起來還滿平滑的。


這次參考的SVM的sample code 都是用整數運算的,運算起來真的超快的。


原來給的範例做1次svpwm需要4.5uS


補上線性內插查表法,也只要7.2uS。比起之前自己寫的一個sin 還要快= =。



雖然MCU的處理速度愈快可以做的事情相對的也可以變多,但是如果沒有好的程式技巧的話,擁有再快的 MCU也不見得做得比較好。看來我有需要再練習程式技巧了。


 


利用之前的SPWM的經驗,一樣用RC來做簡單的濾波。


不過這樣的濾波有失真的現象。



利用示波器上的MATH的功能,CH1-CH2。2個相差120的SVPWM可以得到一個正弦波。



再看看30HZ的情形



一樣是一個正弦波。



這樣子SVPWM應該就沒有問題了。


 


1 則留言:

  1. 第一個圖的三相弦波沒有平衡(sin_(a-b), sin_(b-c), sin_(a-c)) ,check一下吧!
    [版主回覆04/01/2009 20:29:36]呵呵,難怪我在做的時後看起來怪怪的。原來是減錯了。

    回覆刪除