Adaptiv idarəetmə
Ön Söz
Bu məqalədə avtomatika və idarəetmə mühəndisliyində (və bir sıra sahədə) rast gəlinən Adaptiv İdarəetmə mövzusuna toxunulacaqdır. Yazı boyu isbatlar, sıxıcı, mahiyyətini anlamaqda insana yorğunluq gətirən məqamlardan uzaq olmağa çalışmışam. Təəssüf ki, bir çox terminlər ingilis dilindən ana dilimizə tərcümə edilməyib. Məqalə ilə bağlı təklif və iradlarınızı bildirməkdən çəkinməməyiniz xahiş olunur.
aydin.nasirzadeh@gmail.com
Nominal sistem || Qeyri-müəyyən dəyişənin təsiri
Aşağıdakı sistemin ən sadə modelini qurmağa çalışaq. Çənə su tökülür və müəyyən sızıntı vardır.
Sitemin ilkin modeli artıq əlimizdə vardır. Nəzərə almaq lazımdır ki, suyun həcmi (V_t) və sızıntı (p(t)) arasında müəyyən əlaqə olmalıdır. Bu əlaqəni də ən sadə formada göstərə bilərik (Şəkil 2):
Gördüyünüz kimi müəyyən dəyişiklik etməklə sistemin modelini daha əlverişli formaya saldıq. x(t) ingilis dilində “state” adlanır. Sonda aldığımız nəticə birinci dərəcəli (“first order”) xətti (“linear”) sistemdir.
Əlimizdə modelimiz varsa, artıq müəyyən əməliyyatlar edə bilərik onun üzərində. Tutaq ki, bizim məqsədimiz “zero error tracking” dediyimiz sıfır xəta əldə etməkdir, başqa sözlə, məqsəd arzu olunan qiymətlə (“setpoint” - r(t)) faktiki qiymət arasında (x(t)) fərqi sıfıra endirməkdir.
Əvvəla onu nəzərə çatdıraq ki, sistemin 1-addım daxili gecikməsi (“1-step intrinsic delay”) var. Çünki t zamanındakı idarəetmə dəyişəni (u(t)) t+1 zamanındakı “state” dəyişəninə (x(t+1)) təsir edir. Bunu sonda aldığımız modeldən də görmək olar.
Ən yaxşı peformansı əldə etmək x(t+1) qiymətinin r(t)-ə bərabər olması deməkdir. Bu halda:
Şəkildə sistemin idarəetmə hissəsinin bərabərliyini görürsünüz (u(t)). “State” və “controller” ifadələrindən biz blok diaqramı qururuq, Şəkil 3-də göstərildiyi kimi.
Bura qədər hər şey qaydasındadır. Amma sistemə daha realistik yanaşsaq, ona qeyri-mükəmməllik əlavə etsək? Məsələn, x(t+1) = ax(t) + u(t) modelində a dəyişəninin qeyri-müəyyən bir kəmiyyət olması? Belə olan halda, görəsən, yuxarıda təsvir edilən nominal sistem dayanıqlı olacaq ya yox?
Şəkil 3-də verilən kontroller ifadəsində (u(t)) “a” kəmiyyətini qeyri-müəyyən (“uncertain”) qəbul edək və onu papaqlı_a ilə qeyd edək. Sözügedən iki kəmiyyət bir-birindən fərqlidir (a!=papaqlı_a). Papaqlı_a, əslində bizim əvvəlki a-nın təxmin edilmiş qiymətidir (“guess”). Və sistemdə belə təxmini qiymət olanda biz onunla kontroller ifadəsində “uncertain variable” dediyimiz qeyri-müəyyən dəyişən kimi davranırıq.
Bundan sonra “state equation x(t+1)” Şəkil 4-də verilən forma alır. Bu isə o deməkdir ki, qeyri-müəyyənliyi olan bu sistemdə dayanıqlılıq (“robustness”) yoxdur. x(t+1) heç zaman r(t)-ə bərabər ola bilmir, çünki (a — papaqlı_a) fərqi sıfıra bərabər ola bilmir əvvəlcədən verdiyimiz şərtə görə (a != papaqlı_a). Bizim məqsədimizin nə olduğunu xatırlayaq bir daha: sıfır xəta (zero error tracking). Məqsədimizdən uzaqlaşdıq nominal sistemə “uncertainty” əlavə olunanda.
Bir az daha dərin baxış ataq bu məsələyə. “Steady state” vəziyyətində (“uncertainty” ilə) verilmiş sistemi analiz edək. Şəkil 4-də göründüyü kimi “steady state” deyəndə biz dəyişənləri müəyyən sabitə bərabət edib həmin vəziyyətdəki qarşılıqlı əlaqələrini tapırıq (x_bar və r_bar arasındakı əlaqəyə bax).
Həmin əlaqəyə əsasən əlimizdə iki situasiya ola bilər: təxmin etdiyimiz qiymət (papaqlı_a) nominal qiymətdən (a) ya böyükdür ya da balaca.
Birinci halda təxmin nominal qiymətdən böyükdür. Bu zaman “steady state”-də faktiki qiymət arzuolunan qiymətdən kiçik olur. Deməli, sızıntını az qiymətləndirmişik. Digər tərəfdən, ikinci halda təxminimiz nominal qiymətdən kiçikdir. Bu zaman “steady state”-də faktiki qiymət arzuolunan qiymətdən böyük olur. Deməli, sızıntını çox qiymətləndirmişik. İstənilən halda, yəni nə olursa olsun, sistemdə qeyri-müəyyənlik olduğu müddət ərzində biz sıfır xəta əldə edə bilmirik “steady state”-də (“transient”-dən sonra). Gəlin, bəzi simulyasiyaları reallaşdıraq:
Yuxarıdakı nümunədə nominal sistemin (gördüyünüz kimi, qeyri-müəyyənlik papaqlı_a dəyişəninə şamil olunub və onun qiyməti (0.95) faktiki a dəyişəninin qiymətindən (0.9) fərqlidir) simulyasiyasına nəzər yetirsək, görərik ki, sadəcə bir addımdan sonra “transient” bitir və çıxış qiyməti stabilləşir. Amma arzuolunan qiymət (30) və simulyasiyadan sonra alınan faktiki çıxış qiyməti (28.5) arasındakı fərq sıfır deyil (sıfır xəta məqsədinə çatmadıq). Bu, birinci hala uyğun gəlir, yəni papaqlı_a > a, sızıntını az qiymətləndirmişik.
Bu dəfə ikinci hala uyğun olaraq, papaqlı_a (0.85)<a (0.9). Simulyasiyaya nəzər yetirsək, görərik ki, yenə də bir addımdan sonra “transient” bitir və çıxış qiyməti təqribən 32-də stabilləşir. Amma arzuolunan qiymət (30) və simulyasiyadan sonra alınan faktiki çıxış qiyməti (32) arasındakı fərq sıfır deyil (sıfır xəta məqsədinə çatmadıq), sızıntını çox qiymətləndirmişik.
Get Aydin Nasirzade’s stories in your inbox
Join Medium for free to get updates from this writer.
Gördüyümüz kimi nominal dizayn sistemlərində bütün kəmiyyətlər və dəyişənlər bilinən olduğu üçün, müəyyən qeyri-müəyyənlik bizi sıfır xəta amalımızdan kənar saxlayır. Bəs nədir bunun çarəsi? İnteqratorlar.
İnteqratorlar
İnteqratorlar idarəetmə dünyasında “zero error tracking”-ə çatmaq üçün istifadə olunan xətti kontrollerlərdir. Aşağıdakı blok diaqramda ən sadə forması verilmişdir:
Gəlin, “MatLab”-də bu sistemi quraq və simulyasiya ilə nəticəmizə baxaq (n=1 və a=0.9):
Nəticə o qədər də ürəkaçan deyil. Çünki “transient” çox uzundur, “settling time” (sabitləşmə müddəti) çox böyükdür və bu 150 addıma bərabərdir. Halbuki bu rəqəm yuxarıdakı nominal sistemdə birə bərabər idi, nə qədər “setpoint”-ə (30-a) çatmasaq da. Amma burada sıfır xəta qayəmizə çatmış sayılırıq. Çünki 150 addımdan sonra “setpoint” və çıxış qiyməti arasındakı fərq sıfıra bərabər olur.
Təbii ki, biz tuninq parametri n ilə oynara bilərik daha yaxşı nəticələrə gəlmək üçün. Məsələn, n-in qiymətini 100 dəfə azaldanda daha az “oscillation”-lar və daha qısa “settling time” əldə etdik (Şəkil 10).
Amma nə qədər çalışsaq da, heç vaxt mükəmməl peformans əldə edə bilmirik bu oynama ilə. Buradan belə qənaətə gəlmək olar ki, inteqratorlar möhtəşəm dayanıqlı xətti kontrollerlərdir. Lakin bir tərəfdən udarkən, digər tərəfdən uduzuruq. Başqa sözlə desək, bir tərəfdən sıfır xətaya çatırıqsa, digər tərəfdən daha uzun sabitləşmə müddətinə, daha uzun “transient”-ə sahib oluruq. Bu tip dayanıqlı xətti kontrollerlər belədir. Ya ləng peformansa göz yumursan, ya da dayanıqlılığı (“robustness”) qurban verirsən.
Bəs nədir bunun çarəsi? Daha doğrusu, çarələrindən biri? Adaptiv idarəetmə.
Adaptiv idarəetmə
Adaptiv idarəetmə bu istiqamətdə yüksək davranışa sahib, dayanıqlığı təmin edən qeyri-xətti üsuldur. Bu növ idarəetmədə biz sıfır xətaya çox qısa zamanda çata bilirik (xətti kontrollerlərdən fərqli olaraq).
Aşağıda onun kobud şəkildə olan blok diaqramı və ümumi formulası verilmişdir:
Əgər istəsəniz, aşağıda yerləşdirdiyim izahları izləyərək Şəkil 11-də verilmiş formulanın başqa formasını görə bilərsiniz:
u(t)-nin Şəkil 11-də verilən düsturunu da nəzərə alıb aldığımız nəticələri birləşdirsək, aşağıdakı blok diaqramı əldə edirik:
Adaptiv idarəetmədə biz, demək olar ki, nominal kontrollerlərin strukturunu saxlayarıq. Lakin fərq ondadır ki, burada qeyri-müəyyənliyə sahib olan parametr sabit qalmır, daim dəyişir, optimallaşır sistemdə olan informasiya əsasında (Adaptasiya qaydası).
Adaptiv kontrollerin “MatLab”-də modelini quraraq nəticəsini görürük Şəkil 15-də. Nəticə möhtəşəmdir. Yalnız 3 addımdan sonra 30 üzərində stabilləşib çıxış qiyməti. Sistemdəki təxmini rəqəmləri nə qədər qeyri-müəyyən etsək də, nə qədər onları dəyişsək də, çox az sayda zaman addımından sonra “setpoint”-a çatılır.
Və sonda bir nüansa da toxunmağımız yaxşı olardı. Müəyyən əvəzetmələri Şəkil 15-də göstərildiyi kimi icra etsək, görərik ki, əslində papaqlı_a dəyişəni a dəyişəninin “Least Square” adlandırdığımız qiymətidir.
Yekun
Bura qədər oxudunuzsa, təşəkkür edirəm! Məqsədim ana dilimizdə elmi kontentlərin artırılması istiqamətində, kiçik də olsa, töhvə verməkdir. Bir nəfər belə məqaləni oxuyub, nəsə götürə bilsə, mənim üçün dünyalara dəyər. Bunları mənə Milan Politexnik Universitetində “Data Driven Control System Design” dərsini tədris edən professor Simone Garatti-yə sonsuz təşəkkürümü bildirirəm.







