Você está na página 1de 157

Politechnika Rzeszowska

Im. Ignacego ukasiewicza

Wydzia Budowy Maszyn i Lotnictwa

Katedra Awioniki i Sterowania

Mikrokomputerowy sterownik rozmyty do sterowania aparatem latajcym.

PRACA DYPLOMOWA

Wykona: Maksymilian Sobczak Rafa Traczyski

Promotor: dr in. Jzef Grzybowski

Rzeszw 2008

Podzikowania: Panu dr in. Jzefowi Grzybowskiemu za udostpnienie sprztu niezbdnego do realizacji bada, cenne uwagi i przekazan wiedz w czasie realizacji pracy dyplomowej,

kolegom: Makowi, Grzekowi i Baejowi za udostpnienie samolotu bezzaogowego Gacek i pomoc w badaniach w locie.

Spis treci
1. Wstp....7 2. Narzdzia do programowania z wykorzystaniem algorytmu Fuzzy Logic ..9 2.1. Architektura rozmytych ukadw sterowania .......9 2.2. FIDE ........13 2.3. FUZZY TECH ....15 2.3.1. FUZZY TECH 3.0....15 2.3.2. FUZZY TECH 5.31..........17 2.4. Matlab Toolbox Fuzzy 18 2.5. Synteza dyskretnego ukadu rozmytego w programie MATLAB wasny projekt ..19 2.5.1. Pierwsza wersja bloku regulatora.....19 2.5.2. Druga wersja bloku regulatora .....44 3. Projekt wstpny regulatora rozmytego do sterowania powierzchniami sterowymi BAL ..51 3.1. Struktura regulatora rozmytego...51 3.2. Analiza sprztowa projektu regulatora rozmytego..64 4. Przygotowanie bazy do wykonania prb w locie69 4.1. Aparat latajcy PR-2 GACEK.....69 4.2. Programowany rejestrator PRP-J5...70 4.3. Sensory wejciowe...72 4.4. Przetwornik wychylenia powierzchni sterowych77 4.5. Schemat instalacji elektrycznej....78 4.6. Konfiguracja rejestratora.80 4.7. Wyznaczenie wspczynnikw wychylenia powierzchni sterowych .82 5. Wykonanie prb w locie i analiza uzyskanych danych.....83 5.1. Organizacja prby w locie...83 5.2. Przetworzenie danych..84 5.3. Przygotowanie danych do budowy bazy regu87 5.3.1. Wyznaczenie wspczynnikw dla pochylania.87 5.3.2. Wyznaczenie wspczynnikw dla przechylania..92 5.3.3. Wyznaczenie wspczynnikw dla odchylania.....96 6. Rozmyty ukad stabilizowania aparatu bezzaogowego GACEK.....99 5

6.1. Wymagania dotyczce ukadw sterowania obiektami autonomicznymi...99 6.2. Projekt regulatora rozmytego dL_dh_30...100 6.3. Mikroprocesor c8051f020..116 6.4. Configuration Wizard 2 funkcje peryferii mikroprocesora118 6.5. Kocowy algorytm regulatora rozmytego dL_dh_30120 7. Analiza sprztowa projektu regulatora rozmytego dL_dh_30143 8. Wnioski....153 9. Bibliografia..............................................155 10. Dodatki.157

1. Wstp
Mikrokomputerowy sterownik rozmyty do sterowania aparatem latajcym to temat pokrewny tematom podejmowanym w Katedrze Awioniki i Sterowania Politechniki Rzeszowskiej: automatycznego sterowania samolotem, programowania mikroprocesorw, identyfikacji wspczynnikw modelu samolotu, a take troch nowoczeniejszych jak logika rozmyta. Niniejsza praca prezentuje prb zaadoptowania rozmytego ukadu sterowania do samolotu bezzaogowego GACEK. Ze wzgldu na brak narzdzi do implementacji rozmytego ukadu sterowania autorzy przedstawili metodyk zaadoptowania takiego systemu do sterowania samolotem bezzaogowym. Praca prezentuje prb zaadoptowania rozmytego ukadu sterowania do samolotu bezzaogowego GACEK. Ze wzgldu na brak narzdzi samolotem bezzaogowym. Rozdzia drugi opisuje podstawowe informacje na temat architektury rozmytych systemw sterowania np. regulator rozmyty jako sterownik statyczny czy jako ukad do strojenia parametrw regulatora klasycznego. W rozdziale tym zostay rwnie przyblione jedne z gwnych narzdzi do projektowania regulatorw rozmytych jak i autorski projekt syntezy dyskretnego ukadu rozmytego w programie Matlab. Rozdzia trzeci - projekt wstpny regulatora rozmytego do stabilizacji kta przechylenia prezentuje metodyk uzyskiwania algorytmu regulatora w jzyku asemblera ST6, a take wyniki jakociowe bada uzyskanego projektu wstpnego. W rozdziale czwartym znajduj si informacje o badanym obiekcie, elementach skadowych ukadu pomiarowego przeznaczonego do wykonania bada w locie oraz schemat montaowy instalacji elektrycznej z ukadem pomiarowym. Opisano tutaj niezbdne czynnoci wykonane przed przystpieniem do prb w locie. Rozdzia pity to cz pracy powicona zagadnieniom zwizanym z wyznaczeniem charakterystyk dynamicznych badanego aparatu latajcego, dla ktrego docelowo autorzy podjli si wykonania ukadu stabilizacji lotu obiektu. Zasadniczo rozdzia ten mona podzieli na dwa gwne etapy: organizacj i wykonanie prb w locie oraz analiz uzyskanych danych. do implikacji rozmytego ukadu sterowania autorzy przedstawili metodyk zaadoptowania takiego systemu do sterowania

Rozdzia szsty zawiera wyjciow wersj waciwego projektu regulatora rozmytego do stabilizacji kta przechylenia i pochylenia aparatu latajcego. Przedstawiono tutaj metodyk uzyskiwania algorytmu regulatora w jzyku C. W rozdziale sidmym przedstawiono badania wyjciowej wersji waciwego projektu regulatora rozmytego do stabilizacji kta przechylenia i pochylenia aparatu latajcego. Wyniki z uzyskanych bada przedstawiono w formie dogodnej do oceny i weryfikacji parametrw regulatora wynikajcych z toku jego syntezy. W podsumowaniu przedstawione s wnioski i uwagi z dowiadcze wynikajcych z wykonywanego oprogramowania oraz aplikacji na rzeczywistym obiekcie.

2. Narzdzia do programowania z wykorzystaniem algorytmu Fuzzy Logic Z dostpnych na rynku inynierskim narzdzi programowania ukadw rozmytych przedstawione zostaj: FIDE, fuzzyTECH, fuzzy MATLAB Toolbox. W rozdziale 2 zostay przedstawione podstawowe informacje na temat rozmytych ukadw sterowania oraz wymienionych powyej programw. A ponadto omwiony zosta tutaj wasny projekt syntezy regulatora rozmytego w SIMULINKU. 2.1. Architektura rozmytych ukadw sterowania. Przegld aplikacji ukadw sterowania obiektami autonomicznymi mona dokona analizujc regulatory rozmyte wg przedstawionych poniej kryteriw: Regulatory rozmyte statyczne Regulator ten, nie posiada wasnoci dynamicznych i jest na og nieliniowym regulatorem statycznym. Ksztatowanie wasnoci dynamicznych takiego ukadu sterowania mona dokona poprzez wprowadzenie do bazy regu zalenoci o charakterze predykcyjnym.

Rys 2.1 Statyczny regulator rozmyty.

Charakterystyczn cech statycznych regulatorw (rys. 2.1) jest waciwo ksztatowania skomplikowanej charakterystyki statycznej poprzez rne ksztaty funkcji przynalenoci. Jego charakter odzwierciedla powierzchnia sterowania jak na rys. 2.2.

Rys.2.2 Przykad powierzchni sterowania rozmytego regulatora o skomplikowanej charakterystyce statycznej.

Rozmyte regulatory dynamiczne Procesy rzeczywiste s na og procesami nieliniowymi. Wynika z tego, e wartoci parametrw procesu zmieniaj si wraz z punktem pracy. Sterowanie automatyczne wymaga przestrojenia regulatora odpowiednio do punktu pracy w miar upywajcego czasu. Zmiana punktu pracy klasycznych regulatorw liniowych jest czsto stosowana chociaby w fazie dostrojenia najbardziej rozpowszechnionych regulatorw dynamicznych, jakimi s regulatory PID. Majc na uwadze cyfrowe ukady sterowania, regulator taki umoliwia zmian nastaw wspczynnikw czonw: proporcjonalnego, cakujcego i rniczkujcego w szerokim zakresie, co daje uniwersalno zastosowania takiego regulatora do obiektw rnicych si znacznie wasnociami dynamicznymi. Uzupenienie klasycznego regulatora PID blokiem regulatora rozmytego, stwarza moliwo ksztatowania powierzchni sterowania wejcia wyjcia. Przykadem pokazujcym takie rozwizanie jest prezentowany na rys.2.3, regulator rozmyty sterujcy obiektem porednio poprzez zesp regulatorw klasycznych PID. Dziaanie regulatora rozmytego powoduje zmian nastaw regulatorw klasycznych. Jest on regulatorem gwnym ksztatujcym charakterystyki statyczne i dynamiczne ukadu sterowania. Rola regulatora rozmytego w tym przypadku ograniczona jest do dziaania na podstawie regu okrelajcych zalenoci wice stan obiektu z wymaganymi parametrami regulatorw klasycznych. Dziaanie regulatora rozmytego w tej konfiguracji ograniczone jest wasnociami regulatorw klasycznych.

10

Rys.2.3 Rozmyty regulator w konfiguracji nastawnika parametrw regulatorw klasycznych.

W zastosowaniu do procesw nieliniowych dostrajane s parametry regulatorw PID wedug zaoenia, e proces moe by linearyzowany odcinkami lub moe by stabilizowany ze wzgldu na wybrane kryteria. Adaptacyjne sterowanie rozmyte Regulatory rozmyte jako nieliniowe radz sobie z pewnymi nieliniowociami procesu, jednak zagadnienie sterowania z nieliniowociami w wielu zakresach pracy wymaga wypracowania monitora procesu oraz mechanizmu adaptacyjnego. Jako monitor mona wykorzysta: miar jakoci szacujc jako sterowania, estymator parametru, ktry na bieco aktualizuje model procesu. Zadaniem monitora procesu jest wykrywanie zmian w charakterystykach procesu i zmiana parametrw regulatora. W zakresie zmian czynnikw regulatora mog to by wspczynniki skalujce, wspczynniki wasnoci dynamicznych i tumienia niepodanych sygnaw. Odbywa si to na og przez zmian ksztatw zbiorw rozmytych reprezentowanych przez funkcje przynalenoci. Wrd zmiennych zwizanych ze stanem procesu i sucych do jego oceny naley wymieni: przeregulowanie, czas narastania, czas regulacji, wspczynnik tumienia sygnau, czstotliwo oscylacji przebiegu nieustalonego, caka kwadratu bdu, caka wartoci bezwzgldnej bdu,

11

caka wartoci bezwzgldnej bdu waonej w czasie, zapas wzmocnienia i fazy. Mechanizm adaptacyjny musi zmienia parametry regulatora, aby poprawi jego dziaania na danym etapie sterowania procesem. Zarwno na etapie monitora oraz mechanizmu adaptacyjnego mona stosowa ukady klasyczne, rozmyte lub cznie. Regulator rozmyty w ukadzie adaptacyjnym przedstawiony na rys.2.4.

Rys. 2.4 Adaptacyjny regulator rozmyty nastrajajcy regulator bezporedni PID.

Dziaanie regulatora rozmytego okrelone jest poprzez zmienne okrelajce aktualny stan obiektu i odpowiadajce jemu sygnay sterujce. W tym ukadzie regulator rozmyty widzi rezultat dziaania regulatora klasycznego w sensie jakociowym i ilociowym. Ustawienie przez operatora punktu pracy pozwala na osignicie wartoci zadanej w drodze przygotowania nastaw regulatora klasycznego PID poprzez regulator rozmyty z reguami wicymi wielkoci sterujce z aktualnym stanem obiektu. Przedstawione powyej struktury regulatorw dynamicznych wprowadzaj ograniczenia powierzchni sterowania, wynikajce z bezporedniego sterowania regulatorem PID. Dla stanw anormalnych lub awaryjnych korzystniejsze jest zastosowanie struktury przedstawionej na rys. 2.5. W tym przypadku rola regulatora rozmytego sprowadzona jest do funkcji monitora stanu i nadrzdnego ukadu sterujcego. Dziaanie ukadu nadrzdnego moe korygowa dziaania regulatora klasycznego lub cakowicie przejmowa sterowanie na czas okrelony funkcjami przynalenoci i reguami.

12

Rys.2.5 Regulator dynamiczny z rozmytym regulatorem nadrzdnym.

Dziaanie regulatorw nadrzdnych najczciej zwizane jest z anormalnymi stanami procesu sterowania, gdzie udzia wystpujcych silnych nieliniowoci, szybkich zmian sygnaw ogranicza moliwoci dokadnego sterowania. Dlatego podstawow funkcj takich regulatorw jest zapewnienie powrotu do stanu umoliwiajcego sterowanie regulatorem klasycznym. W przedstawionych strukturach niewyczerpane zostay wszystkie moliwoci wynikajce chociaby z kombinacji przedstawionych struktur. Zaprezentowanie wybranych przykadw regulatorw rozmytych pokazujcych sposb podejcia do problemu, rozwizania i uzyskane rezultaty pozwoli przybliy problemy bdce tematem niniejszej pracy. 2.2 FIDE Kolejnym programem przeznaczonym do tworzenia regulatorw rozmytych jest FIDE Fuzzy Inference Development Environment. Program ten, jest bardzo podobny do wyej opisanego fuzzyTECH-a. Jego struktura przypomina rodowisko Windows, co sprawia e jest atwym w obsudze. Na rysunku 2.6 s przedstawione okna gwnych narzdzi jakie posiada program FIDE, ktrymi s: CAD Composer okno struktury regulatora (1) Edytor zmiennych (2) Tabela regu (3) Analyzer pat powierzchniowy (4) Okno kompilacji projektu systemu (5)

13

Rys. 2.7 Narzdzia programu FIDE.

Do gwnych funkcji programu nale: Tworzenie systemu przy uyciu edytora funkcji przynalenoci i edytora tabeli regu Rozbudowany graficzny interfejs uytkownika (GUI) pozwalajcy na budow, Testowanie i analizowanie systemw rozmytych w technologii point-and-click. Modu graficznej konstrukcji i edycji zmiennych lingwistycznych CAD Composer Modu analityczny z wizualizacj w postaci trj-wymiarowej - Analyzer Moliwo automatycznego testowania i symulacji dziaania systemw - Tracer Moliwo integrowania ze rodowiskami MATLAB, Wszelkie interakcje z modelem rozmytym odbywaj si w czasie rzeczywistym Bogata baza narzdzi do optymalizowania systemw. Zdolno do generowania kodu w jzyku C i asemblerze. Przedstawiony program FIDE nie by wykorzystywany przez autorw w procesie tworzenia regulatora rozmytego do sterowania aparatem latajcym. Jest on przykadem innego podejcia do budowy ukadw rozmytych

14

2.3 FuzzyTECH ST6 FuzzyTech jest rodowiskiem zaprojektowanym przez firm INFORM GmbH. Za wyborem tego rodowiska przemawia ponad 20 letnie dowiadczenie w konstruowaniu systemw rozmytych. Zgodnie z informacjami podanymi przez producenta jest to obecnie najwydajniejsze rodowisko dostpne na rynku. 2.3.1 FuzzyTech ST6 3.0 FuzzyTech ST6 3.0 to narzdzie z jzykiem programowania wysokiego poziomu. Dziki interfejsowi wzorowanemu na Windows-ie, uytkowanie jest atwe oraz intuicyjne. Pozwala na tworzenie kompletnych projektw z wykorzystaniem Logiki Rozmytej dla mikrokontrolerw rodziny ST6 SGM THOMSON i mikrokontrolerw MICROCHIP. Program posiada trzy edytory graficzne (rys.2.8) suce do tworzenia regulatora rozmytego.

Rys. 2.8 Edytory graficzne fuzzyTECH.

Przedstawione okna na rysunku 2.8 to: Okno suce do budowy struktury regulatora (1) Okno suce do definiowania zmiennych wejciowych i wyjciowych (2) Okno suce do tworzenie regu (3)

15

Program ten posiada opcj analizy projektu utworzonego regulatora, poprzez Transfer Plot i Time Plot, przedstawionych na rysunku 2.9.

Rys. 2.9 Okna suce do analizy projektw.

Opis: System 8-bitowy: do 4 wej i jedno wyjcie, Zmienne: do 7 poziomw dla wejcia/wyjcia, Reguy: do 125 regu. Optymalizacja on-line: Wizualizacja i modyfikacja w czasie rzeczywistym, Zapisywanie danych. Optymalizacja off-line: Transfer Plot, Debugger: konfiguracja z poziomu PC w czasie rzeczywistym, Przebiegi czasowe: time plot dla wej/wyj, Symulacja: analiza zbudowanego modelu. Generowany kod: Zoptymalizowany kod asemblera ST6. Interfejs uytkownika Graficzny Interfejs Uytkownika (GUI). Waciwoci kodu 7 regu / 2 wejcia / 1 wyjcie 10ms 580 bajtw ROM 30 bajtw RAM. 20 regu / 2 wejcia / 1 wyjcie 15ms 670 bajtw ROM 34 bajtw RAM.

16

2.3.2

FuzzyTECH 5.31 FuzzyTECH 5.31 to nowsza wersja programu fuzzyTECH. Do podstawowych cech tego

produktu mona zaliczy [1]: Rozbudowany graficzny interfejs uytkownika GUI (rys. 2.10) pozwalajcy na budow, testowanie i analizowanie systemw rozmytych w technologii point-and-click. Modu graficznej konstrukcji i edycji zmiennych lingwistycznych Rozbudowany system debugowania i walidacji modeli. Modu analityczny z wizualizacj w postaci dwu- lub trj-wymiarowej. Moliwo automatycznego testowania i symulacji dziaania systemw. Moliwo integrowania ze rodowiskami MATLAB/SIMULINK, MATRIXX, MS EXCEL, MS ACCESS, VISUAL BASIC. Wszelkie interakcje z modelem rozmytym odbywaj si w czasie rzeczywistym Bogata baza narzdzi do optymalizowania systemw. Zdolno do generowania kodu w jzyku C i asemblerze. Budowa systemw w technologii RAID (Rapid Application Development).

Rys. 2.10 GUI rodowiska FuzzyTECH [1].

FuzzyTech mona na pewno zaliczy do najbardziej rozbudowanych i zaawansowanych technicznie rodowisk zwizanych z logik rozmyt. Jest to jednak aplikacja komercyjna i droga, dedykowana firmom lub orodkom badawczym trwale zwizanym z systemami rozmytymi.

17

2.4 MATLAB Fuzzy Logic Toolbox MATLAB jest komercyjnym pakietem firmy Mathworks sucym do wykonywania oblicze numerycznych lub symbolicznych. Fuzzy Logic Toolbox rozszerza rodowisko MATLAB o narzdzia do projektowania systemw opartych na logice rozmytej. Graficzne interfejsy uytkownika (GUI) umoliwiaj przejcie przez kolejne etapy projektowania systemu wnioskowania rozmytego. Modu zawiera funkcje dla wielu typowych metod logiki rozmytej [1]: Wyspecjalizowane graficzne interfejsy uytkownika (GUI), do budowy rozmytych systemw wnioskujcych oraz podgldu i analizy wynikw. Funkcje przynalenoci do tworzenia systemw rozmytego wnioskowania. Obsuga logiki AND, OR i NOT w zdefiniowany przez uytkownika sposb. Umieszczania systemu rozmytego wnioskowania w modelu Simulinka. Generowania kodu C lub samodzielnie wykonywalnego modelu systemu rozmytego wnioskowania.

Rys. 2.11 Rozbudowane GUI w pakiecie Fuzzy Logic Toolbox [1].

Na rys. 2.11 s przedstawione okna wykorzystywane w czasie tworzenia projektw: gwne okno Toolbox Fuzzy (1) do okrelania iloci zmiennych wej/wyj, okno edycji funkcji przynalenoci wej (2) do okrelania iloci i przebiegu funkcji przynalenoci kolejnych zmiennych, okno edycji tabeli regu (3) do okrelania regu regulatora, okno

18

analizy tabeli regu (4) do testowania dobranych regu, pat powierzchniowy (5) graficzna wizualizacja funkcji przej. Podstawow zalet tego rozwizania s olbrzymie moliwoci integracji systemw rozmytych z innymi systemami i budowanie z nich systemw hybrydowych oraz bardzo rozbudowane GUI, uatwiajce prac z programem. Rozbudowany interfejs graficzny uytkownika pomaga w budowie systemw, bez koniecznoci znajomoci szczegw skadni jzyka MATLAB. 2.5 Synteza dyskretnego ukadu rozmytego w programie MATLAB wasny projekt W module Simulink programu MATLAB zosta utworzony przez autora blok regulatora rozmytego z zamysem zastosowania go do symulacji ukadu stabilizacji kta przechylenia (lub pochylenia) samolotu, w celu wprowadzenia i zbadania w nim bloku modyfikatora. Budowa utworzonego bloku regulatora rozmytego oparta jest na podstawowych blokach biblioteki Simulink. Struktura utworzonego regulatora ulegaa zmianie zaprezentowano tutaj dwie podstawowe jego wersje. 2.5.1 Pierwsza wersja bloku regulatora rozmytego. Projekt wasny w Simulinku regulatora rozmytego zakada: cztery gwne bloki regulatora rozmytego: fuzyfikacji, modyfikator, wnioskowania, defuzyfikacji, trzy wejcia i jedno wyjcie, trzy liniowe funkcje przynalenoci dla kadego wejcia, modyfikator liniowych funkcji przynalenoci wej na funkcje paraboliczne, trzy funkcje defuzyfikacji wyjcia, CoM (centrum of maximum) jako metod defuzyfikacji.

Rys. 2.12 Utworzony przez autora blok regulatora rozmytego.

19

Blok utworzonego regulatora rozmytego (rys. 2.12), dalej zwanym regulatorem rozmytym, posiada struktur wielopoziomow. Struktura wielopoziomowa regulatora rozmytego wynika nie tylko z podziau funkcji regulatora rozmytego, ale rwnie uwarunkowana jest zoonoci caego ukadu tworzonego bloku. Blok regulatora rozmytego skada si z trzech zasadniczych blokw: fuzyfikacji, regu i defuzyfikacji, a jako czwarty dodatkowy blok wprowadzono modyfikator (rys. 2.13).

Rys. 2.13 Struktura wewntrzna regulatora rozmytego wasny projekt

Wejcia: we_1, we_2, we_3 s wejciami regulatora rozmytego, ktre wchodz do bloku fuzyfikacji. Z bloku fuzyfikacji wychodzi dziewi wspczynnikw przynalenoci (trzy wejcia, kade z trzema funkcjami przynalenoci to daje dziewi wspczynnikw).

20

Wspczynniki przynalenoci s zamieniane w modyfikatorze wedug jednej z dostpnych funkcji i podawane do bloku regu, gdzie tworz moliwe dwadziecia siedem kombinacji, (taka rwnie liczba wyj bloku regu). W bloku defuzyfikacji, na podstawie wartoci z bloku regu, uzyskiwany jest kocowy wynik i podawany na wyjcie regulatora wy. Blok fuzyfikacji skada si z trzech blokw fuzyfikacji, z ktrych kady odpowiada za rozmywanie jednej zmiennej wejciowej regulatora (rys. 2.14). Do kadego bloku wchodzi po jednej wartoci sygnau wejciowego, a wychodz wspczynniki przynalenoci do trzech funkcji.

Rys. 2.14 Struktura wewntrzna bloku fuzyfikacji.

Kady blok fuzyfikacji wejcia skada si z trzech blokw, z ktrych kady odpowiada za inn funkcj przynalenoci (rys. 2.15). Mamy tutaj kolejno trzy funkcje: ze zboczem opadajcym, ze zboczem narastajcym i opadajcym oraz ze zboczem narastajcym.

21

Rys. 2.9 Struktura wewntrzna jednego z blokw fuzyfikacji wej.

Kady z blokw funkcji przynalenoci (rys. 2.15) skada si z podstawowych blokw biblioteki Simulinku: staych, sumatorw, blokw mnocych, przecznikw warunkowych, wej, wyj.

Rys. 2.16 Struktura bloku funkcji przynalenoci ze zboczem opadajcym

Blok funkcji przynalenoci ze zboczem opadajcym (rys. 2.16) posiada dwa parametry p1 i p2. Okrelaj one warto zmiennej wejciowej dla pocztku i koca zbocza opadajcego funkcji f (p1) = 1, f (p2) = 0. Przeczniki warunkowe x-p1>0 i p2-x>0 s tak ustawione, e znajduj si w grnym pooeniu gdy sygna sterujcy (podawany na wejcie rodkowe) jest wikszy od zera. Zmienna wejciowa, wchodzca przez blok we, moe nalee do jednego z trzech przedziaw: (; p1) przecznik x-p1>0 znajduje si w dolnym pooeniu, przecznik p2-x>0 znajduje si w grnym pooeniu w efekcie na wyjcie wy podawana jest warto 1, <p1; p2) przeczniki x-p1>0 i p2-x>0 znajduj si w grnym pooeniu na wyjcie wy podawany jest iloraz (p2-x)/(p2-p1), <p2; ) - przecznik p2-x>0 znajduje si w pooeniu dolnym na blok wy podawana jest warto 0.

22

Blok funkcji przynalenoci ze zboczem narastajcym i opadajcym (rys. 2.17) posiada cztery parametry p1, p2, p3, p4. Okrelaj one warto zmiennej wejciowej dla pocztku i koca zbocza narastajcego funkcji f (p1) = 0 i f (p2) = 1, oraz pocztku i koca zbocza opadajcego funkcji f (p3) = 1 i f (p4) = 0. Przeczniki warunkowe x-p3>0, p2-x>0, p4x>0, p5-x>0 s tak ustawione, e znajduj si w grnym pooeniu gdy sygna sterujcy (podawany na wejcie rodkowe) jest wikszy od zera.

Rys. 2.17 Struktura bloku funkcji przynalenoci ze zboczem narastajcym i opadajcym

Zmienna wejciowa ukadu funkcji przynalenoci ze zboczem narastajcym i opadajcym, wchodzca przez blok we, moe nalee do jednego z piciu przedziaw: (; p3) przecznik x-p3>0 znajduje si w dolnym pooeniu, przecznik p4-x>0 znajduje si w grnym pooeniu w efekcie na wyjcie wy podawana jest warto 0, <p3; p4) przeczniki x-p1>0 i p2-x>0 znajduj si w grnym pooeniu na wyjcie wy podawany jest iloraz (x-p3)/(p4-p3), <p4; p5) przecznik p5-x>0 znajduje si w pooeniu grnym, przecznik p4-x>0 znajduje si w pooeniu dolnym na blok wy podawana jest warto 1. <p5; p6) przecznik p6-x>0 znajduje si w grnym pooeniu, przeczniki p5-x>0 i p4x>0 znajduj si w dolnym pooeniu na wyjcie wy podawany jest iloraz (p5-x)/(p6-p5), <p6; ) przecznik p6-x>0, p5-x>0 i p5-x>0 znajduj si w dolnym pooeniu na wyjcie wy podawany jest warto 0.

23

Blok funkcji przynalenoci ze zboczem narastajcym (rys. 2.18) posiada dwa parametry p7 i p8. Okrelaj one warto zmiennej wejciowej dla pocztku i koca zbocza narastajcego funkcji f (p7) = 0, f (p8) = 1. Przeczniki warunkowe x-p7>0 i p8-x>0 s tak ustawione, e znajduj si w grnym pooeniu, gdy sygna sterujcy (podawany na wejcie rodkowe) jest wikszy od zera.

Rys. 2.18 Struktura bloku funkcji przynalenoci ze zboczem narastajcym

Zmienna wejciowa ukadu funkcji przynalenoci ze zboczem narastajcym, wchodzca przez blok we, moe nalee do jednego z trzech przedziaw: (; p7) przecznik x-p7>0 znajduje si w dolnym pooeniu, przecznik p8-x>0 znajduje si w grnym pooeniu w efekcie na wyjcie wy podawana jest warto 0, <p7; p8) przeczniki x-p7>0 i p8-x>0 znajduj si w grnym pooeniu na wyjcie wy podawany jest iloraz (x-p7)/(p8-p7), <p8; ) - przecznik p8-x>0 znajduje si w pooeniu dolnym na blok wy podawana jest warto 1. Dla pozostaych dwch blokw fuzyfikacji wej (rys. 2.14) struktura wewntrzna jest analogiczna jak dla bloku fuzyfikacji pierwszego wejcia, tzn. kady z nich skada si z trzech blokw funkcji przynalenoci, bloki funkcji przynalenoci ma tak sam struktur jak te opisane powyej. Kolejnym blokiem regulatora rozmytego (rys. 2.13), po bloku fuzyfikajci, jest modyfikator. Celem zastosowania modyfikatora jest denie do zmian charakteru sterowania rozmytego.

24

Rys. 2.19 Trjktna funkcja przynalenoci.

W prezentowanej syntezie dyskretnego ukadu rozmytego przewidziano dwa typy modyfikacji wejciowych funkcji przynalenoci: x 2 i 2x- x2. Na rys. 2.19 przedstawiono trjktn funkcj przynalenoci. Zadaniem modyfikatora typu x2 jest zamieni trjktn funkcj przynalenoci na funkcj wkls, jak na rys. 2.14.

Rys. 2.20 Zmodyfikowana trjktna funkcja przynalenoci modyfikatorem typu x2.

Zadaniem modyfikatora typu 2x-x2 jest zamieni trjktn funkcj przynalenoci na funkcj wypuk, jak na rys. 2.21.

Rys. 2.21 Zmodyfikowana trjktna funkcja przynalenoci modyfikatorem typu 2x-x2.

25

Bloki modyfikatora (rys. 2.22a, 2.22b, 2.22c) skadaj si z podstawowych blokw biblioteki Simulinku: staych, sumatorw, blokw mnocych, przecznikw warunkowych, wej, wyj. Ukad przedstawiony na rys. 2.22a pierwsza cz modyfikatora odnosi si do zmiany wspczynnikw przynalenoci funkcji pierwszego wejcia regulatora rozmytego. Za pomoc ukadw mnocych i sumatorw, w modyfikatorze ze zmiennej wejciowej we_11 (ktrej warto przyjmujemy jako x) otrzymywane s dwie inne wartoci: x2 i 2x-x2. rodkowe przeczniki warunkowe Switch, Switch2 i Switch4 s tak ustawione, e gdy na wejcie sterujce (rodkowe) podawany jest sygna wikszy od 1.5, wtedy przeczaj one w grne pooenie. Kocowe przeczniki warunkowe Switch1, Switch3, Switch5 s tak ustawione, e gdy na wejcie sterujce (rodkowe) podawany jest sygna wikszy od 2.5, wtedy przeczaj one w grne pooenie.

Rys. 2.22a Pierwsza cz bloku modyfikatora.

Blok parametru m1 (rys. 2.22a) ma za zadanie przeczanie sygnaw: m1 = 1 na blok wyjcia wy podawana jest warto z bloku wejcia we, m1 = 2 na blok wyjcia wy podawana jest warto z bloku wejcia we zmodyfikowana wedug funkcji x2,

26

m1 = 3 na blok wyjcia wy podawana jest warto z bloku wejcia we zmodyfikowana wedug funkcji 2x-x2. Dalej zostay przedstawione ukady czci modyfikatora wspczynnikw

przynalenoci funkcji dla wejcia drugiego (rys. 2.22b) i wejcia trzeciego regulatora rozmytego (rys. 2.22c). Ich dziaanie jest analogiczne jak ukadu pierwszej czci modyfikatora wystpujce rnice to: wspczynnik bloku parametru przeczajcego, nazwy zmiennych wejciowych i wyjciowych, nazw blokw mnocych, sumatorw i przecznikw warunkowych.

Rys. 2.22b Druga cz bloku modyfikatora.

27

Rys. 2.22c Trzecia cz bloku modyfikatora.

Kolejnym blokiem regulatora rozmytego (rys. 2.23), po bloku modyfikatora, jest blok regu. Skadaj si on z podstawowych blokw biblioteki Simulinku: staych, sumatorw, przecznikw warunkowych, wej, wyj (rys. 2.24a, 2.24b, 2.24c). Algorytm poszczeglnych regu polega na znalezieniu najmniejszej wartoci spord wybranych wej (wspczynnikw przynalenoci do funkcji wejciowych, tworzcych dan regu).

Rys. 2.23 Przykad dyskretnego bloku tabeli regu.

Do omwienia bloku regu posuono si dyskretnym czonem bloku (rys. 2.23), ktry jest odpowiedzialny za pierwsz regu. Przeczniki warunkowe Switch i Switch1 czonw regu s ustawione tak, e gdy na wejcie sterujce (rodkowe) podawany jest sygna dodatni lub rwny zero, wtedy przecznik znajduje si w dolnej pozycji, a gdy na wejcie sterujce podawany jest sygna ujemny, wtedy przecznik znajduje si w pozycji grnej. A wic, jeli warto na grnym 28

wejciu jest wikszy od wartoci podanej na wejcie dolne, wtedy ujemna rnica podawana na wejcie sterujce powoduje, e przecznik znajduje si w dolnej pozycji, a tym samym na wyjciu pojawia si warto mniejsza z dwch wartoci podawanych na wejcia przecznika warunkowego. W bloku wnioskowania znajduje si dwadziecia siedem analogicznych czonw, z ktrych kady odpowiada za jedn regu. Ilo regu wynika z moliwych kombinacji funkcji przynalenoci jedna funkcja przynalenoci z wejcia pierwszego, jedna funkcja przynalenoci z wejcia drugiego i jedna funkcja przynalenoci z wejcia trzeciego (kade wejcie ma po trzy funkcje przynalenoci 3*3*3=27). Nie wszystkie reguy musz by uywane. Kocowe przeczniki warunkowe wl/wyl s tak ustawione, e dodatniemu sygnaowi sterujcemu odpowiada grne pooenie przecznika. Przypisanie wartoci 0 dla parametru r powoduje pojawienie si na wyjciu wartoci 0 jednoznaczne z wyczeniem reguy. Przypisanie wartoci 1 dla parametru r powoduje, e na wyjcie podawana jest wyszukana najmniejsza warto wspczynnika przynalenoci.

29

Rys. 2.24a. 30

Rys. 2.24b. 31

Rys. 2.24c. 32

Kolejnym blokiem regulatora rozmytego (rys. 2.13), po bloku wnioskowania, jest blok defuzyfikacji. Blok defuzyfikacji (rys. 2.27) skada si z podstawowych blokw biblioteki Simulinku: wej, wyj, staych, sumatorw, blokw mnocych, przecznikw warunkowych.

Rys. 2.25 Przykad dyskretnego czonu bloku defuzyfikacji.

Blok defuzyfikacji skada si z powtarzajcych si czci jak na rys. 2.25. Zadaniem tego czonu jest wyszukanie wartoci wikszej spord wartoci podawanych na wejcia. Czon ten skada si z przecznika warunkowego 1, ktrego sygna sterujcy jest sygnaem rnicowym wejcia grnego i dolnego. Przecznik warunkowy ustawiony jest tak, e gdy sygna na wejciu sterujcym jest dodatni (warto na wejciu grnym wiksza od wartoci na wejciu dolnym), wtedy przecznik znajduje si w pozycji grnej podajc na wyjcie warto wiksz.

Rys. 2.26 Cz bloku defuzyfikacji odpowiedzialna za algorytm metody defuzyfikacji COM.

33

Rys.2.27 34

Zadaniem czci bloku defuzyfikacji (rys. 2.27) odpowiedzialnej za algorytm metody defuzyfikacji COM (rys. 2.26) jest wyznaczenie kocowej wartoci wyjciowej regulatora. Algorytm metody CoM opisany jest rwnaniem: (Lotki w prawo) * W_L_P + (Lotki w lewo) * W_L_L -------------------------------------------------------------------[2.1] (Lotki w prawo) + (Lotki zero) + (Lotki w lewo) gdzie: Lotki w prawo warto uzyskana z bloku 23, ktra odpowiada najwikszej wartoci z tabeli regu przypisanej funkcji przynalenoci wyjcia Lotki w prawo, Lotki zero warto uzyskana z bloku 13, ktra odpowiada najwikszej wartoci z tabeli regu przypisanej funkcji przynalenoci wyjcia Lotki zero, Lotki w lewo warto uzyskana z bloku 11, ktra odpowiada najwikszej wartoci z tabeli regu przypisanej funkcji przynalenoci wyjcia Lotki w lewo. W_L_P warto zmiennej wyjciowej odpowiadajca maksimum funkcji Lotki w prawo, W_L_L warto zmiennej wyjciowej odpowiadajca maksimum funkcji Lotki w lewo. Struktura ukadu regulatora rozmytego zawiera szereg parametrw, ktre okrelaj: przebieg funkcji przynalenoci, wybr funkcji modyfikacji wspczynnikw przynalenoci, stan wczona/wyczona regua, wartoci zmiennych wyjciowych odpowiadajcych maksimom wyjciowych funkcji przynalenoci. Do okrelenia tych parametrw suy m-plik konfiguracyjny: Parametry_regulatora_rozmytego.m, ktrego zawarto znajduje si poniej.
% Maksymilian Sobczak % 02.05.2008 Rzeszw %________________________________________________________________ % * * * * * * * * * * * * * * * * % 'Parametry_regulatora_rozmytego.m' % * * * * * * * * * * * * * * * * % Plik zawierajcy definicje parametrw 'REGULATORA ROZMYTEGO' %________________________________________________________________ %* * * * * * FUZYFIKACJA * * * * * * * * %________________________________________________________________ % Parametry pierwszego wejscia (yroskop) % _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ % * * Parametry pierwszej funkcji przynalenoci * * * % ____p1_ % \ % \_p2____

35

% p1 - pocztek zbocza opadajacego % p2 - koniec zbocza opadajacego p1=-0.2 p2=0 % * * Parametry drugiej funkcji przynalenoci * * * % _p4_p5_ % / \ % ____p3_/ \_p6____ % p3 - pocztek zbocza narastajacego % p4 - koniec zbocza narastajacego % p5 - poczatek zbocza opadajacego % p6 - koniec zbocza opadajacego p3=-0.2 p4=0 p5=0 p6=0.2 % * * Parametry trzeciej funkcji przynalenoci * * * % _p8____ % / % ____p7_/ % p7 - pocztek zbocza narastajacego % p8 - koniec zbocza narastajacego p7=0 p8=0.2 %________________________________________________________________ % Parametry drugiego wejscia (klinometr) % _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ % * * Parametry pierwszej funkcji przynalenoci * * * % ____p9_ % \ % \_p10____ % p9 - pocztek zbocza opadajacego % p10 - koniec zbocza opadajacego p9=-0.1 p10=0 % * * Parametry pierwszej drugiej przynalenoci * * * % _p12_p13_ % / \ % ____p11_/ \_p14____ % p11 - pocztek zbocza narastajacego % p12 - koniec zbocza narastajacego % p13 - poczatek zbocza opadajacego % p14 - koniec zbocza opadajacego p11=-0.1 p12=0 p13=0 p14=0.1 % * * Parametry ptrzeciej funkcji przynalenoci * * * % _p16____ % / % ____p15_/ % p15 - pocztek zbocza narastajacego % p16 - koniec zbocza narastajacego p15=0 p16=0.1 %________________________________________________________________ % Parametry trzeciego wejscia (korekcja) % _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ % * * Parametry pierwszej funkcji przynalenoci * * * % ____p17_ % \

36

% \_p18____ % p17 - pocztek zbocza opadajacego % p18 - koniec zbocza opadajacego p17=-1 p18=0 % * * Parametry drugiej funkcji przynalenoci * * * % _p20_p21_ % / \ % ____p19_/ \_p22____ % p19 - pocztek zbocza narastajacego % p20 - koniec zbocza narastajacego % p21 - poczatek zbocza opadajacego % p22 - koniec zbocza opadajacego p19=-1 p20=0 p21=0 p22=1 % * * Parametry trzeciej funkcji przynalenoci * * * % _p24____ % / % ____p23_/ % p23 - pocztek zbocza narastajacego % p24 - koniec zbocza narastajacego p23=0 p24=1 % Koniec fuzyfikacji %________________________________________________________________ % * * * * * MODYFOKATOR * * * * * * * * %________________________________________________________________ % Zadaniem modyfikatora jest zmiana charakteru funkcji przynalenoci. % Liniowe funkcje przynalenoci (dla m=1) mog zosta zastpione przez funkcje: % * x^2 - paraboliczna wklsa (dla m=2), % * % * * % * * % * * % * * % * 2x-x^2 - paraboliczna wypuka (dla m=3). % ** % * * % * * % * * % * * m1=1 % parametr ustawiajcy modyfikacj wejcia pierwaszego, m2=1 % parametr ustawiajcy modyfikacj wejcia drugiego, m3=1 % parametr ustawiajcy modyfikacj wejcia pierwaszego. % Koniec modyfikatora %________________________________________________________________ % * * * * * TABELA REGU * * * * * * * %________________________________________________________________ % Wczenie reguy nastpuje poprzez przypisanie '1' dla parametru % 'rnr', gdzie litera 'r' oznacza sowo 'regua', a 'nr' - numer % reguy % WE_1 - zyroskop % WE_2 - klinometr % WE_3 - korekcja r1=1 r2=1 % WE_1 % \_ % \_ WE_2 \_ \_ WE_3 \_ _/\_ P P

37

r3=1 % \_ \_ _/ P r4=1 % \_ _/\_ \_ Z r5=1 % \_ _/\_ _/\_ P r6=1 % \_ _/\_ _/ P r7=1 % \_ _/ \_ L r8=1 % \_ _/ _/\_ L r9=1 % \_ _/ _/ P r10=1 % _/\_ \_ \_ Z r11=1 % _/\_ \_ _/\_ P r12=1 % _/\_ \_ _/ P r13=1 % _/\_ _/\_ \_ L r14=1 % _/\_ _/\_ _/\_ Z r15=1 % _/\_ _/\_ _/ P r16=1 % _/\_ _/ \_ L r17=1 % _/\_ _/ _/\_ L r18=1 % _/\_ _/ _/ Z r19=1 % _/ \_ \_ L r20=1 % _/ \_ _/\_ Z r21=1 % _/ \_ _/ P r22=1 % _/ _/\_ \_ L r23=1 % _/ _/\_ _/\_ L r24=1 % _/ _/\_ _/ Z r25=1 % _/ _/ \_ L r26=1 % _/ _/ _/\_ L r27=1 % _/ _/ _/ L % Koniec tabeli regu %________________________________________________________________ % * * * * * DEFUZYFIKACJA * * * * * * * %________________________________________________________________ % A - maksymalne lewe wychylenie lotek [rad] W_L_L=0.7 % B - maksymalne prawe wychulenie lotek [rad] W_L_P=-0.7 % Koniec tabeli defuzyfikacji %________________________________________________________________

Zbudowany blok regulatora rozmytego zastosowano w ukadzie do stabilizacji kta pochylenia samolotu Koliber (rys. 2.28). Symulacja miaa na celu ocen poprawnoci dziaania utworzonego regulatora.

Rys. 2.28 Ukad symulacji ruchu podunego samolotu KOLIBER z regulatorem rozmytym.

38

Ustawienia regulatora rozmytego jak w pliku Parametry_regulatora_rozmytego.m (powyej). Do bloku KOLIBER poduny (na Rys. 2.28) zosta wczytany poniszy model:
%Model zlinearyzowany %wektor stanu symetryczny [u,alfa,q,teta] %Faza startu, prdko wiksza od prdkoci oderwania V = 100 km/h (Vlif=95 km/h) %Wywaenie 0.000, masa 810 Lot na wysokoci 250 m %dla kta toru 2.3 i prdkoci 27.8 %Wychylone klapy 50.0 % %alfa0= 15.7, de0= -12.3, dT0= 99.1 %, Cz/Cx= 6.1 %Czstoci wasne (sym) : 0.413203 ; 0.413203 ; 1.945111 ; 1.945111 ; %Tumienie 0.003296 ; 0.003296 ; 0.605874 ; 0.605874 ; Ap = [ -0.1149 -0.2350 0 -0.0254 -1.2766 1.0000 0.0027 -2.4726 -0.9682 0 0 1.0000 0 -0.1058 -3.6408 0 0.0200; 0.0001; 0; 0]; -9.7987; -0.0142; 0; 0];

Bp = [

Cp=eye(4); Dp=[0 0; 0 0; 0 0; 0 0]; U0=27.8; dT = 30 Step = 0.5

W wyniku przeprowadzonej symulacji ukadu z regulatorem rozmytym otrzymano przebiegi czasowe: prdkoci ktowej q i kta pochylenia samolotu teta (rys. 2.29), oraz przebieg czasowy sygnau sterujcego z wyjcia regulatora rozmytego.

Rys. 2.29 Przebiegi czasowe q i samolotu KOLIBER poduny z regulatorem rozmytym.

39

Rys. 2.30 Przebieg czasowy sygnau sterujcego z regulatora rozmytego.

Przebiegi czasowe ukadu do stabilizacji kta pochylenia samolotu Koliber z regulatorem rozmytym (rys. 2.29 i rys. 2.30) pokazuj, e ukad zachowuje si poprawnie, tzn. stabilizuje pewn warto kta pochylenia , ma czas regulacji okoo 5[s], a wystpujce przeregulowania s dopuszczalne i sygna sterujcy jest do osignicia dla rzeczywistych ukadw wykonawczych. Dla porwnania uzyskanych wynikw ukadu z regulatorem rozmytym (rys. 2.29) utworzono ukad stabilizacji kta pochylenia samolotu Koliber z jednostkowym ujemnym sprzeniem zwrotnym (rys. 2.31). Ukad ten zawiera taki sam model samolotu KOLIBER poduny, takie same wymuszenia Step, dT i dh.

Rys. 2.31 Ukad samolotu KOLIBER z jednostkowym ujemnym sprzeniem zwrotnym.

W wyniku symulacji ukadu z rys. 2.31 otrzymano przebiegi czasowe na rys. 2.32 i 2.33. Porwnanie wynikw symulacji ukadu do stabilizacji kta pochylenia samolotu Koliber z regulatorem rozmytym (rys. 2.34) z wynikami symulacji ukadu do stabilizacji

40

z jednostkowym ujemnym sprzeniem zwrotnym kta pochylenia samolotu Koliber (rys. 2.25) pokazuje, e regulator rozmyty stabilizuje kilkakrotnie mniejsz warto kta pochylenia oraz e wprowadza charakter oscylacyjny do ukadu.

Rys.2.32 Przebiegi czasowe q i samolotu KOLIBER poduny ze sprzeniem zwrotnym.

Rys. 2.33 Przebieg czasowy sygnau wychylenia steru wysokoci.

Dla lepszego zobrazowania wpywu modyfikatora na sterowanie obiektem, zosta utworzony ukad (rys. 2.34) zawierajcy trzy takie same bloki z modelem samolotu KOLIBER poduny, z ktrych kady sterowany jest regulatorem rozmytym z innym modyfikatorem wejciowych funkcji przynalenoci.

41

Rys. 2.34 Ukad do badania wpywu modyfikatora na sterowanie obiektem KOLIBER poduny

W ukadzie przedstawionym na rys. 2.34 Regulator rozmyty1 jest bez aktywnego modyfikatora, Regulator rozmyty2 ma modyfikator typu x2 (jak na rys. 2.20), a Regulator rozmyty3 ma modyfikator typu 2x-x2 (jak na rys. 2.21). Sygnay wyjciowe prdkoci pochylania q, z wszystkich trzech blokw modelu KOLIBER poduny, s podane na wsplny wykres q analogicznie dla sygnau wyjciowego kta pochylenia i wejciowego sygnau sterujcego dh. Uzyskane wyniki przedstawione s na wykresach rys. 2.35, 2.36 i 2.37.

42

Rys. 2.35 Przebiegi czasowe kta pochylania ukadu z rys. 2.33.

Z wykresw na rys. 2.35 mona wnioskowa, e modyfikator typu x2 przyspiesza stabilizacj kta pochylenia samolotu , tzn. powoduje skrcenie czasu regulacji, a modyfikator typu 2x-x2 powoduje wyduenie czasu regulacji

Rys. 2.36 Przebiegi czasowe prdkoci pochylania q ukadu z rys. 2.34.

Z wykresw na rys. 2.36 mona wnioskowa, e modyfikator typu x2 nadaje brutalny charakter sterowania regulatorowi rozmytemu, co wida poprzez wiksz czstotliwo i wiksze wartoci przebiegu prdkoci pochylania q. Modyfikator typu 2x-x2 nadaje agodny charakter sterowania regulatorowi rozmytemu, co wyraa si poprzez mniejsz czstotliwo i mniejsze wartoci przebiegu prdkoci pochylania q.

43

Rys. 2.37 Przebiegi czasowe sygnau sterujcego dh ukadu z rys. 2.34.

Na rys. 2.37 zostay przedstawione przebiegi czasowe sygnaw sterujcych regulatorw z rnym typem modyfikatora, na ktrych wida, e regulatora z modyfikatorem x2 (2x-x2) generuje wiksze (mniejsze) wartoci i wiksz (mniejsz) czstotliwo sygna sterujcego ni regulator bez modyfikatora. 2.5.2 Druga wersja bloku regulatora rozmytego. Prace symulacyjne z wasnym blokiem regulatora rozmytego oraz zapoznanie si z coraz to nowszymi komercyjnymi narzdzia do tworzenia regulatorw rozmytych spowodoway wprowadzenie zmian do wasnego bloku regulatora rozmytego: bardziej rozbudowana struktura wielopoziomowa, ograniczenie iloci pocze pomidzy blokami, zastpienie pojedynczych pocze poczeniami zbiorczymi, wprowadzenie dodatkowych wspczynnikw okrelajcych wag regu. Struktura wewntrzna regulatora rozmytego (rys. 2.38) nadal skada si z czterech blokw, maj one jednak pojedyncze poczenia.

Rys. 2.38 Nowa struktura wewntrzna regulatora rozmytego wasnego projektu.

44

Blok fuzyfikacji (rys. 2.39) rni si tym od poprzedniej wersji, e posiada jedno wyjcie zamiast dziewiciu, ktre uzyskano poprzez demultiplikacj sygnaw.

Rys. 2.39 Nowa struktura wewntrzna bloku fuzyfikacji regulatora rozmytego.

Blok fuzyfikacji poszczeglnych wej (rys. 2.40) ma struktur podobn jak wczeniej zamiast trzech wej i wyj posiada po jednym wejciu z multiplekserem i wyjcie z demultiplekserem.

Rys. 2.40 Struktura wewntrzna blokw fuzyfikacji poszczeglnych wej.

Blok modyfikatora (rys. 2.41) ma struktur podobn jak wczeniej zamiast trzech wej i wyj posiada po jednym wejciu z multiplekserem i wyjcie z demultiplekserem.

Rys. 2.41 Nowa struktura wewntrzna bloku modyfikatora funkcji przynalenoci

45

Bloki modyfikacji funkcji przynalenoci poszczeglnych wej (rys. 2.42) podzielono na trzy bloki, z ktrych kady odpowiedzialny jest za modyfikacj jednej funkcji przynalenoci danego wejcia. Blok ten posiada jedno wejcie z multiplekserem i jedno wyjcie z demultiplekserem.

Rys. 2.42 Struktura wewntrzna bloku modyfikatora funkcji przynalenoci wejcia pierwszego

Kady z blokw modyfikacji okrelonej funkcji przynalenoci zawiera jeden ukad modyfikacji wspczynnika przynalenoci (rys. 2.43).

Rys. 2.43 Struktura wewntrzna bloku modyfikatora funkcji przynalenoci ze zboczem opadajcym wejcia pierwszego

Blok regu zosta podzielony na trzy bloki, z ktrych kady zawiera po dziewi regu. Zostaa tutaj przeniesiona cz bloku z wczeniejszego bloku defuzyfikacji, ktra odpowiedzialna bya za przypisanie regu do jednej z wyjciowych funkcji przynalenoci i wyszukiwanie najmocniejszej reguy spord regu przypisanych do danej wyjciowej funkcji przynalenoci. Nowy blok regu, pokazany na rys. 2.38, zawiera jedno wejcie i jedno wyjcie z demultiplekserem sygnaw.

46

Rys. 2.44 Nowa struktura wewntrzna bloku regu

Bloki Reguly 1-9, Reguly 10-18, Reguly 20-27, na rys. 2.44, skadaj si z dziewiciu blokw, z ktrych kady odpowiedzialny jest za jedn regu (co wida na rys. 2.45).

Rys. 2.45 Struktura wewntrzna bloku reguy 1-9

Wewntrzna struktura blokw wyjciowych funkcji przynalenoci Lotki w prawo, Lotki zero i Lotki w lewo (rys. 2.44), zawiera cz z wczeniejszego bloku defuzyfikacji oraz dodatkowo multiplekser sygnaw (co przedstawiono na rys. 2.46) za pomoc ktrego w atwy sposb mona przypisa wybrane reguy do danej wyjciowej funkcji przynalenoci.

47

Rys. 2.46 Struktura wewntrzna bloku wyjciowej funkcji przynalenoci Lotki w prawo

Multiplekser sygnaw w bloku wyjciowej funkcji przynalenoci (rys. 2.46) posiada dwadziecia siedem wyj, gdy kade wyjcie prezentuje jedna z dwudziestu siedmiu regu. Kady blok poszczeglnych regu (rys. 2.45) skada si z ukadu wyznaczajcego najmniejsz warto spord trzech tworzcych dan regu (rys. 2.47). Dodatkowo znajduje si tutaj multiplekser sygnaw, za pomoc ktrego w atwy sposb mona utworzy kombinacj wej tworzc dan regu. 48

Rys. 2.47 Struktura wewntrzna bloku regua 1

Nowy blok defuzyfikacji (rys. 2.48) zawiera ukad majcy na celu wyznaczenie kocowej wartoci regulatora rozmytego wedug metody defuzyfikacji podobnej do Centrum Of Maximum. W porwnaniu z wczeniejsz wersj regulatora rozmytego zawarto tego bloku zostaa pomniejszona o cz przeniesion do bloku regu, a ktra odpowiedzialna bya za przypisanie regu do danej wyjciowej funkcji przynalenoci.

Rys. 2.48 Nowa struktura wewntrzna bloku defuzyfikacji

49

Uwagi do zbudowanego dyskretnego modelu regulatora rozmytego. Zalety dyskretnego modelu regulatora rozmytego: dziaa poprawnie (co wiadczy o znajomoci struktury regulatora rozmytego przez autora), zawiera modyfikator funkcji przynalenoci, ktrego efekt dziaania jest sensowny, ma moliwo rozbudowy, co wida przez porwnanie wersji pierwszej i drugiej, w przeprowadzonej symulacji wykazuje si dobrymi parametrami (krtki czas regulacji). Wady dyskretnego modelu regulatora rozmytego: nie posiada graficznego interfejsy uytkownika GUI do tworzenia projektu, nie posiada moliwoci generowania pata powierzchniowego, jest sztywny w swojej strukturze, tzn. wprowadzanie zmian takich jak dodawanie wej, dodawanie funkcji przynalenoci, czy jake wanej modyfikacji tabeli regu (konkretnie przypisania wyjciowej funkcji przynalenoci do danej reguy), wymaga ingerencji w struktur ukadu, jest konfigurowany z poziomu m-pliku.

50

3. Projekt wstpny regulatora rozmytego do sterowania powierzchniami

sterowymi BAL.
Realizacj projektu wstpnego regulatora rozmytego przewidziano na mikroprocesorze THOMSON. W celu uzyskania algorytmu regulatora posuono si programami fuzzyTECH 3.0 i Realizer 2.20. Do zapisu uzyskanego algorytmu regulator rozmytego wykorzystano program WINNE oraz urzdzenie ST626x Starter Kit. 3.1. Struktura regulatora rozmytego W programie fuzzyTECH 3.0 zosta utworzony projekt wstpny AP_5 regulatora rozmytego stabilizujcego kt przechylenia samolotu. Celem projektu jest zbadanie waciwoci zaimplementowanego ukadu zbudowanego na mikrokomputerze ST6 SGM THOMSON.

Rys. 3.1 Okno gwne programu fuzzyTECH 3.0 z projektem regulatora rozmytego AP_5

Zaoenia projektu wstpnego AP_5: a) dysponujemy trzema sygnaami wejciowymi: prdkoci ktow p przechylania samolotu mierzon za pomoc yroskopu, ktem przechylenia samolotu mierzonym za pomoc klinometru, korekcj/sygnaem_nakazowym z potencjometru, b) otrzymujemy sygna wyjciowy ksztatujcy PWM, ktry steruje serwomechanizmami lotek c) praca regulatora polega na generowaniu sygnau wyjciowego tak, aby: kt przechylenia by rwny zero lub przyjmowa warto jak zadana na wejcie korekcji, prdko ktowa p bya rwna zero lub bya zgodna z kierunkiem zmian kta do korekcji (a jej warto proporcjonalna do wartoci rozbienoci pomidzy ktem a wartoci korekcji). W projekcie AP_5 zmienne wejciowe regulatora rozmytego posiadaj po trzy etykiety liniowych funkcji przynalenoci. rodkowe funkcje przynalenoci wej yroskopu

51

i klinometru s trapezowe (rys. 3.2 i 3.3) posiadaj tzw. luz, ktry powoduje, e regulator rozmyty nie reaguje na odchyki prdkoci ktowej i kta bliskie zeru, i tym samym praca regulatora nie jest nadwraliwa.

Rys.3.2 Funkcje przynalenoci zmiennej WE1_zyroskop.

Rys. 3.3 Funkcje przynalenoci zmiennej WE2_klinometr.

Zmienna WE3_korekcja bya przewidziana jako wejcie, ktrego zadaniem byo wprowadzanie poprawek stabilizowanego kta przechylenia samolotu (np. w przypadku bocznego wiatru). Posiada ona jednak charakter wejcia sterujcego przechyleniem samolotu i dlatego moe spenia podwjna rol: wejcia korygujcego i sterujcego. Praktyczna realizacja takiego rozwizania to szeregowe poczenie potencjometru dokadnego (korekcja) i zgrubnego (sterowanie), z ktrych napicie jest sygnaem podawanym na wejcie WE3_korekcja. Rysunek 3.9 przedstawia ustawienie funkcji przynalenoci dla wejcia trzeciego WE3_korekcja.

Rys. 3.4 Funkcje przynalenoci zmiennej WE3_korekcja.

52

Zmienna wyjciowa WY_lotki posiada siedem funkcji przynalenoci (rys. 3.5). Ich rozkad jest nieliniowy zagszczony wok wartoci zero i rzadszy dla skrajnych wartoci. Taki rozkad funkcji przynalenoci powoduje sterowanie: precyzyjne poprzez funkcje w_prawo i w_lewo, szybkie poprzez funkcje duzo_w_prawo i duzo_w_lewo, brutalne poprzez funkcje b_duzo_w_prawo i b_duzo_w_lewo.

Rys. 3.5 funkcje przynalenoci zmiennej WY_lotki

Algorytm sterowania regulatora AP_5 okrelony jest poprzez 27 regu. Tabela regu zawiera implikacje, trzech wej i wyjcia, uoone przez projektanta na podstawie wasnej wiedzy i dowiadczenia o sterowanym obiekcie. Poniej znajduje si krtki opis kadej z regu: 1 yroskop zero, klinometr zero, korekcja zerowa optymalna sytuacja lotki zero, 2 yroskop dodatni, klinometr zero, korekcja zerowa niepodana dodatnia prdko ktowa kontruj lotkami w_lewo, 3 yroskop ujemny, klinometr zero, korekcja zerowa niepodana ujemna prdko ktowa kontruj lotkami w_prawo, 4 yroskop zero, klinometr dodatni, korekcja zerowa niepodane dodatnie przechylenie kontruj lotkami w_lewo, 5 yroskop dodatni, klinometr dodatni, korekcja zerowa niepodana dodatnia prdko ktowa i niepodane dodatnie przechylenie kontruj lotkami duzo_w_lewo, 6 yroskop ujemny, klinometr dodatni, korekcja zerowa ujemna prdko ktowa korygujca niepodane dodatnie przechylenie lotki zero, 7 yroskop zero, klinometr ujemny, korekcja zerowa niepodane ujemne przechylenie kontruj lotkami w_prawo, 8 yroskop dodatni, klinometr ujemny, korekcja zerowa dodatnia prdko ktowa korygujca niepodane ujemne przechylenie lotki zero,

53

9 yroskop ujemny, klinometr ujemny, korekcja zerowa niepodane ujemne przechylenie powikszane ujemn prdkoci ktow kontruj lotkami duzo_w_prawo, 10 yroskop zero, klinometr zero, korekcja w_prawo wprowad dodatni korekcj przechylenia lotki w_prawo, 11 yroskop dodatni, klinometr zero, korekcja w_prawo dodatnia prdko ktowa podajca za wprowadzan dodatni korekcj lotki zero, 12 yroskop ujemny, klinometr zero, korekcja w_prawo niepodana ujemna prdko ktowa, przeciwna do wprowadzanej dodatniej korekcji lotki duzo_w_prawo, 13 yroskop zero, klinometr dodatni, korekcja w_prawo dodatni klinometr zgodny z dodatniej korekcji lotki zero, 14 yroskop dodatni, klinometr dodatni, korekcja w_prawo dodatnie przechylenie zgodne z dodatnia korekcj, niepodana dodatnia prdko ktowa lotki w_lewo, 15 yroskop ujemny, klinometr dodatni, korekcja w_prawo dodatnie przechylenie zgodne z dodatni korekcj, niepodana ujemna prdko ktowa lotki w_prawo, 16 yroskop zero, klinometr ujemny, korekcja w_prawo ujemne przechylenie przeciwne do dodatniej korekcji lotki duzo_w_prawo, 17 yroskop dodatni, klinometr ujemny, korekcja w_prawo dodatnia prdko ktowa zgodna z kierunkiem korekcji ujemnego przechylenia przeciwnego do dodatniej korekcji lotki w_prawo, 18 yroskop ujemny, klinometr ujemny, korekcja w_prawo ujemne przechylenie przeciwne do dodatniej korekcji i niepodana ujemna prdko ktowa lotki b_duzo_w_prawo, 19 yroskop zero, klinometr zero, korekcja w_lewo wprowad ujemn korekcj przechylenia lotki w_lewo, 20 yroskop dodatni, klinometr zero, korekcja w_lewo niepodana dodatnia prdko ktowa, przeciwna do wprowadzanej ujemnej korekcji lotki duzo_w_lewo, 21 yroskop ujemny, klinometr zero, korekcja w_lewo ujemna prdko ktowa podajca za wprowadzan ujemn korekcja lotki zero, 22 yroskop zero, klinometr dodatni, korekcja w_lewo dodatni klinometr przeciwny do ujemnej korekcji lotki duzo_w_lewo, 23 yroskop dodatni, klinometr dodatni, korekcja w_lewo dodatni klinometr przeciwny do ujemnej korekcji i niepodana dodatnia prdko ktowa lotki b_duzo_w_lewo, 24 yroskop ujemny, klinometr dodatni, korekcja w_lewo dodatni klinometr przeciwny do ujemnej korekcji, ujemna prdko ktowa zgodna z wprowadzan korekcj lotki w_lewo, 54

25 yroskop zero, klinometr ujemny, korekcja w_lewo ujemny klinometr zgodny z ujemn korekcj lotki zero, 26 yroskop dodatni, klinometr ujemny, korekcja w_lewo ujemny klinometr zgodny z ujemn korekcj, niepodana dodatnia prdko ktowa lotki w_lewo, 27 yroskop ujemny, klinometr ujemny, korekcja w_lewo ujemny klinometr zgodny z ujemn korekcj, niepodana ujemna prdko ktowa lotki w_prawo.
Tabela 3.1 - Reguy regulatora rozmytego AP_5.

Przedstawiona powyej tabela 3.1 zostaa wygenerowana w programie fuzzyTECH , w wyniku projektowania regulatora rozmytego AP_5. Regulator rozmyty AP_5 posiada trzy wejcia, dlatego do jego oceny wygenerowano trzy paty powierzchniowe: 55

z WE3_korekcja jako stay parametr (rys. 3.6), z WE2_klinometr jako stay parametr (rys. 3.7), z WE1_zyroskop jako stay parametr (rys. 3.8),

Rys 3.6 Transfer Plot parametr WE3_korekcja= 20.47

Rys 3.7 Transfer Plot parametr WE2_klinometr = -8.42

Rys 3.8 Transfer Plot parametr WE1_zyroskop = - 7.47

Na przedstawionych patach powierzchniowych wida, e praca regulatora jest w miar agodna, w wikszoci nieliniowa i miejscami nieciga. W celu uzyskania peniejszego

56

obrazu jakoci sterowania regulatorem AP_5 naley przeanalizowa paty powierzchniowe dla innych wartoci parametrw. Przy uyciu opcji Time Plot zostay wygenerowane przebiegi czasowe podstawowych stanw zmiennych wejciowych i wyjciowych (Rys. 3.9). Dla peniejszej oceny pracy regulatora rozmytego, za pomoc Time Plot, niezbdnym jest rozpatrzenie wikszej iloci moliwych kombinacji stanw wej.

Rys 3.9 Time Plot regulatora rozmytego AP_5

Wnioski z powyszego wykresu: liniowe zmiany sygnaw wejciowych wywouj nieliniowe zmiany sygnau wyjciowego, dodatni sygna na wejcie korekcji powoduje dodatni wychylenie lotek, dodatnie sygnay kta przechylenia i prdkoci ktowej przechylania powoduj ujemne wychylenie lotek, wychylenie lotek jest sum reakcji regulatora na poszczeglne sygnay wejciowe.

Efektem kompilacji projektu regulatora rozmytego AP_5 s dwa pliki kodu asemblera ST6: a) AP_5.inc plik ten zawiera: adres pierwszego wolnego bajtu pamici RAM, definicje adresw zmiennych wejciowych i zmiennej wyjciowej, definicje adresw zmiennych pomocniczych do oblicze regulatora rozmytego, b) AP_5.st6 plik ten zawiera: definicje adresw rejestrw mikroprocesora, 57

odwoanie do pliku AP_5.inc, definicje adresw zmiennych wejciowych i zmiennej wyjciowej regulatora, definicje przestrzeni zarezerwowanej dla jdra logiki rozmytej, definicje adresw parametrw fuzyfikacji, tabele staych okrelajcych funkcje przynalenoci zmiennych wejciowych, tabele staych okrelajcych reguy regulatora, tabele staych defuzyfikacji zmiennej wyjciowej, wybr metody agregacji, odwoanie do pliku biblioteki logiki rozmytej FUZZYLIB.ST6, globalne funkcje: regulatora rozmytego ap_5 i inicjalizujc regulator rozmyty initap_5. Dodatkowym plikiem dopeniajcym algorytm regulatora rozmytego jest biblioteka FUZZYLIB.ST6. Zawarto plikw AP_5.inc, AP_5.st6 i FUZZYLIB.ST6 znajduje si w dodatkach A, B oraz C. Modyfikator wejciowych funkcji przynalenoci w jzyku asemblera ST6. Modyfikator wejciowych funkcji przynalenoci zosta wprowadzony do kodu regulatora rozmytego, w pliku AP_5.st6, po algorytmie fuzyfikacji. W procesie fuzyfikacji wartociom wejciowym tzw. ostrym zostay przypisane wspczynniki przynalenoci do wejciowych funkcji przynalenoci. Wartoci wspczynnikw zostay wpisane do wczeniej okrelonej przestrzeni danych. Adres pierwszej komrki przestrzeni danych, w ktrej maj by zapisane wspczynniki przynalenoci jest okrelona przez zmienn fuzin. Zmienna fuzin w pliku AP_5.st6 jest zdefiniowana jako ftstart + 005H, a zmienna ftstart jest zdefiniowana w pliku AP_5.inc jako staa warto 0084H w efekcie zmienna fuzin jest zdefiniowana jako 089H.
;----------------------------- modyfikacja -------------------------------;--------------- wprowadzone przez: Maksymilian Sobczak ------------------;------------------------ 12.05.2008 -------------------------------------ldi x, 089H

Do zmiennej x wpisywany jest adres pierwszej komrki danych z wspczynnikami przynalenoci. Zamiast wartoci 089H mona wpisa zmienn fuzin.
ldi y, 009H

58

Do zmiennej y wpisywana jest ilo wszystkich wejciowych funkcji przynalenoci.


modyf: ldi ld ld call op1, 002H a, (x) op2, a mul

;2*MI(we)

Powyej znajduje si pocztek ptli modyfikatora. W tym miejscu wykonywane jest mnoenie 2*wsp_prz. Do zmiennej op1 wpisywana jest warto pierwszego czynnika mnoenia 2, do zmiennej op2 wpisywana jest zawarto komrki o adresie podanym w rejestrze x w rejestrze x wpisana jest warto pierwszego wspczynnika przynalenoci, nastpnie wywoywana jest funkcja mnoenia zmiennych op1 i op2 (funkcja mul znajduje si w pliku fuzzylib.st6). Wynik mnoenia wpisywany jest do dwch zmiennych l_res (modszy bajt) i m_res (starszy bajt).
ld ld ld ld ldi call a, l_res l_op1, a a, m_res m_op1, a op2, 0FFH div16by8

;2*mi(we)=2*MI(we)/255

Powyej znajduje si algorytm dzielenia wyniku 2*wsp_prz przez warto 0FFH. Dziaanie to ma na celu sprowadzenie uzyskanego wyniku do wsplnego poziomu z wartociami uzyskiwanymi w dalszej czci algorytmu modyfikatora (wspczynniki przynalenoci w algorytmie regulatora rozmytego przyjmuj wartoci 0-255). Dzielna jest 16-bitowa i znajduje si w dwch zmiennych 8-bitowych: l_op1 (modszy bajt dzielnej) i m_op1 (starszy bajt dzielnej). Wynik mnoenia 2*wsp_prz zawarty w zmiennych l_res i m_res spisywany jest poprzez akumulator a do dzielnej. Do zmiennej op2 dzielnika wpisywana jest warto 0FFH (255). Po wpisaniu wartoci do dzielnej i dzielnika nastpuje wywoanie funkcji dzielenia liczby 16-bitowej przez liczb 8-bitow. Definicja funkcji dzielenia znajduje si w pliku biblioteki rozmytej fuzzylib.st6.
ld ld ld ld a, (x) v, a a, l_res (x), a

;(x) <- 2*mi(we)

Wynik dzielenia 2*wsp_prz/0FFH znajduje si w dwch zmiennych: l_res i m_res. Pod adresem zawartym w rejestrze x znajduje si warto starego wspczynnika przynalenoci, ktry bdzie jeszcze uywany, dlatego jego warto poprzez akumulator zostaje wpisana do pomocniczej zmiennej v. Pod adres zawarty w zmiennej x zostaje wpisana

59

warto wyniku (l_res modszy bajt, gdy z analizy wczeniejszych dziaa wynika, e wynik nie moe by wikszy ni 8-bitowy) dzielenia 2*wsp_prz/0FFH.
Ld ld ld call a, v op1, a op2, a mul ;MI(we)*MI(we)

Powyej znajduje si algorytm mnoenia starego wspczynnika przynalenoci do funkcji przez siebie samego, co ma na celu uzyskanie wartoci wsp_prz*wsp_prz. Wynik mnoenia zapisywany jest w dwch zmiennych: l_res i m_res.
Ld ld ld ld ldi call ld ld ld ld ldi call a, l_res l_op1, a a, m_res m_op1, a op2, 0FFH div16by8 a, l_res l_op1, a a, m_res m_op1, a op2, 0FFH div16by8

;mi(we)*mi(we)=MI(we)*MI(we)/(255*255)

Powyej znajduje si ponownie algorytm sprowadzania czciowego wyniku do wsplnego poziomu odniesienia tutaj przez dwukrotne dzielenie wyniku przez 0FFH.
ld ld ld sub a, w, a, a, l_res a (x) w

;2*mi(we)-mi(we)*mi(we)

Powyszy algorytm ma na celu: - wpisanie wyniku dzielenia wsp_prz*wsp_prz/0FFH/0FFH przez akumulator do pomocniczej zmiennej w, - wpisanie wartoci chwilowej 2*wsp_prz/0FFH, zapisanej pod adresem zawartym w zmiennej x, do akumulatora a, - wykonanie odejmowania 2*wsp_prz/0FFH wsp_prz*wsp_prz/0FFH/0FFH.
ld ldi call op1, a op2, 0FFH mul

;MI(we)=mi(we)*255

Powyej wynik wczeniejszego odejmowania, zawarty w akumulatorze, jest sprowadzany z wsplnego poziomu odniesienia do zakresu 0-255 poprzez przemnoenie zawartoci akumulatora przez warto 0FFH. 60

ld ld

a, l_res (x), a

Powyej wynik wczeniejszego mnoenia wpisywany jest ze zmiennej l_res, zawierajcy modszy bajt wyniku (z analizy wczeniejszych dziaa wynika, e wynik mnoenia nie jest wikszy ni 8-bitowy), przez akumulator pod adres zawarty w zmiennej x. Czynno ta powoduje zamian starego wspczynnika przynalenoci i wartoci chwilowych na now warto wspczynnika przynalenoci.
inc dec jrnz x y skok_do_mod

Adres komrki zawierajcy wspczynniki przynalenoci jest zwikszany o jeden przechodzimy do nastpnego wspczynnika przynalenoci. Zawarto zmiennej y (z iloci wejciowych funkcji przynalenoci) jest zmniejszana o jeden jeeli zawarto zmiennej y jest rwna zero, wtedy wystawiana jest flaga z. Jeli jest wystawiona flaga z, wtedy wykonywane jest polecenie ponisze skok do inferencje.
jp inference

W przypadku, gdy nie jest wystawiona flaga z, wtedy wykonywany jest krtki skok do linijki poniej.
skok_do_mod:

Std wykonywany jest dugi sok do pocztku modyfikatora.


Jp modyf

;----------------------------- inference ---------------------------------inference: ldi drwr, rt0.w

Powysze polecenie wykonywane jest, jeli wystpia wczeniej flaga z i zosta wykonany dugi skok do inference. Algorytm przypisania i obsug wej/wyj wykonano za pomoc programu ST REALIZER 2.20. W programie tym zosta utworzony projekt AP (rys. 3.10) o strukturze zawierajcej: trzy wejcia z przetwornikami analogowo/cyfrowymi, blok generujcy PWM na wyjciu Auto Reload Timer, sta okrelajc czas pomidzy impulsami sygnau PWM, wasny blok regulatora rozmytego, blok generatora impulsw podczony do wyjcia cyfrowego z diod LED. 61

Rys 3.10. Schemat projektu AP.

Do prawidowego skompilowania projektu niezbdnym byo napisanie biblioteki utworzonego bloku i wskazanie cieki dostpu pliku zawierajcego t bibliotek. Zawarto pliku utworzonej biblioteki bibl.mac:
.MACRO FLwwww lv0_we_1, Tlv0_we_1, lv1_we_2, Tlv1_we_2, lv2_we_3, Tlv2_we_3, lv3_wy, Tlv3_wy NOP .ENDM .MACRO IFLwwww lv0_we_1, Tl0v0_we_1, lv1_we_2, Tlv1_we_2, lv2_we_3, Tlv2_we_3, lv3_wy, Tlv3_wy NOP .ENDM

Wynikiem kompilacji projektu AP jest poprawny plik AP.st6. Plik ten zawiera algorytm: przypisania wej/wyj, obsugi przetwornikw A/C, generowania sygnau wyjciowego PWM. Zawarto pliku AP.st6, wraz z wprowadzonymi zmianami, znajduje si w dodatku D. Pik hex zosta uzyskany w wyniku wykonania krokw, zgodnie ze schematem przedstawionym na rysunku 3.11. Zaznaczona cieka jest jednym z kilku sposobw na uzyskanie pliku hex.

62

Rys.3.11 Schemat uzyskania pliku o rozszerzeniu hex.

Wstpny projekt regulatora rozmytego skada si z 4 plikw: AP.st6, AP_5.inc, AP_5.st6, FUZZYLIB.ST6. W tym przypadku uzyskanie pliku hex wymaga kompilacji poszczeglnych plikw i ich poczenia do tego celu utworzono plik BUILD.BAT. Zawarto pliku BUILD.BAT: ast6.exe -l -o -w0 AP_5.st6 ast6.exe -l -o -w0 AP.ASM lst6.exe -s -j -m -i -o R_FL_3_1 -P0:800-F9F AP.OBJ -P0:800-F9F AP_5.OBJ

Plik wsadowy BUILD.BAT powinien znajdowa si w katalogu z plikami AP.st6, AP_5.inc, AP_5.st6, FUZZYLIB.ST6, oraz z programami ast6.exe i lst6.exe. Uruchomienie go powoduje generowanie plik R_FL_3_1.HEX. Szczegowe informacje na temat czenia programu ST REALIZER 2.20 z programem fuzzyTECH 3.0 i uzyskiwania wykonawczego pliku HEX znajduj si w pracy Jacka Rybki

63

Wspczesne metody programowania procesorw na przykadzie integracji pakietw ST6REALIZER i fuzzyTECH.

3.2. Analiza sprztowa projektu regulatora rozmytego Po uzyskaniu pliku R_FL_3_1.HEX przystpiono do zaprogramowania mikroprocesora ST62E65C rodziny SGM THOMSON, ktrego przyporzdkowanie wyprowadze widoczne jest na rysunku 3.12.

Rys 3.12. Wyprowadzenia mikroprocesora ST62E65C

Parametry mikrokontrolera ST62E65C: maksymalna czstotliwo zegara taktowania zakres napicia zasilania trzy tryby pracy ilo przerwa pami RAM pami EEPROM 8-bitowy przetwornik A/C dla 13 wej, 8-bitowe Tajmer/Licznik, 8-bitowy Tajmer automatycznie przeadowywany, cyfrowy Watchdog, 21 pinw wejcia/wyjcia, 8 pinw wejcia/wyjcia o obcialnoci prdowej 30[mA]. Wicej informacji na temat mikrokontrolera ST62E65C znajduje si w dodatku F. Przyporzdkowania wej i wyj projektu AP do portw mikroprocesora: 8 [MHz] 3 6 [V] dziaanie, czekanie, zatrzymanie 5 128 bajtw 128 bajtw

64

we_1 PA0, 8-bitowe wejcie analogowe, we_2 Ain/PA1, 8-bitowe wejcie analogowe, we_2 PA2, 8-bitowe wejcie analogowe, wyjcie PWM PB7, wyjcie automatycznego przeadowania timera, LED PA3, wyjcie prdowe 5[mA] (open drain). Do wykonania zapisu posuya pytka ST626x Starter Kit Bard, ktrej widok jest przedstawiony na rysunku 3.13.

Rys. 3.13 - ST626x Starter Kit.

Oraz program winee.exe:

Rys.3.14 Gwne okno programu WINEE z projektem R_FL_3_1.HEX.

Proces programowania mikroprocesora odbywa si poprzez poczenia komputera (z programem WINNE) z ST626X Starter Kit za pomoc kabla LPT. 65

Rys 3.15. Szkic poczenia komputera z ST626X Starter Kit

Mikroprocesor ST62E65C po zaprogramowaniu zosta umieszczony w laboratorium na stanowisku badawczym pokazanym na rys. 3.16.

Potencjometr 1

Serwomechanizm

Potencjometr 2

Potencjometr 3

Mikrokomputer ST62E65
Rys. 3.16 stanowisko do badania mikroprocesorw THOMSON.

Ukad zosta poczony zgodnie ze schematem przedstawionym na rysunku 3.17.

66

Rys. 3.17 Podczenie mikrokomputera jednoukadowego do ukadw wej. wyj.

Po przeprowadzeniu bada uzyskane zostay wyniki jakociowe, bdce wychyleniem serwomechanizmu w zalenoci od nastawy potencjometrw. Trzy potencjometry symuloway: Prdko ktow P1 Kt przechylenia P2 Korekcje - P3 W wyniku nastawy pooenia potencjometrw ukad sterowania rozmytego sterowa serwomechanizmem wychylenia powierzchni sterowej. Tabela 3.2 zawiera wyniki przeprowadzonych bada.
Tabela 3.2 - Wyniki symulacji.

Potencjometr P1 W prawo Neutrum W lewo Neutrum Neutrum Neutrum Neutrum Neutrum Neutrum

Potencjometr P2 Neutrum Neutrum Neutrum W prawo Neutrum W lewo Neutrum Neutrum Neutrum

Potencjometr P3 Neutrum Neutrum Neutrum Neutrum Neutrum Neutrum W prawo Neutrum W lewo

Wychylenie serwomechanizm W lewo neutrum W prawo W lewo neutrum W prawo W prawo Neutrum W lewo

67

Z tabeli 3.2 wynika i zamierzony cel, jakim byo stworzenie wstpnego regulatora rozmytego zosta osignity (patrz punkt 3.1). Mikrokomputer wypracowywa sygna sterujcy serwomechanizmem, powodujc jego wychylenie. W wyniku zmiany sygnaw z potencjometrw P1 oraz P2 (symulujcych zmian prdkoci ktowej i kta przechylenia) serwomechanizm wychyla si w przeciwnym kierunku, ni w wyniku takiej samej zmiany sygnau z potencjometru P3.

68

4. Przygotowanie bazy do wykonania prb w locie


Aby wykona regulator naley posiada wiedz o badanym obiekcie. Po przeanalizowaniu, jakie informacje bd potrzebne, zostay dobrane i zakupione odpowiednie podzespoy. Kryterium ich doboru obejmowa: zakres pomiarowy, mas oraz wymiary. Po skompletowaniu wszystkich elementw w laboratorium zosta opracowany schemat instalacji ukadu pomiarowego.

4.1.

Aparat latajcy PR-2 GACEK Naszym obiektem bada jest bezzaogowy aparat latajcy PR-2 Gacek (rys. 4.1), jest

to grnopat wolnonony o usterzeniu klasycznym, napdzany dwoma silnikami elektrycznymi. Struktura patowca wykonana jest z epoksydowych kompozytw szklanych i wglowych oraz kompozytowych struktur przekadkowych. Sterowanie odbywa si za pomoc aparatury RC.

Rys. 4.1 Aparat latajcy PR-2 Gacek w czasie przygotowa do lotu.

PR-2 zosta zaprojektowany w sposb umoliwiajcy szybki demonta patowca i wyposaenia. Skrzyda umocowane s przy pomocy ruchomych bagnetw i gumowego

69

cznika, umoliwiajcego natychmiastowy demonta. Statecznik poziomy mieci w sobie dwa serwomechanizmy co upraszcza demonta i poprawia niezawodno w kanale pochylania. Rozmontowanie statecznika poziomego polega na odkrceniu rub i zwolnieniu sworznia oraz odpicia wtyczki serw. Wszystkie poczenia elektroniczne s na szybkozczki. Dostp do wszelkiego wyposaenia jest moliwy z uwagi na grne klapki umoliwiajce demonta caej elektroniki. Wymiary: Rozpieto: 1800 [mm], Dlugo: 1300 [mm], Wysoko: 282 [mm], Masa: ok. 3500 4500 [g], Napd: dwa silnik elektryczne trjfazowe AXI 2820/12, Zasilanie: Wysokowydajne ogniwa Li-Pol (11.1 [V], 3700mAh), Czas lotu: 30-60 [min], Predko: 30-80 [km/h], Technologia wykonania: Kompozyty szklane oraz wglowe, struktury przekadkowe, styrodur + balsa; Do samolotu bezzaogowego GACEK przygotowywany jest ukad nawigacji i sterowania. Niniejsza praca jest pierwszym etapem opracowania ukadu dla tego obiektu. 4.2. Programowany rejestrator PRP-J5. Programowany rejestrator pomiarowy przeznaczony jest do pomiaru i rejestracji parametrw analogowych. System rejestracji PRP-J5 skada si z moduu rejestratora oraz wymiennej karty pamici FLASH. Uzupenieniem jest czytnik kart pamici, interfejs poczenia z komputerem i oprogramowanie nadzorujce. Modu rejestratora bazuje na specjalizowanym ukadzie mikrokomputera jednoukadowego z wejciami analogowymi, interfejsem szeregowym i interfejsem pamici FLASH. Ukad elektroniczny rejestratora zrealizowany zosta w jednym

70

ukadzie scalonym (SoC system on chip). Rejestrowanie danych wykonywane jest na wymiennej karcie pamici FLASH typu SD. Stan pracy rejestratora sygnalizuje dioda LED. Rejestrator zasilany jest napiciem 3.0V z baterii litowej lub z zasilacza typu LDO zabezpieczajcym jego poprawn prac dla napi zasilania od 4.5V do 12V. Interfejs szeregowy z separacj galwaniczn pozwala na kontrol funkcji rejestratora danych, oraz prac rejestratora w trybie ON LINE z przyczonym komputerem osobistym.

Karta pamici

Rys. 4.2 Widok rejestratora PRP-J5 z kart pamici.

Rysunek 4.2 przedstawia rejestrator w wersji OPEN FRAME z zamontowan kart pamici. Brak duralowej obudowy, chronicej rejestrator przed udarami mechanicznymi spowodowany jest ograniczeniami konstrukcyjnymi badanego aparatu latajcego. Ilo miejsca na pokadzie jak dysponuje GACEK, a ktr mona wykorzysta do zamontowania aparatury pomiarowej jest mocno ograniczona. Podstawowe dane techniczne: a) Sygnay wejciowe 24 programowane wejcia analogowe typu niesymetrycznego ze wspln mas (single ended), rozdzielczo przetwornika AC 12 bit, zakres przetwarzanych napi wejciowych 0 6V,

71

programowo ustawiane wzmocnienie indywidualnie dla kadego kanau ( x0.5, x1, x2, x4, x8, x16), maksymalne dopuszczalne napicie wejciowe 5V, +20V. b) Pami wymienna karta pamici FLASH typu SD o pojemnoci 8MB, 16MB, 32MB, 64MB, 128MB, 256MB, 512MB,1GB. c) Czas akwizycji programowany w interwaach 5 ms, 10 ms, 50 ms, 100 ms, 200 ms, 500 ms, 1 s, 5 s, 60 s. Czas prbkowania dla kadego kanau ustawiany jest indywidualne d) Konfiguracja parametrw rejestratora ustawianie parametrw programowo z przyczonego komputera PC pod kontrol narzdziowego programu nadzorujcego PRP-J5 e) Odczyt zarejestrowanych danych odczyt bezporedni karty pamici SD czytnikiem karty przyczonym do komputera PC f) Zasilanie bezporednie z baterii litowej 3V pobr prdu 20mA zasilanie napiciem staym o wartociach 4.5V-12V maksymalny pobr prdu 30mA g) Wymiary podstawowe wymiary wersji bez obudowy (open frame) 57mm x 37mm x 9mm wersja obudowana 100 mm x 60 mm x 35 mm h) Waga waga pytki rejestratora wersja (open frame) ze rdem zasilania 10 g waga rejestratora z obudow i rdaem zasilania NiMh 170 g

4.3. Sensory wejciowe. Pomiar prdkoci ktowej jest realizowany poprzez 3 yroskopy. Kady z nich mierzy prdko wok jednej z osi X, Y oraz Z. W wyniku tego otrzymujemy informacj o prdkoci przechylania, pochylania i odchylania. Wzdu wszystkich 3 osi jest rwnie wykonywany pomiar przyspiesze, za pomoc jednego 3-osiowego przyspieszeniomierza. yroskopy i przyspieszeniomierz zostay przymocowane do odpowiednich cian szecianu (rys. 4.3), ktry zosta umieszczony w rodku cikoci badanego aparatu latajcego.

72

Rys. 4.3 Pooenie yroskopw i przyspieszeniomierza.

Cyframi

od

do

oznaczone

yroskopy,

cyfr

jest

oznaczony

przyspieszeniomierz. ADXRS150 to kompletny przetwornik prdkoci ktowej w jednym chipie. Odporny na wibracje i wysokie czstotliwoci, ktrego poziom szumw wasnych wynosi 0.05 /s/Hz. Mae wymiary i masa oraz wysoka odporno na chwilowe przecienie sigajca 2000 g. sprawiaj, e bardzo dobrze nadaje si on do aplikacji na pokadzie BAL. Posiada wewntrzny sensor do kalibracji temperaturowej, oraz precyzyjny pomiar napicia odniesienia [i1]. Sygnaem wyjciowym jest napicie, proporcjonalne do prdkoci obrotowej. Sygna jest dodatni, kiedy patrzc z gry obrt wykonywany jest zgodnie z ruchem wskazwek zegara wok osi prostopadej do grnej powierzchni.

Rys. 4.4 Wykres skalowania yroskopu ADXRS150.

73

Tabela 4.1 Parametry pracy ADXRS150.. Parametr Zakres pomiarowy Czuo Pasmo przenoszenia Czujnik temp. Napicie zasilania Prd zasilania Temperatura pracy Czuo Warto +/- 150 12.5 2 Tak 4.75 5.25 6 -40 do 85 12.5 Jednostka /s mV//s kHz V mA C mV//s

Tabela 4.1 zawiera wybrane informacje o parametrach pracy yroskopu, szczegowe informacje na temat czujnika ADXRS150 znajduj si w dodatku E. LIS3L06AL to 3- osiowy przyspieszeniomierz z analogowym wyjciem. Urzdzenie zawiera czujniki mierzce przyspieszenie oraz wbudowany chip, ktry przetwarza je na sygna analogowy. Przyspieszeniomierz moe pracowa w dwch trybach okrelonych poprzez zakres pomiarowy: 2g oraz 6g.

Rys. 4.5 Wyprowadzenia przyspieszeniomierza.

Powyszy rysunek przedstawia orientacj osi w zakresie ktrych s mierzone przyspieszenia. Ponadto pokazane jest rozmieszczenie wyprowadze LIS3L06AL [i4]. Opis poszczeglnych wyprowadze jest przedstawiony w tabeli 4.2.

74

Tabela 4.2 Wyprowadzenia przyspieszeniomierza LIS3L06AL. PIN 1 2 3 4 5 6 7 8 Symbol ST Voutz GND Reserved FS Vouty Voutx Vdd Funkcja Self Test (Logic 0: normal mode; Logic 1: Self-test) Napicie wyjciowe, kana Z masa Tryb pracy (Logic 0:2g Full scale; Logic1: 6g Full Scale) Napicie wyjciowe, kana Y Napicie wyjciowe, kana X Napicie zasilania

Rysunek (4.6) przedstawia sygnay wyjciowe, przyspieszeniomierza wzgldem ziemi.

w zalenoci

od pooenia

Rys.4.6 Sygnay wyjciowe przyspieszeniomierza. Tabela 4.3 Parametry pracy LIS3L06AL. Symbol Vdd Idd T Ar Parametr Napicie zasilania Prd zasilania Temperatura pracy Zakres pomiarowy 2g 6g S Czuo 2g 6g Min. 2.4 -40 1.8 5.4 Vdd/510% Vdd/1510% Vdd/5+10% Vdd/15+10% Max. 3.6 1.5 +85 Jednostka V mA C g

75

Pozostae szczegowe informacje na temat przyspieszeniomierza LIS3L06AL znajduj si w dodatku F. Do pomiaru wysokoci lotu wykorzystany jest czujnik cinienia barometrycznego typu MPX5100A (rys. 4.7) w obudowie 867B-04. Jest to scalony krzemowy czujnik cinienia, skompensowany temperaturowo i skalibrowany [i2]. Krzemowe, piezzooporowe przetworniki MPX5100 s monolitycznymi czujnikami cinienia zaprojektowanymi do wielu zastosowa, szczeglnie z przetwornikami A/C. Elementy wykonano w technologii cienkowarstwowej. Sygna wyjciowy zaleny jest od wielkoci przyoonego cinienia. Cechy szczeglne: pomiar od 0-400kPa niewielki bd do 2,5% przy temperaturze 0 do 85 C, zdolny do pracy z obwodami mikroprocesorowymi, wytrzymaa obudowa epoksydowa, atwy w uyciu W tabeli 4.4 s zawarte wybrane informacje na temat charakterystyki pracy.
Tabela 4.4 Charakterystyki pracy czujnika cinienia. Parametry Zakres pomiarowy cinienia Napicie zasilania Prd zasilania Napicie wyjciowe dla Pmin. Napicie wyjciowe dla Pmax Rnica skrajnych napi Dokadno Czuo Prd wyjciowy dla Pmax. Staa czasowa Stabilno offsetu Symbol POP VS IO VOFF VFSO VFSS V/P IO+ Min 15 4.75 0.088 4.587 5.0 7.0 0.20 4.700 4.500 45 0.1 20 0.5 Typ Max 115 5.25 10 0.313 4.813 2.5 Jednostka kPa VDC mAdc VDC VDC VDC %VFSS St/kPa mAdc ms %VFSS

76

Czujnik cinienia posiada sze pinw, z ktrych do pomiaru wykorzystywane s 3 zaznaczone na rysunku 4.7.

PIN 1: sygna wyjciowy

PIN 2: masa

PIN 3: napicie zasilania


Rys. 4.7 Wyprowadzenia czujnika cinienia

W dodatku G znajduj si szczegowe informacje na temat czujnika cinienia MPX5100. 4.4. Przetwornik wychylenia powierzchni sterowych. Odbiornik radiowy aparatury zdalnego sterowania wytwarza sygnay PWM, sterujce wychylaniem powierzchni sterowych i silnikami. Sygnay sterujce s przetwarzane przez przetworniki, na odpowiednie napiciowe sygnay analogowe, i w takiej postaci s rejestrowane. Pytka przetwornika w widoku z obu stron pokazana jest na rysunku 4.8. Mikroprocesor

Wyjcie sygnau analogowego

Wejcie sygnau PWM


Rys. 4.8 Widok przetwornika wychylenia powierzchni sterowych.

77

Poniej na rysunku 4.9 jest przedstawiony schemat blokowy przetwornika wychylenia powierzchni sterowych.

Rys. 4.9 Schemat blokowy przetwornika wychylenia powierzchni sterowych.

Przetwornik w bloku wejciowym kondycjonuje sygna napiciowy do standardu mikrokomputerowego. Mikrokomputer w ptli programowej zamienia sygna PWM A na sygna PWM B przyczony do filtru dolnoprzepustowego.

4.5.

Schemat instalacji elektrycznej z ukadem pomiarowym. Na kolejnej stronie znajduje si schemat elektryczny z ukadem pomiarowym, jaki

zosta zainstalowany na aparacie latajcym GACEK do przeprowadzenia bada w locie. Wszelkie poczenia zostay narysowane w kolorach odpowiadajcych rzeczywistemu okablowaniu. Poszczeglne podzespoy byy zasilane przy uyciu 4 akumulatorw i tak: Rejestrator, czujnik cinienia, yroskopy oraz przyspieszeniomierze byy zasilane stabilizowanym napiciem 5V, Odbiornik sygnaw sterujcych wychylaniem powierzchni sterowych oraz przetworniki cyfrowo/analogowe zasilane byy z akumulatora RC. Kady silnik posiada osobne rdo zasilania. Istotnym elementem ukadu pomiarowego jest wsplna masa dla wszystkich kanaw rejestratora.

78

79

4.6. Konfiguracja rejestratora Przygotowanie rejestratora do pracy wymaga zaprogramowania pracy rejestratora na kartach pamici, na ktrych rejestrator zapisuje wszystkie sygnay. Do zapisu konfiguracji wykorzystujemy program PRP-J5. Po uruchomieniu programu w gwnym oknie wciskajc przycisk F2, lub w menu recorder setup wybierajc polecenie config, uzyskujemy dostp do okna konfiguracyjnego (rys. 4.11). Okno konfiguracyjne zawiera wykaz wszystkich 24 kanaw, i szczegowe ustawienia dla kadego z nich. Mona w nim zmienia takie parametry jak krok dyskretyzacji, wzmocnienie czy jednostk pomiarow. W programie jest moliwo wyczenia kadego kanau. Wyczajc kanay, do ktrych nie s podpite adne sygnay, mona zarejestrowa wiksz ilo danych. Jest to przydatna opcja z uwagi na niedue pojemnoci kart pamici, na ktrych s zapisywane dane.

Rys. 4.11 Widok okna konfiguracyjnego programu PRP-J5

80

Po wskazaniu docelowego dysku MMC, mona okreli rozmiar bufora pamici przeznaczonego do zapisu File size (rys. 4.12), ktry moe by mniejszy od cakowitej pojemnoci pamici.

Rys. 4.12 Okno deklarowania rozmiaru pamici.

Podczas bada w locie rejestrowanych byo 14 sygnaw. Tabela 4.5 zawiera ich wykaz, oraz numery kanaw rejestratora do ktrych zostay one podczone.

Tabela 4.5 Przyporzdkowanie sygnaw wejciowych do kanaw rejestratora.

Przechylania - x Prdkoci ktowe Pochylania - y Odchylania z na osi Y - ay Przyspieszenia na osi Z - az na osi X - ax Wychylenie lotki lewej LL Wychylenie lotki prawej LP Wychylenie steru kierunku K Wychylenie steru wysokoci - H UZ PS

Kana 2 Kana 3 Kana 4 Kana 5 Kana 6 i 7 Kana 8 Kana 10 Kana 11 Kana 12 Kana 13 Kana 1 Kana 15

Wychylenia powierzchni sterowych

Napicie zasilania Cinienie

81

4.7. Wyznaczenie wspczynnikw wychylenia powierzchni sterowych. Rejestrator przetwarza napiciowe sygnay sterujce na warto liczbow

z rozdzielczoci, dla ktrej napicie 3V jest rejestrowane jako liczba 4096. Do analizy danych zgromadzonych podczas prb w locie niezbdna jest wiedza o wychyleniu powierzchni sterowych. Aby z zarejestrowanych danych uzyska takie informacje, zostaa wykonana kalibracja. W tym celu korzystajc z programu PRP-J5 w trybie TEST on line zostay zarejestrowane wartoci odpowiadajce maksymalnym wychyleniom powierzchni sterowych. Dane te s przedstawione w tabeli 4.6.

Tabela 4.6 Przyporzdkowanie zmiennych wejciowych do kanaw rejestratora..

Wychylenie powierzchni sterowej lewa lotka prawa lotka ster kierunku ster h Max. w d 2350 Max. w d 270 W prawo 280 Max. w d 270 neutrum 1550 neutrum 1380 neutrum 1360 neutrum 1400 Max. w gre 250 Max. w gre 2330 W lewo 2340 Max. w gre 2340

Kana 10 11 12 13

Dobrane wzmocnienie podczas konfiguracji jest odpowiednie dla zakresu pomiarowego rejestratora. Stwierdzi to mona po przeskalowaniu zarejestrowanych podczas kalibracji wartoci granicznych na napicia, ktre dla maksymalnych wychyle powierzchni sterowych wynosz: okoo 0,2V minimalne, okoo 1,7 V maksymalne. Z tabeli 4.6 wynika ponadto, e symetryczno wychylania si powierzchni sterowych lotek nie jest zachowana. Uzyskanie idealnej pracy lotek jest jednak bardzo trudne. Wynika to zarwno ze strony budowy ukadu elektrycznego jak i mechanicznego, sterujcymi wychylaniem lotek.

82

5. Wykonanie prb w locie i analiza uzyskanych danych


Gwnym celem prb w locie byo zgromadzenie danych na podstawie, ktrych mona wyznaczy charakterystyki dynamiczne obiektu dla przechylania, pochylania i odchylania. Poznanie tych waciwoci aparatu latajcego, pozwala na wykonanie bazy regu a dalej na dostrojenie regulatora rozmytego i w rezultacie jego efektywniejsz prac. 5.1. Organizacja prby w locie Podstawowym dokumentem okrelajcym zakres oraz metodyk bada jest Program prb w locie. Opracowany program zawiera wykaz czynnoci do wykonania w trakcie prb. Czynnoci te zostay podzielone na 3 etapy. Poniej znajduje si szczegowy opis zaplanowanych czynnoci dla poszczeglnych etapw prb w locie: 1. Przygotowanie do startu a) Zoenie modelu PR-2 GACEK, b) Wczenie rejestratora, c) Test aparatury sterujcej, 2. Oszacowanie prdkoci i wysokoci lotu. a) Istotnym parametrem lotu jest prdko. W celu oszacowania prdkoci zosta wyznaczony odcinek pomiarowy. Zadaniem pilota by przelot wzdu wyznaczonego odcinka, w dwch kierunkach. Znajc czas przelotu w obie strony oraz dugo wyznaczonego odcinka, zostaa oszacowana rednia prdko lotu. b) Wysoko lotu zostaa oszacowana, poprzez przelot obok punktu odniesienia o znanej wysokoci. 3. Rejestracja procesw po wytrceniu samolotu ze stanu rwnowagi poprzez: a) Wychylenie steru wysokoci, W locie poziomym wykona: impulsowe wychylenie steru wysokoci w gr impulsowe wychylenie steru wysokoci w d skok jednostkowy sterem wysokoci w gr skok jednostkowy sterem wysokoci w d b) wychylenie lotek, W locie poziomym wykona:

83

impulsowe przechylenie w prawo impulsowe przechylenie w lewo c) wychylenie steru kierunku, Dane na temat oddziaywania wychylenia tej powierzchni sterowej uzyskane zostay w wyniku wykonywania zada z podpunktw a) i b). Pilot po kadym wykonanym zadaniu wykonywa marker, ktrym umownie byo wychylenie steru kierunku. Dokumentacja z przeprowadzonych prb znajduje si w dodatku H. 5.2. Przetworzenie danych Pierwszy lot Gackiem z uyciem rejestratora PRP-JP odby si dnia 13.05.08. W czasie tego lotu zamontowany na pokadzie naszego modelu rejestrator zarejestrowa 6 minut lotu. Po wstpnej analizie danych okazao si, e wpyw rnego rodzaju zakce jest na tyle duy, e niezbdne bdzie wykonanie odpowiedniej obrbki zarejestrowanych sygnaw. Do tego celu posuy program MATHCAD 14. Pierwszym krokiem byo wczytanie zarejestrowanych danych do programu, w tym celu z karty pamici zosta skopiowany plik z danymi i przetworzony do formatu z rozszerzeniem txt. Po wpisaniu odpowiedniej komendy w programie MATHCAD (rys 5.1) dane zostay zaadowane do 14 kolumn, z ktrych kada odpowiadaa jednemu rejestrowanemu parametrowi.

Rys. 5.1 Okno programu Mathcad wczytanie danych.

84

W celu atwiejszej analizy lotu, uzyskane wykresy zostay wygadzone poprzez urednianie wartoci. Efekt obrbki jest widoczny na rysunkach od 5.2 do 5.5.

Rys. 5.2 Wykres wychylenia steru kierunku w funkcji czasu.

Na rysunku 5.2 kolorem czerwonym przedstawiono surowe dane wychylenia steru kierunku z wykonanych bada w locie. Kolorem czarnym zobrazowano wygadzony sygna wychylenia steru kierunku. Mona zauway, e skadowa sygnau surowego o wysokiej czstotliwoci to zakcenia. Wygadzenie uzyskanych danych precyzyjniej odzwierciedla charakter rzeczywistego sygnau.

Rys. 5.3 Wykres wychylenia lotki prawej w funkcji czasu.

85

Rys. 5.4 Wykres wychylenia lotki lewej w funkcji czasu.

Rys. 5.5 Wykres wychylenia steru gbokoci w funkcji czasu.

Wygadzone przebiegi czasowe sygnaw sterujcych wychylaniem powierzchni sterowych dokadniej pokazuj oddziaywania aparatu latajcego na zadane wymuszenia pilota. Biorc pod uwag fakt, e kady z rysunkw 5.2, 5.3, 5.4, 5.5 przedstawia okoo 25 - cio s lotki. sekundowy fragment lotu, da si zauway, e sygnaem sterujcym o najwikszej dynamice s wymuszenia w kanale przechylania, za ktry odpowiedzialne

86

5.3. Przygotowanie danych do budowy bazy regu. Do wykonania bazy regu potrzebna jest wiedza na temat oddziaywania wychyle powierzchni sterowych na aparat latajcy GACEK,. W czasie lotu badany obiekt zmienia swoje pooenie w wyniku sterowania przez pilota jak i wpywu zaburze atmosfery. Zaburzenia ruchu spowodowane wiatrem wystpoway, kiedy pojawiaa si prdko ktowa, a wychylanie powierzchni sterowych w tym samym czasie byo zerowe, bd nieznaczne. Takie fragmenty lotu naleao pomin podczas analizy uzyskanych wynikw. Z zarejestrowanych danych zostay wybrane fragmenty lotu w czasie, ktrych w wyniku wychylania powierzchni sterowych pojawiay si prdkoci ktowe. Na podstawie tych danych zostay wyznaczone parametry okrelajce dynamik aparatu latajcego. Znajomo wartoci tych parametrw jest niezbdna do dostrojenia regulatora. 5.3.1. Wyznaczenie wspczynnikw dla pochylania.

Z pord zarejestrowanych danych, do wyznaczenia wspczynnikw okrelajcych waciwoci dynamiczne aparatu latajcego w kanale pochylenia, zostay wybrane 2 fragmenty lotu. S one przedstawione na rysunkach 5.6 oraz 5.7.

Rys. 5.6 Odpowied BAL na wychylenie steru kierunku.

87

Rys. 5.7 Odpowied BAL na wychylenie steru kierunku.

Wpyw na ruch badanego obiektu w kanale pochylania mog mie nie tylko powierzchnie sterowe steru gbokoci, ale take lotki i ster kierunku. Dlatego powysze wykresy zawieraj przebiegi czterech wielkoci: Wychylenie steru gbokoci h, Wychylenie steru kierunku K, Wychylenie lewej lotki LL, Prdko ktow pochylania q. Na wykresach nie zostao przedstawione wychylenie lotki prawej. A to dlatego, e dziaa ona symetrycznie do wychylenia lotki lewej. Zatem wystarczajc informacj jest wychylenie jednej z lotek. Na wybranych fragmentach lotu widoczne jest wychylenie tylko steru gbokoci, co oznacza, e wystpujca prdko ktowa przechylania jest odpowiedzi obiektu na wymuszenie bdce wychyleniem steru gbokoci. Uwzgldniajc, e prdkoci ktowe zawieraj zakcenia spowodowane zaburzeniami atmosfery zaoono, e model samolotu w ruchu pochylania mona przybliy ukadem inercyjnym pierwszego rzdu. Do wyznaczenia parametrw okrelajcych dynamik obiektu w ruchu pochylania posuy program MATLAB. Po wczytaniu do programu danych, jakimi byy wychylenie steru gbokoci oraz prdko pochylania, zosta stworzony ukad przedstawiony na rysunku 5.8.

88

Ukad inercyjny I rzdu

Rys. 5.8 Schemat ukadu do wyznaczenia parametrw dynamicznych dla kanau pochylania.

Ukad ten generowa wykres przedstawiajcy: Wychylenie steru gbokoci, Prdko ktow pochylania, Odpowied ukadu inercyjnego pierwszego rzdu na wymuszenie bdce wychyleniem steru gbokoci. Ukad inercyjny pierwszego rzdu przybliajcy model samolotu w ruchu pochylania jest okrelony dwoma parametrami: sta czasow T oraz wzmocnieniem k. Uzyskanie parametrw opisujcych dynamik badanego obiektu sprowadza si do wyznaczenia tych dwch parametrw w taki sposb, aby odpowied ukadu inercyjnego na wychylenie steru gbokoci bya jak najblisza rzeczywistej odpowiedzi na to wymuszenie tj. prdkoci ktowej pochylania. Pocztkowo staej czasowej przypisano warto T= 0.01, a wzmocnieniu warto k=1, po czym przeprowadzona zostaa symulacja. Wynik symulacji jest przedstawiony na rysunku 5.9.

Rys. 5.9 Przebiegi czasowe h, q i odpowied modelu.

89

Na powyszym wykresie wida, e ustawione pocztkowo wartoci parametrw T i k nie s najlepsze. Stosujc metod prb i bdw wygenerowany zosta wykres (rys. 5.10) na podstawie, ktrego mona stwierdzi, e dobrane wartoci staej czasowej i wzmocnienia dobrze okrelaj dynamik badanego obiektu.

Rys. 5.10 Przebiegi czasowe h, q i odpowied modelu.

Uzyskane na podstawie powyszego wykresu wartoci wzmocnienia i staej czasowej wynosz: k = 1 oraz T = 0.05. Dla drugiego z wybranych fragmentw lotu przedstawionego na rys. 5.7, w analogiczny sposb jak to zostao pokazane wyej, zostay wyznaczone nowe parametry wzmocnienia i staej czasowej. Wynosiy one: k = 1.1 oraz T = 0.04, a wykres na podstawie, ktrego parametry zmiennych zostay uznane jako najodpowiedniejsze jest pokazany na rysunku 5.11.

Rys. 5.11 Przebiegi czasowe h, q i odpowied modelu.

90

Porwnujc uzyskane wartoci zmiennych opisujcych dynamik obiektu w ruchu pochylania dla dwch przypadkw wznoszenia (wychylenie steru gbokoci w gr). Przyjmujemy urednione wartoci wzmocnienia i staej czasowej, ktre odpowiednio wynosz: k = 1.05 oraz T = 0.045. Zachowanie BAL w czasie wznoszenia i opadania moe si jednak rni. Dlatego na trzecim z wybranych fragmentw lotu, wymuszeniem jest wychylenie steru gbokoci w d. Postpujc analogicznie jak poprzednio na podstawie wykresu pokazanego na rysunku 5.12 uzyskane zostay nastpujce wyniki k = 0.6 oraz T = 0.05.

Rys. 5.12 Przebiegi czasowe h, q i odpowied modelu.

Czas, w ktrym wykorzystane fragmenty lotu do wyznaczenia dynamiki obiektu wystpiy, odpowiadaj etapowi prb w locie w czasie, ktrego pilot wykonywa zadania zwizane z badaniem reakcji BAL-u na wymuszenia w kanale pochylenia. W tabeli 5.1 s przedstawione wyniki uzyskanych wartoci parametrw opisujcych dynamik GACKA z wybranych fragmentw lotu.
Tabela 5.1 Wyniki uzyskanych parametrw okrelajcych model samolotu.

Wznoszenie Sta czasowa T Wzmocnienie k 0.05 1 0.04 1.1

Opadanie 0.05 0.6

91

Uzyskane stae czasowe zarwno dla wznoszenia jak i opadania s bardzo zblione do siebie. Wzmocnienie natomiast w przypadku wznoszenia rni si od wzmocnienia wyznaczonego w przypadku opadania o okoo 40%.

5.3.2.

Wyznaczenie wspczynnikw dla przechylania. W czasie bada w locie zostay wykonane wszystkie z zaplanowanych zada. Niestety

z przyczyn technicznych etap, w ktrym byy wykonywane zadania zwizane z wytrcaniem samolotu ze stanu rwnowagi poprzez wychylanie lotek nie zosta zarejestrowany. W czasie analizy danych, jakimi dysponowalimy udao si wyodrbni fragmenty na podstawie, ktrych moliwe byo wyznaczenie parametrw okrelajcych model aparatu latajcego w kanale przechylania. Na podstawie wybranych fragmentw (rys. 5.14, 5.16 i 5.18) przyjto, e model samolotu w ruchu przechylania mona przybliy ukadem inercyjnym pierwszego rzdu. Zatem tok postpowania jest identyczny jak w punkcie 5.3.1 gdzie zostao przedstawione uzyskanie wartoci okrelajcych model aparatu latajcego. Kolejno zostay wykonane: Wczytanie danych, Zbudowanie ukadu (rys.5.13), Przeprowadzenie symulacji.
Ukad inercyjny I rzdu

Rys. 5.13 Schemat ukadu do wyznaczenia parametrw dynamicznych dla kanau przechylania.

Pierwszy z wybranych fragmentw jest przedstawiony na rysunku 5.14, wymuszenie bdce wychyleniem lewej lotki w tym przypadku powoduje przechylenie GACKA na prawe skrzydo. Na wykresie widoczne jest rwnie nieznaczne wychylenie steru gbokoci, co moe powodowa zafaszowanie odpowiedzi na wymuszenie. W wyniku przeprowadzonej symulacji zosta wygenerowany wykres (rys. 5.15), na ktrym jest przedstawione wychylenie

92

lotki, odpowied badanego obiektu oraz odpowied ukadu inercyjnego pierwszego rzdu. Wspczynniki, dla jakich uzyskana zostaa odpowied ukadu inercyjnego maj wartoci: Wzmocnienie k = 2.7, Staa czasowa T = 0.04.

Rys. 5.14 Odpowied BAL na wychylenie lotki.

Rys. 5.15 Przebiegi czasowe LL,, p i odpowied modelu.

Aby sprawdzi jak aparat latajcy zachowuje si w trakcie przechylania na lewe skrzydo, zostay wybrane dwa fragmenty lotu, na ktrych widoczne jest wymuszenie 93

powodujce przechylenie aparatu latajcego na lewe skrzydo. Poniej na rysunku 5.16 przedstawiony jest pierwszy fragment.

Rys. 5.16 Odpowied BAL na wychylenie lotki..

Parametry opisujce model w ruchu przechylania, na podstawie danych z rysunku 5.16, zostay wyznaczone w wyniku uzyskania odpowiedzi ukadu inercyjnego I rzdu, przedstawionej na rys. 5.17. Wspczynniki, dla jakich uzyskana zostaa odpowied ukadu inercyjnego maj wartoci: Wzmocnienie k = 2.7, Staa czasowa T = 0.05.

Rys. 5.17 Przebiegi czasowe LL,, p i odpowied modelu.

94

Rysunek 5.18 przedstawia drugi z wybranych fragmentw lotu.

Rys. 5.18 Odpowied BAL na wychylenie lotki.

Parametry opisujce model w ruchu przechylania, na podstawie danych z rysunku 5.18, zostay wyznaczone w wyniku uzyskania odpowiedzi ukadu inercyjnego I rzdu, przedstawionej na rys. 5.19. Wspczynniki, dla jakich uzyskana zostaa odpowied ukadu inercyjnego maj wartoci: Wzmocnienie k = 2.8, Staa czasowa T = 0.07.

Rys. 5.19 Przebiegi czasowe LL,,p i odpowied modelu.

95

W tabeli 5.2 s przedstawione wyniki uzyskanych wartoci parametrw opisujcych dynamik GACKA z wybranych fragmentw lotu dla przechylania.
Tabela 5.2 Wyniki uzyskanych parametrw okrelajcych model samolotu.

Przechylenie na lewe skrzydo Sta czasowa T Wzmocnienie k 0.05 2.7 0.07 2.8

Przechylenie na lewe skrzydo 0.04 2.7

Uzyskane stae czasowe oraz wzmocnienia opisujce model, zarwno dla ruchu przechylania w lewo jak i w prawo, maj wartoci bardzo zblione do siebie. wiadczy to o symetrii aparatu latajcego w przechylaniu. Wasno ta powoduje, e opracowywany algorytm na stabilizacj kta przechylenia bdzie jednakowy niezalenie od kierunku przechylania. Niesymetria BAL-u w ruchu przechylania dodatkowo komplikowaaby utworzenie struktury regulatora. 5.3.3. Wyznaczenie wspczynnikw dla odchylania W czasie prb w locie wykonywane manewry zwizane z wytrcaniem samolotu ze stanu rwnowagi poprzez wychylanie steru kierunku rwnie nie zostay zarejestrowane. Do uzyskania przyblionego modelu w ruchu odchylania BAL-u posuono si danymi z fragmentw lotu, w czasie ktrych wykonywane byy markery.

Rys. 5.20 Odpowied BAL na wychylenie steru kierunku.

96

Rys. 5.21 Odpowied BAL na wychylenie steru kierunku.

Rysunek 5.20 przedstawia pojedyncze wychylenie steru kierunku, a na rysunku 5.21 jest widoczne dwukierunkowe wychylenie. W obu zaprezentowanych przykadach odpowied Gaceka w postaci prdkoci ktowej odchylania ma charakter oscylacyjny [12]. Na podstawie tej wasnoci zosta zbudowany ukad do wyznaczenia parametrw okrelajcych dynamik samolotu w kanale odchylania (rys. 5.13).

Rys. 5.13 Schemat ukadu do wyznaczenia parametrw dynamicznych dla kanau odchylania.

W wyniku wielokrotnego doboru parametrw opisujcych dynamik ruchu przechylania aparatu latajcego zostay uzyskane nastpujce wyniki. Tabela 5.3 Wyniki uzyskanych parametrw okrelajcych model samolotu. parametr k T d T1 97 Na podstawie rys. 5.14 0.2 0.18 0.075 0.35 Na podstawie rys. 5.15 0.185 0.185 0.32 0.58

Rys. 5.14 Przebiegi czasowe K,,r i odpowied modelu.

Rys. 5.15 Przebiegi czasowe K,,r i odpowied modelu.

Wyznaczone wspczynniki okrelajce dynamik obiektu naley traktowa jako dane wymagajce dalszej weryfikacji. Okrelenie tych wspczynnikw wymaga przeprowadzenia dokadniejszych i w wikszej iloci bada. W naszym przypadku dysponowalimy niewielk iloci danych pomiarowych, na podstawie ktrych byoby moliwe peniejsze i wierniejsze rozpoznanie obiektu.

98

6. Rozmyty ukad stabilizowania aparatu bezzaogowego GACEK Projekt waciwy regulatora rozmytego docelowo przewidziano jako rzeczywisty ukad rdzenia autopilota modu do stabilizacji ktw przechylenia i pochylenia samolotu. Tworzony ukad ma zawiera pi sygnaw wejciowych: z dwch yroskopw dla prdkoci ktowych p i q, dwa sygnay sterujce: ster wysokoci dh i lotki dL, sygna z rnicowego przetwornika cinienia (pomiar prdkoci lotu) oraz dwa wyjcia sygnaowe do sterowania mechanizmami wykonawczymi lotek i steru wysokoci. Realizacj projektu waciwego regulatora rozmytego do stabilizacji ktw przechylenia i pochylenia samolotu przewidziano na mikroprocesorze rodziny Silicon Laboratories C8051F020. W celu uzyskania rdzenia algorytmu regulatora rozmytego posuono si programem fuzzyTECH 5.31. Przypisanie i obsug wej/wyj mikroprocesora napisano w programie Keil uVision2 przy pomocy programu: Configuration Wizard 2. Do zapisu i debuggingu uzyskanego algorytmu regulator rozmytego na mikroprocesor wykorzystano program Silicon Laboratories IDE. 6.1 Wymagania dotyczce ukadw sterowania obiektami autonomicznymi. Rnorodno obiektw i ich waciwoci nie pozwalaj na wypracowanie uniwersalnej formuy sterowania, jednak moliwe jest wyonienie wsplnych atrybutw. Utrzymanie (stabilizacja) okrelonej orientacji przestrzennej obiektu odniesiona do zmiennej, jak jest czas, pozwala wyodrbni charakterystyczne fazy sterowania: ustatecznianie (sterowanie w krtkim przedziale czasowym) jest warunkiem precyzyjnego utrzymania obiektu na trajektorii. Zdefiniowanie wasnoci moe by zwizane z odpowiedzi na skokowe impulsy sterowania. Przyporzdkowa tutaj mona nastpujce parametry: czuo sterowania pocztkowe przyspieszenie ktowe na jednostk impulsu sterowania; czuo odpowiedzi prdkoci ktowej ustalona, odpowiadajca stanowi rwnowagi, kocowa prdko ktowa wynikajca z jednostki impulsu sterowania; staa czasowa odcinek czasu do osignicia przez odpowied pewnej czci stanu ustalonego;

99

opnienie czasowe odcinek czasu do momentu pojawienia si dajcej si zmierzy odpowiedzi; przesterowanie stosunek kolejnych wartoci szczytowych w czasie oscylacyjnego przebiegu odpowiedzi, prowadzenie (sterowanie prdkoci i pooeniem w rednim czasie) inaczej pilotowanie nakada na ukad sterowania funkcj manewrowania, np. omijania przeszkd i adaptacji parametrw sterowania. Prowadzenie moliwe jest przy opanowanej niestatecznoci, czyli pozytywnym spenieniu warunkw ustateczniania, nawigowanie (sterowanie kursem i wysokoci w dugim czasie) polega na okreleniu gdzie aktualnie obiekt si znajduje oraz gdzie jest cel, czyli wyznaczony punkt toru i przeprowadzenie obiektu do celu. Nawigowanie dotyczy prowadzenia obiektu, gdy pozytywnie spenione s warunki ustateczniania i prowadzenia. Dla obiektw okrelanych mianem autonomicznych trudnoci w spenieniu powyszych warunkw mog ksztatowa si rnie, np. ustatecznianie aparatu latajcego wymaga cigych korekt powierzchniami sterowymi dla zapewnienia utrzymania si na zadanym torze. 6.2 Projekt regulatora rozmytego dL_dh_30 W programie fuzzyTECH 5.31 zosta utworzony projekt dL_dh_30 regulatora rozmytego do stabilizowania ktw pochylenia i przechylenia samolotu (rys .6.1).

Rys 6.1 Schemat projektu dL_dh_30

100

Zaoenia projektu dL_dh_30: a) dysponujemy picioma sygnaami wejciowymi: przyspieszeniem liniowym ax mierzonym poprzez przyspieszeniomierz wzdu osi podunej samolotu (alternatywnie yroskop mierzcy prdko ktow q pochylania), wychyleniem steru wysokoci dh zadanym przez pilota lub ustawionym na potencjometrze (symulujcym sygna nakazowy dh), przyspieszeniem liniowym ay mierzonym poprzez przyspieszeniomierz wzdu prawego skrzyda (alternatywnie yroskop mierzcy prdko ktow p przechylania), wychyleniem steru lotek dL zadanym przez pilota lub ustawionym na potencjometrze (symulujcym sygna nakazowy dL), prdkoci lotu U mierzon za pomoc czujnika cinienia lub z potencjometru (symulujcego prdko), b) otrzymujemy dwa sygnay wyjciowe: dh_wy ksztatujcy PWM sterujcy serwomechanizmami steru wysokoci, dL_wy ksztatujcy PWM sterujcy serwomechanizmem lotek, c) praca regulatora polega na generowaniu sygnaw wyjciowych dh_wy i dL_wy tak, aby: warto przyspieszenia ax i ay, dla zerowych wychyle sterw dh i dL, wynosia 0[g] ma to na celu stabilizowanie zerowego pochylenia i przechylenia samolotu w locie poziomym, warto prdkoci ktowych pochylania q i przechylania p, dla zerowych wychyle sterw dh i dL, wynosiy 0[rad/s] ma to na celu tumienie prdkoci ktowych niewynikajcych ze sterowania samolotem (punk ten odnosi si do sytuacji, gdy przyspieszeniomierze ax i ay zostan zastpione yroskopami q i p). dh_wy byo rwne dh i dL_wy buo rwne dL w przypadku, gdy dh i dL s niezerowe, wychylenia dh_wy i dL_wy byy proporcjonalne do prdkoci lotu U. W opcjach projektu regulatora rozmytego zosta wybrany 8-bitowy typ zmiennych. Na rysunku 6.2 i 6.3 znajduj si funkcje przynalenoci zmiennych wejciowych regulatora dL_dh_30 dla kanau pochylania, tj. dla przyspieszenia liniowego ax mierzcego wzdu osi lotu i dla sygnau nakazowego dh.

101

Rys.6.2 funkcje przynalenoci wejcia ax.

Rys. 6.3 funkcje przynalenoci wejcia dh.

Poniej, na rysunku 6.4 i 6.5, znajduj si funkcje przynalenoci zmiennych wejciowych regulatora dL_dh_30 dla kanau przechylania, tj. dla przyspieszeniomierza liniowego ay i dla sygnau nakazowego dL.

Rys. 6.4 funkcje przynalenoci wejcia ay.

Rys. 6.5 funkcje przynalenoci wejcia dL.

102

Wejcia przyspieszeniomierzy i sygnaw sterujcych maj po trzy funkcje przynalenoci, z ktrych rodkowe s trapezowe. Trapezowe funkcje przynalenoci dla wej przyspieszeniomierzy maj za zadanie wprowadzenie tzw. luzu, ktry w pracy regulatora wprowadza nieczuo na niewielkie odchyki wartoci przyspiesze od 0[g] i tym samym praca regulatora jest agodniejsza, z lekkimi odchykami. Trapezowe funkcje przynalenoci dla wej sygnaw sterujcych maj za zadanie zwikszenie zakresu zasadniczej pracy regulatora, gdy projekt dL_dh_30 zakada, e niezerowe sygnay sterujce wywouj proporcjonalne wartoci sygnay wyjciowych niezalenie od wartoci sygnaw przyspieszeniomierzy. Zmienna wejcia prdkoci lotu ma dwie funkcje przynalenoci (rys. 6.6).

Rys.6.6 Funkcje przynalenoci wejcia prdkoci lotu U

Zmienne wyjciowe dh_wy i dL_wy (rys. 6.7 i 6.8) posiadaj po pi funkcji przynalenoci. Ilo funkcji przynalenoci uwarunkowana jest wprowadzaniem zmian pracy regulatora w zalenoci od prdkoci lotu dla maych prdkoci lotu przewidziane s due wychylenia sterw, dla duych prdkoci lotu przewidziane s mae wychylenia sterw.

Rys. 6.7 funkcje przynalenoci wyjcia dh_wy

103

Rys. 6.8 funkcje przynalenoci wyjcia dL_wy

Algorytm regulatora dL_dh_30 dla kanau pochylania znajduje si w Tabeli 6.1. Algorytm regulatora dL_dh_30 dla kanau przechylania znajduje si w Tabeli 6.2. Tabele te zawieraj reguy dla wszystkich moliwych kombinacji wej. Wszystkie reguy maj taki sam stopie wagi regu rwny 1.
Tabela 6.1 Reguy kanau pochylania

104

Tabela 6.2 Regu kanau przechylania

Poniej, na rysunkach 6.9 i 6.10, znajduj si paty powierzchniowe regulatora rozmytego dL_dh_30 kanau pochylania dla minimalnej i maksymalnej prdkoci lotu. Minimalnej prdkoci lotu (30 km/h) odpowiada warto 0 na wejciu U regulatora, a maksymalnej prdkoci lotu (80 km/h) odpowiada warto 255 na wejciu U regulatora..

Rys.6.9 Pat powierzchniowy kanau pochylania dla U = 0.

105

Rys. 6.10 Pat powierzchniowy kanau pochylania dla U = 255. Poniej, na rysunku 6.11 i 6.12, znajduj si paty powierzchniowy regulatora rozmytego dL_dh_30 kanau przechylania dla minimalnej i maksymalnej prdkoci lotu.

Rys. 6.11 Pat powierzchniowy kanau przechylania dla U = 0.

Rys. 6.12 Pat powierzchniowy kanau pochylania dla U = 255. 106

Dla regulatora rozmytego dL_dh_30 wygenerowano przebiegi czasowe dla kanau pochylania (rys. 6.13) i przechylania (rys. 6.14). Zostay na nich zaprezentowane podstawowe stany wej i odpowiedzi wyj.

Rys. 6.13 Przebiegi czasowe dla kanau pochylania.

Rys. 6.14 Przebiegi czasowe dla kanau pochylania. Z powyszych przebiegw czasowych wida, e: wartoci sygnaw wyjciowych s: due dla maych prdkoci lotu i mae dla duych, dodatnie (ujemne) zmiany sygnaw sterujcych wywouj dodatnie (ujemne) zmiany sygnaw wyjciowych, dodatnie (ujemne) zmiany sygnaw z przyspieszeniomierzy wywouj ujemne (dodatnie) zmiany sygnaw wyjciowych, dla niezerowych sygnaw sterujcych zmienne wyjciowe zale od sygnaw z przyspieszeniomierzy niezgodne z zaoeniami projektu dL_dh_30. Po uzyskaniu powyszych wynikw przystpiono do wprowadzania zmian w regulatorze rozmytym. Na pocztku przystpiono do optymalizacji tabeli regu. W tabeli 6.1 wprowadzono zmiany majce na celu odseparowanie wpywu sygnaw z przyspieszeniomierzy przy sterowaniu samolotem sygnaami nakazowymi. W efekcie uzyskano Tabel regu 6.3. Analogicznie postpiono z Tabel 6.2, z ktrej uzyskano Tabel 6.4.

107

Tabela 6.3 Zoptymalizowane reguy dla kanau pochylania

Tabela 6.4. Zoptymalizowane reguy dla kanau przechylania

Dla regulatora rozmytego o zmienionej tabeli regu ponownie wygenerowano paty powierzchniowe i przebiegi czasowe. Na ry. 6.15 znajduje si pat powierzchniowy kanau pochylania dla prdkoci U = 0 na rys. 6.16 znajduje si pat powierzchniowy kanau przechylania dla prdkoci U = 0.

Rys. 6.15 Pat powierzchniowy dla kanau pochylania U = 0

108

Rys. 6.16 Pat powierzchniowy dla kanau przechylania U = 0

Na rysunku znajduj si przebiegi czasowe regulatora rozmytego, ktrego sterowanie opisuje Tabela regu 6.3.

Rys. 6.17 Przebiegi czasowe regulatora dL_dh_30.

Z powyszych przebiegw czasowych wida, e: wartoci sygnaw wyjciowych s: due dla maych prdkoci lotu i mae dla duych, dodatnie (ujemne) zmiany sygnaw sterujcych wywouj dodatnie (ujemne) zmiany sygnaw wyjciowych, dodatnie (ujemne) zmiany sygnaw z przyspieszeniomierzy wywouj ujemne (dodatnie) zmiany sygnaw wyjciowych, dla niezerowych sygnaw sterujcych zmienne wyjciowe zale od sygnaw z przyspieszeniomierzy niezgodne z zaoeniami projektu dL_dh_30.

Powysze wnioski wiadcz o podobnym charakterze sterowania regulatora rozmytego jak dla wczeniejszych tabel regu.

109

Efektem kompilacji projektu regulatora rozmytego dL_dh_30 s dwa pliki kodu C, ktre znajduj si w tym samym katalogu, co plik utworzonego projektu: a) dL_dh_30.h plik ten zawiera: definicje tabeli zmiennych jako zewntrzna, definicje adresw zmiennych wejciowych/wyjciowej, prototypy: funkcji inicjujcej regulator rozmyty i funkcji regulatora rozmytego, b) dL_dh_30.c plik ten zawiera: odwoanie do pliku biblioteki ftlibc.h, odwoanie do pliku dL_dh_30.h, definicje tablicy zmiennych i tablicy staych, zawarto tablic staych, funkcja dL_dh_30 regulatora rozmytego, funkcja initdL_dh_30 inicjujca regulator rozmyty. Plikami dopeniajcymi algorytm regulatora rozmytego s: biblioteka rejestrw mikroprocesora c8051F020.h, biblioteka logiki rozmytej FTLIBC.h, plik Hf4p.c z funkcj flms, plik Hf2p.c z funkcj flmss, plik Hdcom.c z funkcj com, plik HPUBVARS.c z definicjami typw zmiennych regulatora rozmytego, plik Himmin.c z funkcja iMMin pliki te znajduj si kolejno w dodatkach I, J, K, L, , M oraz N(w dodatkach podane s cieki dostpu do tych plikw). Zawarto plikw dL_dh_30.h i dL_dh_30.c znajduje si w dodatkach O i P. Przeprowadzona analiza projektu dh_dL_30, za pomoc opcji Transfer Plot oraz Time Plot, pokazaa, e projekt nie spenia wstpnych zaoe. W programie fuzzyTECH 5.31 zosta utworzony nowy projekt FT na bazie projektu dh_dL_30. W projekcie tym dokonano zmian w funkcjach przynalenoci wej sygnaw nakazowych oraz w tabelach regu. Przebiegi funkcji przynalenoci zmiennych wejciowych kanau pochylania znajduj si na rys. 6.18 i na rys. 6.19.

Rys. 6.18 Przebieg funkcji przynalenoci zmiennej ax w projekcie FT

110

Rys. 6.19 Przebieg funkcji przynalenoci zmiennej dh w projekcie FT

Przebiegi funkcji przynalenoci zmiennych wejciowych kanau przechylania znajduj si na rys. 6.20 i rys. 6.21. S one analogiczne jak funkcje przynalenoci zmiennych wejciowych kanau pochylania

Rys. 6.20 Przebieg funkcji przynalenoci zmiennej ay w projekcie FT

Rys. 6.21 Przebieg funkcji przynalenoci zmiennej dL w projekcie FT

Funkcje przynalenoci zero zmiennych wejciowych dh i dL odpowiadaj za wyznaczanie zakresu pracy automatycznego tumienia niepodanych stanw samolotu odpowiednio w ruchu pochylania i ruchu przechylania. Regulator rozmyty FT uwzgldnia stany przyspieszeniomierzy ax i ay, wtedy i tylko wtedy, gdy zmienne wejciowe sygnaw nakazowych chocia w czci przynale do funkcji zero.

111

Funkcje przynalenoci zmiennych regulatora rozmytego w projekcie FT: prdkoci lotu U, wyjciowego wychylenia steru wysokoci dh_wy i wyjciowego wychylenia lotek, zostay takie same jak w projekcie dh_dL_30 (na rysunkach 6.22, rys. 6.23 i 6.23 przedstawiono ich ksztat).

Rys. 6.22 Przebieg funkcji przynalenoci zmiennej U w projekcie FT.

Rys. 6.23 przebieg funkcji przynalenoci zmiennej dh_wy w projekcie FT.

Rys. 6.24 Przebieg funkcji przynalenoci zmiennej dL_wy w projekcie FT.

W projekcie regulatora rozmytego FT wprowadzono due zmiany. Tabela regu 6.5 w projekcie FT zostaa utworzona na podstawie Tabeli regu 6.3, a Tabela 6.6 w projekcie FT zostaa utworzona na podstawie Tabeli regu 6.4 z projektu dh_dL_30.

112

Tabela 6.5 Reguy kanau pochylania dla regulatora rozmytego FT.

Tabela 6.6 Regu kanau pochylania dla regulatora rozmytego FT.

Algorytm regulatora rozmytego dla kanau pochylania i przechylania, w tej fazie projektu, jest taki sam. Skada si on z dziewiciu regu: 1 Sygna nakazowy ujemny wychyl ster duo ujemnie (Dminus dh_wy i dL_wy odpowiada wychyleniu minus dh i dL), 2 Sygna nakazowy dodatni wychyl ster duo dodatni (Dplus dh_wy i dL_wy odpowiada wychyleniu plus dh i dL), 3 Przyspieszeniomierz (yroskop) ujemny, sygna nakazowy zero, prdko lotu maa tum ujemny kt (prdko ktow), wychylenie steru duo dodatnio (duo, gdy maa prdko lotu i mae siy na powierzchniach sterowych), 4 Przyspieszeniomierz (yroskop) zero, sygna nakazowy zero, prdko lotu maa sytuacja dobra, 5 Przyspieszeniomierz (yroskop) dodatni, sygna nakazowy zero, prdko lotu maa tum dodatni kt (prdko ktow), wychylenie steru duo ujemnie,

113

6 Przyspieszeniomierz (yroskop) ujemny, sygna nakazowy zero, prdko lotu dua tum ujemny kt (prdko ktow), wychylenie steru dodatni, 7 Przyspieszeniomierz (yroskop) zero, sygna nakazowy zero, prdko lotu dua sytuacja optymalna, 8 Przyspieszeniomierz (yroskop) dodatni, sygna nakazowy zero, prdko lotu dua tum dodatni kt (prdko ktow), wychylenie steru ujemny, 9 Sygna nakazowy z wychylenie steru zero. Reguy, w ktrych na wejciach wystpuj tylko sygnay nakazowe, maj stopnie przynalenoci 0.1. Jest to w zupenoci wystarczajce do sterowania jeden do jeden sygnaami nakazowymi dh i dL do wyjciowych dh_wy i dL_wy, gdy sygnay nakazowe s niezerowe. Gdy sygnay nakazowe dh i dL s bliskie zeru, wtedy na wychylenie sterw dh_wy i dL_wy maj wpyw wartoci z przyspieszeniomierzy (yroskopw). Przedstawione powyej zmiany w tabelach regu kanau pochylania i kanau przechylania (Tab. 6.5 i Tab. 6.6) powanie zmieniy charakter sterowania regulatora rozmytego. Na rys. 6.25, 6.26, 6.27, 6.28 przedstawiono paty powierzchniowe regulatora dla nowych tabel regu (Tab. 6.5 i Tab. 6.6).

Rys. 6.25 Pat powierzchniowy regulatora rozmytego FT dla kanau pochylania i U = 0.

114

Rys. 6.26 Pat powierzchniowy regulatora rozmytego FT dla kanau pochylania i U = 255.

Rys. 6.27 Pat powierzchniowy regulatora rozmytego FT dla kanau przechylania i U = 0.

Rys. 6.28 Pat powierzchniowy regulatora rozmytego FT dla kanau przechylania i U = 255.

115

Z przedstawionych patw powierzchniowych wynika, e: dla sygnaw nakazowych bliskich zeru wychylenie sterw zalene jest od wartoci przyspieszeniomierzy (yroskopw), niezerowe sygnay sterujce powoduj liniowe wychylenie sterw, wpyw sygnaw z przyspieszeniomierzy (yroskopw) na wychylenie sterw jest wikszy dla mniejszych prdkoci lotu.

Rys. 6.29 Przebiegi czasowe regulatora rozmytego FT dla kanau pochylania.

Rys. 6.30 Przebiegi czasowe regulatora rozmytego FT dla kanau przechylania.

Przebiegi czasowe regulatora rozmytego FT potwierdzaj wnioski uzyskane z patw powierzchniowych regulatora FT.

6.3 Mikroprocesor c8051f020 Realizacj projektu waciwego regulatora rozmytego do stabilizacji ktw przechylenia i pochylenia samolotu przewidziano na mikroprocesorze rodziny Silicon Laboratories C8051F020. Struktura wewntrzna wybranego procesora przedstawiona jest na rys. 6.31.

116

Rys. 6.31 Struktura wewntrzna mikroprocesora C8051F020.

Opis mikroprocesora c8051f020: a) 8-bitowy przetwornik AC szybko dziaania do 500ksps 8 zewntrznych wej programowane wzmocnienie: 4, 2, 1, 0.5 b) 12-bitowy przetwornik AC szybko dziaania do 100ksps 9 wej programowane wzmocnienie: 16, 8, 4, 2, 1, 0.5 c) dwa 12-bitowe przetworniki CA d) dwa analogowe komparatory e) napicie odniesienia f) duej prdkoci rdze C 8051 70% instrukcji wykonywanych w 1-ym lub 2-ch taktach zegarowych wektor 22 przerwa

117

g) pami 4352 Bajt wewntrznych danych RAM (4k + 256) 64k Bajt pamici FLASH h) zegar systemowy wewntrzny oscylator o czstotliwoci taktowania od 2 do 16[MHz] zewntrzny oscylator kwarcowy lub RC i) napicie zasilania 2.7 3.6[V] j) zakres temperetur: -40 do +85[C] k) cyprowe peryferia Programowany 16-bitowy modu 5 moduw Capture/Compare 5 oglnego przeznaczenia 16-bitowych licznikw/Timerw Watch-Dog 6.4 Configuration Wizard 2 funkcje peryferii mikroprocesora Program Configuration Wizard 2 jest produktem firmy Silicons Labolatories. Suy on do pisania funkcji ustawie peryferii mikroprocesorw Silikon Laboratories. W czasie uruchamiania programu zosta wybrany rodzaj mikroprocesora: c8051f020, na ktrym na zosta zapisany algorytm regulatora, a poniej przedstawiono ustawienia peryferii dla tego mikroprocesora.

Rys. 6.32 Okna ustawie portw i zegara systemowego.

Na rys. 6.32 (powyej) po lewej znajduje si okno ustawie portw wejciowy/ wyjciowych mikroprocesora. Na porcie P0 ustawiono dwa wyjcia CX0 (P0.6) i CX1 (P0.7) z moduu PCA, ktre s odpowiedzialne za generowanie sygnau PWM dla

118

serwomechanizmw. Ustawienie CX0 i CX1 na P0.6 i P0.7 odbyo si porednio, tzn. na P0.0-5 ustawiono UART0 i SPI0 (ktre s uywane), a zaznaczenie CX0 i CX1 spowodowao przypisanie ich do P0.6 i P0.7. Zabieg ten wykonano ze wzgldu na fizyczne podczenie serwomechanizmw do portu P0 (P0.6, P07, GND i Vdd poru P0 s pinami bezporednio ssiadujcymi ze sob). Takie podczenie daje moliwo wprowadzenia do algorytmu obsugi komunikacji szeregowej bez dodatkowego przeprogramowywania portw. Na rysunku 6.32 po prawej stronie znajduje si okno ustawie zegara systemowego. Wybrany jest wewntrzny oscylator o czstotliwoci taktowania 16[MHz].

Rys. 6.33 Okna ustawie moduu PCA i napicia odniesienia.

Na rys. 6.34 po lewej znajduje si okno ustawie PCA. Zosta ustawiony on na taktowanie SYSCLK/4. Uaktywniono tutaj flag przerwania od przepenienia licznika moduu PCA. Modu PCA0 i PCA1 zostay ustawiony jako 16-bitowy PWM z wartoci pocztkow E88Fh zapisan w rejestrze Capture/Compare (dajc poziom 1 sygnau PWM przez 1[ms]). Na rys. 6.34 po prawej znajduje si okno ustawie napicia referencyjnego. Uaktywniono wewntrzny generator i wewntrzny bufor napicia referencyjnego. Na rys. 6.35 po lewej znajduje si okno ustawie przetwornika analogowo-cyfrowego ADC1. Zosta on uaktywniony, ustawiony na przetwarzanie z czstotliwoci 2[MHz] oraz ustawiono rozpoczcie przetwarzania AC przy instrukcji AD0BUSY=1. Na rys. 6.35 po prawej znajduje si okno ustawie wektora przerwa. Ustawiono tutaj uaktywnienie wektora przerwa z przerwaniem od moduu PCA.

119

Rys. 6.35 Okna ustawie przetwornika ADC1 i wektora przerwa.

Program Configuration Wizard 2, na podstawie ustawie w prezentowanych oknach generuje plik tekstowy zawierajcy funkcje ustawie peryferii. Zawarto pliku z uzyskanymi funkcji znajduje si w dodatku R. 6.5 Kocowy algorytm regulatora rozmytego dL_dh_30 Po uzyskaniu plikw rdzenia algorytmu regulatora rozmytego z programu fuzzyTECH 5.31 przystpiono do opracowania algorytmu kocowego regulatora rozmytego. Do poczenia i uzupenienia algorytmu regulatora rozmytego posuono si programem Keil uVision2. Przy pomocy programu Configuration Wizard 2 uzyskano funkcje ustawie: portw, napicia referencyjnego, przetwornika analogowo-cyfrowego, przetwornika cyfrowoanalogowego, moduw PCA, zegara systemowego. Poniej znajduje si pierwsza wersja penego algorytmu regulatora rozmytego z komentarzami< >. Naley zaznaczy tutaj, e plikiem wyjciowym procesu tworzenia algorytmu kocowego regulatora rozmytego jest plik dL_dh_30.c. Przedstawiony listing zawarty jest w treci pracy dyplomowej, a nie w dodatkach, ze wzgldu na to, i zosta on utworzony z kilku niezalenych plikw, ktrych kolejno zostaa nadana przez autora wedug zasad programowania w jzyku C. Naley doda, e uzyskany algorytm regulatora rozmytego do sterowania aparatem latajcym jest bardzo nowatorskim rozwizaniem. 120

//------------------------------------------------------------------------// B I B L I O T E K A //------------------------------------------------------------------------#include "c8051f020.h"

<Powysze
"c8051f020.h"

linijki

zostay

napisane

przez

projektanta;

linijka

#include

jest odwoaniem do pliku biblioteki danego typu mikroprocesora. W pliku

tym znajduj si definicje rejestrw mikroprocesora pominicie tego odwoania spowoduje pojawienie si bdw, w kompilacji projektu, odnoszcych si do niezdefiniowanych zmiennych uywanych w dalszej czci projektu.> <Poniej zaczyna si zawarto pliku dL_dh_30.c. Zosta tutaj wstawiony, gdy jest to plik zawierajcy funkcj regulatora rozmytego i przyjto go za plik bazowy.>
/*-----------------------------------------------------------------------*/ /*----------------- fuzzyTECH 5.31 Professional Edition -----------------*/ /*-----------------------------------------------------------------------*/ /*-------------------- Code Generator: C Source Code --------------------*/ /*----------- Code Generation Date: Thu Oct 02 15:33:46 2008 ------------*/ /*----------------------- Fuzzy Logic System: PR1 -----------------------*/ /*-----------------------------------------------------------------------*/ /*------ (c) 1991-1999 INFORM GmbH, Pascalstr. 23, D-52076 Aachen -------*/ /*---- Inform Software Corp., 2001 Midwest Rd., Oak Brook, IL 60523 -----*/ /*-----------------------------------------------------------------------*/ #define PRECOMPILER #define FTLIBC8 //#include "ftlibc.h"

<Linijka #include "ftlibc.h" zostaa zamieniona na komentarz poprzez znaki //, a w zamian za ni wstawiono zawarto pliku ftlibc.h, do ktrego to polecenie si odwoywao. Uczyniono tak z powodu bdu, jaki si pojawia potraktowanie pliku ftlibc.h jako zewntrznego powodowao, e definicja #define FTLIBC8 znajdujca si w pliku dL_dh_30.c powyej odwoania #include "ftlibc.h", nie bya widziana przez plik biblioteki ftlibc.h. Plik biblioteki wymaga okrelenia opcji regulatora (np. 8-bitowy, 16bitowy itp.), ktre znajduje si w pliku dL_dh_30.c, a w ktrym znajduje si odwoanie do pliku biblioteki ftlibc.h powstao zaptlenie, ktre rozwizano sprowadzajc cay algorytm regulatora do jednego pliku. Dowiadczenie projektanta pozwolio natenczas tutaj na takie rozwizanie wydaje si by moliwym inne rozwizanie, z plikami zewntrznymi bdce rozwizaniem lepszym.> <Poniej zaczyna si zawarto pliku biblioteki ftlibc.h, ktr wprowadzono zamiast polecenia #include "ftlibc.h".> 121

/*------------------------------------------------------------*/ /* fuzzyTECH 5.3 C Runtime Library: Header File */ /* (c) 1999 INFORM GmbH, Pascalstr. 23, 52076 Aachen, Germany */ /*------------------------------------------------------------*/ /*************************************************************************\ * Modul $RCSfile: $ * $Revision: $ * $Log: $ \*************************************************************************/ #ifndef __INC_FTLIBC #ifndef FTLIB99C #ifndef FTLIBC8 #ifndef FTLIBC16 #error Use -DFTLIBC16 or -DFTLIBC8 or -DFTLIB99C as compiler command line switch #endif #endif #endif

<Powyej znajduje si algorytm wywietlania bdu w czasie kompilacji, ktry sygnalizuje o niezdefiniowaniu rodzaju regulatora.>
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ /* !!! Please don't change the following lines !!! */ /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ #ifndef __VOIDCONST_DEFINED #ifndef FT_KRC #define VOID void #define CONST const #define FTCALL #else #define VOID #define CONST #define FTCALL #endif #define __VOIDCONST_DEFINED #endif #define FTSTORAGECLASS #define #define #define #define #define #define #define #define #define #define #define #define #define __TRC_STATUS __TRC_MAXSTEP __TRC_STEPWIDTH __TRC_ON __TRC_STP_CNTDWN __TRC_SW_CNTDWN (TrcBuf[0]) (TrcBuf[1]) (TrcBuf[2]) (TrcBuf[3]) (TrcBuf[4]) (TrcBuf[5])

TRC_STOP 0x0000 TRC_STARTING 0x0001 TRC_TRACING 0x0002 TRC_INITWAIT 0x0004 TRC_WAITING 0x0008 TRC_EXT_TRIGGER 0x0010 TRC_FULL 0x0020

#ifdef ONLINE #define PRECOMPILER #define TT_PRJID

122

#define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define

TT_TRCBUF TT_MONITOR TT_4PMBF TT_XCOM TT_TABOFS TT_IONAMES TT_KBM TT_FTLZIP TT_BVRSHELL TT_BVRCODE TT_MBF TT_WEIGHTS TT_STATE TT_ICL TT_FRAT TT_DEFUZ TT_SHAPES TT_INFTYPES TT_RT TT_IO TT_FUZZYS TT_PTRCBUF TT_SIZE FTS_HG FTS_CR FTS_CY FTS_CG

7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

1 2 3 4 5 6

0x0001 0x0002 0x0003 0x0004 0x8000 0x7F00 0x0008 0x0007 0 1 2 3 4 5 6 7 8 9

FTS_MASK_ONLINE FTS_MASK_FTRREV FTS_MASK_DIRTY FTS_MASK_STATE FTS_STATE FTS_NUMIN FTS_DTIO FTS_KBMSIZE FTS_KBMUSED FTS_FTLSIZE FTS_FTLUSED FTS_TRCSIZE FTS_NUMOUT FTS_SIZE

#ifndef __PTAB_DEFINED typedef unsigned char * PTAB; typedef PTAB * PTABTAB; #define __PTAB_DEFINED #endif #endif

<Poniej znajduje si algorytm okrelania typw zmiennych i charakterystycznych wartoci dla regulatora rozmytego 8-bitowego.>
#ifdef FTLIBC8 typedef unsigned char FUZZY; typedef unsigned short LFUZZY; #ifdef PRECOMPILER

123

typedef unsigned long int FLAGS; #else typedef unsigned char FLAGS; #endif #define #define #define #define #define #define #define #define #define #endif MAXDOS DOSSHIFT 7 MAXACPAR ACSHIFT 7 MAXSHAPEPAR SHAPESHIFT MAXFUZZY MAXFUZZYL MAXBVRANGE 0x80 0x80 0x80 7 0xFF 0x00FF 0x00FF

<Poniej znajduje si algorytm okrelania typw zmiennych i charakterystycznych wartoci dla regulatora rozmytego 16-bitowego.>
#ifdef FTLIBC16 typedef unsigned short FUZZY; typedef unsigned long int LFUZZY; #ifdef PRECOMPILER typedef unsigned long int FLAGS; #else typedef unsigned short FLAGS; #endif #define #define #define #define #define #define #define #define #define #endif MAXDOS DOSSHIFT 7 MAXACPAR ACSHIFT 7 MAXSHAPEPAR SHAPESHIFT MAXFUZZY MAXFUZZYL MAXBVRANGE 0x80 0x80 0x80 7 0xFFFF 0x0000FFFF 0xFFFF

<Poniej znajduje si algorytm okrelania typw zmiennych i charakterystycznych wartoci dla regulatora rozmytego typu 99C.>
#ifdef FTLIB99C typedef unsigned char FUZZY; typedef unsigned short LFUZZY; typedef unsigned long int FLAGS; #define MAXFUZZY #define MAXFUZZYL #define MAXBVRANGE #endif typedef typedef typedef typedef typedef typedef unsigned BYTE * unsigned FTUSHORT unsigned FRAT * char 0x3F 0x003F 0x00FF

BYTE; PFTBYTE; short FTUSHORT; * PFTUSHORT; short FRAT; PFRAT;

124

typedef FUZZY * typedef FUZZY *

PFUZZY; PTRACE;

typedef struct tag_FPV { BYTE bTNum; FUZZY crisp; FLAGS invalidflags; PFRAT fratptr; PFUZZY tpptr; PFUZZY fuzptr; PFUZZY pfuzvals; PFUZZY xcomptr; PFUZZY defuzz; PFTBYTE rtptr; #ifdef PRECOMPILER unsigned short * prt; BYTE bPar; PFUZZY wptr; FTUSHORT usNumber; #endif } FPV; typedef FPV * PFPV;

<Poniej znajduj si polecenia przypisania definicji typw zmiennych regulatora rozmytego jako zewntrzne. Zamieniono te linijki na komentarz poprzez znaki /* */ - zamiast tych polece wklejono zawarto pliku, w ktrym znajduj si waciwe definicje tych typw zmiennych.>
/* extern extern extern extern extern extern extern extern extern extern FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS BYTE FUZZY FLAGS PFRAT PFUZZY PFUZZY PFUZZY PFUZZY PFUZZY PFTBYTE bTNum; crisp; invalidflags; fratptr; tpptr; fuzptr; pfuzvals; xcomptr; defuzz; rtptr;

*/

<Poniej znajduje si wklejona zawarto pliku HPUBVARS.c, w ktrym znajduj si definicje typw zmiennych regulatora rozmytego.>
/*-----------------------------------------------------------------------*/ /* Module HPUBVARS of fuzzyTECH Kernel C-Library, Vs. 4 */ /* (c) 1995 Inform Software Corp., 2001 Midwest Rd., Oak Brook, IL 60521, USA */ /* (c) 1995 INFORM GmbH, Pascalstr. 23, D-52076 Aachen */ /*-----------------------------------------------------------------------*/ // #include "ftlibc.h" FTSTORAGECLASS BYTE FTSTORAGECLASS FUZZY bTNum; crisp;

125

FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS FTSTORAGECLASS

FLAGS PFRAT PFUZZY PFUZZY PFUZZY PFUZZY PFTBYTE

invalidflags = 0; fratptr; tpptr; fuzptr; xcomptr; defuzz; rtptr; short *prt; bPar; wptr; usNumber;

#ifdef PRECOMPILER FTSTORAGECLASS unsigned FTSTORAGECLASS BYTE FTSTORAGECLASS PFUZZY FTSTORAGECLASS FTUSHORT #endif

<Koniec wklejonego pliku. Poniej dalsza cz biblioteki ftlibc.h>


#ifdef PRECOMPILER extern FTSTORAGECLASS extern FTSTORAGECLASS extern FTSTORAGECLASS extern FTSTORAGECLASS #endif #ifndef FT_KRC VOID FTCALL VOID FTCALL #else VOID FTCALL VOID FTCALL #endif unsigned BYTE PFUZZY FTUSHORT short * prt; bPar; wptr; usNumber;

PushFuzzyPubVars(PFPV pFPV); PopFuzzyPubVars (PFPV pFPV); PushFuzzyPubVars(); PopFuzzyPubVars();

#ifndef PRECOMPILER VOID FTCALL flmss(VOID); #endif VOID FTCALL flms(VOID); VOID FTCALL iMMin(VOID); VOID FTCALL iMMax(VOID); VOID FTCALL iMFMin(VOID); VOID FTCALL iMFMax(VOID); VOID FTCALL com(VOID); VOID FTCALL mom(VOID); #ifdef FTLIB99C VOID FTCALL VOID FTCALL VOID FTCALL VOID FTCALL VOID FTCALL #endif iBMin(VOID); cogmax(VOID); cogbsum(VOID); mommax(VOID); mombsum(VOID);

#ifdef PRECOMPILER VOID FTCALL fLinear(VOID); VOID FTCALL fsShape(VOID); VOID FTCALL iMinProd(VOID); VOID FTCALL iMP(VOID); VOID FTCALL iMFMM(VOID); VOID FTCALL iMFMax(VOID);

126

VOID VOID VOID VOID

FTCALL FTCALL FTCALL FTCALL

iMFMA(VOID); iMFAvg(VOID); iMFP(VOID); iMFG(VOID);

VOID FTCALL iBMin(VOID); VOID FTCALL iBMax(VOID); VOID FTCALL iBP(VOID); VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID VOID FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL FTCALL iBFMin(VOID); iBFMM(VOID); iBFMax(VOID); iBFMA(VOID); iBFAvg(VOID); iBFP(VOID); iBFG(VOID); i2MFMin(VOID); i2MFMM(VOID); i2MFMax(VOID); i2MFMA(VOID); i2MFAvg(VOID); i2MFP(VOID); i2MFG(VOID); i2BFMin(VOID); i2BFMM(VOID); i2BFMax(VOID); i2BFMA(VOID); i2BFAvg(VOID); i2BFP(VOID); i2BFG(VOID);

VOID FTCALL dHyperCoM(VOID); VOID FTCALL dwCoXX(VOID); VOID FTCALL dwMoM(VOID); #ifndef FT_KRC FUZZY xpowy(FUZZY x, BYTE y); #else FUZZY xbpowy(); #endif #endif #ifdef ONLINE #ifndef FT_KRC FLAGS FTCALL fuzzyTECH(PTABTAB TabTab); VOID FTCALL InitfuzzyTECH(PTABTAB TabTab, PTAB pKbm, PTAB pTrcBuf, PTAB pMonBuf, PTAB pIOBuf); VOID FTCALL fTStartTrace(PTABTAB TabTab); VOID FTCALL fTStopTrace(PTABTAB TabTab); #else FLAGS FTCALL fuzzyTECH(); VOID FTCALL InitfuzzyTECH(); VOID FTCALL fTStartTrace(); VOID FTCALL fTStopTrace(); #endif #endif #define __INC_FTLIBC #endif

127

<Koniec pliku biblioteki logiki rozmytej ftlibc.h. Poniej znajduj si dwie kolejne definicje z pliku dL_dh_30.c pliku bazowego.>
#define FUZZYDEFINED #define FLAGSDEFINED //#include "dl_dh_30.h"

<Powyej polecenie #include "dl_dh_30.h" zostao zamienione na komentarz (poprzez znaki //), a w zamian za nie poniej zostaa wklejona zawarto pliku dL_dh_30.h.>
/*-----------------------------------------------------------------------*/ /*----------------- fuzzyTECH 5.31 Professional Edition -----------------*/ /*-----------------------------------------------------------------------*/ /*-------------------- Code Generator: C Source Code --------------------*/ /*----------- Code Generation Date: Fri Oct 17 13:49:31 2008 ------------*/ /*-------------------- Fuzzy Logic System: DL_DH_30 ---------------------*/ /*-----------------------------------------------------------------------*/ /*------ (c) 1991-1999 INFORM GmbH, Pascalstr. 23, D-52076 Aachen -------*/ /*---- Inform Software Corp., 2001 Midwest Rd., Oak Brook, IL 60523 -----*/ /*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/ /*---------------- export interface of project DL_DH_30 -----------------*/ /*-----------------------------------------------------------------------*/ /*-----------------------------------------------------------------------*/ /*------------------------------ typedefs -------------------------------*/ /*-----------------------------------------------------------------------*/ #ifndef FUZZYDEFINED /*--------- type of data for computation of fuzzy logic system ----------*/ typedef unsigned char FUZZY; #define FUZZYDEFINED #endif #ifndef FLAGSDEFINED /*------------- type of return value of fuzzy logic system --------------*/ typedef unsigned long int FLAGS; #define FLAGSDEFINED #endif /*--------------------- data only used by fuzzyTECH ---------------------*/ extern FUZZY * const pcvdl_dh_30; /*-----------------------------------------------------------------------*/ /*-- use the following #defines to set the inputs of the fuzzy system ---*/ /*-----------------------------------------------------------------------*/ #define ax_dl_dh_30 (*(pcvdl_dh_30+ 0)) /* 0000H .. 00FFH */ #define ay_dl_dh_30 (*(pcvdl_dh_30+ 1)) /* 0000H .. 00FFH */ #define dh_dl_dh_30 (*(pcvdl_dh_30+ 2)) /* 0000H .. 00FFH */ #define dL_dl_dh_30 (*(pcvdl_dh_30+ 3)) /* 0000H .. 00FFH */ #define U_dl_dh_30 (*(pcvdl_dh_30+ 4)) /* 0000H .. 00FFH */ /*-----------------------------------------------------------------------*/ /*-- use the following #defines to get the outputs of the fuzzy system --*/ /*-----------------------------------------------------------------------*/

128

#define dh_wy_dl_dh_30 #define dL_wy_dl_dh_30

(*(pcvdl_dh_30+ (*(pcvdl_dh_30+

5)) /* 0000H .. 00FFH */ 6)) /* 0000H .. 00FFH */

/*-----------------------------------------------------------------------*/ /*------------------------- function prototypes -------------------------*/ /*-----------------------------------------------------------------------*/ /*----- for starting up the generated fuzzy logic system, call once -----*/ void initdl_dh_30(void); /*------------ for calling the generated fuzzy logic system -------------*/ FLAGS dl_dh_30(void);

<Koniec pliku dL_dh_30.h. Poniej znajduje si dalsza cz pliku dL_dh_30.c. W tej czci pliku bazowego dL_dh_30.c znajduj si definicje rozmiaru tablic zmiennych, definicje tablic staych okrelajce przebiegi funkcji przynalenoci, definicje tablic okrelajcych bloki regu. Wprowadzane zmiany w programie fuzzyTECH 5.32 takie jak: zmiana regu, zmiana przebiegu ksztatu funkcji przynalenoci, zmiana iloci zmiennych wejciowych/ wyjciowych, zmiana iloci funkcji przynalenoci, nie wymagaj sklejania algorytmu regulatora od pocztku. Wprowadzanie zmian moe nastpowa poprzez zamian odpowiednich fragmentw algorytmu. Dodawanie zmiennych wie si ze zmianami w pliku dL_dh_30.h. Aby uaktualni program regulatora naley podmieni linijki powyej, od miejsca, gdzie polecenie #include "dl_dh_30.h" zostao zamieniona na zawarto odpowiedniego pliku. Ze zmian iloci zmiennych zwizana jest zmiana iloci funkcji przynalenoci te zmiany aktualizujemy poprzez zmian wielkoci poniej. Linijka static
FUZZY crispio[5+2];

okrela ile jest zmiennych wejciowych (5) i wyjciowych (2).

Linijka static FUZZY fuzvals[14+10+0]; okrela ilo funkcji przynalenoci zmiennych wejciowych (14) i wyjciowych (10). Linijka FUZZY * const pcvdl_dh_30 = crispio; odpowiedzialna jest za wskaniki zmiennych wejciowych / wyjciowych. Tablica static
const FUZZY code tpts[56]

okrela przebieg funkcji przynalenoci zmiennych

wejciowych (UWAGA!!! W programie fuzzyTECH naley uwaa, aby punkty funkcji przynalenoci leay na poziomie zera, jeli maj lee na poziomie zera (itd.) drobne niedokadnoci skutkuj: zmian charakteru funkcji przynalenoci, dalej zmian uywanych funkcji rozmytych i w efekcie komplikacjami i bdami w kompilacji projektu w programie Keil). Tablica static
const FUZZY code xcom[10]

okrela przebieg funkcji

przynalenoci zmiennych wyjciowych (dla defuzyfikacji metod COM s orodki maksimw funkcji przynalenoci). Tablica static const BYTE code rt0[90] okrela

129

reguy bloku wnioskowania, a e w projekcie dL_dh_30 s dwie tabele regu, to tablica


static const BYTE code rt1[90]

okrela drugi blok wnioskowania. Znaczenie tablicy nie zostao

static const FRAT code frat0[6] i static const FRAT code frat1[6]

tutaj rozpoznane (najprawdopodobniej zwizane z opcj degree of suport tablic regu).>


static FUZZY crispio[5+2]; static FUZZY fuzvals[14+10+0]; FUZZY * const pcvdl_dh_30 = crispio; static const FUZZY code tpts[56] = { 0x00, 0x00, 0x95, 0xB4, 0x95, 0xB4, 0xB4, 0xD1, 0xB4, 0xD1, 0xFF, 0xFF, 0x00, 0x00, 0x99, 0xB2, 0x99, 0xB2, 0xB2, 0xCF, 0xB2, 0xCF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF}; static const FUZZY code xcom[10] = { 0x00, 0x3E, 0x80, 0xBF, 0xFF, 0x00, 0x3E, 0x80, 0xBF, 0xFF}; static const BYTE code rt0[90] = { 0x02, 0x01, 0x09, 0x0C, 0x13, 0x02, 0x01, 0x09, 0x0D, 0x14, 0x02, 0x01, 0x0A, 0x0C, 0x13, 0x02, 0x01, 0x0A, 0x0D, 0x14, 0x02, 0x01, 0x0B, 0x0C, 0x17, 0x02, 0x01, 0x0B, 0x0D, 0x16, 0x02, 0x01, 0x09, 0x0C, 0x13, 0x02, 0x01, 0x09, 0x0D, 0x14, 0x02, 0x01, 0x0A, 0x0C, 0x15, 0x02, 0x01, 0x0A, 0x0D, 0x15, 0x02, 0x01, 0x0B, 0x0C, 0x17, 0x02, 0x01, 0x0B, 0x0D, 0x16, 0x02, 0x01, 0x09, 0x0C, 0x13, 0x02, 0x01, 0x09, 0x0D, 0x14, 0x02, 0x01, 0x0A, 0x0C, 0x17, 0x02, 0x01, 0x0A, 0x0D, 0x16, 0x02, 0x01, 0x0B, 0x0C, 0x17, 0x02, 0x01, 0x0B, 0x0D, 0x16}; static const FRAT code frat0[6] = { 0x001E, 0x0003, 0x001E, 0x0004, 0x001E, 0x0005}; static const BYTE code rt1[90] = { 0x02, 0x01, 0x06, 0x0C, 0x0E, 0x02, 0x01, 0x06, 0x0D, 0x0F, 0x02, 0x01, 0x07, 0x0C, 0x0E,

130

0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,

0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,

0x07, 0x08, 0x08, 0x06, 0x06, 0x07, 0x07, 0x08, 0x08, 0x06, 0x06, 0x07, 0x07, 0x08, 0x08,

0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D, 0x0C, 0x0D,

0x0F, 0x12, 0x11, 0x0E, 0x0F, 0x10, 0x10, 0x12, 0x11, 0x0E, 0x0F, 0x12, 0x11, 0x12, 0x11};

static const FRAT code frat1[6] = { 0x001E, 0x0000, 0x001E, 0x0001, 0x001E, 0x0002};

<Poniej znajduj si funkcje utworzone przez projektanta w oparciu o program Configuration Wizard 2. Funkcje te maj na celu skonfigurowanie pracy mikroprocesora.>
//------------------------------------------------------------------------// F U N K C J E

<Poniej znajduje si funkcja ustawie zegara systemowego. Polecenie OSCICN =


0x07;

ustawia zegar systemowy na wewntrzny oscylator o czstotliwo 16[MHz]

najwiksza, dostpna czstotliwo z wewntrznego oscylatora.>


void Oscillator_Init() { OSCICN = 0x07; }

<Poniej znajduje si funkcja ustawie portw. Polecenie P1MDIN = 0xC4; powoduje ustawienie pinw P1.0, P1.1, P1.2, P1.3, P1.4 jako wejcia analogowe (kolejno ax, ay, dh, dL, U). Polecenie XBR0 = 0x16; powoduje ustawienie UART0 na piny P0.0-3, SPI0 na piny P0.4-5, CX0 na pin P0.6, CX1 na pin P0.7 (istotne CX0 i CX1, UART0 i SPI0 nie uywane). Polecenie XBR2 = 0x40; powoduje uaktywnienie zadanych ustawie portw.>
void Port_IO_Init() { P1MDIN = 0xC4; XBR0 = 0x16; XBR2 = 0x40; }

<Poniej znajduje si funkcja ustawie napicia referencyjnego. Polecenie REF0CN =


0x03

wczenie wewntrznego generatora i wczenie wewntrznego bufora odniesienia.>

void Voltage_Reference_Init()

131

{ } REF0CN = 0x03;

<Poniej znajduje si funkcja ustawie 8-bitowgo przetwornika AC. Polecenie ADC1CF


= 0x39;

powoduje ustawienie wzmocnienia rwnego 1, oraz ustawia czstotliwo

przetwarzania na 2[MHz]. Polecenie ADC1CN = 0x88 uaktywnia przetwornik AC (ADC1) i ustawia pocztek przetwarzania po wystpieniu polecenia AD0BUSY = 1.>
void ADC_Init() { ADC1CF = 0x39; ADC1CN = 0x88; }

<Poniej znajduje si pi funkcji, z ktrych kada odnosi si do odczytywania sygnau analogowego z innego pinu (ADC_0 P1.0, ADC_1 P1.1, ADC_2 P1.3, ADC_3 P1.4, ADC_4 P1.5). Polecenie AMX1SL
= 0x00;

powoduje ustawienie multipleksera

przetwornika AC na pin P1.0 (analogicznie jest dla pozostaych funkcji przetwornika AC). Polecenie while((ADC1CN & 0x20) == 0); ma za zadanie czekanie na zakoczenie przetwarzania AC.>
void ADC_0() { AMX1SL = 0x00; AD0BUSY = 1; while((ADC1CN & 0x20) == 0); } void ADC_1() { AMX1SL = 0x01; AD0BUSY = 1; while((ADC1CN & 0x20) == 0); } void ADC_3() { AMX1SL = 0x03; AD0BUSY = 1; while((ADC1CN & 0x20) == 0); } void ADC_4() { AMX1SL = 0x04; AD0BUSY = 1; while((ADC1CN & 0x20) == 0); } void ADC_5() { AMX1SL

= 0x05;

132

AD0BUSY = 1; while((ADC1CN & 0x20) == 0);

<Poniej znajduje si funkcja ustawie Programable Counter Array. Polecenie PCA0CN


= 0x40;

powoduje uaktywnienie PCA. Polecenie PCA0MD = 0x03; powoduje ustawienie

taktowania PCA na co czwartym impulsem zegara systemowego (z zegarem systemowym 16[MHz] powoduje to, e cykl PCA trwa okoo 16,4[ms]), oraz wczenie wystawiania flagi przerwania dla przepenienia timera PCA. Polecenie PCA0CPM0 = 0xC2; (PCA0CPM1 = 0xC2) powoduje ustawienie moduu 0 (1) PCA jako 16-bitowy Pulse Width Modulator. Polecenia
PCA0CPL0 = 0x8F; (PCA0CPL1 = 0x8F;)

powoduje ustawienie wartoci modszego bajtu

rejestru CPH0 (CPH1). Polecenie PCA0CPH0 = 0xE8; (PCA0CPH1 = 0xE8;) powoduje ustawienie wartoci starszego bajtu rejestru CPH0 (CPH1).>
void PCA_Init() { PCA0CN = PCA0MD = PCA0CPM0 = PCA0CPM1 = PCA0CPL0 = PCA0CPL1 = PCA0CPH0 = PCA0CPH1 = }

0x40; 0x03; 0xC2; 0xC2; 0x8F; 0x8F; 0xE8; 0xE8;

<Poniej znajduje si funkcja ustawie wektora przerwa. Polecenie IE = 0x80; powoduje uaktywnienie wektora przerwa. Polecenie EIE1 = 0x08; powoduje uaktywnienie przerwania od moduu PCA.>
void Interrupts_Init() { IE = 0x80; EIE1 = 0x08; }

<Poniej znajduj si definicje zmiennych globalnych zm1, zm2 i funkcja inicjowana przez przerwanie od moduu PCA. W funkcji tej znajduj si: - funkcje odczytywania sygnaw z przetwornikw AC (ADC_0(); itd), - polecenia wpisywania wynikw przetwarzania AC do odpowiednich zmiennych wejciowych regulatora rozmytego (ax_dl_dh_30 = ADC1; itd), - polecenia wyczania przetwarzania AC i zatrzaskiwania wynikw ( ADC1CN &=
0xDF;),

- funkcja regulatora rozmytego dl_dh_30();,

133

- polecenia wyznaczania zmiennych pomocniczych do modyfikowania sygnaw PWM ( zm1 = 63000 - ( 33 * dh_wy_dl_dh_30 );, zm2 = 63000 - ( 33 *
dL_wy_dl_dh_30 );

- zmienne zm1 i zm2 zale od wyniku regulatora rozmytego),

- polecenia wpisywania wartoci do rejestrw moduu PCA (PCA0CPL0 = zm1;


PCA0CPH0 = zm1 >> 8; PCA0CPL1 = zm2; PCA0CPH1 = zm2 >> 8;).> unsigned short zm1; unsigned short zm2; void funkcja_1() interrupt 9 { ADC_0(); ax_dl_dh_30 = ADC1; ADC1CN &= 0xDF; ADC_1(); ay_dl_dh_30 = ADC1; ADC1CN &= 0xDF; ADC_3(); dh_dl_dh_30 = ADC1; ADC1CN &= 0xDF; ADC_4(); dL_dl_dh_30 = ADC1; ADC1CN &= 0xDF; ADC_5(); U_dl_dh_30 = ADC1; ADC1CN &= 0xDF; dl_dh_30(); zm1 = 63000 - ( 33 * dh_wy_dl_dh_30 ); zm2 = 63000 - ( 33 * dL_wy_dl_dh_30 ); PCA0CPL0 = zm1; PCA0CPH0 = zm1 >> 8; PCA0CPL1 = zm2; PCA0CPH1 = zm2 >> 8; } //------------------------------------------------------------------------// CX0 - P0.6 // CX1 - P0.7 // CX0 - P0.6 - dh // CX1 - P0.7 - dL

<Poniej znajduje si definicja funkcji flms, ktra wywoywana jest przez funkcj regulatora rozmytego. Zostaa tutaj dodana ze wzgldu na rozpoczty wyej cig prototypw funkcji i definicji funkcji wczeniejszych. Zawarto tej funkcji znajduje si w pliku Hf4p.c, ktry znajduje si w dodatkach. Funkcja ta odnosi si do wyznaczania wspczynnika przynalenoci zmiennej do funkcji.>

134

/*-----------------------------------------------------------------------*/ /* Module FLMS of fuzzyTECH Kernel C-Library, Vs. 4 */ /* (c) 1995 INFORM GmbH, Pascalstr. 23, D-52076 Aachen */ /*-----------------------------------------------------------------------*/ // #include "ftlibc.h" // biblioteka wywolana w innym pliku

VOID FTCALL flms(VOID) { FUZZY x1, x2, x3, x4; while (bTNum--) { x1 = *tpptr++; x2 = *tpptr++; x3 = *tpptr++; x4 = *tpptr++; if ((crisp>=x2) && (crisp<=x3)) *fuzptr++ = MAXFUZZY; else if ((crisp<=x1) || (crisp>=x4)) *fuzptr++ = 0; else if ((crisp>x1) && (crisp<x2)) *fuzptr++ = (FUZZY)( ((LFUZZY) MAXFUZZY * (crisp-x1))/(x2-x1) ); else *fuzptr++ = (FUZZY)( ((LFUZZY) MAXFUZZY * (x4-crisp))/(x4-x3) ); } }

<Poniej znajduje si definicja funkcji com, ktra wywoywana jest przez funkcj regulatora rozmytego. Zawarto tej funkcji znajduje si w pliku Hdcom.c, ktry znajduje si w dodatkach. Funkcja ta odnosi si do procesu defuzyfikacji wyznaczania wartoci wyjciowych regulatora rozmytego.>
/*-----------------------------------------------------------------------*/ /* Module HCOM of fuzzyTECH Kernel C-Library, Vs. 4 */ /* (c) 1995 INFORM GmbH, Pascalstr. 23, D-52076 Aachen */ /*-----------------------------------------------------------------------*/ //#include "ftlibc.h" #ifdef FTLIBC16 VOID FTCALL com(VOID) { unsigned long int numerator; unsigned short int denominator; FUZZY out; invalidflags <<= 1; denominator = (unsigned short int) (*fuzptr) >> 3; *fuzptr++ = 0; numerator = (unsigned long int) denominator * (*xcomptr++); while ((--bTNum) != 0) { out = (*fuzptr) >> 3; *fuzptr++ = 0; denominator += (unsigned short int) (out); numerator += (unsigned long int) (out) * (*xcomptr++); } if (denominator)

135

*defuzz = (FUZZY) (numerator/denominator); else invalidflags++; } #endif #ifdef FTLIBC8 VOID FTCALL com(VOID) { unsigned long int numerator; unsigned short int denominator; invalidflags <<= 1; denominator = (unsigned short int) (*fuzptr); *fuzptr++ = 0; numerator = (unsigned long int) denominator * (*xcomptr++); while ((--bTNum) != 0) { denominator += (unsigned short int) (*fuzptr); numerator += ((unsigned long int) (*fuzptr) * (*xcomptr++)); *fuzptr++ = 0; } if (denominator) { while ((numerator 0x00FF)){ denominator >>= numerator >>= } *defuzz = (FUZZY) } else invalidflags++; } #endif

> (unsigned long int) 0xFFFF) 1; 1;

||

(denominator >

((unsigned short int) numerator/denominator);

<Poniej znajduje si definicja funkcji iMMin, ktra wywoywana jest przez funkcj regulatora rozmytego. Zawarto tej funkcji znajduje si w pliku Himmin.c, ktry znajduje si w dodatkach. Funkcja ta odnosi si do procesu wnioskowania.>
/*------------------------------------------------------------*/ /* fuzzyTECH 5.3 C Runtime Library: Module Himmin.c */ /* (c) 1999 INFORM GmbH, Pascalstr. 23, 52076 Aachen, Germany */ /* Last Edit: Thomas Haase - 24. Nov. 1999 15:14 (+0100) */ /*------------------------------------------------------------*/ //#include "ftlibc.h" VOID FTCALL iMMin(VOID) { PFTBYTE pBlockEnd; PFUZZY pfuzDest; FUZZY term, pcf, pcfbak; BYTE nConditions, nConclusions; do { pBlockEnd = rtptr + *fratptr++; pcfbak = *(fuzptr + (*fratptr++)); if (pcfbak == 0) { rtptr = pBlockEnd;

136

goto NextBlock; } do { nConditions = (BYTE) *rtptr++; nConclusions = (BYTE) *rtptr++; pcf = pcfbak; while ((nConditions--) != 0) { term = *(fuzptr + (*rtptr++)); if (term < pcf) { pcf = term; if (pcf == 0) { rtptr += (nConditions + (nConclusions)); goto NextRule; } } } do { pfuzDest = fuzptr + *rtptr++; if (pcf > *pfuzDest) *pfuzDest = pcf; } while ((--nConclusions) != 0); NextRule: ; } while (rtptr != pBlockEnd); NextBlock: ; } while ((--bTNum) != 0); }

<Koniec prototypw funkcji i funkcji. Poniej znajduje si funkcja gwna algorytmu.>


//------------------------------------------------------------------------//------------------------------------------------------------------------// * * F U N K C J A G L O W N A * * //------------------------------------------------------------------------void main() { EA = 0; WDTCN = 0xDE; WDTCN = 0xAD;

// wyaczenie wektora przerwan // wylaczenie watchdoga

// funkcje ustawien ukladow mikroprocesora Oscillator_Init(); Port_IO_Init(); Voltage_Reference_Init(); ADC_Init(); PCA_Init(); Interrupts_Init(); initdl_dh_30(); EA = 1; while(1) { } } // funkcja inicjujaca regulator rozmyty // wlaczenie wektora przerwan // petla nieskonczona

137

<Funkcja gwna zawiera: funkcje ustawie ukadw mikroprocesora, ustawienia wektora przerwa i watchdoga, funkcj inicjujc algorytm regulatora rozmytego, ptle nieskoczon. Algorytm wykonywanych dziaa jest zawarty w funkcji funkcja_1(), ktra rozpoczynana jest wraz z dziewitym przerwaniem.>
//------------------------------------------------------------------------//-------------------------------------------------------------------------

<Poniej znajduje si funkcja regulatora rozmytego dalsza cz pliku dh_dL_30.c, ktra zostaa poprzedzona utworzonymi funkcjami ukadw mikroprocesora i funkcj gwn. Zostaa tutaj umieszczona, poniewa w zawartoci pliku dh_dL_30.h, ktry jest przed funkcj gwn, znajduje si prototyp funkcji regulatora rozmytego dl_dh_30(void) (skadnia jezyka C zakada kolejno: prototypy funkcji pomocniczych, funkcja gwna, definicje funkcji pomocniczych). W funkcji dl_dh_30() znajduje si w niej algorytm wczytywania wartoci zmiennych kadego wejcia (np. crisp
= crispio[0];),

okrelenie iloci funkcji

przynalenoci dla danego wejcia (bTNum = 3;), wywoanie funkcji liczcej wspczynniki przynalenoci zmiennej do funkcji przynalenoci (flms();), wczytywanie danych tabeli regu i funkcja wnioskowania (iMMin();), operacje na zmiennych wyjciowych i funkcja defuzyfikacji (com();).>
FLAGS dl_dh_30(void) { fuzptr = (PFUZZY) fuzvals; tpptr = (PFUZZY) tpts; crisp = crispio[0]; bTNum = 3; flms(); crisp = crispio[1]; bTNum = 3; flms(); crisp = crispio[2]; bTNum = 3; flms(); crisp = crispio[3]; bTNum = 3; flms(); crisp = crispio[4]; bTNum = 2; flms(); fuzptr = (PFUZZY) fuzvals; bTNum = 3; fratptr = (PFRAT) frat0;

138

rtptr = (PFTBYTE) rt0; iMMin(); /* Max-Min */ bTNum = 3; fratptr = (PFRAT) frat1; rtptr = (PFTBYTE) rt1; iMMin(); /* Max-Min */ invalidflags = 0; fuzptr = &fuzvals[14]; xcomptr = (PFUZZY) xcom; crispio[5] = 0x80; bTNum = 5; defuzz = &crispio[5]; com();

// <mI q();

<W pierwszej linijce powyej i czwartej poniej znajduj si poprawione bdne instrukcje algorytmu regulatora rozmytego, ktre zostay wygenerowane przez program fuzzyTECH. e <mI q(); s bdnymi instrukcjami wiadczy to, e zawieraj znaki kodu innego ni ASCII a take pojawiajcy si bd w kompilacji projektu. Miejsce, w jakim znajduj si te bdy i nawiasy jakie zawieraj, wiadcz o tym, e mia to by funkcja defuzyfikacji. W katalogach programu fuzzyTECH zosta odnaleziony plik z funkcj com() Centum Of Maximum. W programie fuzzyTECH mona stosowa inne funkcje defuzyfikacji, ale ich algorytmy nie zostay odnalezione w katalogach tego programu. Naley wic w takim przypadku korzysta z dostpnej funkcji com(), co te zostao tutaj zastosowane poprzez zamienienie bdnego polecenia <mI q(); wywoaniem funkcji com().>
crispio[6] = 0x80; bTNum = 5; defuzz = &crispio[6]; com(); } return invalidflags;

//

<mI q();

void initdl_dh_30(void) { for (fuzptr = &fuzvals[14]; fuzptr <= &fuzvals[23]; *fuzptr++ = 0); }

Modyfikator wejciowych funkcji przynalenoci w jzyku C. Modyfikator wejciowych funkcji przynalenoci, utworzony we wasnym projekcie regulatora rozmytego w programie Matlab (rozdzia 2.5), charakteryzowa si pozytywnym wpywem na sterowanie obiektem. Zosta on zaadoptowany do rzeczywistego algorytmu regulatora rozmytego na procesorze ST62E65C rodziny Thomson (rozdzia 3.1). Tutaj

139

przedstawiono adaptacj modyfikatora wejciowych funkcji przynalenoci dla algorytmu regulatora rozmytego w jzyku C (na mikroprocesor C8051F020). Poniej znajduj si definicje trzech zmiennych globalnych stosowanych w algorytmie modyfikatora. Zmienne mod1 i mod2 su do poredniej zamiany starych wspczynnikw przynalenoci na nowe. Zmienna licz_mod jest zmienn globaln, ktra odpowiedzialna jest za okrelenie iloci wspczynnikw przynalenoci do zmiany. Iloci wspczynnikw przynalenoci mona z gry wpisa jako sta warto i dla kolejnych projektw zmienia t warto, lub, ja to zostao zastosowane w opisywanym przypadku, okrelanie iloci wspczynnikw ustawi automatycznie zwikszanie o jeden wartoci licz_mod, zaczynajc od zera, za kadym uyciem funkcji flis() w jednym cyklu algorytmu regulatora rozmytego.
Unsigned char mod1, licz_mod = 0; unsigned short mod2; // zmienna do modyfikatora

Poniej znajduje si funkcja modyfikatora.


Void modyfikator(void) { fuzptr = (PFUZZY) fuzvals;

Powysza instrukcja ma za zadanie ustawienie wskanika fuzptr na pierwszy wspczynnik przynalenoci. Poniej w ptli wykonywana jest zamiana starych wspczynnikw przynalenoci na nowe wedug funkcji x2.
while (licz_mod--) { mod1 = *fuzptr;

Powyej instrukcja wpisuje warto starego wspczynnika do zmiennej mod1. Poniej do zmiennej mod2 wpisywana jest warto starego wspczynnika w kwadracie. Dzielenie przez liczb 255 ma za zadanie odniesienie wartoci nowego wspczynnika do zakresu 0-255 (czyli liczby 8-bitowej).
mod2 = mod1 * mod1 / 255 ;

Poniej warto zmiennej mod2 z nowym wspczynnikiem przynalenoci wpisywana jest pod adres wskazany przez wskanik fuzptr. Po wpisaniu wartoci mod2 w wskazane miejsce nastpuje zwikszenie wskanika o jeden. W ptli while zmienna licz_mod, zawierajca ilo wspczynnikw przynalenoci, jest za kadym kolejn ptla pomniejszana o jeden. Gdy jej warto wynosi zero, wtedy nastpuje wyjcie z ptli i algorytm przechodzi do dalszej czci funkcji regulatora rozmytego do_mod(), tzn. do wnioskowania.

140

*fuzptr++ = mod2; } }

Poniej przedstawiona jest zawarto funkcji regulatora rozmytego do_mod. Po wywoaniu funkcji flms() fuzyfikacji zostaa wywoana funkcja modyfikatora wejciowych funkci przynalenoci.
FLAGS do_mod(void) { fuzptr = (PFUZZY) fuzvals; tpptr = (PFUZZY) tpts;

crisp = crispio[0]; bTNum = 3; flms(); modyfikator(); fuzptr = (PFUZZY) fuzvals; bTNum rtptr = 3; frat0; = (PFTBYTE) rt0; // modyfikator

fratptr = (PFRAT)

iMMin(); /* Max-Min */ invalidflags = 0; fuzptr xcomptr = &fuzvals[3]; = (PFUZZY) xcom;

crispio[1] = 0x80; bTNum = 3; // <mI q(); defuzz = &crispio[1]; com(); return invalidflags; }

Poniej przedstawiona jest funkcja flis() fuzyfikacji.


VOID FTCALL flms(VOID) { FUZZY x1, x2, x3, x4; while (bTNum--)

141

{ x1 = *tpptr++; x2 = *tpptr++; x3 = *tpptr++; x4 = *tpptr++; if ((crisp>=x2) && (crisp<=x3)) *fuzptr++ = MAXFUZZY; else if ((crisp<=x1) || (crisp>=x4)) *fuzptr++ = 0; else if ((crisp>x1) && (crisp<x2)) *fuzptr++ = (FUZZY)( ((LFUZZY) MAXFUZZY * (crisp-x1))/(x2-x1) ); else *fuzptr++ = (FUZZY)( ((LFUZZY) MAXFUZZY * (x4-crisp))/(x4-x3) );

Poniej, w funkcji fuzyfikacji, wprowadzono jedn instrukcj majc na celu liczenie iloci wspczynnikw przynalenoci. Zmienna ta okrela ilo ptli w algorytmie modyfikatora.
licz_mod++; } } // dodane ze zwgledu na modyfikator

Powyszy algorytm mona streci w nastpujcych punktach: Odwoanie do biblioteki rejestrw mikroprocesora, Biblioteka logiki rozmytej zawierajca definicje typw zmiennych, Prototypy funkcji pomocniczych, Tablice staych, Funkcja gwna, Definicje funkcji pomocniczych [12]. Przedstawiona kolejno czci skadowych algorytmu regulatora rozmytego wynika z zasad programowania w jzyku C.

142

7. Analiza sprztowa projektu regulatora rozmytego dL_dh_30 Analiza sprztowa projektu regulatora rozmytego dL_dh_30 zostaa przeprowadzona jako badania laboratoryjne regulatora rozmytego do stabilizacji kta pochylenia i przechylenia samolotu na mikroprocesorze c8051f020. Badania laboratoryjne utworzonego regulatora rozmytego miay na celu wyznaczenie rzeczywistych zalenoci wielkoci wyjciowych od wielkoci wejciowych i porwnanie ich z zalenociami uzyskiwanymi w toku projektowania regulatora. Badania regulatora rozmytego zostay podzielone na pi czci: 1 badanie kanau pochylania; 2 badanie kanau przechylania; 3 badanie oddziaywania wielkoci wejciowych kanau pochylania na wielko wyjciow kanau przechylania; 4 badanie oddziaywania wielkoci wejciowych kanau przechylania na wielko wyjciow kanau pochylania; 5 badanie oddziaywania obcienia na napicie zasilania i w dalszej konsekwencji na prac regulatora. Ukad pomiarowy, przedstawiony na rysunku 7.1, skada si z: pytki TOOLSTICK UNI DC (z mikroprocesorem c8051f020) z pytk piciu potencjometrw z podczeniem do pytki TOOLSTICK UNI DC; komputera PC z kablem COM, kablem USB i czytnikiem kart; rejestratora PRP J5 z kart pamici SD; baterii do zasilania rejestratora. Kabel COM suy do przesyania danych w trybie on-line z rejestratora do programu PRP-J5. W programie tym za pomoc opcji Chanell test przesyane dane byy wizualizowane. Kabel USB spenia dwie funkcje: suy do zasilania pytki TOOLSTICK UNI DC oraz do przeprogramowywania mikroprocesora. Schemat pocze ukadu pomiarowego widoczny jest na rysunku 7.2. TOOLSTICK;

143

Kabel COM

Rejestrator

Bateria TOOLSTICK UNI DC

Kabel USB

Potencjometry
Rys. 7.1 Zdjcie ukadu pomiarowego do bada regulatora rozmytego dL_dh_30.

W tabeli 7.1 zostay przedstawione przyporzdkowania rejestrowanych sygnaw do poszczeglnych kanaw rejestratora PRP-J5.
Tabela 7.1 Podczenia kanaw rejestratora.

1 2 3 4 5 6 7 8 9 10 11 12

masa DAC0 DAC1 P1.0 P1.1 P1.2 P1.3 P1.4 Vdd P0.6 CX0 P0.7 CX1

dh_wy dL_wy ax ay dh dL U dh_wy dL_wy

Pierwsze osiem kanaw byo podczonych dla badania kanaw pochylania i przechylania oraz dla badania oddziaywa skronych. Kanay 10, 11 i 12 zostay dodatkowo podczone do rejestratora dla bada oddziaywania napicia zasilania mikroprocesora. 144

Rys. 7.2 Schemat pocze ukadu pomiarowego do badania regulatora rozmytego dL_dh_30.

145

a) Badanie kanau pochylania Badanie kanau pochylania zaczto od zapisania na karcie ustawie rejestratora. Ustawiono aktywne kanay rejestratora: 2, 4, 6 i 8. Karta zostaa ustawiona na 60[MB] przestrzeni danych z rejestracji. Badania kanau pochylania zostay wykonane dla dwch skrajnych prdkoci lotu. Dla maej prdkoci lotu najpierw stopniowo zwikszano sygna nakazowy dh, a sygna ax zmieniano od minimalnej do maksymalnej wartoci. Nastpnie dla tej samej prdkoci lotu wyzerowano sygnay i stopniowo zwiksza sygna ax, a sygna nakazowy zmieniano od wartoci minimalnej do maksymalnej. Nastpnie prdko zwikszono do maksymalnej i wykonano analogiczne czynnoci. Wyniki rejestracji przedstawia rys. 7.3.

Rys. 7.3 Przebiegi czasowe zarejestrowanych danych kanau pochylania.

Rys. 7.4 Wykres przestrzenny zarejestrowanych danych kanau pochylania.

146

W celu oceny uzyskanych wynikw zosta wygenerowany wykres przestrzenny (rys.7.4), ktry ma obrazowa pat powierzchniowy regulatora. Z porwnania tego wykresu (rys. 7.4) z patem powierzchniowym (rys.6.25) mona stwierdzi, e sterowanie regulatora w ruchu pochylania jest zgodne z zaoeniami. b) Badanie kanau przechylania Badanie kanau przechylania wykonano analogicznie jak dla kanau pochylania. Na rys. 7.5 zaprezentowano uzyskane wyniki.

Rys. 7.5 Przebiegi czasowe zarejestrowanych danych kanau przechylania.

Rys. 7.6 Wykres przestrzenny zarejestrowanych danych kanau przechylania.

147

Na podstawie uzyskanych danych dla kanau przechylania wygenerowany zosta wykres przestrzenny (rys. 7.6). Z porwnania tego wykresu z patem powierzchniowym na rys.6.27 odpowiadajcym z oczekiwanymi. c) Badania oddziaywa skronych ax i dh na dL_wy Badanie oddziaywa skronych ax i dh na dL_wy zaczto od zapisania na karcie ustawie rejestratora. Ustawiono aktywne kanay rejestratora: 3, 4, 5, 6, 7 i 8. Karta zostaa ustawiona na 60[MB] przestrzeni danych z rejestracji. Badania kanau pochylania zostay wykonane dla trzech rnych wartoci sygnau nakazowego dL. Dla kadej wartoci sygnau nakazowego dL stopniowo zwikszano sygna nakazowy dh, a sygna ax zmieniano od minimalnej do maksymalnej wartoci, oraz dla tej samej wartoci sygnau nakazowego dL, po wyzerowaniu sygnaw ax i dh, stopniowo zwikszano sygna ax, a sygna nakazowy zmieniano od wartoci minimalnej do maksymalnej. mu wida, e sterowanie w kanale przechylania jest zgodne

Rys. 7.7 Przebiegi czasowe zarejestrowanych danych oddziaywa skronych ax i dh na dL_wy.

W celu zobrazowania uzyskanych wynikw wygenerowano wykres przestrzenny (rys. 7.8). Na wykresie tym da si zauway krzywe pomiarowe tworzce trzy powierzchnie kada dla innej wartoci dL. Analizujc wykres przestrzenny na rys. 7.8 mona wnioskowa, e sygnay wejciowe ax i dh kanau pochylania maj wpyw na wielko wyjciow dL_wy kanau przechylania, gdy brak oddziaywa skronych obrazowayby paszczyzny poziome.

148

Rys. 7.8 Wykres przestrzenny oddziaywa skronych ax i dh na dL_wy.

Oddziaywanie skrone sygnaw ax i dh na dL_wy jest tym wiksze, im mniejsza jest warto sygnau nakazowego dL. d) Badania oddziaywa skronych ay i dL na dh_wy Badanie oddziaywa skronych ay i dL na dh_wy wykonano analogicznie jak badania oddziaywa skronych ax i dh na dL_wy. Tutaj pomiary wykonano dla dwch wartoci sygnau nakazowego dh. Uzyskane wyniki prezentuje rys. 7.9

Rys. 7.9 Przebiegi czasowe zarejestrowanych danych oddziaywa skronych ay i dL na dh_wy.

149

Powierzchnie uzyskane na wykresie przestrzennym z rys. 7.10, przedstawiajcy zalenoci wielkoci wyjciowej dh_wy kanau pochylania od wartoci wejciowych ax i dh kanau przechylania, ksztatuj si podobnie jak dwie grne powierzchnie wykresu przestrzennego na rys. 7.8. wiadcz one o oddziaywaniu skronym wielkoci wejciowych kanau przechylania na warto wyjciow kanau pochylania.

Rys. 7.10 Wykres przestrzenny oddziaywa skronych ay i dL na dh_wy.

e) Badanie oddziaywania obcienia na napicia zasilania mikroprocesora Badanie oddziaywa obcienia na napicie zasilania mikroprocesora zaczto od zapisania na karcie ustawie rejestratora. Ustawiono aktywne kanay rejestratora: 2, 3, 4, 5, 6, 7, 8 i 10. Karta zostaa ustawiona na 60[MB] przestrzeni danych z rejestracji.

Rys.7.11 Przebiegi czasowe zarejestrowanych danych dla badania oddziaywa obcienia.

150

Badania oddziaywania obcienia na napicie zasilania mikroprocesora zostay wykonane dla dwch stanw: z podczonymi serwomechanizmami i z odczonymi serwomechanizmami. Uzyskane wyniki przedstawiono na rys. 7.11.

Rys. 7.12 Wybrane dane z rysunku 7.11 w wybranym fragmencie czasu. Przebiegi zarejestrowanych sygnaw, widoczne na rys.7.11, wiadcz o tym, e obcienie mikroprocesora serwomechanizmami zakca prac ukadu. Jednak, jak wida na rys.7.12 , brak obcienia serwomechanizmami nie eliminuje sprzenia skronego w ukadzie sterowania.

151

8. Wnioski Mikroprocesorowy sterownik rozmyty do sterowania aparatem latajcym to temat bardzo ambitny nawet i jak na absolwentw kierunku Lotnictwa Wydziau Budowy Maszyn i Lotnictwa Politechniki Rzeszowskiej. Zapewne mona popatrze na to z innego punktu widzenia temat jak kady inny w Katedrze Awioniki i Sterowania: posiadasz obiekt i tworzysz do niego ukad sterujcy. Regulator rozmyty posiada due moliwoci w sterowaniu procesami nieliniowymi i do jednoznacznego rozpoznawania stanw, najczciej o charakterze nienaturalnych dla danego obiektu. Autorzy niniejszej pracy zrozumieli, e nieliniowoci w bezzaogowym aparacie latajcym, o ktrym rwnie tutaj mowa, nie jest trudno zale. Niemale kady ukad kinematyki, zastosowany do wychylania powierzchni sterowych, to nieatwa do rozpoznania nieliniowo. W sterowaniu takim obiektem niezbdne jest wielokrotne strojenie zastosowanego regulatora rozmytego. W trakcie realizacji tej pracy autorom udao si zapozna ze struktur regulatora rozmytego, a nawet utworzony zosta wasny dyskretny ukad rozmyty. Krytyczna ocena tego ukadu nie jest najwysza, jednak wprowadzony dodatkowy blok modyfikatora jest niezbitym argumentem, ktry tumaczy zasadno tak duego nakadu pracy nad wasnym, dyskretnym ukadem rozmytym. Podejmujc temat oceny jego dziaania mona stwierdzi, e przy niewielkiej iloci funkcji przynalenoci zmiennych mona za pomoc modyfikatora w atwy sposb wpywa na charakter sterowania regulatorem rozmytym. Wstpny projekt AP_5 regulatora rozmytego to udana prba praktycznego, jakociowo poprawnie sterujcego ukadu rozmytego. Wnioski z tego dokonania: aby utworzy dziaajcy regulator rozmyty, w oparciu o mikroprocesor, naley umie programowa i zna algorytmy logiki rozmytej. Tworzenie nie tylko poprawnie dziaajcego regulatora rozmytego, ale i poprawnie sterujcego wymaga dowiadczenia i wiedzy na temat sterowanego obiektu. Autorzy, w celu uzyskania wiedzy na temat bezzaogowego aparatu latajcego Gacek, przeprowadzili dowiadczenia majce na celu przybliy dynamik sterowanego obiektu. I tutaj pojawiy si niemae trudnoci may obiekt z napdem elektrycznym wprowadza due zakcenia do ukadu pomiarowego i ukadu czujnikw ukadu odniesienia przestrzennego AHRS. Wygadzanie zarejestrowanych danych w czasie analizy nie jest zbyt skomplikowane, ale eliminacja zakce w czasie rzeczywistym jest bardzo zagadnieniem trudnym i nie zawsze osigalnym. Pomijajc zakcenia mamy do czynienia z nieliniowociami wynikajcymi z rzeczywistej konstrukcji patowca, bo np. samolot atwiej moe pochyli dzib ni nim 152

poderwa do gry. Jeli chodzi o zakcenia majce wpyw na sterowanie aparatem latajcym, to nie tylko wynikaj one z elektryki i ukadu pomiarowego zakcenia atmosfery utrudniaj nie mniej rozpoznanie charakterystyk sterowania obiektem. Synteza rzeczywistego rozmytego ukadu sterujcego to nie tylko rozpoznanie obiektu, utworzenie algorytmu sterowania i dostrojenie parametrw regulatora. Jedn z przyczyn, ktra przeszkodzia autorom uzyskanie poprawnie sterujcego regulatora rozmytego, byy sprzenia skrone od sygnaw sterujcych na sygnay wynikowe kanaw teoretycznie niezalenych (chodzi tutaj konkretnie o sygnay kana pochylania i przechylania regulatora dL_dh_30). Niniejsz prac naley traktowa jako nowatorskie podejcie tworzenia ukadu sterowania aparatem latajcym prba stabilizacji ktw pochylenia i przechylenia samolotu regulatorem sterujcym w oparciu o prawa logiki rozmytej. Duym atutem tej pracy jest rozpoznanie problemw pojawiajcych si przy tworzeniu ukadw sterowania bezzaogowym aparatem latajcym: nieliniowoci w wychylaniu powierzchni sterowych, zakcenia od napdu samolotu, zakcenia atmosfery, ukady sterowania posiadajce pocztkowo niezrozumiae sprzenia, unifikacja poziomw odniesienia sygnaw ukadu sterowania. Praca wymaga dalszej kontynuacji.

153

9. Bibliografia 1. Praca Dyplomowa Magisterska: Rozmyty system oceny pracy operatorw katastralnego systemu informacyjnego Tomasz Karczyski, Wrocaw 2007 2. SGS-Thomson Microelectronics: FuzzyTECH St6 Explorer Edition. User Manual. France June 1993 3. SGS-Thomson Microelectronics: St6 family. Software tools AST6, LST6, SIMST6. User Manual. Italy August 1994 4. SGS-Thomson Microelectronics: St6 family. Software development tools AST6, LST6, WGDB6. User Manual. France June 1997 5. SGS-Thomson Microelectronics: St62 family. Starter kit for ST625x, ST626x. User manual. France March 1998 6. Realizer graficzne programowanie mikrokontrolerw Krzysztof Grski, Warszawa 2005 7. Wprowadzenie do sterowania rozmytego - D. Driankov, H.Hellendoorn, M. Reinfrank, Warszawa 1996 8. Podstawy modelowania i sterowania rozmytego Rondla R. Yager, Dimitar P. Filev, Warszawa 1995 9. Modelowanie i sterowanie rozmyte Andrzej Piega, Warszawa 1999. 10. Sieci neuronowe, algorytmy genetyczne i systemy rozmyte Danuta Rutkowska, Maciej Piliski, Leszek Rutkowski, Warszawa d 1997. 11. Sieci neuronowe Stanisaw Osowski, Warszawa 1996. 12. Ukady sterowania automatycznego samolotem Stanisaw Bociek, Jan Gruszeczki, Rzeszw 1999. 13. Teoria sterowania Tadeusz Kaczorek, Warszawa 1981, 14. Symfonia C++ Jerzy Grbosz, Krakw 1999, 15. ToolStick UniversityDaughter Card Users Guide, 2007 by Silicons Labolatories, 16. Wykad: Mikrokontrolery i mikrosystemy dr in Zbigniew Czaja, Gdask 2003, 17. 8K ISP FLASHMCU Family 2003 by Silicons Labolatories, Adresy internetowe i publikacje i1. http://www.analog.com/en/mems-and-sensors/imemsgyroscopes/adxrs150/products/product.html i2. http://www.freescale.com/files/sensors/doc/data_sheet/MPX5100.pdf? fsrch=1&WT_TYPE=Data %20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSE T=Documentation 154

i3. http://www.freescale.com/files/sensors/doc/data_sheet/MPX2100.pdf? fsrch=1&WT_TYPE=Data %20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSE T=Documentation i4. http://www.elektroda.pl/rtvforum/topic384805.html i5. http://www.fuzzytech.com

155

Politechnika Rzeszowska Wydzia Budowy Maszyn i Lotnictwa

Rzeszw, 13 listopad 2008

STRESZCZENIE MAGISTERSKIEJ PRACY DYPLOMOWEJ Temat: MIKROPROCESOROWY STEROWNIK ROZMYTY DO STEROWANIA APARATEM LATAJCYM Autorzy: Traczyski Rafa, Sobczak Maksymilian Promotor: dr. in. Jzef Grzybowski Sowa kluczowe: logika rozmyta, bezzaogowy aparat latajcy, mikroprocesor. Niniejsza praca jest opracowaniem, ktrego autorzy mieli na celu zebranie i usystematyzowanie wiedzy na temat projektowania ukadu sterowania rozmytego dla bezzaogowego aparatu latajcego. Zaprojektowany i wykonany zosta system stabilizacji kta przechylenia i pochylenia wasnego autorstwa. Przedstawiono w niej ukad pomiarowy jaki zosta zaprojektowany i wykonany w celu przeprowadzenia bada na aparacie latajcym. W wyniku przeprowadzonych bada zostay wyznaczone charakterystyki dynamiczne BAL. Na koniec zostay wycignite wnioski.

Rzeszw University of Technology 2008 Faculty of Mechanical Engineering and Aeronautics DIPLOMA THESIS (MS) ABSTRACT

Rzeszw, 13 listopad

SUBJECT: MICROCHIP FUZZY CONTROLLER OF UNMANNED AIR VEHICLE Author: Traczyski Rafa, Sobczak Maksymilian Supervisor: dr. in. Jzef Grzybowski Key words: fuzzy logic, unmanned air vehicle, microchip.

Autor of this paper wants to collect and systematize knowledge about the designing of fuzzy control system for unmanned air vehicle. Designated and made system of stabilization pich and roll. There was represent measurement system, which was made to do research on the air vehicle. Thereby research there were designated dynamic characteristic of UAV. 156

In the end the conclusions.

157

Você também pode gostar