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

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

用單片機產生的SPWM波形,存在的問題,高手請進!

最近業余時間,在用AVR的單片機做逆變器。

計劃如下:

1.第一步,用相位修正模式PWM產生SPWM波形,載頻為15.586K,寫出程序,做調試的PCB。

2.第二步,用低電壓進行開環調試,實測得出正弦波。

3.第三步,實現閉環控制,各種保護功能。

現在做在第二步,實測得出的波形和預期的差很多,請高手指教一二。

全部回復(136)
正序查看
倒序查看
ydcman
LV.8
2
2010-09-19 10:48

抱歉!到期了,已被刪除了

0
回復
ydcman
LV.8
3
2010-09-19 10:57
@ydcman
抱歉!到期了,已被刪除了

實測時空載波形像矩形波,改變調制度影響不大,輕微(20W)帶載后波形變化很大,存在嚴重失真。測試主電壓為24vdc,MOS管驅動TLP250,外接3路隔離驅動電源,電壓均為12V

  

0
回復
ydcman
LV.8
4
2010-09-19 11:02
@ydcman
實測時空載波形像矩形波,改變調制度影響不大,輕微(20W)帶載后波形變化很大,存在嚴重失真。測試主電壓為24vdc,MOS管驅動TLP250,外接3路隔離驅動電源,電壓均為12V[圖片] [圖片] 

采用等效面積法,單片機采用查表法,測試計算表格如下:

SPWM波的基準值(80) 

0
回復
771749862
LV.5
5
2010-09-19 12:23
@ydcman
采用等效面積法,單片機采用查表法,測試計算表格如下:[圖片]SPWM波的基準值(80) 

個人感覺是程序沒寫好

0
回復
ydcman
LV.8
6
2010-09-19 15:17
@771749862
個人感覺是程序沒寫好

  對的,是在空載時調制度高了些,原先程序里有錯誤,每次更改的調制度值并沒有被更新。后來改為30%時空載波形接近正弦波,帶載嗎,不談了,畢竟閉環還沒有加上去.手機拍攝角度的問題有些變形,實際不傾斜的只是有點消頂

0
回復
2010-09-19 17:07
@ydcman
[圖片] [圖片] 對的,是在空載時調制度高了些,原先程序里有錯誤,每次更改的調制度值并沒有被更新。后來改為30%時空載波形接近正弦波,帶載嗎,不談了,畢竟閉環還沒有加上去.手機拍攝角度的問題有些變形,實際不傾斜的只是有點消頂
肯定是正弦表不對,不反饋的話,8位機查表也可以做到THD<1%
0
回復
ydcman
LV.8
8
2010-09-20 08:00
@ddmushroom
肯定是正弦表不對,不反饋的話,8位機查表也可以做到THD

載頻可以選擇在音頻范圍之內嗎?有什么優缺點?

0
回復
ydcman
LV.8
9
2010-09-20 12:56
@ydcman
載頻可以選擇在音頻范圍之內嗎?有什么優缺點?

呵呵,本想請教大家,最后變成了單口相聲。沒有用單片機做過SPWM波的嗎?

0
回復
ddmushroom
LV.4
10
2010-09-20 12:59
@ydcman
呵呵,本想請教大家,最后變成了單口相聲。沒有用單片機做過SPWM波的嗎?
說說為什么要用等效面積法來求正弦表
0
回復
ydcman
LV.8
11
2010-09-20 13:15
@ddmushroom
說說為什么要用等效面積法來求正弦表
理論上行的通,諧波少些;成本低,外圍電路簡單;計算方便,便于查表;你有什么好的建議嗎?
0
回復
ddmushroom
LV.4
12
2010-09-20 13:20
@ydcman
理論上行的通,諧波少些;成本低,外圍電路簡單;計算方便,便于查表;你有什么好的建議嗎?

求解這個超越方程有很多方法,等效面積法是減少MCU計算量,如果全查表,用PC的軟件來計算完全可以用精度更好的算法。

個人看法,僅供參考

0
回復
ydcman
LV.8
13
2010-09-20 13:26
@ddmushroom
求解這個超越方程有很多方法,等效面積法是減少MCU計算量,如果全查表,用PC的軟件來計算完全可以用精度更好的算法。個人看法,僅供參考
謝謝了,實際中都是PC機算出的值,單片機在運行中不進行運算,只是對邏輯和時序進行處理,假如執行運算程序,8位的單片機根本來不及;實測執行運算時,載頻變小,原因分析:雖然采用中斷處理輸入PWM值。但由于在進行乘法或除法計算時暫用的寄存器多,響應中斷前,存儲這些寄存器需要一定的時間,所以造成載頻實際變小很多。所以考慮用查表法。還有什么算法比較好的,精度高些,望指點一二,或者提個名稱吧?
0
回復
ddmushroom
LV.4
14
2010-09-20 13:33
@ydcman
謝謝了,實際中都是PC機算出的值,單片機在運行中不進行運算,只是對邏輯和時序進行處理,假如執行運算程序,8位的單片機根本來不及;實測執行運算時,載頻變小,原因分析:雖然采用中斷處理輸入PWM值。但由于在進行乘法或除法計算時暫用的寄存器多,響應中斷前,存儲這些寄存器需要一定的時間,所以造成載頻實際變小很多。所以考慮用查表法。還有什么算法比較好的,精度高些,望指點一二,或者提個名稱吧?

8位機肯定是查表咯,就是查完了乘個系數

呵呵,不知道你用什么語言寫的查表+計算。

我這部分是用匯編的,先把循環每條路徑的時間先計算好,再用延時或者其他的什么把每條路的時間調成一樣。頻率不會有影響的

 

0
回復
ddmushroom
LV.4
15
2010-09-20 13:37
@ydcman
謝謝了,實際中都是PC機算出的值,單片機在運行中不進行運算,只是對邏輯和時序進行處理,假如執行運算程序,8位的單片機根本來不及;實測執行運算時,載頻變小,原因分析:雖然采用中斷處理輸入PWM值。但由于在進行乘法或除法計算時暫用的寄存器多,響應中斷前,存儲這些寄存器需要一定的時間,所以造成載頻實際變小很多。所以考慮用查表法。還有什么算法比較好的,精度高些,望指點一二,或者提個名稱吧?
我是把sin泰勒展開的階數取高一點,然后用MatLab求個數值解。,我是10bit的PWM端口,用的7階,沒具體比較過更高的階數,估計沒啥用
0
回復
ydcman
LV.8
16
2010-09-20 14:46
@ddmushroom
我是把sin泰勒展開的階數取高一點,然后用MatLab求個數值解。,我是10bit的PWM端口,用的7階,沒具體比較過更高的階數,估計沒啥用

呵呵,說說我的看法,不到之處,請指教。

我用的是C語言,計算的話比如系數為1.01(每次調整變量為1%),那就是乘以101然后再除以100,對C語言不是問題,但連續累積的話計算量就比較大;比如連續調整3次都是電壓不夠。那對于單次的值就是101*101*101/1000000的計算量,這樣不會丟數據(因為取整)。假如點取得多的話,計算量是很大的

0
回復
ddmushroom
LV.4
17
2010-09-20 15:05
@ydcman
呵呵,說說我的看法,不到之處,請指教。我用的是C語言,計算的話比如系數為1.01(每次調整變量為1%),那就是乘以101然后再除以100,對C語言不是問題,但連續累積的話計算量就比較大;比如連續調整3次都是電壓不夠。那對于單次的值就是101*101*101/1000000的計算量,這樣不會丟數據(因為取整)。假如點取得多的話,計算量是很大的

這個部分最好不要用C,不同的編譯器出來的長度都會不一樣,會明顯影響效果。

microchip的范例里面這段也是匯編的。你可以參考一下

 

另外,一次循環以后把因子保存下來就行了,沒必要連續乘吧?你的MCU只有8位的PWM嗎,雙字節乘法也不會多多少時間的

0
回復
ydcman
LV.8
18
2010-09-20 15:26
@ddmushroom
這個部分最好不要用C,不同的編譯器出來的長度都會不一樣,會明顯影響效果。microchip的范例里面這段也是匯編的。你可以參考一下 另外,一次循環以后把因子保存下來就行了,沒必要連續乘吧?你的MCU只有8位的PWM嗎,雙字節乘法也不會多多少時間的

我用的是8位的PWM,有10位的PWM,沒有用,考慮就是10位要雙字節。

連成的原因是:假如有個小的值10,10*1.01=10,取整了;要是保存此值,以此類退的話,連續調整N次之后還是10.所以考慮連成的。我用的是AVR的,不是PIC的

0
回復
2010-09-20 15:34
@ydcman
我用的是8位的PWM,有10位的PWM,沒有用,考慮就是10位要雙字節。連成的原因是:假如有個小的值10,10*1.01=10,取整了;要是保存此值,以此類退的話,連續調整N次之后還是10.所以考慮連成的。我用的是AVR的,不是PIC的
用TMS320F28035絕對沒有問題,還可以做單周期的浮點實時運算,那個閉環求解PWM的運算對它來說太小菜了。
0
回復
ydcman
LV.8
20
2010-09-20 15:36
@lizlk
用TMS320F28035絕對沒有問題,還可以做單周期的浮點實時運算,那個閉環求解PWM的運算對它來說太小菜了。
呵呵,數字信號處理器運算速度肯定夠了,可以實時計算。就是TI的東東價格貴了些,不是我這樣的發燒友能玩的起的。
0
回復
ddmushroom
LV.4
21
2010-09-20 15:36
@ydcman
我用的是8位的PWM,有10位的PWM,沒有用,考慮就是10位要雙字節。連成的原因是:假如有個小的值10,10*1.01=10,取整了;要是保存此值,以此類退的話,連續調整N次之后還是10.所以考慮連成的。我用的是AVR的,不是PIC的
哦,我是全雙字節運算,因子本身已經放大1000倍,每次調完保存一下
0
回復
2010-09-20 15:38
@ydcman
呵呵,數字信號處理器運算速度肯定夠了,可以實時計算。就是TI的東東價格貴了些,不是我這樣的發燒友能玩的起的。

發燒友,更有錢才是啊,既然發燒了,就要用旗艦型的東西啊。呵呵

再說價格也不貴啊,才3個USD而已啊。

0
回復
ydcman
LV.8
23
2010-09-20 15:40
@ddmushroom
哦,我是全雙字節運算,因子本身已經放大1000倍,每次調完保存一下

嗯,謝謝了,你真是太牛了,這樣既不影響速度,也可以滿足精度,我理解僅僅停留在算法上,沒有想到還有這一招。

0
回復
ddmushroom
LV.4
24
2010-09-20 15:49
@lizlk
發燒友,更有錢才是啊,既然發燒了,就要用旗艦型的東西啊。呵呵[圖片]再說價格也不貴啊,才3個USD而已啊。

看看Ti現在主推的28x Piccolo系列的價格,真后悔當年怎么會定dsPIC的平臺,都想推倒重來了。還被安富利的人嘲笑,TM氣啊

不過離網的逆變沒什么計算量,不并機的話8位也夠了吧

0
回復
2010-09-20 15:52
@ddmushroom
看看Ti現在主推的28xPiccolo系列的價格,真后悔當年怎么會定dsPIC的平臺,都想推倒重來了。還被安富利的人嘲笑,TM氣啊不過離網的逆變沒什么計算量,不并機的話8位也夠了吧
呵呵,是啊,現在的PICCO可是非常好了,不過開發平臺還不是很好,CCS是C2000的專用的。中文資料支持的也不夠。
0
回復
ddmushroom
LV.4
26
2010-09-20 15:54
@ddmushroom
看看Ti現在主推的28xPiccolo系列的價格,真后悔當年怎么會定dsPIC的平臺,都想推倒重來了。還被安富利的人嘲笑,TM氣啊不過離網的逆變沒什么計算量,不并機的話8位也夠了吧

那幫人酸不溜秋的說,走過這么多廠,還沒發現有一個用PIC平臺的。業內70%用TI,剩下就是用freescale或者renesas。看來你們研究所果然創新能力強。

我真TM想一拖鞋丟過去:老子用啥管你們鳥事,就算憋死也不問狗日的安富利買東西

0
回復
2010-09-20 15:57
@ddmushroom
那幫人酸不溜秋的說,走過這么多廠,還沒發現有一個用PIC平臺的。業內70%用TI,剩下就是用freescale或者renesas。看來你們研究所果然創新能力強。我真TM想一拖鞋丟過去:老子用啥管你們鳥事,就算憋死也不問狗日的安富利買東西
呵呵,DSPIC用的人很多啊,安富利是推廣老大,有點財大氣粗的味道,呵呵。再說TI的C2000當時出來的時候并沒有多少優勢,只是現在慢慢完善了DSC的特點,從原先的DSP中脫離出來而已,要真正用的話,并不是隨便一個人就能玩得通的這個東西的。
0
回復
ydcman
LV.8
28
2010-09-20 16:09
@ddmushroom
那幫人酸不溜秋的說,走過這么多廠,還沒發現有一個用PIC平臺的。業內70%用TI,剩下就是用freescale或者renesas。看來你們研究所果然創新能力強。我真TM想一拖鞋丟過去:老子用啥管你們鳥事,就算憋死也不問狗日的安富利買東西

用PIC的做逆變的還是很多的,是適用為主,一個單片機外圍所有的信號都可以處理,干嘛非得用TI的。我最初是51的,匯編;后來學習C和AVR,個人感覺合用,用的精就行,沒必要追尋最好的,還多公司還在用51,不也挺好的嗎?我也可以用ARM的,感覺一則位數太高,沒必要;還有就是要一個很長的熟悉過程。

0
回復
ddmushroom
LV.4
29
2010-09-20 16:11
@lizlk
呵呵,DSPIC用的人很多啊,安富利是推廣老大,有點財大氣粗的味道,呵呵。再說TI的C2000當時出來的時候并沒有多少優勢,只是現在慢慢完善了DSC的特點,從原先的DSP中脫離出來而已,要真正用的話,并不是隨便一個人就能玩得通的這個東西的。

當時選microchip主要是他家文檔做得好,資料全。價格倒是真的沒考慮,反正平臺在哪里,要改型號還是比較容易的。

起始我是想用freescale的,可惜他們技術支持實在太吊,我們這種級別只能自生自滅去了

0
回復
ydcman
LV.8
30
2010-09-20 16:35
@ydcman
嗯,謝謝了,你真是太牛了,這樣既不影響速度,也可以滿足精度,我理解僅僅停留在算法上,沒有想到還有這一招。

呵呵,剛才不經意看了一下,沒有想到一個下午回帖這么多,感謝兩位高手的指點!

0
回復
ydcman
LV.8
31
2010-09-20 16:37
@lizlk
發燒友,更有錢才是啊,既然發燒了,就要用旗艦型的東西啊。呵呵[圖片]再說價格也不貴啊,才3個USD而已啊。
呵呵,這是樣品價格嗎?批量價差不多,測試的話要交學費,一般*10吧,那光這一塊就30多USD了,吃不消呀
0
回復
主站蜘蛛池模板: 红桥区| 辽阳市| 洛隆县| 沾化县| 攀枝花市| 罗平县| 金川县| 兴业县| 怀宁县| 田东县| 左贡县| 上饶县| 县级市| 黎川县| 关岭| 荆州市| 东光县| 宁河县| 潞城市| 东平县| 白山市| 永嘉县| 兴文县| 富裕县| 蕉岭县| 关岭| 泗阳县| 安多县| 额敏县| 宜兴市| 吉安县| 大埔县| 琼海市| 乐昌市| 惠东县| 榆社县| 夹江县| 玉屏| 贵德县| 江阴市| 丽水市|