其實在看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應該就沒有問題了。