本人今天才接觸STM8單片機(jī) 不過之前有別的單片機(jī)開發(fā)經(jīng)驗(yàn) 因此上手比較快 現(xiàn)在寫出了正弦波發(fā)生程序 明天搞了AD和PI算法就能做逆變了 慢慢搞
STM8實(shí)現(xiàn)SPWM.txt1和20輸出SPWM波 11輸出50Hz方波
本人今天才接觸STM8單片機(jī) 不過之前有別的單片機(jī)開發(fā)經(jīng)驗(yàn) 因此上手比較快 現(xiàn)在寫出了正弦波發(fā)生程序 明天搞了AD和PI算法就能做逆變了 慢慢搞
STM8實(shí)現(xiàn)SPWM.txt1和20輸出SPWM波 11輸出50Hz方波
目前這么設(shè)計(jì)的 SPWM1 2和它們的反向直接驅(qū)動(dòng)全橋
Shutdown腳用于實(shí)現(xiàn)過流保護(hù)超功率保護(hù)等功能
Shutdown Logic懸空時(shí) Shutdown被拉地時(shí)鎖定SPWMx的輸出
Shutdown Logic接地后 Shutdown被拉低時(shí)關(guān)閉輸出 當(dāng)取消下拉時(shí)恢復(fù)輸出
FrequencyDetermine 懸空時(shí) 輸出50Hz正弦波 接地后輸出60Hz正弦波
這次修改為TIM1產(chǎn)生SPWM波形 而且一次4個(gè)單極性波形都產(chǎn)生 帶死區(qū) 直接驅(qū)動(dòng)全橋無壓力
但是為了方便使用還是保留了50Hz Sync即同步方波
未來的:
Beep用于連接蜂鳴器 在逆變器發(fā)生故障時(shí)(被從Shutdown腳關(guān)機(jī)或者電池電壓過低等)出聲
OutputFeedback用于反饋輸出電壓 穩(wěn)定輸出電壓
Battert Low用于反饋蓄電池電壓 外部需要電阻分壓 來檢測電瓶欠電 當(dāng)這個(gè)腳電壓低于1V時(shí)亮低電壓燈 當(dāng)?shù)陀?.8V時(shí)鎖定逆變器 SPWM.zip
成績確實(shí)受了點(diǎn)影響 不過依舊可以接受
再補(bǔ)充一個(gè) 今天寫的 帶PID的SPWM (2).zip 應(yīng)該能穩(wěn)壓了
下面的復(fù)制下來存為Htm就是正弦表計(jì)算軟件!
SPWM1 SPWM2等通過光藕隔離驅(qū)動(dòng)全橋 光藕另一側(cè)是15V的mos驅(qū)動(dòng)電壓
單片機(jī)是3.3V的
最新的程序SPWM (4).zip
增加1個(gè)Disable PID腳 接地時(shí)輸出的正弦波的峰值從0-100%隨著Output Feedback(0-單片機(jī)供電電壓 通常3.3V) 變化 用于內(nèi)部PID穩(wěn)壓無法滿足需求時(shí) 外接運(yùn)放實(shí)現(xiàn)穩(wěn)壓
現(xiàn)在程序功能應(yīng)該完善了 可以試試驅(qū)動(dòng)全橋了 這次爭取來個(gè)12V300W逆變 帶短路保護(hù)
尤老師辛苦了,我們這些菜鳥才有機(jī)會(huì)學(xué)習(xí)軟件
程序看過了,提點(diǎn)建議
1、系統(tǒng)開啟了至少2個(gè)定時(shí)器中斷,使用了3個(gè)定時(shí)器,在這樣的系統(tǒng)中中斷沖突導(dǎo)致的延遲必須考慮,建議改成只使用tim1中斷,每次中斷更新下一個(gè)占空比,spwm表可以更細(xì)一些,比如用20k的載頻,直接用400的spwm表,這個(gè)對于stm8來說沒有問題。
2、只用一個(gè)定時(shí)器的情況下,50hz可以使用軟件計(jì)數(shù)來輸出的,不是問題,沒有必要單獨(dú)搞一個(gè)定時(shí)器來做更新
3、你的剎車信號使用了,但是沒看到相應(yīng)的中斷服務(wù),也就是說剎車中斷只是硬關(guān)閉,不恢復(fù)的,這個(gè)在產(chǎn)品中是有問題的。剎車的恢復(fù)一般是延時(shí)一段時(shí)間后重新啟動(dòng)。
4、需要加上軟啟動(dòng)部分否則還是挺危險(xiǎn)的。
再補(bǔ)充一點(diǎn),建議增加電流采樣通道,硬件驅(qū)動(dòng)剎車的用于保護(hù)危險(xiǎn)的過流信號,比如負(fù)載短路,軟件檢測的電流信號用于控制過載,最好是有幾秒甚至幾分鐘的過載允許范圍
典型設(shè)計(jì)一般是
額定1000w
允許1200到1500w的120秒過載
允許1500w到2000w的3-5秒過載
超過1500或者2000w的話立即保護(hù)
一般商用的選前一組參數(shù),工業(yè)的選后一種
一般來說選擇的功率管都能短時(shí)間承受100%的過載的,但是散熱系統(tǒng)通常不能容忍持續(xù)過載,否則體積和成本難以接受。所以實(shí)用的角度來看加上軟件電流檢測是有必要的,而且用于顯示的話有電流采樣就能顯示功率(視在功率)信息了,對于應(yīng)用價(jià)值相對較大
adc采樣結(jié)果的反饋和pid計(jì)算的系數(shù)都存在問題,另外積分項(xiàng)的最大值也沒有意義,不可能那么大,另外你這個(gè)計(jì)算出來的pid結(jié)果有可能是負(fù)數(shù),會(huì)導(dǎo)致失控的情況出現(xiàn)。
一般說pid的計(jì)算結(jié)果是用來進(jìn)行調(diào)整的,也是對調(diào)制度進(jìn)行加操作,并且對調(diào)制度上下都要做限制,你當(dāng)前的調(diào)制度出現(xiàn)負(fù)數(shù)是不能工作的
PID 部分求指導(dǎo) 這部分窩也覺得程序可能會(huì)有一點(diǎn)問題...
ADC的部分應(yīng)該沒有問題的說