Saturday 23 June 2018

PID Control (3)


ဒီတစ္ခါ Tuning အပိုင္း ေျပာျပပါမယ္။ စာအုပ္ထဲက formula ေတြ ပါလာတာမို႔ စိတ္ရွည္ရွည္နဲ႔ ႀကိဳးစား ဖတ္ၾကည့္ၾကပါ။
Tuning လုပ္မယ္ဆိုရင္ လိုခ်င္တဲ့ရလဒ္က ႏွစ္မ်ဳိးရွိပါတယ္။ အဲဒါကေတာ့ တုန္႔ျပန္မႈ ျမန္ျမန္ (fast response) နဲ႔ တည္ၿငိမ္မႈ ေကာင္းေကာင္း (good stability) ပါ။ တစ္ကယ့္လက္ေတြ႕မွာေတာ့ အဲဒီႏွစ္ခုလုံး အေကာင္းဆုံး ၿပိဳင္တူရဖို႔ မလြယ္ပါဘူး။ ဒီေတာ့ လက္ခံႏိုင္ေလာက္တဲ့ တည္ၿငိမ္မႈရယ္၊ ထိုက္သင့္တဲ့ အခ်ိန္တိုအတြင္းရတဲ့ တုန္႔ျပန္မႈရယ္ ရေအာင္ ခ်ိန္ႏိုင္ရင္ ေတာ္ပါၿပီ။

Tune မလုပ္ခင္ Parameter ေတြရဲ႕ သက္ေရာက္ပုံေလး သိထားသင့္ပါတယ္။ Steady state တစ္ခုကေန Step အေျပာင္းအလဲလုပ္လိုက္ရင္ ျဖစ္လာတဲ့ သက္ေရာက္မႈ (reactive curve) ကိုၾကည့္ၿပီး သတိထားရမယ့္ အခ်က္ေတြက ဒီ ၄ ခုကို ၾကည့္ပါတယ္။
(i) Rise Time (ပထမဆုံး အႀကိမ္ PV Level အသစ္ကို ေရာက္ဖို႔ ၾကာခ်ိန္)
(ii) Overshoot (ေနာက္ Level ကို လြန္သြားတဲ့ peak ပမာဏ)
(iii) Settling Time (Steady State ျပန္ရဖို႔ ၾကာခ်ိန္)
(iv) Steady State Error ( Steady State ေရာက္ေပမဲ့ SP နဲ႔ ကြာေနတဲ့ တန္ဖိုး - Offset)

P, I, D တစ္ခုစီက ဒီ အခ်က္ ၄ ခုကို ဘယ္လို သက္ေရာက္ေစတယ္ဆိုတာ ဇယားမွာ ၾကည့္ပါ။

Tuning parameter ေတြကို အရင္ ျပန္ၾကည့္ရေအာင္။ Parameter ေတြက controller ထုတ္လုပ္တဲ့သူ ေပၚမူတည္ၿပီး အမ်ဳိးမ်ဳိးကြဲႏိုင္ပါတယ္။
- Proportional အတြက္ parameter က Gain (Kp) ဒါမွမဟုတ္ Proportional Band (PB) ျဖစ္ပါတယ္။
- Integral အတြက္ parameter က Reset rate (Ki) ဒါမွမဟုတ္ reset time (Ti) ပါ။ ကိုယ္သုံးတဲ့ controller / program ေပၚ မူတည္ပါတယ္။
- Derivative အတြက္ parameter ကေတာ့ Kd ဒါမွမဟုတ္ Td ပါ။

Tune လုပ္တဲ့ နည္းအမ်ဳိးမ်ဳိးရွိပါတယ္။ အဲဒီထဲက လူသိမ်ားတဲ့ နည္းေတြ ျဖစ္တဲ့ ေအာက္က နည္း ၃ မ်ဳိး နဲ႔ Manual Tuning ေတြကိုေျပာျပပါမယ္။

a) Ziegler Nichols Open Loop  Method
b) Ziegler Nichols Closed Loop  Method
c) Cohen Coon Tuning Method
d) Manual Tuning Method

အဲဒီနည္းေတြရဲ႕ ေကာင္းကြက္ ဆိုးကြက္ေတြရွိသလို၊ တစ္ခ်ဳိ႕နည္းေတြမွာ သံုးႏိုင္တဲ့ Controller အမ်ဳိးအစား ကန္သတ္ခ်က္ေတြရွိပါတယ္။

a) Ziegler Nichols Open Loop Method

ဒီနည္းကို Process Reaction Curve Method လို႔လည္း ေခၚၾကပါတယ္။ Tuning အဆင့္ေတြကို ေအာက္မွာ ေရးျပထားပါတယ္။
1. ပထမဆုံး PV Output Level တစ္ခုရေအာင္ manual mode မွာ ညႇိေပးပါ။
2. Step input တစ္ခုေပးလိုက္ပါ။
3. ေျပာင္းသြားတဲ့ PV တန္ဖိုးေတြကို Level အသစ္မွာ တည္ၿငိမ္မႈ ရတဲ့အထိ ေစာင့္ၿပီး plot လုပ္ပါ။ အဲဒါကို Process Reaction Curve (သို႔) S ပုံစံရွိလို႔ S-curve လို႔ ေခၚပါတယ္။
4. အဲဒီ curve ေပၚမွာ point တစ္ခုစီရဲ႕ tangent line ဆြဲရင္ slope အမ်ားဆုံးရတဲ့ tangent line ကိုဆြဲပါ။
5. အဲဒီ tangent line က မူလ PV Level ကို ျဖတ္သြားတဲ့ အမွတ္ရယ္၊ Level အသစ္ရယ္ကို ျဖတ္သြားတဲ့ အမွတ္ရယ္ ရပါမယ္။
6. အဲဒီအမွတ္ေတြေပၚမူတည္ၿပီး L နဲ႔ T ရဲ႕တန္ဖိုးေတြ ရပါလိမ့္မယ္။ (ပုံကို ၾကည့္ပါ။) L ကို Dead time (သို႔) Delay time လို႔ ေခၚပါတယ္။ T ကေတာ့ Time Constant လို႔ ေခၚပါတယ္။
7. အဲဒီ L နဲ႔ T တန္ဖိုးေတြ သုံးၿပီး ဇယားမွာပါတဲ့ အတိုင္း တြက္လိုက္ရင္ Kp, Ti, Td တန္ဖိုးေတြ ရပါလိမ့္မယ္။ ( ဇယား ကိုၾကည့္ပါ။)

b)  Ziegler Nichols Closed Loop Method

ဒီနည္းကို Ultimate Gain Method လို႔လည္း ေခၚပါတယ္။
1. အစဆုံး Manual mode နဲ႔ SP နဲ႔ PV ကိုတူတဲ့အထိ ညိႇလိုက္ပါ။
2. P တစ္မ်ဳိးပဲ သုံးၿပီး Control လုပ္ပါ။ ဆိုလိုတာက P တန္ဖိုး နိမ့္နိမ့္ တစ္ခုထားၿပီး I နဲ႔ D တန္ဖိုးေတြ 0 ထားၿပီး disable လုပ္ရမွာပါ။ (Ti ဆိုရင္ေတာ့ infinity ထားရပါမယ္။ Disable ဘယ္လိုလုပ္ရမယ္ဆိုတာ Maker ရဲ႕ လမ္းၫႊန္ ဖတ္ၾကည့္ပါ။)
3. SP ကို 5% ေလာက္ေျပာင္းၿပီး step input ေပးလိုက္ပါ။
4. PV တန္ဖိုးကိုၾကည့္ၿပီး P တန္ဖိုးကို အတင္၊ အခ် Tune လုပ္ပါ။ တစ္ခ်ိန္မွာ Steady Oscillation လို႔ေခၚတဲ့ တည္ၿငိမ္ၿပီး တန္ဖိုးညီညာတဲ့ လိႈင္းပုံျဖစ္လာတဲ့အထိ ညိႇပါ။ (ပုံမွာ ၾကည့္ပါ။)
5. အဲဒီလိုရတဲ့ gain (သို႔) Kp တန္ဖိုးကို Ultimate Gain (သို႔) Critical Gain (Kcr) လို႔ ေခၚပါတယ္။
6. လႈိင္းထိပ္ ႏွစ္ခုအကြာအေဝး၊ ၾကာခ်ိန္ကို Pcr လို႔ ထားပါ။
7. အဲဒီ Kcr နဲ႔ Pcr ေပၚမူတည္ၿပီး သူတို႔ recommend လုပ္တဲ့ Kp, Ti, Td တန္ဖိုးေတြကို ေအာက္က ဇယားမွာ ၾကည့္ုၿပီး တြက္ထုတ္လို႔ ရပါၿပီ။ လိုအပ္ရင္ fine tune လုပ္ေပးရပါတယ္။

c) Cohen Coon Tuning Method

ဒီနည္းကေတာ့ Z-C Open Loop နည္းနဲ႔ ဆင္တူပါတယ္။ ဒါေပမဲ့ တြက္တဲ့နည္းေတြက ပိုရႈပ္ပါတယ္။
အဆင့္ (1-4) က Z-C Open Loop အတိုင္း အတူတူပါဘဲ။
5. PV Level ႏွစ္ခု ျခားနားခ်က္ ရဲ႕ 63.2% ကို curve ျဖတ္သြားတဲ့ အမွတ္ နဲ႔ 28.3% ကို ျဖတ္သြားတဲ့ အမွတ္ ေတြေပၚမူတည္ၿပီး Delay time (td) နဲ႔ time constant (Tm) ေတြ တြက္ထုတ္ပါတယ္။ (ပုံမွာ ၾကည့္ပါ။)
6. Process Gain (Km) = Change in PV (%) / Change in CO (%) နည္းနဲ႔ Km ကို တြက္ယူပါတယ္။
7. အဲဒီ td, Tm, Km သုံးၿပီး Kp, Ti, Td တန္ဖိုးေတြကို ဇယားထဲက အတိုင္း တြက္ထုတ္ႏိုင္ပါတယ္။ (ဇယား ၾကည့္ပါ။)

d) Manual Tuning

အေပၚက နည္းေတြသုံးဖို႔ ျပႆနာ တစ္ခုရွိပါတယ္။ အဲဒါကေတာ့ Output တန္ဖိုး (PV) ကို curve ဆြဲၿပီး တြက္ထုတ္ဖို႔ လိုပါတယ္။ တစ္ခ်ဳိ႕ PC based controller ေတြမွာ ဒီလို curve ေတြ plot လုပ္လို႔ ရေပမဲ့ ေတာ္ေတာ္မ်ားမ်ား controller ေတြမွာ plot လုပ္ဖို႔ မလြယ္ပါဘူး။ ဒါေၾကာင့္ ေနာက္ဆုံးနည္း ျဖစ္တဲ့ Manual Tuning ကို ထည့္ေျပာျပမွာပါ။

(1-4) အဆင့္ ေတြကေတာ့ Z-C Closed Loop နည္းအတိုင္း လုပ္ပါ။ Oscillation ျဖစ္တာကို Curve မဆြဲပဲ တန္ဖိုး ေျပာင္းတာ သတိထားၾကည့္ရင္ သိႏိုင္ပါတယ္။
5. D ကို တင္ေပးၿပီး Oscillation ေပ်ာက္ေအာင္ညႇိပါ။
6. I တန္ဖိုးကိုတင္ၿပီး offset မရွိေအာင္ညိႇပါ။
7. တည္ၿငိမ္မႈ မရွိရင္ P နဲ႔ D ကို နည္းနည္းစီ ျပန္ ညိႇေပးပါ။

ေနာက္ဆုံး ျပန္ျခဳံေျပာရရင္၊
- Rise time ျမန္ေအာင္ ညႇိခ်င္ရင္ P ကိုသုံးပါ။
- Overshoot နဲ႔ Settling time နည္းေအာင္ ညွိခ်င္ရင္ D ကိုသုံးပါ။
- Offset ေပ်ာက္ေအာင္ ညိႇခ်င္ရင္ I ကိုသုံးပါ။

Auto Tuning
ေနာက္ထြက္တဲ့ PID Controller ေတြမွာ Auto Tuning function ပါေလ့ရွိပါတယ္။ ဒါဆိုရင္ေတာ့ အရမ္းလြယ္သြားပါၿပီ။ Auto Tune function ကို run လိုက္တာနဲ႔ Controller က Simulated Set Point နဲ႔ disturbance ေတြ ေပးပါတယ္။ ထြက္လာတဲ့ Response အရ Controller က learn လုပ္ၿပီး PID parameter ေတြ အလိုအေလ်ာက္ tune လုပ္ေပးမွာပါ။


ေက်းဇူးတင္ပါတယ္။

[Unicode]


ဒီတစ်ခါ Tuning အပိုင်း ပြောပြပါမယ်။ စာအုပ်ထဲက formula တွေ ပါလာတာမို့ စိတ်ရှည်ရှည်နဲ့ ကြိုးစား ဖတ်ကြည့်ကြပါ။
Tuning လုပ်မယ်ဆိုရင် လိုချင်တဲ့ရလဒ်က နှစ်မျိုးရှိပါတယ်။ အဲဒါကတော့ တုန့်ပြန်မှု မြန်မြန် (fast response) နဲ့ တည်ငြိမ်မှု ကောင်းကောင်း (good stability) ပါ။ တစ်ကယ့်လက်တွေ့မှာတော့ အဲဒီနှစ်ခုလုံး အကောင်းဆုံး ပြိုင်တူရဖို့ မလွယ်ပါဘူး။ ဒီတော့ လက်ခံနိုင်လောက်တဲ့ တည်ငြိမ်မှုရယ်၊ ထိုက်သင့်တဲ့ အချိန်တိုအတွင်းရတဲ့ တုန့်ပြန်မှုရယ် ရအောင် ချိန်နိုင်ရင် တော်ပါပြီ။

Tune မလုပ်ခင် Parameter တွေရဲ့ သက်ရောက်ပုံလေး သိထားသင့်ပါတယ်။ Steady state တစ်ခုကနေ Step အပြောင်းအလဲလုပ်လိုက်ရင် ဖြစ်လာတဲ့ သက်ရောက်မှု (reactive curve) ကိုကြည့်ပြီး သတိထားရမယ့် အချက်တွေက ဒီ ၄ ခုကို ကြည့်ပါတယ်။
(i) Rise Time (ပထမဆုံး အကြိမ် PV Level အသစ်ကို ရောက်ဖို့ ကြာချိန်)
(ii) Overshoot (နောက် Level ကို လွန်သွားတဲ့ peak ပမာဏ)
(iii) Settling Time (Steady State ပြန်ရဖို့ ကြာချိန်)
(iv) Steady State Error ( Steady State ရောက်ပေမဲ့ SP နဲ့ ကွာနေတဲ့ တန်ဖိုး - Offset)

P, I, D တစ်ခုစီက ဒီ အချက် ၄ ခုကို ဘယ်လို သက်ရောက်စေတယ်ဆိုတာ ဇယားမှာ ကြည့်ပါ။

Tuning parameter တွေကို အရင် ပြန်ကြည့်ရအောင်။ Parameter တွေက controller ထုတ်လုပ်တဲ့သူ ပေါ်မူတည်ပြီး အမျိုးမျိုးကွဲနိုင်ပါတယ်။
- Proportional အတွက် parameter က Gain (Kp) ဒါမှမဟုတ် Proportional Band (PB) ဖြစ်ပါတယ်။
- Integral အတွက် parameter က Reset rate (Ki) ဒါမှမဟုတ် reset time (Ti) ပါ။ ကိုယ်သုံးတဲ့ controller / program ပေါ် မူတည်ပါတယ်။
- Derivative အတွက် parameter ကတော့ Kd ဒါမှမဟုတ် Td ပါ။

Tune လုပ်တဲ့ နည်းအမျိုးမျိုးရှိပါတယ်။ အဲဒီထဲက လူသိများတဲ့ နည်းတွေ ဖြစ်တဲ့ အောက်က နည်း ၃ မျိုး နဲ့ Manual Tuning တွေကိုပြောပြပါမယ်။

a) Ziegler Nichols Open Loop  Method
b) Ziegler Nichols Closed Loop  Method
c) Cohen Coon Tuning Method
d) Manual Tuning Method

အဲဒီနည်းတွေရဲ့ ကောင်းကွက် ဆိုးကွက်တွေရှိသလို၊ တစ်ချို့နည်းတွေမှာ သုံးနိုင်တဲ့ Controller အမျိုးအစား ကန်သတ်ချက်တွေရှိပါတယ်။

a) Ziegler Nichols Open Loop Method

ဒီနည်းကို Process Reaction Curve Method လို့လည်း ခေါ်ကြပါတယ်။ Tuning အဆင့်တွေကို အောက်မှာ ရေးပြထားပါတယ်။
1. ပထမဆုံး PV Output Level တစ်ခုရအောင် manual mode မှာ ညှိပေးပါ။
2. Step input တစ်ခုပေးလိုက်ပါ။
3. ပြောင်းသွားတဲ့ PV တန်ဖိုးတွေကို Level အသစ်မှာ တည်ငြိမ်မှု ရတဲ့အထိ စောင့်ပြီး plot လုပ်ပါ။ အဲဒါကို Process Reaction Curve (သို့) S ပုံစံရှိလို့ S-curve လို့ ခေါ်ပါတယ်။
4. အဲဒီ curve ပေါ်မှာ point တစ်ခုစီရဲ့ tangent line ဆွဲရင် slope အများဆုံးရတဲ့ tangent line ကိုဆွဲပါ။
5. အဲဒီ tangent line က မူလ PV Level ကို ဖြတ်သွားတဲ့ အမှတ်ရယ်၊ Level အသစ်ရယ်ကို ဖြတ်သွားတဲ့ အမှတ်ရယ် ရပါမယ်။
6. အဲဒီအမှတ်တွေပေါ်မူတည်ပြီး L နဲ့ T ရဲ့တန်ဖိုးတွေ ရပါလိမ့်မယ်။ (ပုံကို ကြည့်ပါ။) L ကို Dead time (သို့) Delay time လို့ ခေါ်ပါတယ်။ T ကတော့ Time Constant လို့ ခေါ်ပါတယ်။
7. အဲဒီ L နဲ့ T တန်ဖိုးတွေ သုံးပြီး ဇယားမှာပါတဲ့ အတိုင်း တွက်လိုက်ရင် Kp, Ti, Td တန်ဖိုးတွေ ရပါလိမ့်မယ်။ ( ဇယား ကိုကြည့်ပါ။)

b)  Ziegler Nichols Closed Loop Method
ဒီနည်းကို Ultimate Gain Method လို့လည်း ခေါ်ပါတယ်။
1. အစဆုံး Manual mode နဲ့ SP နဲ့ PV ကိုတူတဲ့အထိ ညှိလိုက်ပါ။
2. P တစ်မျိုးပဲ သုံးပြီး Control လုပ်ပါ။ ဆိုလိုတာက P တန်ဖိုး နိမ့်နိမ့် တစ်ခုထားပြီး I နဲ့ D တန်ဖိုးတွေ 0 ထားပြီး disable လုပ်ရမှာပါ။ (Ti ဆိုရင်တော့ infinity ထားရပါမယ်။ Disable ဘယ်လိုလုပ်ရမယ်ဆိုတာ Maker ရဲ့ လမ်းညွှန် ဖတ်ကြည့်ပါ။)
3. SP ကို 5% လောက်ပြောင်းပြီး step input ပေးလိုက်ပါ။
4. PV တန်ဖိုးကိုကြည့်ပြီး P တန်ဖိုးကို အတင်၊ အချ Tune လုပ်ပါ။ တစ်ချိန်မှာ Steady Oscillation လို့ခေါ်တဲ့ တည်ငြိမ်ပြီး တန်ဖိုးညီညာတဲ့ လှိုင်းပုံဖြစ်လာတဲ့အထိ ညှိပါ။ (ပုံမှာ ကြည့်ပါ။)
5. အဲဒီလိုရတဲ့ gain (သို့) Kp တန်ဖိုးကို Ultimate Gain (သို့) Critical Gain (Kcr) လို့ ခေါ်ပါတယ်။
6. လှိုင်းထိပ် နှစ်ခုအကွာအဝေး၊ ကြာချိန်ကို Pcr လို့ ထားပါ။
7. အဲဒီ Kcr နဲ့ Pcr ပေါ်မူတည်ပြီး သူတို့ recommend လုပ်တဲ့ Kp, Ti, Td တန်ဖိုးတွေကို အောက်က ဇယားမှာ ကြည့်ုပြီး တွက်ထုတ်လို့ ရပါပြီ။ လိုအပ်ရင် fine tune လုပ်ပေးရပါတယ်။

c) Cohen Coon Tuning Method
ဒီနည်းကတော့ Z-C Open Loop နည်းနဲ့ ဆင်တူပါတယ်။ ဒါပေမဲ့ တွက်တဲ့နည်းတွေက ပိုရှုပ်ပါတယ်။
အဆင့် (1-4) က Z-C Open Loop အတိုင်း အတူတူပါဘဲ။
5. PV Level နှစ်ခု ခြားနားချက် ရဲ့ 63.2% ကို curve ဖြတ်သွားတဲ့ အမှတ် နဲ့ 28.3% ကို ဖြတ်သွားတဲ့ အမှတ် တွေပေါ်မူတည်ပြီး Delay time (td) နဲ့ time constant (Tm) တွေ တွက်ထုတ်ပါတယ်။ (ပုံမှာ ကြည့်ပါ။)
6. Process Gain (Km) = Change in PV (%) / Change in CO (%) နည်းနဲ့ Km ကို တွက်ယူပါတယ်။
7. အဲဒီ td, Tm, Km သုံးပြီး Kp, Ti, Td တန်ဖိုးတွေကို ဇယားထဲက အတိုင်း တွက်ထုတ်နိုင်ပါတယ်။ (ဇယား ကြည့်ပါ။)

d) Manual Tuning
အပေါ်က နည်းတွေသုံးဖို့ ပြဿနာ တစ်ခုရှိပါတယ်။ အဲဒါကတော့ Output တန်ဖိုး (PV) ကို curve ဆွဲပြီး တွက်ထုတ်ဖို့ လိုပါတယ်။ တစ်ချို့ PC based controller တွေမှာ ဒီလို curve တွေ plot လုပ်လို့ ရပေမဲ့ တော်တော်များများ controller တွေမှာ plot လုပ်ဖို့ မလွယ်ပါဘူး။ ဒါကြောင့် နောက်ဆုံးနည်း ဖြစ်တဲ့ Manual Tuning ကို ထည့်ပြောပြမှာပါ။

(1-4) အဆင့် တွေကတော့ Z-C Closed Loop နည်းအတိုင်း လုပ်ပါ။ Oscillation ဖြစ်တာကို Curve မဆွဲပဲ တန်ဖိုး ပြောင်းတာ သတိထားကြည့်ရင် သိနိုင်ပါတယ်။
5. D ကို တင်ပေးပြီး Oscillation ပျောက်အောင်ညှိပါ။
6. I တန်ဖိုးကိုတင်ပြီး offset မရှိအောင်ညှိပါ။
7. တည်ငြိမ်မှု မရှိရင် P နဲ့ D ကို နည်းနည်းစီ ပြန် ညှိပေးပါ။

နောက်ဆုံး ပြန်ခြုံပြောရရင်၊
- Rise time မြန်အောင် ညှိချင်ရင် P ကိုသုံးပါ။
- Overshoot နဲ့ Settling time နည်းအောင် ညှိချင်ရင် D ကိုသုံးပါ။
- Offset ပျောက်အောင် ညှိချင်ရင် I ကိုသုံးပါ။

Auto Tuning
နောက်ထွက်တဲ့ PID Controller တွေမှာ Auto Tuning function ပါလေ့ရှိပါတယ်။ ဒါဆိုရင်တော့ အရမ်းလွယ်သွားပါပြီ။ Auto Tune function ကို run လိုက်တာနဲ့ Controller က Simulated Set Point နဲ့ disturbance တွေ ပေးပါတယ်။ ထွက်လာတဲ့ Response အရ Controller က learn လုပ်ပြီး PID parameter တွေ အလိုအလျောက် tune လုပ်ပေးမှာပါ။

ကျေးဇူးတင်ပါတယ်။

No comments:

Post a Comment