91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

基于FPGA正弦逆變器,可調頻、移相。

小弟今年大二結束,之前一直在學習單片機與FPGA,暑假無聊剛接觸逆變,有愚拙之處敬請指出。(之所以用FPGA而不用專業的SPWM驅動芯片是因為最終的項目要實現0.1°移相、0.01HZ調頻功能及其他擴展功能。(比如可能要用FPGA做光伏并網的相位、頻率跟蹤)這些是其它芯片所做不到的。)

這個基于FPGA的逆變器最終是要做成三相、六路的"三相工頻測試源",三路恒流、三路恒壓,(直接市電整流濾波供電)。且電壓、電流幅值、相位、頻率均可調。 目前先把單相的給大家展示一下、原理都一樣。(三相的也還沒完成呢,主要是H橋的驅動還是有點問題,想請大家幫下下忙,問題解決完畢后我將像老壽一樣公布   所有技術資料)

 

     上圖為FPGA輸出SPWM波形圖,為單極性調制。邏輯控制與延時是在FPGA內部做的。輸出四路SPWM直接接上IR2110或TLP250,即可驅動后級H橋。

下圖為FPGA生成SPWM的結構圖(單相的,是用那種四個管子都一半高頻、一半低頻的方式調制)。

原理跟純硬件的差不多,就是將正弦波、三角波的數據先生成好放到ROM中,用兩路驅動信號分別驅動兩個模塊,再把輸出數據進行比較就生成的SPWM了。三角波和正弦波的頻率、幅值都可以很好的控制。

   上圖只是說明一下FPGA產生SPWM的原理,調頻模塊直接用鎖相環替代。邏輯控制調用非門與或門,死區用程序寫的,想要多少設置多少。

空載波形:

 

帶載300W波形:(波形還不錯,就是散熱片有點小,發熱有點大,不敢再加了,且發熱不均。左上管發熱最嚴重,80度左右,右下管幾乎溫的。目前此問題還沒有解決。)輸出250V,由于示波器探頭只有10倍衰減檔位所以只能看一半了。

 

 


 接大電用的TLP250。FPGA一百多一塊兒,怕燒。

全部回復(20)
正序查看
倒序查看
2013-08-24 16:57

 

TLP250驅動板圖;

后級H橋電路比較簡單應該是沒有問題的,用的是老壽的圖。

  

現在的問題是用TLP250驅動上管的波形輸出多了一塊兒,而這一塊兒正好是死區。

第一張圖上管G極的驅動波形和S輸出波形,G極波形應該是正確的,高電平等于電源電壓加上驅動電壓,截止時當下管未導通,保持電源電壓,導通時等于地電壓。 

第二張是上管S極波形與下管G極波形,多了那一塊,導致沒有死區。

0
回復
2013-08-24 18:36
@朱振豪1992
[圖片] TLP250驅動板圖;后級H橋電路比較簡單應該是沒有問題的,用的是老壽的圖。[圖片] [圖片] 現在的問題是用TLP250驅動上管的波形輸出多了一塊兒,而這一塊兒正好是死區。第一張圖上管G極的驅動波形和S輸出波形,G極波形應該是正確的,高電平等于電源電壓加上驅動電壓,截止時當下管未導通,保持電源電壓,導通時等于地電壓。 第二張是上管S極波形與下管G極波形,多了那一塊,導致沒有死區。
樓主研究精神可嘉啊,本人也是大二,以后大家一起討論啊。。
0
回復
IGBT2010
LV.8
4
2013-08-24 23:17
@朱振豪1992
[圖片] TLP250驅動板圖;后級H橋電路比較簡單應該是沒有問題的,用的是老壽的圖。[圖片] [圖片] 現在的問題是用TLP250驅動上管的波形輸出多了一塊兒,而這一塊兒正好是死區。第一張圖上管G極的驅動波形和S輸出波形,G極波形應該是正確的,高電平等于電源電壓加上驅動電壓,截止時當下管未導通,保持電源電壓,導通時等于地電壓。 第二張是上管S極波形與下管G極波形,多了那一塊,導致沒有死區。
波形很不錯,樓主繼續努力!!!
0
回復
2013-08-24 23:33
@朱振豪1992
[圖片] TLP250驅動板圖;后級H橋電路比較簡單應該是沒有問題的,用的是老壽的圖。[圖片] [圖片] 現在的問題是用TLP250驅動上管的波形輸出多了一塊兒,而這一塊兒正好是死區。第一張圖上管G極的驅動波形和S輸出波形,G極波形應該是正確的,高電平等于電源電壓加上驅動電壓,截止時當下管未導通,保持電源電壓,導通時等于地電壓。 第二張是上管S極波形與下管G極波形,多了那一塊,導致沒有死區。
用的泰克的儀器啊,感覺怎么樣?
0
回復
2013-08-24 23:38
@電源網-娜娜姐
用的泰克的儀器啊,感覺怎么樣?
感覺還行吧吧,比模擬的強,因為也沒用過別的數字示波器。學校提供的,呵呵....
0
回復
2013-08-24 23:39
@朱振豪1992
[圖片] TLP250驅動板圖;后級H橋電路比較簡單應該是沒有問題的,用的是老壽的圖。[圖片] [圖片] 現在的問題是用TLP250驅動上管的波形輸出多了一塊兒,而這一塊兒正好是死區。第一張圖上管G極的驅動波形和S輸出波形,G極波形應該是正確的,高電平等于電源電壓加上驅動電壓,截止時當下管未導通,保持電源電壓,導通時等于地電壓。 第二張是上管S極波形與下管G極波形,多了那一塊,導致沒有死區。
牛逼,老弟
0
回復
2013-08-24 23:40
@已是懸崖百丈冰
牛逼,老弟
沒你牛啊    你的恒流源才牛啊
0
回復
2013-08-24 23:58
@wwpwwp20088
樓主研究精神可嘉啊,本人也是大二,以后大家一起討論啊。。
好的 謝謝關注啊
0
回復
2013-08-25 09:06
@朱振豪1992
感覺還行吧吧,比模擬的強,因為也沒用過別的數字示波器。學校提供的,呵呵....
沒事多來論壇學習,很多牛人能幫助到你,不過你的宿舍有點……哈哈
0
回復
2013-08-25 09:49
@電源網-娜娜姐
沒事多來論壇學習,很多牛人能幫助到你,不過你的宿舍有點……哈哈
嘿嘿,這是我們卡文迪許實驗室!
0
回復
2013-08-26 11:22
能否將您的FPGA程序發一份給我,謝謝longzhizi_cz@qq.com
0
回復
07611128
LV.2
13
2013-08-26 20:08
@電源一刀
能否將您的FPGA程序發一份給我,謝謝longzhizi_cz@qq.com
我現在卡到死區設置這里了,額,感覺好不爽,我用的64的dds,外接鍵盤基本可以控制到頻率0.0001的精度了
0
回復
2013-08-26 23:31
@07611128
我現在卡到死區設置這里了,額,感覺好不爽,我用的64的dds,外接鍵盤基本可以控制到頻率0.0001的精度了

···dds理論精度是可以達到0.0001HZ的,甚至更高。但是僅限方波,正弦波我用8位DA最高只能做到0.01,這個我做過,因為測頻本身就先要把正弦變成方波,自身就存在誤差。(三相工頻信號源如下圖)

 

 

 

 

 

·····至于你說的64DDS 我還真不知道啥意思。死區設置其實很簡單,就是把信號上升沿延時一下就好了。建議你先看看純硬件的死區設置是怎么搞得?不過FPGA設置死區網上還真找不到。我給你發一個,你參考一下兄弟...

module siqu(clk,out,in);//clk驅動信號,in輸入信號,out輸出信號,count死區時間設定變量
input   clk,in;
output  out;  
reg     out;
reg[7:0] count;

always @ (posedge clk) 
begin
 if(in==0)
 out=in;
 else
 begin
  count=count+1;
  if(count==10)
  begin
  out=1;
  count=0;
  end
 end
end     
endmodule

0
回復
2013-08-27 00:17
@朱振豪1992
···dds理論精度是可以達到0.0001HZ的,甚至更高。但是僅限方波,正弦波我用8位DA最高只能做到0.01,這個我做過,因為測頻本身就先要把正弦變成方波,自身就存在誤差。(三相工頻信號源如下圖)[圖片]  [圖片]  [圖片] ·····至于你說的64DDS我還真不知道啥意思。死區設置其實很簡單,就是把信號上升沿延時一下就好了。建議你先看看純硬件的死區設置是怎么搞得?不過FPGA設置死區網上還真找不到。我給你發一個,你參考一下兄弟...modulesiqu(clk,out,in);//clk驅動信號,in輸入信號,out輸出信號,count死區時間設定變量input  clk,in;output out;  reg    out;reg[7:0]count;always@(posedgeclk) begin if(in==0) out=in; else begin  count=count+1;  if(count==10)  begin  out=1;  count=0;  end endend   endmodule
這才是好東西,另外想問下,你的FPGA功耗如何。
0
回復
07611128
LV.2
16
2013-08-27 01:09
@朱振豪1992
···dds理論精度是可以達到0.0001HZ的,甚至更高。但是僅限方波,正弦波我用8位DA最高只能做到0.01,這個我做過,因為測頻本身就先要把正弦變成方波,自身就存在誤差。(三相工頻信號源如下圖)[圖片]  [圖片]  [圖片] ·····至于你說的64DDS我還真不知道啥意思。死區設置其實很簡單,就是把信號上升沿延時一下就好了。建議你先看看純硬件的死區設置是怎么搞得?不過FPGA設置死區網上還真找不到。我給你發一個,你參考一下兄弟...modulesiqu(clk,out,in);//clk驅動信號,in輸入信號,out輸出信號,count死區時間設定變量input  clk,in;output out;  reg    out;reg[7:0]count;always@(posedgeclk) begin if(in==0) out=in; else begin  count=count+1;  if(count==10)  begin  out=1;  count=0;  end endend   endmodule
reg[63:0] freq_count,tri_freq_count;
就是他的計數啊,fpga理論上可以搞到128位的,謝謝啦,我試一下這個死區的~~
0
回復
2013-08-27 09:32
@lizlk
這才是好東西,另外想問下,你的FPGA功耗如何。
FPGA用的是ALTERA公司的EP4CE622C8N,功耗不太清楚,也不太關心。反正長時間工作也不發熱,驅動能力挺強的,可以直接驅動TLP250。
0
回復
Graysky
LV.3
18
2013-08-28 10:43

厲害!

0
回復
ma19926123
LV.1
19
2013-08-31 13:10
@朱振豪1992
好的謝謝關注啊

樓主您好,我也用fpga這樣做過,沒有用fpga處理過死區時間,用的是2110驅動全橋的,最后出來的波形確實丑的不行,當時濾波處理的不好

0
回復
ma19926123
LV.1
20
2013-08-31 13:36
@電源一刀
能否將您的FPGA程序發一份給我,謝謝longzhizi_cz@qq.com
同求,謝謝樓主379463010@qq.com
0
回復
IGBT2010
LV.8
21
2015-06-27 11:19
@朱振豪1992
···dds理論精度是可以達到0.0001HZ的,甚至更高。但是僅限方波,正弦波我用8位DA最高只能做到0.01,這個我做過,因為測頻本身就先要把正弦變成方波,自身就存在誤差。(三相工頻信號源如下圖)[圖片]  [圖片]  [圖片] ·····至于你說的64DDS我還真不知道啥意思。死區設置其實很簡單,就是把信號上升沿延時一下就好了。建議你先看看純硬件的死區設置是怎么搞得?不過FPGA設置死區網上還真找不到。我給你發一個,你參考一下兄弟...modulesiqu(clk,out,in);//clk驅動信號,in輸入信號,out輸出信號,count死區時間設定變量input  clk,in;output out;  reg    out;reg[7:0]count;always@(posedgeclk) begin if(in==0) out=in; else begin  count=count+1;  if(count==10)  begin  out=1;  count=0;  end endend   endmodule
最好用狀態機實現,思路清晰明了。
0
回復
主站蜘蛛池模板: 淳安县| 康平县| 北京市| 安泽县| 贵港市| 曲靖市| 略阳县| 河池市| 亚东县| 鞍山市| 肇州县| 昆山市| 会宁县| 方山县| 湾仔区| 贵定县| 吉木乃县| 闻喜县| 临海市| 新宾| 永顺县| 长春市| 二手房| 睢宁县| 洪江市| 炉霍县| 肥东县| 缙云县| 南丰县| 隆昌县| 简阳市| 施秉县| 思茅市| 漳州市| 元朗区| 万安县| 绥德县| 大竹县| 湘西| 贡嘎县| 库尔勒市|