Pauluk Marchewka.indd - Pomiary Automatyka Robotyka
Transkrypt
Pauluk Marchewka.indd - Pomiary Automatyka Robotyka
Pomiary Automatyka Robotyka 10/2008 Dobór procesora sygnałowego w konstrukcji regulatora optymalnego Mariusz Pauluk Piotr Bania Dariusz Marchewka Maciej Rosół W pracy przedstawiono przegląd dostępnych obecnie procesorów sygnałowych i mikrokontrolerów oraz porównano ich moc obliczeniową. Zaprezentowano problem optymalnego sterowania, który autorzy planują zrealizować w wybranym procesorze. Przedstawiono także wyniki testów szybkości wykonywania algorytmów dla wybranych procesorów. ykorzystanie zaawansowanych algorytmów do sterowania on-line wybranymi obiektami (procesami) wymaga znacznych mocy obliczeniowych od jednostek wykonawczych. Związane jest to z wykonywaniem przez procesor złożonych procedur numerycznych, operujących w większości przypadków na liczbach zmiennoprzecinkowych. O ile dla procesów o wolnej dynamice, dla których okres próbkowania można ustalić w granicach od kilkudziesięciu do kilkuset sekund, nie jest to problem istotny, o tyle dla procesów szybszych wymagane są najwydajniejsze jednostki obliczeniowe lub ich zestaw (klaster). Należy także zaznaczyć, że uzyskanie nawet bardzo dobrych efektów na urządzeniu o dużej wydajności lecz znacznych wymiarach (niewielkiej mobilności), nie daje możliwości późniejszego wykorzystania użytego sprzętu jako docelowego sterownika. Dlatego też z punktu widzenia projektanta systemu sterowania istotne jest, aby gotowe rozwiązanie nie tylko spełniało postawione przed nim zadania obliczeniowe, ale również pozwalało na praktyczną realizację w postaci gotowego sterownika. W niniejszej pracy autorzy podjęli problem doboru procesora sygnałowego (Digital Signal Processor – DSP), którego zadaniem jest sterowanie modelem laboratoryjnym suwnicy trójwymiarowej w sposób optymalny. Problem dotyczył nie tylko wyboru jednostki o jak największej mocy obliczeniowej, ale również efektywnego jej wykorzystania. Decyzja o poszukiwaniu właściwej jednostki obliczeniowej wśród procesorów DSP wynikała przede wszystkim z ich struktury wewnętrznej, a co za tym idzie funkcjonalności, w szczególności związanej z obliczeniami numerycznymi. Wybrane procesory DSP porównano w innymi, często wykorzystywanymi procesorami takimi, jak: Intel Core 2 Extreme, Intel Core Duo, ARM9 i 8051. dr inż. Mariusz Pauluk, mgr inż. Piotr Bania, dr inż. Dariusz Marchewka, dr inż. Maciej Rosół – Katedra Automatyki, Akademia GórniczoHutnicza, Kraków Wybór procesora sygnałowego Problem doboru optymalnego procesora sygnałowego może wydawać się dość trudnym zadaniem, uwzględniając ich powszechność i liczbę dostępną na rynku. Jednymi z bardziej popularnych producentów tego typu procesorów są: Analog Devices, Motorola i Texas Instruments. Za podstawowe kryteria oceny mocy obliczeniowej procesorów do celów realizacji postawionego zadania przyjęto: szerokość magistrali danych architekturę numeryczną liczbę wykonywanych instrukcji na sekundę (MIPS – Millions Instructions Per Second) liczbę wykonywanych operacji zmiennoprzecinkowych na sekundę (MFLOPS – Millions FLoating point Operations Per Second) – dotyczy procesorów zmiennoprzecinkowych liczbę wykonywanych operacji mnożenia z operacją arytmetyczną na sekundę (MMAC – Millions of Multiply-Accumulate Cycles). Większość oferowanych procesorów sygnałowych zaprojektowana jest w prostszej architekturze stałoprzecinkowej ( fixed point), co oznacza, że jednostka arytmetyczno-logiczna oraz układ mnożący operują na liczbach zapisanych w naturalnym kodzie binarnym, kodzie uzupełnień do dwóch (U2) lub formacie ułamkowym ( fractional). Bardziej zaawansowane procesory sygnałowe mają architekturę zmiennoprzecinkową ( floating point), czyli taką, w której każda liczba interpretowana jest w notacji wykładniczej, składającej się z cechy i mantysy. Przewaga tej notacji nad stałoprzecinkową wynika głównie z dużo większego zakresu liczb możliwych do zakodowania na tej samej liczbie bitów, a także z mniejszych błędów numerycznych powstałych podczas obliczeń na liczbach zakodowanych w tym formacie. Ogólnie rzecz ujmując, przykładowe poniższe trzy instrukcje w języku C: a=1,67; b=3,24; c=a*b; kompilator w procesorze zmiennoprzecinkowym zakoduje np. następującymi instrukcjami assemblera: 45 Pomiary Automatyka Robotyka 10/2008 F0 = 1,67 ; wpisz do rejestru F0 liczbę 1,67, F1 = 3,24 ; wpisz do rejestru F1 liczbę 3,24, F2 = F0*F1 ; pomnóż zawartość rejestrów F0 i F1 i wynik wstaw do F2. Powyższe instrukcje zostaną wykonane w trzech cyklach, podczas gdy w architekturze stałoprzecinkowej kompilator najpierw odpowiednio zakoduje liczby 1,67 i 3,24, następnie wywoła funkcję z biblioteki realizującą operację mnożenia na liczbach w formacie zmiennoprzecinkowym, a następnie wartość zwróconą przez funkcję mnożącą wstawi do rejestru F2. Zajmie to oczywiście znacznie więcej czasu, jak również miejsca w pamięci programu. Obecnie dostępne są procesory sygnałowe o następujących szerokościach magistral danych: 16, 24, 32 i 64 bity. Występujące w nich układy mnożące i arytmetyczno-logiczne mogą dysponować rejestrami o nieco większej szerokości, aby zapewnić większą precyzję obliczeń. Przykładowo, procesory serii SHARC firmy Analog Devices mają 32-bitową magistralę danych, ale szerokość rejestrów do obliczeń wynosi 40 bitów. Procesor TMS320C6727B firmy Texas Instruments ma 64-bitowe rejestry ogólnego zastosowania do komunikacji z wewnętrzną pamięcią. Szerokość magistrali do komunikacji z zewnętrznymi pamięciami danych wynosi 32 bity. Moc obliczeniowa jednostek procesorowych podaje się w MIPS-ach, a jeżeli procesor jest zmiennoprzecinkowy – w MFLOPS-ach oraz dla procesorów sygnałowych podaje się dodatkowo liczbę operacji typu MMAC. Operacja ta jest wykorzystywana między innymi w algorytmach filtracji cyfrowej, a także w analizie częstotliwościowej przetwarzanych sygnałów. W opisywanym projekcie wstępnie zdecydowano, że jednostką centralną projektowanego superszybkiego sterownika będzie zmiennoprzecinkowy procesor sygnałowy. Tab. 1 przedstawia proste porównanie parametrów wybranych procesorów i mikrokontrolerów. Na potrzeby testów wybrano dwa procesory firmy Analog Devices: ADSP21065L oraz ADSP21369. Obydwa układy są jednostkami zmiennoprzecinkowymi, o 32-bitowej szerokości magistrali danych. Zgodnie z parametrami podanymi w tab. 1, ADSP21369 jest ponad dziesięciokrotnie szybszy od ADSP21065L. Przy wyborze procesorów kierowano się również parametrami charakteryzującymi moc obliczeniową, ceną wybranych jednostek oraz ich dostępnością. Jednostka ADSP21369 jest najszybszym ze znanych autorom 32-bitowych procesorów sygnałowych. Obiekt sterowany Poniżej zaprezentowano w skróconej formie model matematyczny laboratoryjnej suwnicy ramowej. Jednakże jest on w pełni wystarczający, aby porównać i ocenić stopień złożoności przedstawionych obliczeń numerycznych. Szczegółowa analiza dynamiki suwnicy znajduje się np. w [4]. Założono, że suwnica przemieszcza ładunek w układzie kartezjańskim o współrzędnych x, y i z. Podnoszenie lub opuszczanie ładunku odbywa się wzdłuż z wózek Intel Core 2 Extreme QX6700 2) 2) szyna N1 x Architek. Moc obliczeniowa (max) Cena (PLN)1) 64bit 15 868 MFLOPS 3000 64bit 8 730 MFLOPS 3200 Intel Core Duo T240012) 64 bit 5 082 MFLOPS 860 Intel Pentium M 76012) 64 bit 2 802 MFLOPS 950 Analog Devices ADSP-213693) 32 bit 2 400 MFLOPS 140 32/64 bit 2800 MIPS/2100 MFLOPS 85 32 bit 198 MFLOPS 180 TI TMS320C6727B Analog Devices ADSP-21065L23) ARM9 – Atmel AT91SAM926034) 32 bit 210 MIPS 57 Motorola DSP56L307 5) 24 bit 160 MIPS 76 8 bit 5 MIPS 30 8 bit 1,3 MIPS 16 8051 – Atmel AT89C51RC2 6) 8051 – Analog Devices ADuC8313) Ceny brutto (uwzględniają 22 % VAT) z dnia 5.03.2008 r. Użyty przelicznik: USD = 2,3 PLN 2) Wyniki testów opublikowane przez magazyn Chip – http://rankingi.chip.pl/ 3) Na podstawie www.analog.com 4) Na podstawie www.ti.com 5) Na podstawie materiałów udostępnionych przez firmę Motorola – materiały elektroniczne „dsp56l307ds.pdf” 6) Źródła własne 1) 46 x7 N3 Intel Core 2 Extreme X68001 4) y x5 Tab. 1. Zestawienie mocy obliczeniowej wybranych procesorów Procesor N2 ciężar Rys. 1. Model suwnicy z zaznaczonymi siłami działającymi w układzie we współrzędnych kartezjańskich kierunku z. Sterowanie suwnicą odbywa się oddzielnie wzdłuż kierunków osi: x, y i z. Są to sterowania oznaczone: u1, u2 i u3. Położenie wózka w płaszczyźnie xy określają odpowiednio zmienne: x1 i x3, a odchylenia kątowe zawieszonego ładunku zmienne stanu: x5 i x7 (rys. 1). Długość linki określa zmienna x 9. Zmienne stanu o indeksach parzystych to pochodne (prędkości) poprzedzających je wielkości, np. x 2 określa prędkość wózka w kierunku osi x, a x10 – prędkość podnoszenia lub opuszczania ładunku itd. Pomiary Automatyka Robotyka 10/2008 Założono, że tarcie kinematyczne (współczynniki: k1, k2 i k3) występujące w układzie jest proporcjonalne do odpowiedniej składowej prędkości. Składowe wypadkowych sił sterujących można zatem opisać następująco: N1=u1–k1x2, N2=u2–k2x4, N3=u3–k3x10 Następujący układ dziesięciu nieliniowych równań różniczkowych opisuje zachowanie suwnicy: . x 1=x2 . x 2=N1+m1c5N3 . x 3=x4 . x 4=N2+m2s5s7N3 . x5=x6 . x 6 =(s5N1–c5s7N2+(m1– m2s72 )c5s5N3+V5)/x9 . x 7=x8 . x 8=–(c7N2+m2s5c7s7N3+V6)/(s5x9) . x 9 =x10 . x 10 =–c5N1–s5s7N2–(1+m1c5s52 +m2s52s72 )N3+V7 (1) osiągnięcia zadanego stanu końcowego S0(u,T)=0 ze stałym horyzontem czasowym TÎ[0, ∞ [. Czas minimalny otrzymuje się metodą przeszukiwań poprzez stopniowe zmniejszanie wartości horyzontu aż do wystąpienia sytuacji, w której nie można osiągnąć stanu końcowego. Najmniejsza wartość horyzontu czasowego, przy którym system osiąga stan końcowy, jest jednocześnie rozwiązaniem optymalnoczasowym (rys. 3). Z zasady maksimum wynika, że sterowanie będące rozwiązaniem tego problemu, ma charakter typu „bang-bang”, przy założeniu, że problem nie zawiera osobliwości. Sterowanie „bang-bang” opisane jest przez wartość min max początkową u0ÎR3 taką, że u0iÎ{ui , ui } dla i=1,2,3, i przez rosnącą, co do wartości czasu, sekwencję przełąi Ì[0, ∞ ] dla każdej składowej u (rys. 2). czeń ti=(tji )j=m i j=1 gdzie: siºsin xi, ciºcos xi, i=5,7, m1 i m2 są współczynnikami skalującymi, określonymi przez masy szyny, wózka i ładunku, a V5, V6 i V7 określają nieliniowe funkcje trygonometryczne: V5 = c5s5x82x9–2x10 x6+gc5c7 V6 = 2x8(c5x6 x9+s5 x10)+gs7 V7 = s52 x82x9+gs5 c7+x62x9 Problem optymalnego sterowania Równania (1) można przedstawić w macierzowej postaci: . x (t)=f(x(t), u(t))=f 0 (x(t))+f 1 (x(t))u(t) (2) gdzie x(t)ÎR10 jest wektorem stanu, a u(t)ÎR3 jest wektorem sterowania. Określony jest stan początkowy systemu: x(0)=x0 oraz stan końcowy: xf. Zbiór dopuszczalnych sterowań składa się z funkcji przedziałami min max ciągłych u :[0, ∞[ → R3 takich, że: u1(t)Î[ui , ui ], i=1, 2, 3. Rys. 2. Przykładowe sterowanie: parametry m1, m2, i m3 są równe 5 Wskaźnik jakości problemu optymalnoczasowego można przedstawić w postaci: (3) Parametr q przyjmuje wartości dodatnie. Sterowanie u jest optymalnoczasowe, jeżeli T jest minimalne, a system osiągnie stan końcowy S0(u,T)=0. Minimalizowany wskaźnik jakości (3) jest funkcjonałem uzależnionym od stanu końcowego: xf oraz czasu, w którym osiągany jest stan końcowy T. Problem optymalnoczasowy – czyli problem określenia takiej sekwencji sterowań, przy której system osiąga stan końcowy w najkrótszym możliwym czasie – jest zamieniany na problem pomocniczy, tj. na sekwencję problemów Rys. 3. Przykładowe rozwiązania problemów pomocniczych Parametr mi, którego wartość ustala się intuicyjnie na początku algorytmu, określa liczbę przełączeń. Zbyt mała wartość parametru m powoduje, że system nie osiąga stanu końcowego dla żadnej wartości T. Zbyt duża wartość tego parametru spowoduje jedynie, że część czasów przełączeń (nadmiarowych) po minimalizacji będzie „leżeć” bardzo blisko siebie. 47 Pomiary Automatyka Robotyka 10/2008 Tak więc, sterowanie u(t) w omawianym problemie można przedstawić jako funkcję u(t, t, u0), gdzie t=(t1, t2, t3) (rys. 2). Funkcjonał Sq(u(.; t,u0), T) ograniczony do sterowań typu „bang-bang” oznaczono przez: S’q(t, u0, T) gdzie t jest skończoną sekwencją trójek o wartościach rosnących niezależnie dla każdej składowej trójki i należących do przedziału [0, T]. Równania sprzężone dla problemu pomocniczego opisane są jako: = −∇ x f ( x ,u ) y y (4) rozwiązanie układu równań sprzężonych (4) metodą Rungego-Kutty czwartego rzędu wyliczenie funkcji przełączeń – antygradientu (5) wyliczenie gradientu wskaźnika jakości względem sterowania: ∇ t j Sq′ ( t ,u0 ,T ) (6) i proste przesunięcie czasów przełączeń zgodnie z kierunkiem wyznaczonym przez (6). Tab. 2 przedstawia otrzymane wyniki dla poszczególnych fragmentów algorytmu rozwiązującego problem pomocniczy (rys. 4). Określenie m,τ , T, dokład., minimal = 0, l_kier = 0 START Wyliczenie: x(t), ψ (t), Sq , grad τ S q ' ' ze stanem końcowym równym: Określenie kierunku poprawy l_kier++ y(T)=Q(xf–x(T)) Antygradient wskaźnika jakości Sq dla problemu pomocniczego, ze względu na sterowanie wynosi: g (t ) = −∇u Sq (u ,T ) = y(t )T f 1 ( x (t )) t Minimalizacja wskaźnika jakości, np. metodą aproksymacji funkcją kwadratową Wyliczenie x(t) (5) ' Wyliczenie Sq Antygradient określany jest też mianem funkcji przełączeń ze względu na fakt, że jego wartość określa znak sterowania: odpowiednio umin lub umax, dla którego Hamiltonian [2, 5] osiąga wartość maksymalną. Wynika to wprost z definicji: Sq' > dokład. Nie Wzór na pochodną wskaźnika jakości ze względu na i czasy przełączeń ti=(tji )j=m ⊂ [0, ∞ [, gdzie i=1,2,3 poj=1 dano np. w [6, 7, 8] i wynosi ona: ∇ τ j Sq′ ( t ,u0 ,T ) = y( t ij )T fi1 ( x ( t ij ))(ui ( t ij + ) − ui ( t ij − )) i ∇ τ j Sq′ ( t ,u0 ,T ) = gi ( t ij )( ui ( t ij + ) − ui ( t ij − )) i Implementacja problemu sterowania w procesorach sygnałowych W celu oszacowania możliwości rozwiązania problemu optymalnego sterowania przez procesor sygnałowy, zaimplementowano w obu jednostkach: ADSP21065L i ADSP21369 następujące programy: rozwiązanie układu równań (1) metodą Rungego-Kutty (RK) czwartego rzędu 48 Nie l_kier < 30 & H ( y(t ) , x (t ) ,u(t )) = y T f ( x (t ) ,u(t ) Po uwzględnieniu, że równania systemu mają afiniczną postać ze względu na sterowanie, Hamiltonian można wyrazić jako: (6) Tak Sq' > dokład. minimal++ Tak minimal<10 & KONIEC Rys. 4. Algorytm rozwiązania problemu pomocniczego Założono, że: minimalizacja na kierunku wykonywana będzie maksymalnie 10 razy wyznaczanie nowego kierunku minimalizacji wyliczane będzie maksymalnie 30 razy czas problemu pomocniczego T = 5 s krok metody Rungego-Kutty 0,01 s. Przy takich założeniach, oraz po uwzględnieniu danych z tab. 2 oszacowano czas potrzebny na rozwiązanie problemu pomocniczego (rys. 4): Procesor ADSP21065L 31 s Procesor ADSP21369 1,98 s. Tab. 2. Wyniki testów mocy obliczeniowej procesorów DSP Funkcja ADSP21065L ADSP21369 Jeden krok metody RK obliczającej równania (1) 13252 cykli (200 µs) 4555 cykli (11,4 µs) Jeden krok metody RK obliczającej równania sprzężone (4) 26757 cykli (401 µs) 8293 cykli (20,7 µs) Jeden punkt funkcji przełączeń (5) 1413 cykli (21 µs) 563 cykli (1,4 µs) Gradient wskaźnika jakości dla jednego czasu przełączenia (6) 899 cykli (13,5 µs) 276 cykli (0,7 µs) Wykonanie jednego kroku algorytmu optymalizującego czasy przełączeń sterowania 21469 cykli (322 µs) 5830 cykli (14 µs) Pomiary Automatyka Robotyka 10/2008 Wnioski Wyniki przeprowadzonych badań pokazują, że procesor ADSP21065L jest mało przydatny w rozwiązaniu on-line tak skomplikowanego problemu. Procesor ten rozwiązuje 5-sekundowy problem regulacji w czasie równym ok. 31 s. W praktyce nie nadaje się do zastosowania jako regulator działający w czasie rzeczywistym. Dużo lepsze wyniki osiągnął procesor ADSP21369. Ten sam problem rozwiązywany jest w czasie ok. 2 s. Z danych technicznych opublikowanych przez producenta wynika, że stosunek mocy obliczeniowej (w optymalnych warunkach) obu procesorów ma się jak 1:12. W praktycznej aplikacji relacja ta jest gorsza i wynosi ok. 1:15. Wynika to z mniejszej pamięci wewnętrznej procesora ADSP21065L w porównaniu z procesorem ADSP21369. Program umieszczony w wewnętrznej pamięci wykonywany jest dwa razy szybciej niż program umieszczony w zewnętrznej pamięci. W testowanym problemie procesor ADSP21065L większą część programu umieszczał w zewnętrznej pamięci, podczas gdy drugi z badanych procesorów prawie cały program zmieścił w części wewnętrznej. Uzyskana w eksperymentach moc obliczeniowa procesora ADSP21369 stwarza szansę na zrealizowanie w czasie rzeczywistym strategii czasooptymalnej i innych strategii sterowania optymalnego na bazie schematu sterowania predykcyjnego. Sterowanie predykcyjne stanowi obecnie jedną z niewielu, a w pewnych przypadkach jedyną, z uniwersalnych metod sterowania systemami nieliniowymi w czasie rzeczywistym [1, 3]. Bibliografia 1. Bania P.: Czy sterowanie predykcyjne wymaga dokładnej optymalizacji. Automatyka, Wyd. AGH, Kraków, 2006. 2. Górecki H.: Optymalizacja systemów dynamicznych, Wydawnictwo Naukowe PWN, Warszawa, 1993. 3. Mayne D. Q., Rawlings J. B., Rao C. V., Scokaert P. O.: Constrained model predictive control: Stability and optimality. Automatica 36, 2000. 4. Pauluk M.: Model matematyczny trójwymiarowej suwnicy, Automatyka, tom 6, zeszyt 1, s. 69–102, Wyd. AGH, Kraków, 2002. 5. Pułaczewski J., Szacka K., Manitius A.: Zasady automatyki, WNT, Warszawa, 1974. 6. Sirisena H. R.: A gradient method for computing optimal bang-bang control. Int. J. Contr., 19, 1974, s. 257–264. 7. Szymkat M., Korytowski A.: Evolution of structure for direct control optimization. Discussiones Mathematicae Differential Inclusions, Control and Optimization 27, 2007, pp. 165–193. 8. Szymkat M., Korytowski A., Turnau A.: Variable control parameterization for time-optimal problems. IFAC CACSD 2000 Conference, Salford. 49