Lego ev3 proporsional inteqral diferensial nəzarətçi.

səslər)

Proporsional nəzarətçi

Təsvir

Avtomatik idarəetmədə idarəetmə hərəkəti u(t) adətən dinamik xətanın funksiyasıdır - idarə olunan x(t) dəyişəninin x0(t) təyin edilmiş dəyərindən e(t) kənarlaşması:

e(t) = x0(t) – x(t).

Bu, sapma ilə tənzimlənmənin Polzunov-Vatt prinsipi və ya əks əlaqə prinsipidir. İstənilən idarəetmə hərəkətinin u0(t) nəzarətçinin ölçdüyü kəmiyyətlərdən funksional asılılığının riyazi ifadəsi yuxarıda müzakirə olunan qanun və ya idarəetmə alqoritmi adlanır.

Mütənasib nəzarətçi, müəyyən bir vəziyyətdən kənara çıxmasına mütənasib olaraq bir obyektə nəzarət effekti verən bir cihazdır:

Burada k nəzarətçinin qazancıdır. Verilmiş x0 vəziyyəti adətən təyinat nöqtəsi, ondan e sapması isə qalıq adlanır. Bundan sonra, dəqiqlik üçün qalığı err (-dan) abbreviaturası ilə işarə edəcəyik.İngilis sözü

"səhv" - xəta).

Motor nəzarəti

Təcrübəli döyüşçü relay idarəedicisindəki robot kimi qılınc yelləməyəcək. Qılıncı tutan motoru ciddi şəkildə sabit vəziyyətdə saxlayacaq bir alqoritm hazırlamalıyıq (Şəkil 7.1). P-tənzimləyicisi bu işdə kömək edəcəkdir.

E 1 - A motorunda sürət sensorunun 1 oxunuşları - tənzimlənən dəyişən olsun. Tənzimləmə x0 = 45, qalıq isə e = 45 – e 1. Sonra mühərrikdə idarəetmə hərəkəti düsturla verilir.

u = k ∙ (45 – e 1).

Burada k qazanc əmsalıdır, məsələn, 5, hətta müəyyən edilmiş nöqtədən kiçik sapmalar olsa belə, motor reaksiyasını gücləndirəcək.

1 Qalıq e-nin (səhvdən) riyazi təyinatını əvvəlcədən təyin edilmiş Robolab mühit dəyişəni olan e 1 (kodlayıcıdan) kodlayıcının oxunuşları ilə qarışdırmayın. Bir sapma varsa müsbət tərəfi

motora mənfi nəzarət girişi tətbiq olunacaq və əksinə. Bu idarəetmə, nəzarətçini boşaltmaq üçün 1-10 ms qısa gecikmə ilə bir dövrədə mühərrikə tətbiq edilə bilər (Şəkil 7.8).

düyü. 7.8. Mütənasib tənzimləyicidən istifadə edərək motor idarəetmə alqoritmi.

RobotC dilində Robolab-da olduğu kimi kodlayıcı oxunuşları üçün belə rahat nota yoxdur, ona görə də proqram bir az daha uzun görünür:

int k=5, u; nMotorEncoder=0; isə (doğru)

u=k*(45-nMotorEncoder); motor=u;

Bundan əlavə, "qılıncla zərbə" vurmaq üçün 45 rəqəminin əvəzinə bir dəyişənə sahib olmaq və onun dəyərini kənardan, məsələn, paralel tapşırıqdan dəyişdirmək kifayətdir. Bu, 8-ci Fəsildə robot nağaraçılar bölməsində əhatə olunur.

İndi yalnız mühərrikin statik mövqeyini deyil, həm də hərəkət sürətini idarə edən bir nəzarətçi quraq. Alqoritmin məntiqinə uyğun olaraq, indiyə qədər sabit olan və dəyişməmiş təyinat nöqtəsi artım və ya azalma istiqamətində hərəkət etməyə başlamalıdır. Tənzimləyiciyə tabe olan motor qaçılmaz olaraq onu təqib edəcəkdir. Təyin edilmiş dəyər dəyərini davamlı olaraq artırmaq üçün ən sadə alət taymerdir.

NXT nəzarətçisində dörd daxili taymer var, onların hər biri vaxtı saniyənin onda, yüzdə və mində bir hissəsi ilə ölçə bilir. Gəlin saniyədə 10 “məsləhət” yerinə yetirən ilk taymeri mənimsəək.

kov". Robolab-da bu T1 və ya Timer100ms1, RobotC-də isə timer100 olaraq təyin edilmişdir.

Əvvəlki nümunədə 45-də göstərilən mühərrikin əyilmə bucağını k 2 sürətləndirici əmsalı olan taymerin oxunuşlarından asılı olaraq alfa edək:

alfa = k2 ∙ T1.

Nəzarət hərəkəti gücləndirmə əmsalı k 1 ilə eyni qalacaq:

u = k 1 ∙ (alfa – e 1).

Qısaca olaraq, Robolab dilindəki proqramda biz taymeri əvvəlcədən işə salaraq idarəetmə hərəkətini birbaşa motora tətbiq edəcəyik.

düyü. 7.9. Motor sürətinə nəzarət saniyədə bir dövrədir.

K 2 = 36 əmsalı müəyyən edir ki, bir saniyədə alfa dəyəri 360-a yüksəlir ki, bu da mühərrikin bir tam inqilabına uyğundur:

int k1=2, k2=36, u, alfa; nMotorEncoder=0; ClearTimer(T1); isə (doğru)

alfa=taymer100*k2; u=k1*(alfa-nMotorEncoder); motor=u;

Tam tipli dəyişənlər üçün C-də (və Robolab) qəbul edildiyi kimi tam bölgüdən istifadə edərək, diskret bucaq dəyişikliklərinə nail olmaq mümkündür, yəni. saniyədə bir dəfə artırır:

alfa = T 1 / 10 ∙ k 2.

K 2 = 60 əmsalı ilə şüanın hərəkəti saatın diaqonalındakı ikinci əlin hərəkətinə uyğun olacaq. Amma bu kifayət deyil

nəzərə çarpan. Aydınlıq üçün k2 = 30 təyin edə bilərsiniz, sonra ox hər biri 30 dərəcə olan 12 "gənə" ilə tam bir inqilab edəcək. Tam bölmə və vurma əməliyyatlarının ardıcıllığına diqqət yetirin;

düyü. 7.10. Saat əqrəbinin hərəkətinin sürətləndirilmiş təqlidi.

Və nəhayət, riyazi təbilçi nümunəsi. Daim irəli getmək əvəzinə, iynə P-tənzimləyicinin nəzarəti altında irəli və geri salınacaq. C-də % işarəsi ilə işarələnən qalığa bölmə əməliyyatı buna kömək edəcəkdir. 2-yə bölünən qeyri-mənfi tam ədədin qalığı həmişə 0 və ya 1 olacaq:

alfa = T 1% 2 ∙ k 2.

Sapmanı k 2 = 15 dəfə artıraraq, tənzimləyicini motoru saniyədə 5 dəfə, ya 0º və ya 15 dərəcə hərəkət etdirməyə məcbur edəcək salınan təyinat nöqtəsi alfa alırıq. Proqramda dəyişikliklər cüzidir. RobotC-də bir nümunəyə baxaq:

int k1=3, k2=15, u, alfa; nMotorEncoder=0; ClearTimer(T1); isə (doğru)

alfa=taymer100%2*k2; u=k1*(alfa-nMotorEncoder); motor=u;

Bu prototip təbilçi müntəzəm olaraq masaya vurur. Əsas odur ki, düzgün mövqedən başlamaqdır. Tam riyaziyyatdan istifadə edərək, daha mürəkkəb bir ritmik nümunə təyin edə bilərsiniz, məsələn (Cədvəl 7.1):

alfa = T 1% 5% 2 ∙ k 2.

mərkəz = S3.

Dövrdə əmsal müəyyən edilir:

k 1 = c + (S 3 - mərkəz) / k 2.

düyü. 7.36. Üzən əmsalı olan mütənasib nəzarətçidə xətt boyunca hərəkət.

Nəticə əldə edilən mənfəətə nəzarət qanunu yalnız mütənasib komponentə deyil, həm də hər hansı digər komponentə, eləcə də bütövlükdə nəzarət hərəkətinə tətbiq edilə bilər (şək. 7.36).

PID nəzarətçi

Mütənasib inteqral törəmə (PID) nəzarətçi ən populyarlardan biridir və ən çox sayda cihazda istifadə olunur. müxtəlif növlər, sürətli cavab və sistemin yerləşdirmə dəqiqliyini tələb edən. Adından göründüyü kimi, bu tənzimləyici üç komponentin cəmindən ibarətdir və Şəkil 1-də qrafik olaraq təsvir edilmişdir. 7.37.

düyü. 7.37. PID nəzarətçi dövrəsi.

Bu sadələşdirilmiş diaqramdır. Dinamik xətanın dəyəri e (t) nəzarətçinin girişinə verilir və çıxışda idarəetmə hərəkəti u (t) yaradılır:

u (t) = p + i + d = k p ∙ e (t) + k i ∙ ò t

e (τ)d τ + k d ∙

de.

Diaqramda üçbucaq şəklində göstərilən mütənasib komponent sistemin müəyyən bir vəziyyətdə yerləşdirilməsinə cavabdehdir. Bəzi hallarda, bu, sonrakı öz-özünə salınımlarla həddindən artıq yüklənməyə səbəb ola bilər. Yəni, P-tənzimləyicisi "aşıra" bilər və robot yan-yana sürüşməyə başlayacaq.

İnteqral komponent mənfi təcrübə toplayır (səhvləri ümumiləşdirir) və kompensasiya effekti verir. Minimum sapmalarla, mütənasib komponent "zəifləyir" və inteqral komponent, cəmləmə ilə sürətlə artması səbəbindən idarə olunan dəyərə təyin edilmiş nöqtəyə "çatmağa" kömək edir.

Diferensial komponent (D-komponent) sistemin vəziyyətinin dəyişmə sürətinə nəzarət edir və mümkün həddi aşmanın qarşısını alır. Bəzi hallarda D-komponenti mütənasib olanın işarəsinə görə əks, digərlərində isə eynidir.

Biz artıq mütənasib komponentlə tanışıq, diferensial əvvəlki 6-cı fəsildə təsvir edilmişdir. Gəlin inteqral komponenti götürək. Bu komponent dinamik olaraq müəyyən edilir, əvvəlki qiymətlə cəmlənir:

i = i + ki × e(t) × dt.

e(t) × dt kəmiyyətinin fiziki mənası onun olmasıdır

sistemin xəta vəziyyətində olma müddəti ilə mütənasibdir. k i əmsalı mötərizədən çıxarıldığı üçün xəta müddətlərinin cəmi kimi i dəyərindən danışmaq olar. Beləliklə, biz inteqralı toplama yolu ilə tapırıq.

İki təkər üzərində balanslaşdıran robot nümunəsindən istifadə edərək PID nəzarətçisinin istifadəsini nəzərdən keçirək. Bu klassik problem müxtəlif sensorlar vasitəsilə müxtəlif yollarla həll edilə bilər. Təklif olunan nümunədə bir işıq sensoru istifadə olunur və ən sadə forma PID nəzarətçi. Bununla belə, robotun sabitləşməsinə nail olmaq üçün daha dəqiq sensor oxunuşlarından istifadə tələb olunacaq.

RAW formatı

Sensor məlumatları NXT nəzarətçisinə işlənməmiş, xam formada daxil olur. Bütün sensorlar ötürür əməliyyat sistemi 0-dan 1023-ə qədər rəqəmsal dəyər, sonra müvafiq sürücü tərəfindən işlənir və daha başa düşülən bir formaya endirilir (məsafə 0...255, işıqlandırma 0...100, toxunma 0 və ya 1 və s.). Lakin məlumatlar sürücüdən yan keçməklə birbaşa qəbul edilə bilər. Bu xam format adətən RAW adlanır (ingilis dilindən "raw"). Bəzi hallarda daha yüksək dəqiqliyə nail olmaq üçün istifadə edilə bilər. Məsələn, işıq sensoru dəyərlərinin diapazonu təxminən 10 dəfə arta bilər. Məhz bu fürsət daha da istifadə olunur.

Siz həm Robolab, həm də RobotC-də RAW formatında məlumatları qəbul edə bilərsiniz. Bunun üçün sensor müvafiq olaraq işə salınır və əvvəlcədən təyin edilmiş xüsusi dəyişəndən istifadə edərək məlumatlar ondan oxunur.

Balans robotu

Segway robotunun dizaynı Şek. 7.38: şaquli şəkildə yerləşdirilmiş nəzarətçi, yaxından yerləşdirilmiş təkərlər və aşağıya baxan işıq sensoru. Alqoritm bir az daha mürəkkəb olacaq.

Segway-in balanslaşdırılmış vəziyyətdə sabitləşdirilməsi prinsipi aşağıdakı kimidir. Robot irəli əyilirsə, əks olunan işıq səbəbindən işıq sensorunun oxunuşu artır. Buna cavab olaraq, robotu irəli getməyə və bununla da yenidən şaquli mövqe tutmağa məcbur edən idarəetmə hərəkəti yaradılır.

Geriyə doğru hərəkət edərkən sensorun göstəriciləri azalır və robot geriyə doğru hərəkət etməyə başlayır. Bütün bunlara mütənasib komponent cavabdehdir. İnteqral və diferensial komponentlərin rolunu həddi aşmadan sığorta oynayır.

düyü. 7.38. Balanslaşdıran Segway robotu.

Şəkildə. 7.39 Robolab-da alqoritmi göstərir. Əksəriyyəti dəyişənlərin işə salınması ilə məşğuldur. Dəqiqliyi artırmaq üçün yalnız sensor məlumatları RAW formatında oxunmur, lakin əksər dəyişənlər real float formatında elan edilir. PID alqoritminin özü bir döngədədir.

düyü. 7.39. Balanslaşdırıcı alqoritm PID nəzarətçisinə əsaslanır.

Xətt boyunca hərəkət etmək ənənəsinə uyğun olaraq, biz boz dəyişəni təyinat nöqtəsi kimi istifadə edirik - tarazlıq vəziyyətində işıq sensorunun orta oxunuşları. Yeni miqyas parametri nəzarət hərəkətinin miqyasını təyin edir. Bu, mahiyyətcə zəifləmə faktorudur, çünki tənzimləyici tərəfindən istehsal olunan dəyər NXT mühərrikləri üçün çox yüksəkdir. Onu mövcud əmsalların içərisinə əlavə etmək olardı, lakin RobotC üçün bu parametr fərqli olacaq, lakin əmsallar eyni olacaq.

Verilmiş əmsallarla robot düz, açıq rəngli linoleum və ya masa üzərində yaxşı sabitləşir. Yəni ona ehtiyac yoxdur səthlər. Başlamaq üçün Segway-i tarazlıq vəziyyətinə dəqiq təyin etməlisiniz. Robot bir az irəli və ya geri əyilməklə başlayarsa, dərhal əyilmə istiqamətində hərəkət etməyə başlayacaq.

RobotC-də oxşar nümunə bir sıra səbəblərə görə bir qədər fərqlidir. Birincisi, bu mühitin proqram təminatı ilə NXT-nin performansı Robolab-dan təxminən 1,4 dəfə yüksəkdir, buna görə də miqyas faktoru artırılmalıdır. İkincisi, RAW dəyərləri düzgün qaydada ötürülür və siz mühərrikləri tərsinə çevirməli və ya sadəcə mənfi nəzarət hərəkəti tətbiq etməlisiniz:

int grey=SensorRaw; int err, errold=0;

float kp=25, ki=350, kd=0,3; float miqyası = 14;

float dt=0,001; float p, i=0, d, u; isə (doğru)

səhv = boz-SensorRaw; //Əks işarəli kənarlaşma p=kp*err;

i=i+ki*err*dt; d=kd*(səhv-səhv)/dt; errold=err; u=(p+i+d)/miqyas; motor=u; motor=u; wait1Msec(1);

Nəzəriyyənin elementləri avtomatik nəzarət məktəbdə 1

Əhəmiyyətli və maraqlı bir metodik vəzifə bir mütəxəssislə tələbənin bilik sahələri arasında "körpü yaratmaq", məktəb şagirdlərinə gələcəyi görməyə kömək etməkdir. gələcək ixtisas, yəni. karyera rəhbərliyi həyata keçirir və tələbələr öz peşə biliklərinin praktiki tətbiqini görürlər. Bənzər bir effekt əldə etmək üçün riyaziyyat və fizika üzrə məktəb kurikulumlarının əhatə dairəsindən kənara çıxmayan riyazi aparatlardan istifadə edərək tənzimləyicilərin hesablanması üsulları hazırlanmışdır. Xüsusilə əvəzinə diferensial tənliklər kompüter idarəetməsində obyekt və nəzarətçi arasındakı qarşılıqlı əlaqənin diskret təbiətinə yaxşı uyğun gələn fərqlərdən istifadə edilmişdir.

Məsələn, mobil robotun divar boyunca hərəkətini idarə etmək problemində mütənasib (P) və mütənasib-törəmə (PD) idarəedicilərinin qurulması problemini nəzərdən keçirək. Robotla divar arasındakı məsafəni x t ilə, θt ilə - robotun istiqamət bucağı ilə və u t ilə - müvafiq olaraq t seriya nömrəsi ilə idarəetmə hərəkətini işarə edək, burada t = 0, 1, 2, ... - dəyişiklik anlarının sayı

renium. Hesab edilir ki, sensorların sorğulanması və nəzarət hərəkətinin miqyasında dəyişikliklər h vaxtının bərabər intervallarında aparılır. Tapşırıqlar üçün Lego nəzarətləri NXT robotları təbii olaraq idarəetmə hərəkətinin fərq olduğunu düşünür bucaq sürətləri təkərin fırlanması, istiqamət bucağının dəyişmə sürətinə mütənasibdir:

Nominal θt =0-dan kurs sapmalarının kiçik olduğunu və robotun orta sürətinin sabit olduğunu fərz etsək: vt=v, robotun vəziyyət dəyişənlərindəki dəyişikliklərin dinamikası birinci yaxınlaşmada vəziyyətin xətti tənlikləri ilə təsvir edilə bilər. :

burada g = h2vr / b.

Divara istədiyiniz məsafəni x*> 0 təyin edək və əlaqə ilə idarəetmə məqsədini (CT) təyin edək.

xt → x* t→∞ kimi.

İndi təbii Hədəfdən kifayət qədər az fərqlənən hər hansı ilkin şərtlərdə hədəf dəyərinə (5) nail olmağı təmin edən (4) sisteminin həllərinin xassəsi kimi asimptotik sabitlik anlayışını substantiv səviyyədə təqdim edək. U t = 0 üçün (4) tənliyinin həllinin istənilən sabit qiymət x t = x* olduğunu görmək asandır. Lakin qoşa inteqrator (ikiqat toplayıcı) modelinə uyğun gələn (4) tənliyi asimptotik sabitlik xassəsinə malik olmadığından, idarəetmə mərkəzi (5) daimi idarəetmə ilə əldə edilmir. Bu, bir sıra ümumiləşdirməklə analitik olaraq asanlıqla nümayiş etdirilir

Yüngül tikintidə əsas hərəkətlərdən biri qara xətti izləməkdir.

Proqramın yaradılmasının ümumi nəzəriyyəsi və xüsusi nümunələri wroboto.ru saytında təsvir edilmişdir

Fərqlər olduğu üçün bunu EV3 mühitində necə həyata keçirdiyimizi təsvir edəcəyəm.

Robotun bilməli olduğu ilk şey ağ-qara sərhədində yerləşən “ideal nöqtənin” mənasıdır.

Şəkildəki qırmızı nöqtənin yeri tam olaraq bu mövqeyə uyğundur.

İdeal hesablama seçimi qara və ağ dəyərləri ölçmək və arifmetik orta götürməkdir.

Bunu əl ilə edə bilərsiniz. Ancaq çatışmazlıqlar dərhal görünür: hətta qısa bir müddət ərzində işıqlandırma dəyişə bilər və hesablanmış dəyər səhv olacaqdır.

Beləliklə, bunu etmək üçün bir robot ala bilərsiniz.

Təcrübələr zamanı bildik ki, həm qara, həm də ağı ölçmək lazım deyil. Yalnız ağ ölçülə bilər. Və ideal nöqtə dəyəri qara xəttin enindən və robotun sürətindən asılı olaraq ağ dəyərin 1,2-yə (1,15) bölünməsi kimi hesablanır.

Hesablanmış dəyər sonradan daxil olmaq üçün dəyişənə yazılmalıdır.

"İdeal nöqtənin" hesablanması

Hərəkətdə iştirak edən növbəti parametr fırlanma əmsalıdır. Nə qədər böyükdürsə, robot işıqlandırmadakı dəyişikliklərə bir o qədər kəskin reaksiya verir. Amma çox böyük dəyər robotun sürüşməsinə səbəb olacaq. Dəyər hər bir robot dizaynı üçün eksperimental olaraq fərdi olaraq seçilir.

Son parametr mühərriklərin əsas gücüdür. Bu, robotun sürətinə təsir göstərir. Hərəkət sürətinin artması robotun işıqlandırmanın dəyişməsinə reaksiya müddətinin artmasına gətirib çıxarır ki, bu da trayektoriyadan çıxmağa səbəb ola bilər. Qiymət də eksperimental olaraq seçilir.

Rahatlıq üçün bu parametrlər dəyişənlərə də yazıla bilər.

Dönmə nisbəti və əsas güc

Qara xətt boyunca hərəkətin məntiqi belədir: ideal nöqtədən kənarlaşma ölçülür. Nə qədər böyükdürsə, robot bir o qədər güclü ona qayıtmağa çalışmalıdır.

Bunu etmək üçün iki ədədi hesablayırıq - B və C mühərriklərinin hər birinin güc dəyərini ayrı-ayrılıqda.

Formula şəklində bu belə görünür:

Isens işıq sensorunun oxunuşlarının dəyəridir.

Nəhayət, EV3-də tətbiq. Onu ayrı bir blok şəklində təşkil etmək ən əlverişlidir.

Alqoritmin həyata keçirilməsi

Bu, robotda tətbiq olunan alqoritmdir orta kateqoriya WRO 2015

Bu problem klassikdir, ideoloji cəhətdən sadədir, onu dəfələrlə həll etmək olar və hər dəfə özünüz üçün yeni bir şey kəşf edəcəksiniz.

Xəttdən sonrakı problemi həll etmək üçün bir çox yanaşma var. Onlardan birinin seçimi robotun xüsusi dizaynından, sensorların sayından, təkərlərə və bir-birinə nisbətən yerləşməsindən asılıdır.

Bizim nümunəmizdə Robot Tərbiyəçisinin əsas təhsil modeli əsasında üç robot nümunəsi təhlil ediləcək.

Başlamaq üçün biz Robot Tərbiyəçi təhsil robotunun əsas modelini yığırıq, bunun üçün MINDSTORMS EV3 proqramında olan təlimatlardan istifadə edə bilərsiniz.

Həmçinin, nümunələr üçün bizə EV3 açıq rəngli sensorlar lazımdır. Bu işıq sensorları, digərləri kimi, bizim vəzifəmiz üçün ən uyğundur, onlarla işləyərkən ətrafdakı işığın intensivliyindən narahat olmaq lazım deyil. Bu sensor üçün proqramlarda sensorun qırmızı arxa işığından əks olunan işığın miqdarının təxmin edildiyi əks olunan işıq rejimindən istifadə edəcəyik. Sensor oxunuşlarının hədləri müvafiq olaraq "əksetmə" və "ümumi əksetmə" üçün 0 - 100 vahiddir.

Nümunə olaraq, düz, açıq fonda təsvir edilmiş qara trayektoriya boyunca hərəkət etmək üçün 3 proqram nümunəsini təhlil edəcəyik:

· Bir sensor, P tənzimləyicisi ilə.

· Bir sensor, PC tənzimləyicisi ilə.

· İki sensor.

Nümunə 1. P tənzimləyicisi olan bir sensor.

Dizayn

İşıq sensoru modeldə rahat şəkildə yerləşən bir şüaya quraşdırılmışdır.


Alqoritm

Alqoritmin işləməsi ona əsaslanır ki, sensorun işıqlandırma şüasının qara xətt ilə üst-üstə düşmə dərəcəsindən asılı olaraq sensorun qaytardığı oxunuşlar gradient olaraq dəyişir. Robot sərhəddə işıq sensorunun mövqeyini saxlayır qara xətt. İşıq sensorundan daxil olan məlumatı çevirməklə idarəetmə sistemi robotun dönmə sürəti üçün bir dəyər yaradır.


Həqiqi bir trayektoriyada sensor bütün əməliyyat diapazonunda (0-100) dəyərlər yaratdığından, robotun səy göstərdiyi dəyər olaraq 50 seçilir, bu halda fırlanma funksiyalarına ötürülən dəyərlər yaradılır diapazon -50 - 50, lakin bu dəyərlər trayektoriyanın dik dönüşü üçün kifayət deyil. Buna görə diapazon -75 - 75-ə qədər bir yarım dəfə genişləndirilməlidir.

Nəticədə proqramda kalkulyator funksiyası sadə mütənasib nəzarətçidir. funksiyası ( (a-50)*1,5 ) işıq sensorunun işləmə diapazonunda qrafikə uyğun olaraq fırlanma dəyərləri yaradır:

Alqoritmin necə işlədiyinə dair nümunə

Nümunə 2. PK tənzimləyicisi olan bir sensor.

Bu nümunə eyni konstruksiyaya əsaslanır.

Yəqin ki, əvvəlki nümunədə robotun həddindən artıq yırğalandığını, bu da onun kifayət qədər sürətlənməsinə imkan vermədiyini görmüsünüz. İndi bu vəziyyəti bir az da yaxşılaşdırmağa çalışacağıq.

Mütənasib nəzarətçimizə biz həmçinin sadə kub nəzarətçi əlavə edirik ki, bu da nəzarətçi funksiyasına bir qədər əyilmə əlavə edəcək. Bu, robotun istədiyiniz trayektoriya sərhəddinə yaxın yırğalanmasını azaldacaq, həmçinin ondan uzaqlaşdıqda daha güclü zərbələr edəcək.

Robototexnika məktəb kompüter elmləri və texnologiya kurslarında daha da inkişaf etdiriləcək maraqlı yeni sahədir. Robot texnikasının bumu daha çox onunla bağlıdır ki, o, bizə suala cavab verməyə imkan verir: “Biz əslində proqramlaşdırmanı niyə öyrənirik?”

Bundan əlavə, robototexnika kursunda siz avtomatik idarəetmə nəzəriyyəsinin elementar anlayışları ilə tanış ola bilərsiniz.

Bu səhifədə müəllif tərəfindən hazırlanmış proqramlaşdırma simulyatorları və Arduino lövhələri təqdim olunur. Nədənsə real avadanlıqdan istifadə etmək mümkün olmadığı hallarda kömək edə bilərlər. Simulyatorlar HTML5 imkanlarından istifadə edir, ona görə də onlar yalnız müasir brauzerlərdə işləyəcəklər (ən yaxşısıdır Google Chrome).

və ya Mozilla Firefox

Xəbərlər
indi də Telegram kanalında 27 noyabr 2015-ci il Simulyatorlara "embrion" treki əlavə edildi (

M.V. Lazarev
, Orexovo-Zuevo).
13 oktyabr 2015-ci il

İndi siz LEGO robot simulyatorlarında öz treklərinizi (robot üçün sahələr) yükləyə bilərsiniz. Bunu necə etmək olar? Bax.

Yeni simulyatorlar əlavə edildi - iki, üç, dörd işıq sensoru olan LEGO robotları. Robot idarəetmə dili (Simulyatorlarda robotları idarə etmək üçün işçi adını alan sadə proqramlaşdırma dilindən istifadə olunur).

SiRoP

Sadə Robot Proqramlaşdırması

İşıq sensoru ilə robot idarəsi

İşıq sensoru robota masanın səthində naviqasiya etməyə, məsələn, ağ və qara sahələr arasındakı sərhəd boyunca (qara xəttin kənarı boyunca) hərəkət etməyə imkan verir. Fotodiod səthi işıqlandırır, fotodetektor əks olunan şüaları "tutur" və onların intensivliyini ölçür.

Bu növün ən populyar işi bir xətt boyunca hərəkət etməkdir. Simulyatordan istifadə edərək müxtəlif idarəetmə qanunlarını öyrənə bilərsiniz - rele, proporsional və hətta PID nəzarəti (proporsional-inteqral-törəmə).

İşıq sensoru olan robot üçün proqramların nümunələri

Əsas ( 1 halda ( sensor > 128 ( motor = 100 motor = 100 gözlə(10) ) geri() dönmə() ) ) geri ( motor = -100 motor = -100 gözləmə(260) ) dönmə ( motor = -50 motor = 50 gözləmə (50) )

İki işıq sensoru ilə robot idarəsi

İki işıq sensoru robota daha yaxşı naviqasiya etməyə və nazik bir xətt boyunca hərəkət etməyə imkan verir. Onlar bir az irəli çəkilir və yanlara yayılır. Tək sensorlu tapşırıqlarda olduğu kimi, bu simulyator müxtəlif idarəetmə qanunlarını öyrənmək üçün istifadə edilə bilər.

Üç işıq sensoru olan robot üçün proqram nümunələri

Dörd işıq sensoru ilə robot nəzarəti

Dörd işıq sensoru robota kəskin dönüşləri daha yaxşı aşkar etməyə imkan verir. Daxili sensorlar incə tənzimləmə üçün istifadə olunur, onlar üçün mütənasib nəzarət istifadə olunur. iki xarici sensor bir qədər irəli aparıldı və tərəflərə yayıldı. Onlar kəskin dönüşlə qarşılaşdıqda istifadə olunur. Xarici cütün sensorlarının oxunuşlarına əsaslanan nəzarət üçün qazanc daxili cütdən daha çox seçilir (bax. L.Yu. Ovsyanitskaya və başqaları, Lego Mindstorms EV3 robotunun xətt boyunca hərəkəti üçün alqoritmlər və proqramlar, M.: “Pero”, 2015).

Dörd işıq sensoru olan robot üçün proqramların nümunələri

1 ( d0 = sensor > 128 d1 = sensor > 128 d2 = sensor > 128 d3 = sensor > 128, əgər d1 & !d2 ( motor = 100 motor = 0 ) əgər! d1 & d2 ( motor = 0 motor = 100 ) əgər d1 == d2 ( motor = 100 motor = 100 ) əgər d0 & !d3 ( motor = 30 motor = 0 ) əgər!d0 & d3 ( motor = 0 motor = 30 ) gözləyin(10) )

K1 = 0,2 k2 = 0,4 isə 1 ( u1 = sensor - sensor u2 = sensor - sensor motor = 50+k1*u1+k2*u2 motor = 50-k1*u1-k2*u2 gözləyin(10) )

Bir robotu məsafə sensoru (sonar) ilə idarə etmək

Məsafə sensoru (sonar) robot hərəkət edərkən ən yaxın maneəyə qədər olan məsafəni təyin etməyə imkan verir. O, ultrasəs siqnalı verir və əks olunan siqnalı qəbul edir. Necə daha çox vaxt buraxılan və qəbul edilən siqnallar arasında məsafə nə qədər böyük olarsa.

Məsafə sensorundan istifadə edərək robotu avtomatik olaraq məlum formalı, lakin ölçüsü məlum olmayan labirintdə naviqasiya etmək üçün proqramlaşdırıla bilər.

Təfərrüatlar Müəllif: Konovalov İqor     Proporsional nəzarətçi təkmilləşdirmədir. Rölenin əsas çatışmazlığı, cari dəyərlərin sensorun normal dəyərindən nə qədər fərqləndiyinə əhəmiyyət verməməsidir. Onun yalnız iki vəziyyəti var - ya normal dəyərdən azdırsa, sensor dəyərlərini müəyyən bir sabit nömrə ilə artırmağa çalışın və ya artırın. Buna görə salınımlar sabit amplituda ilə baş verir, bu da çox səmərəsizdir.
    Cari oxunuşların normaldan nə qədər "uzaq" olduğunu müəyyən etmək və bundan asılı olaraq amplitudu dəyişdirmək daha məntiqlidir. Daha aydın olmaq üçün bir misala baxaq. Nümunə, əvvəlki məqalədə olduğu kimi, eynidir: Lego Mindstorms EV3 robotu işıq rejimində bir rəngli sensordan istifadə edərək qara xətt boyunca hərəkət edir.

Robot ağ və qara arasındakı sərhəd boyunca hərəkət etməyə çalışır və orada sensor işıqlandırmanın təxminən 50%-ni göstərir. Və normal mövqedən nə qədər uzaq olarsa, robot 50%-ə qayıtmaq üçün bir o qədər çox səy göstərir.
    Proqram yazmaq üçün “səhv” və “nəzarət hərəkəti” terminlərindən istifadə edəcəyik. Səhv cari sensor oxunuşu ilə normal olan arasındakı fərqdir. Bizim vəziyyətimizdə, robot indi işıqlandırmanın 20% -ni görürsə, səhv 20-50 = -30% təşkil edir. Səhv işarəsi robotun xətadan xilas olmaq üçün hansı istiqamətə dönməli olduğunu göstərir. İndi biz mühərriklərə robotu hansı tərəfə, hansı sürətlə və necə kəskin döndərmək lazım olduğunu söyləməliyik. Mühərriklərə nəzarət effekti vermək lazımdır ki, bu da onun normal vəziyyətinə nə qədər tez qayıtması deməkdir. Nəzarət hərəkəti (UP) səhvin (səhv) mütənasiblik əmsalı (k) ilə vurulması kimi hesablanır. Bu əmsal səhvin nəzarət fəaliyyətinə təsirini artırmaq və ya azaltmaq üçün istifadə olunur. İdarəetmə girişi robotun orta sürətinin təyin olunduğu sükan idarəsinə göndərilir.
    Mütənasiblik amilini necə tənzimləmək olar? Trayektoriyanı səyahət etmək üçün dəyərləri eksperimental olaraq seçin, məsələn, robotun sürətindən və dizaynından asılı olaraq 0,2 ilə 1,5 arasında ola bilər. Əmsal çox böyükdürsə, o zaman robot çox yırğalanacaq, əgər kiçikdirsə, o, rəvan sürəcək, lakin kifayət qədər idarəetmə girişi olmadığı üçün dönərkən sürüşəcək; Proqramın iki versiyasını yazaq - dəyişənlərlə (onları artıq öyrənənlər üçün) və olmadan.


    Amma bu tənzimləyici də mütənasib və inteqral komponenti təqdim etməklə gücləndirilə bilər. Tezliklə görüşərik!