Სარჩევი:

ლეგი რობოტებთან PID კონტროლის სწავლება: 14 ნაბიჯი
ლეგი რობოტებთან PID კონტროლის სწავლება: 14 ნაბიჯი

ვიდეო: ლეგი რობოტებთან PID კონტროლის სწავლება: 14 ნაბიჯი

ვიდეო: ლეგი რობოტებთან PID კონტროლის სწავლება: 14 ნაბიჯი
ვიდეო: pid line follower robot 2024, ნოემბერი
Anonim
ასწავლის PID კონტროლს ლეგო რობოტებით
ასწავლის PID კონტროლს ლეგო რობოტებით

ბევრი ახალგაზრდა რობოტი ენთუზიასტი დაინტერესებულია უფრო მოწინავე საკონტროლო თემებით, მაგრამ მათ შეუძლიათ შეაფერხონ გამოთვლა, რომელიც ხშირად საჭიროა დახურული მარყუჟის სისტემების გასაანალიზებლად. ინტერნეტში არის მშვენიერი რესურსები, რომლებიც ამარტივებს "პროპორციული ინტეგრალური დიფერენციალური კონტროლერის" (PID კონტროლერი) მშენებლობას და ერთი შესანიშნავი აღწერა აქ არის:

მიუხედავად ამისა, ეს შეიძლება იყოს ძნელი შესასრულებელი და შეიძლება არ იყოს შესაფერისი 20 – მდე სტუდენტის საკლასო ოთახისთვის.

ეს ნაბიჯ ნაბიჯ ინსტრუქცია გვიჩვენებს, თუ როგორ უნდა ვასწავლოთ წარმატებით სტუდენტებით სავსე ოთახი ლეგოს რობოტული სისტემის გამოყენებით, რამდენიმე რობოტი (მათგან 5 -დან 10 -მდე), თანაბარი რაოდენობის კომპიუტერული სამუშაო სადგურები NXT 2.0 -ით და შვიდ ფეხიანი შავი ბილიკით. ელექტრო ფირზე იატაკზე.

ASIDE: მადლობა ჯ. სლუკას, რომელმაც დაწერა ზემოხსენებული ბმული, დოქტორ ბრიუს ლინელს, რომელმაც შექმნა ლეგოს ადრეული ლაბორატორიები ECPI უნივერსიტეტის დონეზე და დოქტორ რეზა ჯაფარი, რომელმაც უზრუნველყო PID კონტროლის სასწავლო მიზნები EET220– ის მიმართ იდეების შედგენისთვის. Capstone კურსები.

ნაბიჯი 1: ლაბორატორიული მომზადება სტუდენტების მოსვლამდე

ლაბორატორიული მომზადება სტუდენტების მოსვლამდე
ლაბორატორიული მომზადება სტუდენტების მოსვლამდე

აცნობეთ სტუდენტებს თქვენი შრომისმოყვარეობის შესახებ;-)

ინსტრუქტორები და ასისტენტები ძალიან დაკავებულნი არიან იმისთვის, რომ მოემზადონ ამ ლაბორატორიის გასაკეთებლად! რობოტი დამუხტული და აწყობილია ამ ლაბორატორიისთვის. თუ საჭიროა შეკრება, ამას შეიძლება დასჭირდეს 90 წუთი დრო ერთი ან მეტი რობოტისთვის. კიდევ უფრო მეტი დროა საჭირო ბატარეების დასატენად ან მათი დამუხტვის/განმუხტვის ციკლით დასამუშავებლად. დეტალური ინსტრუქციისთვის, თუ როგორ უნდა ავაშენოთ რობოტი, რომელსაც ჩვენ გამოვიყენებთ დღეს, იხილეთ NXT 2.0 ან 2.1 საგანმანათლებლო ნაკრები, "დაიცავით ხაზის" რობოტის მშენებლობის გზამკვლევი. ჩვენ გამოვიყენებთ უფრო რთულ პროგრამირებას … შავი ელექტრული ლენტი ღია ფერის ლინოლეუმზე მშვენიერ კვალს ქმნის. ეს არის 3’x 7’ ნახევარწრიული მოსახვევებით.

ნაბიჯი 2: გაეცანით რობოტს

გაეცანით რობოტს
გაეცანით რობოტს

პირველ რიგში, თქვენ გაეცნობით რობოტის მენიუს, ასევე ამ კონკრეტული რობოტის ზოგიერთ ნაწილს. თქვენ ასევე ისწავლით რობოტის მიერ გამოყენებული ინდუსტრიული სტილის სენსორული ტექნოლოგიის შესახებ, მათ შორის სინათლის გამომცემ დიოდებს, სინათლის სენსორებს, სტეპერ ძრავებს და ბრუნვის პოზიციის სენსორებს. გთხოვთ, დარწმუნდეთ, რომ შეავსეთ ყველა მოთხოვნილი ინფორმაცია (ჩვეულებრივ, ხაზგასმული ბლანკები _).

1. გათიშეთ რობოტი დამტენიდან და/ან თქვენი კომპიუტერის USB პორტიდან. გამოიყენეთ ნარინჯისფერი ღილაკი რობოტის ჩასართავად. ნარინჯისფერი, მარცხენა და მარჯვენა ღილაკები და "უკან" ნაცრისფერი ოთხკუთხედის ღილაკი მენიუს ნავიგაციის საშუალებას იძლევა. გადადით მენიუში "პროგრამული ფაილები" და გადაახვიეთ რობოტზე არსებული პროგრამული ფაილები. ჩამოთვალეთ თითოეული პროგრამული ფაილის სახელები, ზუსტად როგორ იწერება, მათ შორის კაპიტალიზაცია და სივრცეები:

_

ნაბიჯი 3: დააკალიბრეთ სინათლის სენსორი

დააკალიბრეთ სინათლის სენსორი
დააკალიბრეთ სინათლის სენსორი

2 შეისწავლეთ სინათლის სენსორი და დაკალიბრების ინფორმაცია. დაუბრუნდით მთავარ მენიუს და აირჩიეთ "ნახვა". აირჩიეთ "ასახული შუქი" ვარიანტი და პორტი (ეს უნდა იყოს "პორტი 3"), რაც იწვევს შუქის ჩართვას და ეკრანზე რიცხვის ჩვენებას. დარწმუნდით, რომ ყველაფერი მუშაობს და ჩაწერეთ კალიბრაციის ინფორმაცია.

ა თეთრი ფურცლის გამოყენებით მაქსიმალური კითხვა: ნომერი: _ აღწერეთ ქაღალდიდან სავარაუდო მანძილი: _

ბ მაქსიმალური კითხვა ღია ფერის ლინოლეუმის იატაკზე: _

გ მინიმალური კითხვა შავი ელექტრული ლენტის ცენტრში მითითებისას: _

ნაბიჯი 4: შეამოწმეთ საავტომობილო კალიბრაცია

გამოცადეთ საავტომობილო კალიბრაცია
გამოცადეთ საავტომობილო კალიბრაცია

3 შეისწავლეთ ბორბლის ძრავები (მარცხნივ და მარჯვნივ), ასევე კალიბრაციის ინფორმაცია. დაუბრუნდით მთავარ მენიუს და შეარჩიეთ "საავტომობილო ბრუნვები" აირჩიეთ პორტი (ეს უნდა იყოს "პორტი B" ან "პორტი C" ორი ძრავისთვის). ნახეთ, შეგიძლიათ შეამოწმოთ თუ არა ამ მაჩვენებლის დაკალიბრება თითოეული საავტომობილო მოძრაობის განსაზღვრული რაოდენობის გადაბრუნებით წაკითხვის ნახვისას. თქვენ ჩაატარებთ ერთსა და იმავე კალიბრაციის ტესტს ორივე ძრავისთვის "View" à "Motor Degrees" დაკალიბრების ეკრანის გამოყენებით.

ძრავა B პორტში

  • რამდენჯერ დაატრიალეთ საჭე _
  • "საავტომობილო ბრუნვების" ჩვენების მნიშვნელობა _
  • ბორბლის გრადუსიანი მანძილი გადატრიალდა _
  • "საავტომობილო გრადუსების" ჩვენების მნიშვნელობა _

ძრავა C პორტში

  • რამდენჯერ დაატრიალეთ საჭე _
  • "საავტომობილო ბრუნვების" ჩვენების მნიშვნელობა _
  • ბორბლის გრადუსიანი მანძილი გადატრიალდა _
  • "საავტომობილო გრადუსების" ჩვენების მნიშვნელობა _

ეთანხმებოდა ჩვენების ღირებულებები თქვენს მოლოდინს? გთხოვთ ამიხსნათ. _

ნაბიჯი 5: გაუშვით გათვალისწინებული ჩართვა-გამორთვის კონტროლერი

გაუშვით გათვალისწინებული ჩართვა-გამორთვის კონტროლერი
გაუშვით გათვალისწინებული ჩართვა-გამორთვის კონტროლერი

"On-Off" (ზოგჯერ უწოდებენ "Bang-Bang") კონტროლერს აქვს მხოლოდ ორი ვარიანტი, ჩართვა და გამორთვა. ეს არის თერმოსტატის კონტროლის მსგავსი თქვენს სახლში. არჩეულ ტემპერატურაზე დაყენებისას თერმოსტატი გაათბობს სახლს თუ ძალიან ცივა და გაგრილებს სახლს თუ ძალიან ცხელია. არჩეულ ტემპერატურას ეწოდება "Set Point" და სხვაობა სახლის ამჟამინდელ ტემპერატურასა და Set-Point- ს შორის ეწოდება "შეცდომა". ასე რომ თქვენ შეგიძლიათ თქვათ, თუ შეცდომა დადებითია, ჩართეთ AC სხვაგვარად ჩართეთ სითბო.

ჩვენს შემთხვევაში, რობოტი მოუხდება მარცხნივ ან მარჯვნივ, ეს დამოკიდებულია იმაზე, აქვს თუ არა სინათლის სენსორის Set-Point პოზიტიური ან უარყოფითი შეცდომა (ძალიან ბევრი თეთრ იატაკზე, ან ძალიან ბევრი შავ ფირზე).

თქვენ შეამჩნევთ, რომ თქვენი რობოტი უკვე შეიძლება იყოს დატვირთული რიგი პროგრამებით (ან შეგიძლიათ გამოიყენოთ თანდართული "01 line.rbt" ფაილი აქ ჩასმული) მასზე შენახული სახელებით, როგორიცაა "1 ხაზი" და "2 ხაზი" და იქაც შეიძლება იყოს დამატებითი ასო პროგრამის ნომრის შემდეგ, როგორიცაა "3b ხაზი". თქვენ უნდა შეასრულოთ პროგრამა მისი ნომრით "1" და შემდეგ მოათავსოთ რობოტი ფირზე, სენორი შავ ხაზზე. შეეცადეთ თავი აარიდოთ სხვა რობოტებს, რომლებიც უკვე იმყოფებიან გზაზე, ისე რომ თქვენ შეძლოთ თქვენი რობოტის დრო სხვა რობოტებთან შეჯახების შეფერხების გარეშე.

4 გაზომეთ შემდეგი დროის ცდები:

ა დროა დაასრულოთ ბილიკის ერთი სწორი მხარე: _

ბ აღწერეთ რობოტის სწორი მოძრაობა: _

გ სიმღერის ერთი მოსახვევის დასრულების დრო: _

დ აღწერეთ მოსახვევი რობოტის მოძრაობა: _

ე დროა ერთხელ მთლიანად გადავიდეთ ტრასაზე: _

ნაბიჯი 6: გახსენით "01 Line" ჩართვის-გამორთვის კონტროლერის პროგრამა

Გააღე
Გააღე
Გააღე
Გააღე
Გააღე
Გააღე

თქვენ გახსნით პროგრამას "LEGO MINDSTORMS NXT 2.0" (არა Edu 2.1 პროგრამული უზრუნველყოფა) და თქვენ ატვირთავთ შესაბამის პროგრამას სახელწოდებით "01 line.rbt" და შეისწავლით და შეცვლით პროგრამულ უზრუნველყოფას, ქვემოთ მოცემული ინსტრუქციის შესაბამისად:

გახსენით "LEGO MINDSTORMS NXT 2.0" პროგრამული უზრუნველყოფა (არა Edu 2.1 პროგრამული უზრუნველყოფა). თქვენი ინსტრუქტორი გეტყვით სად ინახება ფაილები თქვენს კომპიუტერში და ამ ადგილიდან თქვენ გახსნით პროგრამას "1 ხაზი". უბრალოდ აირჩიეთ "ფაილი" შემდეგ "გახსნა" და აირჩიეთ "1 ხაზი" პროგრამა გასახსნელად.

პროგრამის გახსნისთანავე შეგიძლიათ გამოიყენოთ "ხელის" ხატი პროგრამის მთლიანი ეკრანის გამოსახულების გადასატანად და "ისრის" ხატის გამოყენებით დააწკაპუნოთ ცალკეულ ობიექტებზე, რომ ნახოთ როგორ მუშაობს (და ასევე შეიტანოთ ცვლილებები) რა

ნაბიჯი 7: "01 ხაზის" ჩართვა-გამორთვის კონტროლერის პროგრამული უზრუნველყოფის გაგება

გაგება
გაგება

პროგრამა "1 ხაზი" იყენებს კონტროლის "ჩართვა-გამორთვის" მეთოდს. ამ შემთხვევაში, არჩევანი არის "მოუხვიე მარცხნივ" ან "მოუხვიე მარჯვნივ". გრაფიკა შეიცავს პროგრამის ელემენტების აღწერას:

ნაბიჯი 8: "01 ხაზის" ჩართვა-გამორთვის კონტროლერის პროგრამული უზრუნველყოფის რედაქტირება

რედაქტირება
რედაქტირება

შეცვალეთ Set-point და შეადარეთ შედეგები.

თქვენ აღმოაჩინეთ სინათლის მრიცხველის ზოგიერთი რეალური ღირებულება ზემოთ 2 საფეხურზე. თქვენ ჩაწერეთ მნიშვნელობები b და c ნაწილებში, რიცხვები მინიმალური და მაქსიმალური მნიშვნელობებისთვის, რომელსაც რობოტი ნახავდა სიმღერის გაშვებისას.

5 გამოთვალეთ კარგი კომპლექტი (საშუალო და მინიმალური): _

6 შეარჩიეთ ცუდი მითითებული პიტნის მნიშვნელობა (რიცხვი ძალიან ახლოს არის მინთან ან მაქსიმუმთან): _

შეცვალეთ მითითებული წერტილი ერთ-ერთ ამ მნიშვნელობებზე ისრის ხატის გამოყენებით, რომ დააწკაპუნოთ შეცდომის გამოთვლის ველზე და შეცვალოთ რიცხვი, რომელიც გამოკლებაა (იხ. სურათი ქვემოთ). ახლა შეაერთეთ რობოტი კომპიუტერს USB კაბელის გამოყენებით, დარწმუნდით რობოტი ჩართულია და გადმოწერეთ რობოტზე "1 ხაზი" პროგრამის ახალი ვერსია. თქვენ ნახავთ რამდენი ხანი სჭირდება რობოტს ბილიკის გარშემო საათის ისრის მიმართულებით, ერთხელ GOOD მითითებული წერტილით და ერთხელ BAD მითითებული წერტილით.

7 დაასრულეთ საცდელი პერიოდი GOOD და BAD მითითებული წერტილის მნიშვნელობებით

ა დრო, რომ ერთხელ მაინც გაიაროთ ტრასაზე (GOOD Set-Point): _

ბ დრო, რომ ერთხელ მაინც გაიარო ტრასაზე (BAD Set-Point): _

თქვენი დაკვირვებები / დასკვნები? _

ნაბიჯი 9: "02 ხაზის" გააზრება მკვდარი ზონის კონტროლერის პროგრამული უზრუნველყოფის საშუალებით

გაგება
გაგება

თუ თქვენს სახლში AC და სითბო მუდმივად ირთვება და ითიშება, მას შეუძლია გაანადგუროს თქვენი HVAC სისტემა (ან მინიმუმ შეამციროს მისი სიცოცხლე). თერმოსტატების უმეტესობა დამზადებულია ჩაშენებული "მკვდარი ზონის" გამოყენებით. მაგალითად, თუ თქვენი მითითებული წერტილი არის 70 გრადუსი ფარენჰეიტი, თერმოსტატი შეიძლება არ ჩართავდეს AC სანამ არ მიაღწევს 72 გრადუსს და არც აანთებს სანამ ტემპერატურა არ დაიწევს 68 გრადუსამდე. თუ მკვდარი ზონა ძალიან ფართოვდება, სახლი შეიძლება არასასიამოვნო გახდეს.

ჩვენს შემთხვევაში, ჩვენ გამოვიყენებთ 02 ხაზის პროგრამას მკვდარი ზონის დასამატებლად, რომლის დროსაც რობოტი უბრალოდ მართავს პირდაპირ.

ახლა შეამოწმეთ პროგრამული ფაილი "02 ხაზი", როგორც ეს აღწერილია გრაფიკაში და როგორც შეიცავს თანდართულ ფაილს.

ეს პროგრამული ფაილი პროგრამირებს რობოტს დაიცვას ხაზი On-Off კონტროლის გამოყენებით დიფერენციალური უფსკრულით. ეს ასევე ცნობილია როგორც Deadband და ეს ნიშნავს, რომ რობოტი შეცდომის მიხედვით მოუხვევს მარცხნივ ან მარჯვნივ, მაგრამ თუ შეცდომა მცირეა, რობოტი პირდაპირ წავა.

პროგრამა "02 ხაზი" ითვლის ზემოაღნიშნულს ჯერ სინათლის გაზომვიდან გამოყვანილი წერტილის გამოკლებით, შემდეგ კი შედარების გზით, როგორც ზემოთ აღინიშნა. შეამოწმეთ პროგრამა კომპიუტერზე და ჩაწერეთ მნიშვნელობა, რომელსაც ხედავთ.

რა არის "2 ხაზის" პროგრამების მიმდინარე (ორიგინალური) მნიშვნელობა Set-Point? _

რა არის "2 ხაზის" პროგრამების მიმდინარე (ორიგინალური) მნიშვნელობა "დიდი" პოზიტიური შეცდომა? _

რა არის "2 ხაზის" პროგრამების მიმდინარე (ორიგინალური) მნიშვნელობა "დიდი" უარყოფითი შეცდომა? _

Dead-Band შეცდომების რა დიაპაზონი გამოიწვევს რობოტის პირდაპირ წასვლას? ᲓᲐᲜ - ᲛᲓᲔ _

გაუშვით სამი (3) საცდელი პერიოდი განსხვავებული მნიშვნელობებით ზემოთ „დიდი“შეცდომისთვის. მიმდინარე "2 ხაზის" პარამეტრები და ასევე ორი სხვა პარამეტრი თქვენ გამოთვლით. თქვენ უკვე შეარჩიეთ კარგი მითითებული წერტილი თქვენი რობოტისთვის. ახლა თქვენ აირჩევთ ორ სხვადასხვა Dead-Band დიაპაზონს და ჩაწერეთ დრო, რაც რობოტს სჭირდება საათის ისრის მიმართულებით გადაადგილებისთვის:

ორიგინალური პარამეტრები 02 ხაზისთვის _

Dead -Band +4 დან -4 -მდე _

Dead -Band +12 -დან -12 _

ნაბიჯი 10: გაგება "03 ხაზი" პროპორციული კონტროლერის პროგრამული უზრუნველყოფა

გაგება
გაგება

პროპორციული კონტროლით, ჩვენ არ ვაქცევთ ან ვთიშავთ გათბობას, შეიძლება გვექნება რამდენიმე პარამეტრი, თუ როგორ გავააქტიუროთ ღუმელი (ისევე როგორც ცეცხლის ზომა ღუმელის თავზე). რობოტის შემთხვევაში, ჩვენ არ გვაქვს მხოლოდ სამი ძრავის პარამეტრი (მარცხნივ, მარჯვნივ და პირდაპირ). სამაგიეროდ ჩვენ შეგვიძლია გავაკონტროლოთ მარცხენა და მარჯვენა ბორბლების სიჩქარე, რომ მივიღოთ ბრუნვის მრავალფეროვანი სიჩქარე. რაც უფრო დიდია შეცდომა, მით უფრო სწრაფად გვინდა დავუბრუნდეთ ხაზს.

მოდით შევხედოთ პროპორციულ კონტროლს პროგრამით "03 ხაზი"

"03 ხაზის" პროგრამა უფრო რთულია, რადგან ის არა მხოლოდ ადგენს "პროპორციულ" კონტროლის მეთოდს, არამედ შეიცავს ყველა პროგრამულ უზრუნველყოფას პროპორციულ-ინტეგრალური, პროპორციულ-დიფერენციალური და პროპორციულ-ინტეგრალურ-დიფერენციალური (PID) კონტროლის შესასრულებლად. რა პროგრამული უზრუნველყოფის ჩატვირთვისას ის ალბათ ძალიან დიდი იქნება ეკრანზე ერთდროულად ჩასადებად, მაგრამ მას ნამდვილად აქვს სამი ნაწილი, როგორც ეს მოცემულია თანდართულ გრაფიკში.

ა - მათემატიკა შეცდომის გამოსათვლელად და "გაანგარიშება" დროთა განმავლობაში შეცდომის ინტეგრალისა და წარმოებულის საპოვნელად.

B - მათემატიკა, რათა გამოვთვალოთ მარცხენა ძრავის სიჩქარე KP, Ki და Kd PID კონტროლის პარამეტრების საფუძველზე

C - მათემატიკა, რათა შეამოწმოთ ძრავის სიჩქარის შეზღუდვები და გაგზავნოთ სწორი ძრავის სიჩქარე მარცხენა და მარჯვენა ძრავებზე.

სამივე მათგანს აქვს საკუთარი უსასრულო მარყუჟები (ინიციალიზაციის შემდეგ) და შეგიძლიათ დაათვალიეროთ "ხელის" ხატულა, მაგრამ დაუბრუნდეთ "ისრის" ხატულას ყუთის შინაარსის შესამოწმებლად და პარამეტრების შესაცვლელად.

ნაბიჯი 11: 03 ხაზის (პროპორციული კონტროლის) პროგრამის რედაქტირება

03 ხაზის (პროპორციული კონტროლის) პროგრამის რედაქტირება
03 ხაზის (პროპორციული კონტროლის) პროგრამის რედაქტირება

შუა ნაწილში (წინა აღწერილობაში B ნაწილი) თქვენ შეამჩნევთ, რომ "03 ხაზის" პროგრამაში Ki და Kd პარამეტრები ორივე არის 0.

მოდით დავტოვოთ ისინი ასე. ჩვენ შევცვლით მხოლოდ Kp მნიშვნელობას, კონტროლერის პროპორციულ ნაწილს.

Kp წყვეტს რამდენად შეუფერხებლად ცვლის რობოტი სიჩქარეს, როდესაც ის შორდება ხაზს. თუ Kp ძალიან დიდია, მოძრაობა იქნება უკიდურესად მწვავე (მსგავსია On-Off კონტროლერის მსგავსი). თუ Kp ძალიან მცირეა, მაშინ რობოტი შეასრულებს შესწორებებს ძალიან ნელა და შორდება შორს ხაზიდან, განსაკუთრებით მოსახვევებში. ის შეიძლება იქამდეც კი მიდიოდეს, რომ ხაზი საერთოდ დაკარგოს!

13 რა მითითებულ წერტილს იყენებს პროგრამა "03 ხაზი"? (გამოაკლდება A მარყუჟში სინათლის პარამეტრების წაკითხვის შემდეგ) _

14 რა არის Kp- ის მნიშვნელობა მიმდინარე "03 ხაზი" პროგრამაში? _

დროული ცდები პროპორციული კონტროლერისთვის (პროგრამა "3 ხაზი")

თქვენ გამოიყენებთ თქვენი რობოტის მეხსიერებაში შენახული "03 ხაზის" პროგრამის თავდაპირველ პარამეტრებს დროის შესამოწმებლად და ასევე გამოიყენებთ "03 ხაზის" პროგრამის ორ სხვა მოდიფიკაციას სულ სამჯერ საცდელი გაზომვისთვის. ცვლილებები, რომლებიც უნდა განახორციელოთ, მოიცავს

DRIFTY - Kp მნიშვნელობის პოვნა, რაც რობოტს ძალიან ნელა ატრიალებს და შესაძლოა ხაზის მხედველობაც დაკარგოს (მაგრამ იმედია არა). სცადეთ Kp განსხვავებული მნიშვნელობები 0.5 -დან 2.5 -მდე (ან სხვა მნიშვნელობა), სანამ არ მიიღებთ იმას, სადაც რობოტი მოძრაობს, მაგრამ რჩება ხაზზე.

JERKY - Kp მნიშვნელობის პოვნა, რაც რობოტს ხტუნავს წინ და უკან, ძალიან ჰგავს On -Off ტიპის მოძრაობას. სცადეთ Kp მნიშვნელობა სადღაც 1.5 – დან 3.5 – მდე (ან სხვა მნიშვნელობა), სანამ არ მიიღებთ იმას, სადაც რობოტი უბრალოდ იწყებს წინ და უკან მოძრაობის ჩვენებას, მაგრამ არც ისე მკვეთრად. ეს ასევე ცნობილია როგორც Kp- ის "კრიტიკული" მნიშვნელობა.

ბილიკის გარშემო საათის ისრის მიმართულებით შემობრუნება საჭიროა მხოლოდ ორიგინალური "3 ხაზის" მნიშვნელობებით და ღირებულებების ორი ახალი კომპლექტით (DRIFTY და JERKY), რომელსაც აღმოაჩენთ რობოტის მიერ მხოლოდ მცირე სიგრძის გავლისას. ნუ დაგავიწყდებათ, რომ ჩამოტვირთოთ ცვლილებები თქვენს რობოტში ყოველ ჯერზე!

15 ჩაწერეთ პროპორციული კონტროლის მნიშვნელობები და დროის ტესტირება "3 ხაზი" პროგრამისთვის (გახსოვდეთ რობოტში ცვლილებების ჩამოტვირთვა!) Kp- ის ამ სამი მნიშვნელობიდან თითოეული (ორიგინალური 03 ხაზის მნიშვნელობა და ორი მნიშვნელობა, რომელსაც თქვენ განსაზღვრავთ ცდით და შეცდომით) იყოს DRIFTY და JERKY).

ნაბიჯი 12: მოწინავე PID კონტროლერები

მოწინავე PID კონტროლერები
მოწინავე PID კონტროლერები
მოწინავე PID კონტროლერები
მოწინავე PID კონტროლერები

ამ ნაბიჯის დაწყებამდე დარწმუნდით, რომ დაასრულეთ წინა ნაბიჯები, ჩაწერეთ ყველა მოთხოვნილი ინფორმაცია, იმ კონკრეტული რობოტით, რომლის გამოყენებასაც აპირებთ ამ ლაბორატორიისთვის. თითოეული რობოტი ოდნავ განსხვავდება მექანიკურ ასპექტებთან, საავტომობილო ასპექტებთან და განსაკუთრებით სინათლის სენსორის შედეგებთან დაკავშირებით.

რიცხვები, რომლებიც დაგჭირდებათ წინა ექსპერიმენტებიდან

16 მაქსიმალური სინათლის სენსორის კითხვა (ნაბიჯი 2 -დან) _

17 მინიმალური სინათლის სენსორის კითხვა (ნაბიჯი 5 -დან) _

18 კარგი პარამეტრი მითითებული წერტილისთვის (ზემოაღნიშნულის საშუალო) _

19 DRIFTY პარამეტრი Kp (ნაბიჯი 15 -დან) _

20 JERKY (კრიტიკული) პარამეტრი Kp– ისთვის (ნაბიჯი 15 – დან) _

PID კონტროლერის გაგება

თქვენ ალბათ გაეცანით პროპორციული ინტეგრალური დიფერენციალური კონტროლერის შესახებ, როგორც სამრეწველო კონტროლის კურსის ნაწილი და კარგი სწრაფი მიმოხილვა მოცემულია ვიკიპედიაში (https://en.wikipedia.org/wiki/PID_controller).

ამ ექსპერიმენტის შემთხვევაში, გაზომილი მნიშვნელობა არის იატაკიდან ასახული სინათლის რაოდენობა. მითითებული წერტილი არის სინათლის სასურველი რაოდენობა, როდესაც რობოტი უშუალოდ შავი ფირის პირას მდებარეობს. შეცდომა არის განსხვავება მიმდინარე სინათლის კითხვასა და მითითებულ წერტილს შორის.

პროპორციული კონტროლერის საშუალებით, მარცხენა ძრავის სიჩქარე იყო შეცდომის პროპორციული. კერძოდ:

შეცდომა = მსუბუქი კითხვა-Set-Point

ამ გრაფიკაში, მითითებული წერტილი იყო 50.

მოგვიანებით, მარცხენა ძრავის სიჩქარის საპოვნელად, ჩვენ ვამრავლებთ შეცდომას პროპორციული მუდმივობით "Kp" კონკრეტულად:

L საავტომობილო = (Kp * შეცდომა) + 35

სადაც ამ გრაფიკაში, Kp არის 1.5, ხოლო 35 -ის დამატება ხდება პროგრამის სხვა ნაწილში. 35 -ის მნიშვნელობა ემატება რიცხვის გადასაყვანად, რომელიც სადღაც -40 -დან +40 -მდეა, რომ იყოს რიცხვი, რომელიც სადღაც 10 -დან 60 -მდეა (საავტომობილო გონივრული სიჩქარე).

ინტეგრალი არის წარსულის ერთგვარი მეხსიერება. თუ შეცდომა დიდი ხანია ცუდია, რობოტი უნდა აჩქარდეს მითითებული წერტილისკენ. Ki გამოიყენება ინტეგრალზე გამრავლებისთვის (ინტეგრალი არის შეცდომების გაშვებული ჯამი - ამ შემთხვევაში, მცირდება 1.5 -ით თითოეული გამეორებით, ასე რომ რობოტს ექნება წარსულის შეცდომების "ჩამქრალი მეხსიერება").

წარმოებული არის ერთგვარი მომავალი პროგნოზი. ჩვენ ვწინასწარმეტყველებთ მომავალ შეცდომას ბოლო შეცდომის ამჟამინდელ შეცდომასთან შედარებით და ვივარაუდოთ, რომ შეცდომის შეცვლის სიჩქარე გარკვეულწილად წრფივი იქნება. რაც უფრო დიდია მომავალი შეცდომა, მით უფრო სწრაფად უნდა გადავიდეთ დასახულ წერტილზე. Kd გამოიყენება წარმოებულზე გამრავლებისთვის (წარმოებული არის სხვაობა მიმდინარე შეცდომასა და წინა შეცდომას შორის).

L საავტომობილო = (Kp * შეცდომა) + (Ki * ინტეგრალური) + (Kd * წარმოებული) + 35

ნაბიჯი 13: საუკეთესო PID პარამეტრების პოვნა

საუკეთესო PID პარამეტრების პოვნა
საუკეთესო PID პარამეტრების პოვნა
საუკეთესო PID პარამეტრების პოვნა
საუკეთესო PID პარამეტრების პოვნა
საუკეთესო PID პარამეტრების პოვნა
საუკეთესო PID პარამეტრების პოვნა

არსებობს მრავალი გზა, რომელიც შეიძლება გამოყენებულ იქნას PID პარამეტრების საპოვნელად, მაგრამ ჩვენს სიტუაციას აქვს უნიკალური ასპექტები, რაც საშუალებას გვაძლევს გამოვიყენოთ პარამეტრების მოძიების უფრო "ხელით" ექსპერიმენტული გზა. უნიკალური ასპექტები, რაც ჩვენ გვაქვს, არის:

  • ექსპერიმენტატორებს (თქვენ) კარგად ესმით აპარატის მუშაობის წესი
  • არ არსებობს პირადი დაზიანების საფრთხე, თუ კონტროლერი გიჟდება და ასევე რობოტის დაზიანების საფრთხე არ არის კონტროლერის ცუდი პარამეტრების გამო
  • სინათლის სენსორი არის ისეთი დაუდევარი სენსორული მოწყობილობა და არსებობს მხოლოდ ერთი სინათლის სენსორი, ასე რომ ჩვენ შეგვიძლია მხოლოდ ვიმედოვნოთ, რომ მივიღებთ ოდნავ კარგ საბოლოო შედეგს. ამიტომ "საუკეთესო ძალისხმევა" კარგია ჩვენი ექსპერიმენტებისთვის

პირველ რიგში, ჩვენ უკვე გამოვიყენეთ "03 ხაზი" საუკეთესო Kp- ის დასადგენად (GOOD Set-point და JERKY Kp ღირებულებები ნაბიჯი 18 და 20 ზემოთ). იხილეთ პირველი გრაფიკა ინსტრუქციისთვის, თუ როგორ აღმოვაჩინეთ JERKY მნიშვნელობა Kp.

გამოიყენეთ პროგრამული უზრუნველყოფა "04 ხაზი" Ki- ს დასადგენად. ჩვენ პირველად შევცვლით „4 სტრიქონს“, რომ მივიღოთ ის მნიშვნელობები, რაც ჩვენ დავწერეთ ზემოთ 18 და 20 პუნქტებში. შემდეგი ჩვენ ნელ-ნელა გავზრდით Ki სანამ არ მივიღებთ მნიშვნელობას, რომელიც ძალიან სწრაფად მიგვიყვანს მითითებულ წერტილში. იხილეთ მეორე გრაფიკა ინსტრუქციებისთვის, თუ როგორ უნდა შევარჩიოთ მნიშვნელობა Ki.

21 ყველაზე სწრაფი Ki მნიშვნელობა, რომელიც დასახლებულია წერტილში ყველაზე სწრაფად (თუნდაც გარკვეული გადალახვით) _

გამოიყენეთ პროგრამული უზრუნველყოფა "05 ხაზი", რათა დადგინდეს Kd. ჯერ შეცვალეთ „5 ხაზი“მნიშვნელობებით 18, 20 და 21 ნაბიჯებიდან, შემდეგ გაზარდეთ Kd სანამ არ მიიღებთ საბოლოო სამუშაო რობოტს, რომელიც სწრაფად მიაღწევს მითითებულ წერტილს და ძალიან მცირე გადალახვით, ასეთის არსებობის შემთხვევაში. მესამე გრაფიკა გვიჩვენებს ინსტრუქციას, თუ როგორ უნდა შევარჩიოთ Kd.

22 ოპტიმალური მნიშვნელობა Kd _

23 რამდენი ხანი სჭირდება თქვენს რობოტს, რომ შემოხაზოს ბილიკი ახლა ??? _

ნაბიჯი 14: დასკვნა

ლაბორატორიულმა ექსპერიმენტმა ძალიან კარგად ჩაიარა. დაახლოებით 20 სტუდენტთან ერთად, პირველ გრაფიკაში ნაჩვენები 10 (ათი) სამუშაო სადგურის + რობოტის პარამეტრების გამოყენებით, არასოდეს ყოფილა რესურსი. საცდელად ტრასაზე ერთდროულად ტრიალებდა სამი რობოტი.

მე გირჩევთ PID კონტროლის ნაწილი (მინიმუმ, პროგრამები "04 ხაზი" და "05 ხაზი") ცალკე დღის განმავლობაში, კონცეფციების გამო.

აქ არის ვიდეოების თანმიმდევრობა, რომელიც აჩვენებს კონტროლის პროგრესს ("01 ხაზიდან" 05 ხაზამდე ") ჩემს მიერ არჩეული ღირებულებების გამოყენებით - მაგრამ ყველა მოსწავლე გამოვიდა ოდნავ განსხვავებული მნიშვნელობით, რაც მოსალოდნელია!

დაიმახსოვრეთ: ერთ – ერთი მთავარი მიზეზი, რის გამოც ძალიან კარგად მომზადებული რობოტების გუნდი ცუდად თამაშობს საკონკურსო ღონისძიებებში არის ის, რომ ისინი არ ასრულებენ დაკალიბრებას ზუსტად იმ ადგილას, სადაც ღონისძიება გაიმართება. სენსორების განათება და პოზიციის უმნიშვნელო ცვლილებები ჟღერადობის გამო შეიძლება მნიშვნელოვნად იმოქმედოს პარამეტრების მნიშვნელობებზე!

  • 01 ხაზი (ჩართვა -გამორთვა) PID კონტროლი Lego Robots– ით -
  • 02 ხაზი (ჩართული-გამორთული Dead-Zone– ით) PID კონტროლი Lego Robots– ით-https://videos.ecpi.net/Watch/n4A5Lor7
  • 03 ხაზი (პროპორციული) PID კონტროლი Lego Robots– ით -
  • 04 ხაზი (პროპორციული -ინტეგრალური) PID კონტროლი Lego Robots– ით -
  • 05 ხაზი (პროპორციული-ინტეგრალური-წარმოებული) PID კონტროლი ლეგო რობოტებით-https://videos.ecpi.net/Watch/s6LRi5r7

გირჩევთ: