找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3256|回復(fù): 8
收起左側(cè)

單片機(jī)C語(yǔ)言PID控制PWM輸出程序有波動(dòng)

[復(fù)制鏈接]
ID:480702 發(fā)表于 2019-2-26 00:44 | 顯示全部樓層 |閱讀模式
我想用單片機(jī)AD檢測(cè)電流通過(guò)調(diào)節(jié)PWM占空比來(lái)實(shí)現(xiàn)電路恒流,希望有高手能提供一個(gè)完整的C語(yǔ)言程序。我自己寫(xiě)的程序調(diào)試的時(shí)候老是有波動(dòng),不能恒流。 if(I>=160)//Iw位AD采集的電流信號(hào)       {
    //  adc();
        zk+=1;  //zk是占空比
         if( zk>=119){ zk=60;}
       }
     if (I<159)
       {
    // adc();
     // delay_10us();
       zk-=1;  
     if(zk<=60){zk=60;}
       }

回復(fù)

使用道具 舉報(bào)

ID:469932 發(fā)表于 2019-2-26 01:53 | 顯示全部樓層
ADC本身就是一個(gè)不斷變動(dòng)量,如果要顯示變動(dòng)慢就要顯示函數(shù)度就要延時(shí)
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-2-26 07:25 | 顯示全部樓層
軟件是在硬件的基礎(chǔ)上編寫(xiě)的,不知道你的硬件結(jié)構(gòu),很難提供適合的建議。
回復(fù)

使用道具 舉報(bào)

ID:432823 發(fā)表于 2019-2-26 07:45 | 顯示全部樓層
用延時(shí)方式調(diào)節(jié)PWM占空比本身就有不確定的因素,使延時(shí)不正確,一般PWM占空比用定時(shí)器,ADC采樣本身也有波動(dòng),一般取多次測(cè)量值取平均作為檢出值。
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2019-2-26 11:41 | 顯示全部樓層
估計(jì)樓主不明白PID是怎么回事。先弄通PID控制原理。
回復(fù)

使用道具 舉報(bào)

ID:480702 發(fā)表于 2019-2-26 13:43 | 顯示全部樓層
QQ截圖20190226133910.png
回復(fù)

使用道具 舉報(bào)

ID:480702 發(fā)表于 2019-2-26 13:45 | 顯示全部樓層
QQ截圖20190226133910.png
回復(fù)

使用道具 舉報(bào)

ID:480702 發(fā)表于 2019-2-26 13:49 | 顯示全部樓層
我的AD采集是16次的平均值,這個(gè)應(yīng)該是沒(méi)有問(wèn)題的
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2019-2-26 14:40 | 顯示全部樓層
看起來(lái)一個(gè)單片機(jī)的時(shí)鐘是0.幾u(yù)秒,好像是可以控制的
但是,實(shí)際上,用單片機(jī)來(lái)做恒流恒壓源的調(diào)節(jié)部分,效果直的不好,還是用三極管或者運(yùn)放吧
如果是一定要用到單片機(jī)的話,我推薦的方法是用單片機(jī)來(lái)控制一個(gè)DAC,再由DAC來(lái)控制運(yùn)放用以控制恒流輸出,再反饋給運(yùn)放
這樣一來(lái),單片機(jī)只用來(lái)控制參考電壓的大小而已,并不在反饋環(huán)節(jié)中

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 很給力!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表