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

Podobne dokumenty