模擬量采集和進行PID處理時較常見的思路
模擬量采集和進行相應的PID處理時,比較常見的思路是:
一:先將采集到的模擬量值(如通道為AIW0) 右移三位后,付給一個寄存器(如高數計數寄存器AC0);
二:將寄存器里的數值先轉化為 雙整數DI,再轉化為 實數R;
三:將轉換為實數的數值除以32000,得到一個0~1.0之間的數值;
四:如果要進行 PID運算,可直接將介于0~1.0之間的數值直接付給PID控制回路單元寄存器的過程值寄存器(如VD100)
五:將PID計算控制輸出值M乘以32000.0,再轉換為整數輸出。模擬量到數字量轉換器的12位讀數是左對齊的。最高位是符號位,也就是說最低的3位是沒有用的,始終為000,所以為了得到真正的模擬量值需要右移3位;
2.賦值給PID運算的一定是0-1之間的數,舉個例子說:
一個水房要保持一定的水位,輸入反饋為水池底部的一個壓力傳感器,輸出裝置為一個閥門開關0-270開度,假定閥門的另一端一直有水,這樣就組成一個簡單的PID回路:
【輸入反饋】壓力傳感器【0-10Bar,4-20mA】
【輸出 】閥門 【0-270度,1-10V 】
【設定值 】要求水深5米
通過上述可以看出來,輸入反饋,輸出,設定值單位都不一樣,如何解決呢?
PID里是這樣解決的:將輸入反饋,輸出,設定值都除以他們的最大范圍,得到一個0-1之間的數,需要輸出的時候再將0-1之間的數乘以最大范圍就可以了
當然上述的設定值與反饋值不是一個單位,需要將設定值5米轉換成相應的Bar單位如3.5Bar,將3.5Bar/最大壓力10Bar=0.35 這就是設定值;
一:先將采集到的模擬量值(如通道為AIW0) 右移三位后,付給一個寄存器(如高數計數寄存器AC0);
二:將寄存器里的數值先轉化為 雙整數DI,再轉化為 實數R;
三:將轉換為實數的數值除以32000,得到一個0~1.0之間的數值;
四:如果要進行 PID運算,可直接將介于0~1.0之間的數值直接付給PID控制回路單元寄存器的過程值寄存器(如VD100)
五:將PID計算控制輸出值M乘以32000.0,再轉換為整數輸出。模擬量到數字量轉換器的12位讀數是左對齊的。最高位是符號位,也就是說最低的3位是沒有用的,始終為000,所以為了得到真正的模擬量值需要右移3位;
2.賦值給PID運算的一定是0-1之間的數,舉個例子說:
一個水房要保持一定的水位,輸入反饋為水池底部的一個壓力傳感器,輸出裝置為一個閥門開關0-270開度,假定閥門的另一端一直有水,這樣就組成一個簡單的PID回路:
【輸入反饋】壓力傳感器【0-10Bar,4-20mA】
【輸出 】閥門 【0-270度,1-10V 】
【設定值 】要求水深5米
通過上述可以看出來,輸入反饋,輸出,設定值單位都不一樣,如何解決呢?
PID里是這樣解決的:將輸入反饋,輸出,設定值都除以他們的最大范圍,得到一個0-1之間的數,需要輸出的時候再將0-1之間的數乘以最大范圍就可以了
當然上述的設定值與反饋值不是一個單位,需要將設定值5米轉換成相應的Bar單位如3.5Bar,將3.5Bar/最大壓力10Bar=0.35 這就是設定值;
本文標簽:模擬量采集和進行PID處理時較常見的思路
* 由于無法獲得聯系方式等原因,本網使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《模擬量采集和進行PID處理時較常見的思路》相關權利人與機電之家網取得聯系。










