LABORATORIUM UKŁADÓW MIKROPROGRAMOWALNYCH
Zespół:
Małgorzata Burczyn
Michał Domagała
Jakub Hałun gr. 44
1. Wprowadzenie
Zrealizowany projekt opisuje układ sterowania pocisku rakietowego (autopilota) typu powietrze-ziemia z zastosowaniem układów serii AM2900 firmy Advanced Micro Devices, a dokładniej sekwensera AM2910 oraz układu AM2903.
2. Wstęp teoretyczny
2.1. System naprowadzania
Wybraliśmy system samonaprowadzania zwany systemem aktywnym. Jest on realizowany za pomocą centymetrowych fal elektromagnetycznych. Na pokładzie rakiety znajduje się nadawczo-odbiorcza stacja radiolokacyjna. Przed wystrzeleniem rakieta jest tak ustawiana na powierzchni, aby stacja ta przechwyciła cel (przed wystrzeleniem). Po wystrzeleniu rakieta sama oświetla promieniami radarowymi cel i odbiera wtórne promieniowanie celu, ustalając w ten sposób kąty odchylenia osi rakiety od linii odbioru sygnału od celu. Kąty te są wykorzystywane w algorytmie samonaprowadzania.
Podstawowe zespoły pocisku rakietowego samonaprowadzającego na cel:
Wyróżniamy:
głowicę samonaprowadzającą
autopilot
układ wykonawczy sterowania rakietą (UW)
Prosta poprowadzona od głowicy samonaprowadzającej do celu nosi nazwę - linii obserwacji celu (LOC).
Zasada działania samonaprowadzania pocisku na cel jest następująca. Głowica przechwytuje i śledzi cel. Wówczas oś koordynatora celu pokrywa się z linią obserwacji celu. Czujniki mierzą kąt między LOC a osią pocisku i podają do autopilota. Autopilot niezależnie, swoimi czujnikami, mierzy kątowe położenie pocisku względem ziemi, a następnie wyznacza sygnały sterujące i podaje je do układu wykonawczego sterowania. Realizowane są zatem dwie pętle sterowania: pętla sterowania I odnosi się do śledzenia celu przez koordynator celu, pętla sterowania II steruje lotem pocisku.
Najważniejszą częścią tego systemu jest głowica samonaprowadzająca. Jej podstawowym elementem jest tzw. koordynator celu. Jego zadaniem jest wyznaczanie bieżącego kąta między osią koordynatora (OK) a linią obserwacji celu (LOC) podczas lotu rakiety oraz automatyczne niwelowanie tego kąta (automatyczne kierowanie osi OK na prostą LOC), czyli śledzenie celu przez koordynator.
2.2. Kinematyka pocisku rakietowego
Po pierwsze należy określić położenie pocisku i celu w ziemskim układzie współrzędnych. Położenia te wyznaczają wektory łączące początek układu współrzędnych z pociskiem Rp oraz celem Rc jak na rysunku:
r =RC-RP
C - cel
P - rakieta
Wektor r pokrywa się z linią LOC
Xg,Yg,Zg - ukł. współrz. o początku w
miejscu startu rakiety
Następnie określamy położenie pocisku względem celu:
C - środek masy celu
S - środek masy pocisku
VP - wektor prędkości pocisku
VC - wektor prędkości celu
Na Rys. 2 wprowadzone są 4 układy współrzędnych:
układ X,Y,Z - jest to zaczepiony w punkcie startu rakiety układ współrzędnych ziemskich
układ X'g,Y'g,Z'g - jest to ruchomy układ współrzędnych związany z pociskiem.
Powstał przez translacje uk. współrz. ziemskich, do punktu pokrywającego się ze środkiem masy pocisku.
układ X''g,Y''g,Z''g - j.w. ale jest to układ związany z celem
układ współrzędnych celowania - jest to pomocniczy układ współrzędnych, charakterystyczny dla pocisków samonaprowadzanych na cel. Oś SXC jest skierowana od pocisku (jego środka masy S) do celu. Pozostałe osie są ukierunkowane względem układu SX'gY'gZ'g pod kątami ε i σ. Kąty te nazywamy kątami obserwacji celu i odmierzamy je od układu ziemskiego.
2.2. Metoda naprowadzania
Wybraną metodą jest tzw. metoda grupy trzeciej. Są to metody najprostsze w realizacji technicznej, ale najmniej dokładne. Stosowane są do ataku celów nieruchomych (np. naziemnych). Układ optyczny i koordynator celu wyznaczają kąt pomiędzy OP a LOC (tzw. kąt namiaru). Oś pocisku kierowana jest na cel czyli
(*) ε = γ + α oraz σ = χ + β
gdzie:
ε , σ - kąty obserwacji celu
α - kąt natarcia
β - kąt znoszenia
Załóżmy na przykład, że cel jest nieruchomy (VC=0) oraz lot pocisku odbywa się tylko w jednej płaszczyźnie - pionowej (χ , β = 0). Dla takich założeń oraz po uwzględnieniu równości (*), z Rys.2 wynikają następujące związki pomiędzy ruchem pocisku a celem:
3. Układ sterowania
Zadaniem układu sterowania czyli autopilota pocisku będzie korygowanie toru pocisku w taki sposób aby kąt obserwacji celu ε dążył do zera czyli aby linia LOC pokrywała się z linią OP. W naszym układzie sterowania będą realizowane dwie Pętla Sterowania z Rys.1. Pętla Sterowania I odnosi się do śledzenia celu przez koordynator celu. Pętla Sterowania II steruje lotem pocisku.
Schemat połączenia układu sterującego US z pozostałymi elementami pocisku:
Opis poszczególnych urządzeń:
Pierwszy czujnik głowicy samonaprowadzania mierzy kąt obserwacji celu ε (kąt w pionie). Gdy kąt jest większy lub równy np. 3° wysyła do układu sterującego impuls.
Drugi czujnik mierzy kąt σ (kąt w poziomie) i działa identycznie jak pierwszy.
Dalmierz wyznacza odległość pocisku od celu (np. wykorzystując efekt Dopplera).
Układ Wykonawczy Sterowania ma za zadanie uruchamianie sterów pocisku. Nadejście impulsu z któregoś z czujników mierzących kąty obserwacji celu do US oznacza, że należy skorygować tor pocisku. Wtedy US wysyła sygnał sterujący do odpowiednich sterów. Jest realizowana Pętla Sterowania II (patrz początek rozdziału).
Zapalnik wywołuje eksplozję pocisku. Staje się tak po nadejściu impulsu z US, który to z kolei wysyła taki impuls gdy dane przesłane z Dalmierza czyli odległość od celu będzie dostatecznie mała.
Zadaniem Koordynatora Celu jest jego śledzenie. Sprowadza się to do kierowania soczewki Głowicy Samonaprowadzającej na cel. Jest realizowana Pętla Sterowania I.
Opis sygnałów:
A - szyna adresowa 16-bitowa
D - szyna danych 16-bitowa
E - potrzebna korekcja w pionie, nie=0, góra=1, dół=2
T - potrzebna korekcja w poziomie, nie=0, lewo=1, prawo=2
V - osiągnięto minimalną odległość od celu, tak=1, nie=0
4. Algorytm działania
Przyjmujemy warunek, że pocisk namierzył już cel.
Opis zadań (Z) i warunków (XC) przy liście mikroinstrukcji na następnej stronie.
Lista mikroinstrukcji:
|
Mikroinstrukcja |
Zadania i warunki |
Ai |
Z1, A':=Ai+1 |
Z1: Odczytaj sygnały E, T, V z Głowicy Samonaprowadzania i Dalmierza odpowiednio do komórek pamięci: A, B, C |
Ai |
if XC1 then A':=Ai+4 else A':=Ai+1 |
XC1: A=0 - brak korekcji lotu w pionie, else - jest korekcja |
Ai |
if XC2 then A':=Ai+1 else A':=Ai+2 |
XC2: A=1 - w górę, else - w dół |
Ai |
Z3, A':=Ai+2 |
Z3: ustaw stery w górę; wychyl Koordynator Celu w górę |
Ai |
Z2, A':=Ai+1 |
Z2: ustaw stery w dół; wychyl Koordynator Celu w dół |
Ai |
if XC3 then A':=Ai+4 else A':=Ai+1 |
XC3: B=0 - brak korekcji lotu w poziomie, else - jest korekcja |
Ai |
if XC4 then A':=Ai+1 else A':=Ai+2 |
XC4: B=1 - w lewo, else - w prawo |
Ai |
Z5, A':=Ai+2 |
Z5: ustaw stery w lewo; wychyl Koordynator Celu w lewo |
Ai |
Z4, A':=Ai+1 |
Z4: ustaw stery w prawo; wychyl Koordynator Celu w prawo |
Ai |
if XC5 then A':=Ai-9 else A':=Ai+1 |
XC5: C=0 - nie osiągnięto celu |
Ai |
Z6, A':=Ai+1 |
Z6: wyślij sygnał do Zapalnika, wybuch pocisku |
Ai |
NOP, A':=Ai |
??? |
5. Schemat ideowy Układu Sterującego
S0 |
S1 |
S2 |
S3 |
XC |
a |
b |
c |
d |
e |
f |
g |
0 |
0 |
0 |
0 |
- |
0 |
- |
- |
- |
- |
- |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
- |
- |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
- |
- |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
- |
1 |
1 |
0 |
- |
- |
- |
1 |
0 |
1 |
0 |
0 |
- |
0 |
- |
- |
- |
- |
- |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
- |
- |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
- |
- |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
- |
1 |
1 |
0 |
- |
- |
- |
1 |
1 |
0 |
0 |
0 |
- |
0 |
- |
- |
- |
- |
- |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
- |
- |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
- |
0 |
- |
- |
- |
- |
- |
1 |
1 |
0 |
1 |
1 |
- |
1 |
1 |
1 |
- |
- |
- |
1 |
7. Schemat z wykorzystaniem układów AM2910 i AM2903
Opis układu
Adresy urządzeń:
0 - stery poziome Układu Wykonawczego Sterowania
1 - stery pionowe Układu Wykonawczego Sterowania
2 - Zapalnik
3 - wychylenie poziome Koordynatora Celu
4 - wychylenie pionowe Koordynatora Celu
5 - czujnik Głowicy Samonaprowadzającej GS (kąt ε)
6 - czujnik Głowicy Samonaprowadzającej GS (kąt σ)
7 - Dalmierz
Adresy zmiennych:
8 - kąt ε
9 - kąt σ
10 - odległość od celu
Rejestr urządzenia (RU)
We |
|
001b |
E |
010b |
T |
011b |
V |
100b |
RA |
101b |
RDI |
110b |
RDO |
gdzie:
- odczyt impulsu z czujnika Głowicy Samonaprowadzającej (ε)
- j.w. (σ)
- odczyt odległości z Dalmierza
- zapis do rejestru adresowego
- zapis do rejestru danych wejściowych
- zapis do rejestru danych wyjściowych
Rejestr adresowy RA, danych wejściowych RDI, danych wyjściowych RDO służą do przechowywania danych na szynach A i D (adresowej i danych) i zapamiętywania ich.
W pamięci ROM układu znajduje się program układu sterującego i mikroprogram sekwencera.
Komunikacja pomiędzy urządzeniami (np. wysyłanie danej z US do urządzenia) przebiega według następującego algorytmu:
Wybieramy adres urządzenia (wpis jego kodu do Y)
Wystawiamy jego adres na szynę adresową A (RU=100b)
Wybieramy określony kod komunikatu (Y=kod_komunikatu)
Wysyłamy komunikat czyli wystawiamy go na szynę danych D (RU=110b)
Przykład: Wysłanie sygnałów z US do Koordynatora Celu i Układu Wykonawczego Sterowania (zadanie Z3)
Polecenie |
Rozkaz |
Zadanie |
Z3.0, A':=Ai+2 |
Y=01b |
wybierz stery pionowe UWS |
Z3.1, A':=Ai+2 |
RU=100b |
wystaw adres na szynę adresową |
Z3.2, A':=Ai+2 |
Y=1b |
kod=1 - wychyl stery w górę |
Z3.3, A':=Ai+2 |
RU=110b |
wystawienie na szynę danych |
Z3.4, A':=Ai+2 |
Y=100b |
wybierz wychylanie pionowe Koordynatora Celu |
Z3.5, A':=Ai+2 |
RU=100b |
wystaw adres na szynę adresową |
Z3.6, A':=Ai+2 |
Y=1b |
kod=1 - wychył w górę |
Z3.7, A':=Ai+2 |
RU=110b |
wystawienie na szynę danych |
Gdy np. chcemy dane z urządzenia zapisać do komórki pamięci:
Wybieramy adres urządzenia (wpis jego kodu do Y)
Wystawiamy jego adres na szynę adresową A (RU=100b)
Wybieramy adres komórki do której chcemy zapisać
Zapisujemy dane (M[A]=D)
Przykład: Zapis do komórek pamięci sygnałów z Głowicy Samonaprowadzającej i Dalmierza
(zadanie Z1)
Polecenie |
Rozkaz |
Zadanie |
Z1.0, A':=Ai+1 |
Y=101b |
wybierz adres czujnika GS (kąt ε) |
Z1.1, A':=Ai+1 |
RU=100b |
wystaw adres na szynę adresową |
Z1.2, A':=Ai+1 |
Y=1000b |
wystaw adres komórki, która ma być zapisana |
Z1.3, A':=Ai+1 |
M[A]=D |
zapis do pamięci |
Z1.4, A':=Ai+1 |
Y=110b |
wybierz adres czujnika GS (kąt σ) |
Z1.5, A':=Ai+1 |
RU=100b |
wystaw adres na szynę adresową |
Z1.6, A':=Ai+1 |
Y=1001b |
wystaw adres komórki, która ma być zapisana |
Z1.7, A':=Ai+1 |
M[A]=D |
zapis do pamięci |
Z1.8, A':=Ai+1 |
Y=111b |
wybierz adres Dalmierza |
Z1.9, A':=Ai+1 |
RU=100b |
wystaw adres na szynę adresową |
Z1.10, A':=Ai+1 |
Y=1010b |
wystaw adres komórki, która ma być zapisana |
Z1.11, A':=Ai+1 |
M[A]=D |
zapis do pamięci |
10
Układ Wykonawczy Sterowania
Auto
Pilot
Stery
Pętla Sterowania II
Głowica Samonaprowadzająca
Pętla Sterowania I
Oś Pocisku OP
Linia Obserwacji Celu LOC
Oś Koordynatora Celu OK
(Giroskopu)
CEL
C
P
RC
O
RP
Xg
Yg
Zg
r
Y'g
X'g
Z'g
X
Y
Z
ZC
XC
YC
X''g
Y''g
Z''g
S
C
r
ε
γ
σ
χ
ε+σ
VC
VP
Rys. 2
US
Układ Wykonawczy Sterowania
stery poziome
stery pionowe
Czujnik głowicy
samonaprowadzania
kąt ε
Czujnik głowicy
samonaprowadzania
kąt σ
Zapalnik
A
D
Dalmierz
E [0,1,2]
T [0,1,2]
Koordynator Celu
wychyl. pion
wychyl. poziom
Z1
if XC1
if XC2
Z2
Z3
Z5
Z4
if XC4
if XC3
START
STOP
Z6
if XC5
TAK
TAK
TAK
TAK
NIE
TAK
NIE
NIE
NIE
NIE
V [0,1]
Licznik
ROM
S | C | Z
+2
-9
+4
b
c
00
01
10
11
a
d e f
XC1
XC2
XC3
XC4
XC5
000
001
010
011
XC
DMI
XC
S
a
b
c
d
e
f
UO
g
a = 0 inc
a = 1 load
g = 1 hold
g= 0 blok
g
100
Tablica dekodera mikroinstrukcji:
OE Rejestr
Mux warunku
wr RDO
Rejestr Urządzenia
wr RDI
wr RA
Zegar
ROM
I[0-8] B A Cin I Ccen D BA RU Rld C
AM2910 Sekwencer D[0-11]
Rld Cp
CC
Pl Ccen I[0-3] Y[0-11]
Cin 2x AM2903
A
B N
I[0-8]
Clk
D[0-15] Y[0-15]
E T V
A[0-15]
D[0-15]
NRG