DIY AC inverter _1(Sine Wave)

 

今天是Jan_29,(蛇年) 新春今天我想與大家分享,我的New year project。

如標題,我自己製作一個DC AC inverter。我在前篇文章diy-motor-driver中製作驅動器,這個Project 我意識到,對於H橋好像/疑似...... 沒有這麼的熟練。H橋,非常得泛用,驅動器逆變器...越思考細節,就越多的疑惑。帶著這些問號,我開始了這個Project。

Fig1. 我們印象中的 H Bridge


好我整個裡一下我的疑惑
Q1 : NMOS作為上管,要如何驅動? Q1/Q3 Source 對應到不是GND.....
Q2 : 我要如何用PWM 驅動 ? 如何產生Sine wave (弦波) ?
.....更多疑惑,我除了H_Bridge...本身,一概不懂。

開工 

帶著上面的疑問,把想像到的 Item 先寫下來

1. NMOS 構成的H Bridge。(畫就是了Fig 1...pass)
2. 產生Sine wave (弦波)
3. 如何驅動H Bridge ?? (再說)
4. 其他不明的問題....


2. 產生Sine wave

我所想到我熟悉的Microchip, 就有PWM 功能了 手邊剛好有一顆 Microchip_PIC16F1829 (以下簡稱1829),馬上看看Datasheet。果然有PWM功能(Fig2 )

Fig2, 1829,資料來源:Microchip Technology Inc.
   
要產出sine wave,所需要的工具有了,接著我們把Sine Wave 拆為上半(V>0)/下半(V<0),週期
如下圖(Fig 3),我先預設拆為64格好了(邊走邊調整)。

以1829運算速度,我們現場運算sine值,並不現實。所以這裡我們用"LUT"(Lookup Table),我們用Excel 獎其畫出來(Fig 3)。

LUT 預先算好,這裡我們只用半個周期,List 第64格,剛好是0(準備轉向了)。後面說明Code時,會再提到。

Fig 3 sine wave



前面有一件事情我也疑惑,為甚麼要取半個周期就夠 ? 其實是我讀Data Sheet (Fig 4)時發現的,Microchip 的ECCP 提供4種增強型的 PWM 控制(Enhanced PWM)。

Fig 4. PWM type sequence diagram,資料來源:Microchip Technology Inc.

4種PWM ,如下 :

00 =Single output; 
01 =Full-Bridge output forward; 
10 = Half-Bridge output;
11 =Full-Bridge output reverse

OK,我想看到這裡,算是幫筆者我把黃老爺的條腿給接上了,我再"01" <=>"11",之間反覆切換不就實現了嗎? 這樣我只需要準備半個周期的 LUT。

計算

設計目標50Hz,每個完整周期128細分

50Hz = 20 ms
20ms /128 = 0.15625 ms ; 156.25μs
=> 我們的每一個PWM周期 156.25μs

TMR 的設定貼在下面


TMR2 = 0; // clear TMR2
PR2 = 155; // setting PR2, TMR2 trigget interrput every 156.25 us 
T2CON = 0b00001100; // TMR2 Postscaler 1:2(0001), TMR2(0), Prescaler 1:1(00)


不多說,把TMR 的Code 貼上來,跟大家分享,Full code inverter(github.com)

下面是1829量測結果,Fig 5上下管, 6下管加上電容

示波器直接測
Fig 5, 藍色部分為 上管/ 黃色部分就是重點"sine wave"

Fig 6 , 下館量測,插上22uF 電容,半個周期的sine wave


到這裡我總結一下,製作"inverter"我們需要"H 橋" + "Sine wave",到這裡"Sine wave"完成我們完成了 50%(明明才寫好code 而已...)。


下一步我們就把H橋電路實現出來,接上我們的PIC16F1829
未完.... To be continued...




留言

這個網誌中的熱門文章

用 Python 控制 Mitsubishi PLC:MC Protocol ASCII 封包實作教學

DIY motor driver