⑴ PID演算法怎麼用
U不能代替V,它們有關聯但不是同一個東東。
一般在自動控制中,控制模塊(PID等)輸出的是控制值,但不是輸出值。它們的關系在於PID控制模塊輸出到PID輸出的部分——這個部分,你初入門把它當成「另一個系統X或另一個單獨的設備X」即可。系統X是接受U輸入,再產生V輸入。
拿個實際的例子來說,有個PID要控制水箱水位,上面有入水的水龍頭,下方是出水口流出。這個水位就是V輸入,通過某個測量器(水位計什麼的)輸入到PID。然後PID輸出U,這里請注意!它的輸出U接到水龍頭,而水龍頭給出的控制方式,是以它的水量影響水箱水位,最後繞回來,水位被測出以V輸入到PID。
所以在這個系統中,除PID外,「水龍頭-出水-水箱水位」可以視為一套單獨的系統,PID以輸出影響水龍頭(水龍頭排出的水量),再注意一下,水龍頭對水箱水位的控制是不可預知的,因為不是小學數學題,沒有恆定值。水龍頭開了100%能產生的流量,可能是200,可能是180,也可能是170,更進一步在水箱中,因為排出量可能變化的影響,即例水龍頭恆定了流量,水位也會波動,因此PID外部的「水龍頭-出水-水箱水位」系統,可能會有不可預知的波動,但「大方向」是可預料的,比如這個系統,PID的U影響水龍頭,間接對水位的大小是一個正向變化,U越大,水位V(輸出值)在正常情況下加一個向上增值的影響。
考慮有個同學,他按「人工思考」的方式控制水箱水位,他的能力是可以操作水龍頭,能看到水箱水位,相當於上面的U和V,現在BOSS要求他說,必須把水箱水位控制在40%這個位置(給定值),有誤差可以,盡量控制。當他看到水位低於40%時,會把水龍頭開大,然後根據水位的變化再調水龍頭出水的大小,好吧他發現開了水龍頭,水位從30%緩慢上升,他一想可能是下面出水太多,就會把水龍頭擰大一點(D演算法,偏差變化越大,正反向開得越大,I演算法,經過一定時間累積值越大,調節U的力度越大),反之亦然,水位從30%向給定的40%上升的速度太快,他會想,快到40%前把水龍頭擰小點,讓出水和進水差不多。
說回你那個電機,它接受U,相當於「水龍頭」,後面電機的輸出不可能立即當成V送回PID,而是控制某個設備作正向或反向的增加量,比如這電機連接到一個送料器,控制容器送出給料,那就是個反向增量,PID系統測量出料的多少為V,同樣的,由於現實系統的一些不確定性,經常會有另一個擾動加在送料系統上。PID的目的就是找出控制參數,盡量找到一個平衡點,令U對V的間接輸出趨近PID的給定值
⑵ 怎樣用PID演算法對恆溫箱的溫度進行控制,求相關的51單片機匯編程序
本設計要求:本溫度控制系統為以單片機為核心,實現了對溫度實時監測和控制,實現了控制的智能化。設計恆溫箱溫度控制系統,配有溫度感測器,採用DS18B20數字溫度感測器,無需數模擬∕數字轉換,可直接與單片機進行數字傳輸,採用了PID控制技術,可以使溫度保持在要求的一個恆定范圍內,配有鍵盤,用於輸入設定溫度;配有數碼管LED用來顯示溫度。
技術參數和設計任務:
1、利用單片機AT89C2051實現對溫度的控制,實現保持恆溫箱在最高溫度為110℃。
2、可預置恆溫箱溫度,烘乾過程恆溫控制,溫度控制誤差小於±2℃。
3、預置時顯示設定溫度,恆溫時顯示實時溫度,採用PID控制演算法顯示精確到0.1℃。
4、溫度超出預置溫度±5℃時發出聲音報警。
5、對升、降溫過程沒有線性要求。
6、溫度檢測部分採用DS18B20數字溫度感測器,無需數模擬∕數字轉換,可直接與單片機進行數字傳輸
7、人機對話部分由鍵盤、顯示和報警三部分組成,實現對溫度的顯示、報警。
需要的話聯系用戶名扣扣
⑶ 怎樣用PID演算法對恆溫箱的溫度進行控制,求相關的51單片機匯編程序
本設計要求:本溫度控制系統為以單片機為核心,實現了對溫度實時監測和控制,實現了控制的智能化。設計恆溫箱溫度控制系統,配有溫度感測器,採用DS18B20數字溫度感測器,無需數模擬∕數字轉換,可直接與單片機進行數字傳輸,採用了PID控制技術,可以使溫度保持在要求的一個恆定范圍內,配有鍵盤,用於輸入設定溫度;配有數碼管LED用來顯示溫度。
技術參數和設計任務:
1、利用單片機AT89C2051實現對溫度的控制,實現保持恆溫箱在最高溫度為110℃。
2、可預置恆溫箱溫度,烘乾過程恆溫控制,溫度控制誤差小於±2℃。
3、預置時顯示設定溫度,恆溫時顯示實時溫度,採用PID控制演算法顯示精確到0.1℃。
4、溫度超出預置溫度±5℃時發出聲音報警。
5、對升、降溫過程沒有線性要求。
6、溫度檢測部分採用DS18B20數字溫度感測器,無需數模擬∕數字轉換,可直接與單片機進行數字傳輸
7、人機對話部分由鍵盤、顯示和報警三部分組成,實現對溫度的顯示、報警。
需要的話聯系用戶名扣扣