運用DSP設計一個PI控制的PWM驅動器 |
缺席
|
sharkneil
一般會員 發表:27 回覆:33 積分:12 註冊:2005-01-21 發送簡訊給我 |
|
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
系統方塊圖如下所示:
既然已經轉為數位系統,取樣時間已知.假設取樣時間為50ms,那就設中斷每50ms中斷一次.中斷程式執行你的控制器計算. 進入中斷--->x=[電壓命令-AD值(實際電壓值)]*(kp+ki)+x--->u=x--->PWMCMP=u--->返回主程式,等待下一次中斷 其中x初值為零,PWMCMP為DSP PWM counter比較暫存器,由u換算,假設PI控制器限制最大值為100,counter上限為1000.現今控制器輸出為50--->則PWMCMR就必須設為240............以此類推
(1000*50/100*0.48 原本要開50%,但實際pwm最大值限制在48%,所以須要再乘0.48) ------------------------------------
生命的目的,在幻化出多采多姿的組合。
生活的意義,在捕捉住稍縱即逝的感動。
------------------------------------
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
sharkneil
一般會員 發表:27 回覆:33 積分:12 註冊:2005-01-21 發送簡訊給我 |
[quote]
系統方塊圖如下所示:
既然已經轉為數位系統,取樣時間已知.假設取樣時間為50ms,那就設中斷每50ms中斷一次.中斷程式執行你的控制器計算. 進入中斷--->x=[電壓命令-AD值(實際電壓值)]*(kp+ki)+x--->u=x--->PWMCMP=u--->返回主程式,等待下一次中斷 其中x初值為零,PWMCMP為DSP PWM counter比較暫存器,由u換算,假設PI控制器限制最大值為100,counter上限為1000.現今控制器輸出為50--->則PWMCMR就必須設為240............以此類推
(1000*50/100*0.48 原本要開50%,但實際pwm最大值限制在48%,所以須要再乘0.48) 因為我控制系統不太熟,如果轉換成動態方程式,命令值即你說的輸入電壓命令,輸出值為實際A/D電壓值,那請問我用動態方程式做模擬的ABCD參數怎麼做處理;
x(t+1)=x(t)A(t)+B(t)U(t)
y(t)=x(t)C(t)+D(t)U(t)
t為中斷信號為最少取樣AD的值,即中斷內要完成AD轉換且取樣
ABCD值為矩陣,用MATLAB模擬得知,那所謂的x(t)與y(t)和U(t)是否是你所說的U(t)是輸入電壓命令(電腦設定),y(t)為A/D擷取的實際輸出電壓值,x(t)是這些參數的暫存器,為給PWM做處理的直流準位值,即DSP語法所說的SCMPR(T1CNT與SCMPR遇到之交界點即PWM轉向HIGH-->LOW).之後就可以處理PWM信號如你所說這樣!!
|
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
來信收到!不好意思,這三天到中壢出差,沒時間上網.
我再mail給你吧! ------------------------------------
生命的目的,在幻化出多采多姿的組合。
生活的意義,在捕捉住稍縱即逝的感動。
------------------------------------
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |