找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2116|回復: 3
打印 上一主題 下一主題
收起左側(cè)

關(guān)于PID算法程序參數(shù)理解的疑問

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:771581 發(fā)表于 2020-6-7 13:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在看PID相關(guān)文檔時,一直想不明白一個問題,希望論壇的朋友幫幫忙。

使用PID算法計算出來的結(jié)果,與控制量怎么聯(lián)系起來?
比如我用PWM控制無刷電機,目前是控制在1萬轉(zhuǎn),引用PID算法計算出來一個變量PID_output,控制PWM的占空比用PWM_value寫入單片機寄存器,這兩個變量怎么關(guān)聯(lián)起來呢?

我看別人的程序是這樣的
if (PID_output > PWM_max)
     PWM_value = PWM_max;
else if (PID_output < 0)
     PWM_value = 0;
else
     PWM_value = PID_output;

為什么PWM_value = PID_output呢,我不理解是因為PWM_value是有范圍的,比如0~1024,而PID_output 可能很大或很小,與PID參數(shù)和目標值1萬轉(zhuǎn)等有關(guān),那計算結(jié)果PID_output可能會一直是很大的值或負數(shù),遠遠超出PWM_value的范圍。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2020-6-8 10:50 | 只看該作者
PID算法計算出來一個變量PID_output,不是一個定值,它是會變的。
PID的穩(wěn)態(tài)輸出,原則是,當設定值與目標值(采樣)一樣時,保持當前的輸出值不變。
否則就將輸出,反向增減。
PID的算法,與歷史采樣記錄都相關(guān)。你的程序中提到的,不屬于PID計算方式。
回復

使用道具 舉報

板凳
ID:311846 發(fā)表于 2020-6-8 16:23 | 只看該作者
你所復制出來的是計算過后的結(jié)果,不是PID計算的過程,PID_output是會變動的,你這個計算后限制PID_output輸出的最大值和最小值。
if (PID_output > PWM_max)//限制上限
     PWM_value = PWM_max;
else if (PID_output < 0)//限制下限
     PWM_value = 0;
else
     PWM_value = PID_output;//容許范圍內(nèi)才能賦值給PWM
回復

使用道具 舉報

地板
ID:450608 發(fā)表于 2020-6-10 13:12 | 只看該作者
除了 PWM_value的值有范圍限制之外,積分部分的值因為每次計算后都會保存,它的取值范圍也應該和 PWM_value的取值范圍相同,這樣就不會出現(xiàn)你說的情況了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表