MATICOVÉ OPERACE V SIMULINKU VERZE 4 Daniel Honc, František Dušek Katedra řízení procesů a výpočetní techniky, FCHT, Univerzita Pardubice
Abstrakt Verze 4 SIMULINKu přinesla principiální změnu – možnost pracovat se signály typu matice. Od tohoto okamžiku lze na úrovni modelu používat maticové operace, což bylo dříve možné pouze na úrovni S-funkcí. Tímto se možnosti zápisu modelu v SIMULINKu přiblížily možnostem vlastního MATLABu. Zvláště užitečná je tato nová vlastnost např. pro oblast řízení, kde je nyní možné vytvořit kompletní diskrétní regulátor. Ukázka modelu SIMULINKu využívajícího nové možnosti pro realizaci adaptivního řízení je námětem tohoto příspěvku. Je ukázána průběžná identifikace modelu řízené soustavy, průběžný odhad stavu soustavy a LQ regulátor.
Úvod Při návrhu algoritmů řízení je velmi přínosná možnost experimentovat na fyzikálním modelu. Pouze numerická simulace chování uzavřené regulační smyčky je sice užitečná, ale případné problémy se projeví často až v reálu. Prvním krokem k realitě je řízení na fyzikálním modelu v reálném čase. Běžně se pro tyto účely používá MATLAB ve spojení s Real Time Toolboxem nebo Data Acquisition Toolboxem či jiným specializovaným toolboxem např. pro podporu signálových procesorů. Zapsání příslušných algoritmů v MATLABu není až tak složitá záležitost. Pracnější je jejich ověření pomocí simulace uzavřené regulační smyčky, jejíž součástí je např. i nelineární model řízené soustavy. Právě pro zápis nelineárních dynamických modelů a simulace chování za různých podmínek je výhodné použít SIMULINK. Proč tedy úlohu neřešit rovnou v SIMULINKu? Problémem byla realizace složitějších diskrétních algoritmů obsahujících maticové operace, cykly a iterace rozložené v čase. Jediný rozumný způsob řešení bylo napsat vlastní S-funkci, což není triviální záležitost. Verze MATLABu 6.1 přinesla nové možnosti například v souvislosti s připojením externích zařízení (podpora sériové linky [Dušek 02]) a také rozšíření SIMULINKu verze 4 o podporu maticových signálů a operací. V příspěvku je na konkrétním příkladu ukázáno adaptivní řízení elektrické soustavy. Spojení se soustavou je realizováno pomocí akviziční karty a Real Time Toolboxu. Parametry modelu soustavy ve tvaru diferenční rovnice jsou průběžně identifikovány rekurentní metodou nejmenších čtverců. Diferenční rovnice je převedena na stavový model, který je využíván jednak pro průběžnou identifikaci stavu Kalmánovým filtrem a jednak pro výpočet LQ regulátoru (aktualizovaného v každém kroku) s konečným horizontem řízení a penalizací akčního zásahu. Všechny použité bloky jsou napsány obecně tj. jsou parametrizovány pro volbu řádu soustavy, počáteční hodnoty pracovních matic a bez nutnosti volit explicitně interval vzorkování.
Nové možnosti SIMULINKu verze 4 Signály mohou být jednorozměrové nebo dvourozměrové. Jednorozměrový 1-D signál je jednorozměrové pole vytvořené např. blokem Mux. Dvourozměrový 2-D signál je dvourozměrové pole - matice. Jednoprvkové pole je označováno jako skalár. Rozlišuje se řádkový vektor jako 2-D pole s jedním řádkem a sloupcový vektor je 2-D pole s jedním sloupcem. Bloky Simulinku se liší v rozměrech signálů, které mohou akceptovat nebo produkovat během simulace. Některé bloky podporují signály libovolných rozměrů, některé pouze skalární nebo 1-D signály. Detailní popis všech bloků je uveden v nápovědě Simulinku (v části Block Reference).
Přehled použitých bloků a stručný popis jejich funkce Selector - vybere prvky z vstupního vektorového nebo maticového signálu. Selector
Assignment - přiřadí hodnoty určeným prvkům signálu.
U1 -> Y
U2 -> Y(E) Y Assignment Horiz Cat
Matrix Concatenation - spojí vstupy horizontálně nebo vertikálně.
Matrix Concatenation
Reshape - změní rozměr signálu.
Reshape
Matrix Multiply
Product - provede násobení, dělení, maticové násobení nebo inverzi vstupů. Math Function - provede matematickou funkci (např. transpozici).
Product
uT Math Function
For Iterator Subsystem - subsystém, který se cyklicky vykoná během jednoho simulačního kroku. In1
for { ... } Out1 For Iterator Subsystem
For Iterator For Iterator
1
1
In1
Out1
Použité algoritmy V této části jsou shrnuty použité algoritmy realizované jako obecné (parametrizované) knihovní bloky. Matematický maticový zápis je velmi stručný, popis v textu je zaměřen spíše na problémy či zajímavosti při převodu matematického zápisu do modelu SIMULINKu. Bližší popis algoritmů je ve většině běžných publikací zabývajících se klasickým diskrétním řízením. Konkrétně použité verze algoritmů byly převzaty z publikace [Dušek 99], pro kterou byla jedním z hlavních zdrojů v této oblasti publikace [Havlena 96]. Rekurentní metoda nejmenších čtverců s exponenciálním zapomínáním Neznámé parametry soustavy jsou odhadovány rekurentní metodou nejmenších čtverců s exponenciálním zapomínáním. Jsou identifikovány parametry diferenční rovnice Ay = Bu, kde A a B jsou vektory parametrů soustavy, y a u jsou vektory tvořené výstupy a vstupy soustavy v daných intervalech vzorkování. A = [1 a1 a2 ... aN],
B = [0 b1 b2 ... bN], y = [y(k) y(k-1) … y(k-N)]',
u = [u(k) u(k-1) … u(k-N)]'
V každém intervalu vzorkování je třeba provést následující posloupnost výpočtů: 1. 2. 3. 4. 5. 6.
časová aktualizace vektoru dat x výpočet chyby predikce eps výpočet pomocného vektoru m aktualizace matice P aktualizace vektoru parametrů theta normování vektorů A a B
x(k) = [-y(k-1) -y(k-2) ... -y(k-N) u(k-1) u(k-2) ... u(k-N)] eps(k) = y(k)-x(k)theta(k-1) m(k) = P(k-1)x(k)'/[lambda+x(k)P(k-1)x(k)'] P(k) = [P(k-1)-m(k)x(k)P(k-1)]/lambda theta(k) = theta(k-1)+m(k)eps(k) A = [1 theta(1) ... theta(N)], B = [0 theta(N+1) ... theta(2N)]
Vstupy zamaskovaného bloku y (k) A Simulinku jsou regulovaná veličina y(k) a akční veličina u(k-1) B u(k-1). Výstupem jsou polynomy A a B s odhadovanými Rekurentni metoda nejmensich ctvercu parametry. Parametry bloku jsou řád soustavy N (stupeň polynomu A a B) a faktor exponenciálního zapomínání lambda. Pro dílčí operace 1-6 jsou vytvořeny samostatné subsystémy. Standardní bloky „posun P“ a „posun theta“ mají jako parametr počáteční hodnoty matice P a vektoru theta. Počáteční hodnoty vektoru dat x jsou zadávány v bloku „posun x“. Interval vzorkování celého subsystému je určen intervalem vzorkování vstupů u a y (intervalem vzorkování nadřazeného systému). Časová aktualizace vektoru dat x je zajištěna následujícím způsobem. Ze zpožděného vektoru x(k-1) je v bloku Selektor odstraněn poslední prvek. V Bloku Mux je na první místo přidána hodnota –y(k-1). Pomocí bloku Assigment je na pozici N+1 přiřazena hodnota u(k-1). Blok Reshape tvoří řádkový vektor x(k). Ostatní bloky jsou přímočarým přepisem výpočetních vztahů.
Rekurentní metoda nejmenších čtverců
eps(k) = y(k)-x(k)*theta(k-1)
y (k)
1
y (k) x(k)
y(k) 2
u(k-1)
u(k-1) casova aktualizace vektoru dat
[1x6] x(k) [1x6] [6x1]
x(k)
eps(k)
eps(k)
theta(k-1)
chyba predikce m(k) = P(k-1)*x(k)'/[lambda+x(k)*P(k-1)*x(k)']
[1x6]
x(k) m(k)
[6x6]
[6x1] m(k)
P(k-1)
P(k) = [P(k-1)-m(k)*x(k)*P(k-1)]/lambda theta(k) = theta(k-1)+m(k)*eps(k)
pomocny vektor m(k)
m(k)
[6x1]
x(k)
[1x6]
P(k)
[6x6]
P(k-1)
[6x6]
[6x1]
aktualizace matice P(k) 1
P(k-1) [6x6]
eps(k)
A(k)
P(k)
[6x1]
m(k)
theta(k)
[6x1] theta(k) [6x1]
1
theta(k-1) [6x1]
[6x1]
z
posun theta
x(k) = [-y(k-1) -y(k-2) ... -y(k-N) u(k-1) u(k-2) ... u(k-N)]
1 y(k)
1 z Unit Delay
y (k-1)
-1 [1x6]
Gain [1x6]
U U(E)
[1x5]
U1 -> Y [1x6] U2 -> Y(E) Y Assignment
Selector2 2 u(k-1) x(k-1)
Časová aktualizace vektoru dat
[1x6]
1 z posun x
[1x6]
[1x4]
1 2 B
normovani
z posun P
B(k)
theta(k-1)
aktualizace vektoru parametru theta(k)
[6x6]
[1x4]
A
theta(k)
[1x6] [1x6]
1 x(k)
1 x(k)
eps(k) = y(k)-x(k)*theta(k-1)
[1x6] x(k)
m(k) = P(k-1)*x(k)'/[lambda+x(k)*P(k-1)*x(k)']
1 y(k) [1x6]
2 x(k)
3
Matrix Multiply
[6x6]
1
2
eps(k)
P(k-1)
[1x6]
Matrix [6x1] Multiply
[6x1]
x(k)*P(k-1)*x(k)'
[6x1]
theta(k-1)
[1x6]
Matrix Multiply
[6x1]
x(k)'
lambda
x(k)*theta(k-1) P(k-1)*x(k)'
Chyba predikce
[6x1]
lambda
1 m(k)
[6x1]
Pomocný vektor m(k)
deleni
theta(k) = theta(k-1)+m(k)*eps(k)
Aktualizace matice P(k) 1
[6x1]
m(k) 2
[1x6]
x(k)
Matrix Multiply
[6x6]
theta(k-1) [6x1]
[6x6]
m(k)*x(k)*P(k-1)
[6x6]
1/lambda
[6x6]
3
[6x1]
2
1
1 theta(k)
[6x1]
m(k)
P(k)
Gain
P(k-1)
[6x1]
3
P(k) = [P(k-1)-m(k)*x(k)*P(k-1)]/lambda
1 eps(k)
[6x6]
m(k)*eps(k)
[6x6]
Aktualizace vektoru parametrů theta(k)
Normování 1 Constant [4x1]
1 theta(k)
[6x1] [6x1]
U U(E)
[1x4]
[3x1]
1 A(k)
Selector 0 Constant1 [4x1] [6x1]
U U(E)
[3x1]
[1x4]
2 B(k)
Selector1
Pozorovatel stavu (stochastická soustava a kvadratické kritérium – Kalmánův filtr) Stav soustavy je odhadován pomocí Kalmánova filtru. Model soustavy je ve stavovém popisu. x je vektor stavů, u je vektor vstupů a y výstupů soustavy. A, B a C jsou matice stavového popisu. U modelu je uvažován šum na vstupu a na výstupu soustavy. x(k+1) = Ax(k) + Bu(k) + Binein(k) y(k) = Cx(k) + eou(k) Bin ein(k) eou(k)
matice váhy šumu na složky stavu vektor šumu na vstupu vektor šumu na výstupu
V každém intervalu vzorkování je třeba provést následující posloupnost výpočtů: 1. 2. 3.
výpočet pomocného vektoru M datová aktualizace matice PK časová aktualizace matice PK
M=PK(k/k-1)C'(RK+CPK(k/k-1)C')-1 PK(k/k)=(I-MC)PK(k/k-1) PK(k+1/k)=APK(k/k)A'+BinQKBin'
4. 5.
datová aktualizace vektoru x časová aktualizace vektoru x
x(k/k)=x(k/k-1)+M(y(k)-Cx(k/k-1)) x(k+1/k)=Ax(k/k)+Bu(k)
Vstupy bloku Simulinku jsou regulovaná veličina y(k), akční veličina u(k) a matice A, B, Bin a C. Výstupem je odhad stavu soustavy x(k+1). Parametry bloku jsou řád soustavy N (počet stavů), kovarianční matice šumu na vstupu QK a kovarianční matice šumu na výstupu RK.
y (k) u(k) A x(k+1) B Bin C
Kalmanuv filtr
Pro dílčí operace 1-5 jsou vytvořeny samostatné subsystémy. Bloky „posun P“ a „posun x“ mají jako parametr počáteční hodnoty matice P a vektoru x.
1 [3x3]
[3x3]
z Posun P
Pk(k/k)=(I-M*C)*Pk(k/k-1)
M=Pk(k/k-1)*C'*inv(Rk+C*Pk(k/k-1)*C') [3x3]
6 C
[1x3] [1x3]
[3x3]
P(k/k-1) M C
Pomocny vektor m
[3x1] [3x1] [1x3]
P(k/k-1)
Pk(k+1/k)=A*Pk(k/k)*A'+Bin*Qk*Bin'
M
Pk(k/k)
[3x3]
P(k/k)
C
Datova aktualizace P
5
[3x3] [3x1]
Bin
A
Pk(k+1/k)
Bin
Casova aktualizace P
1 [3x1]
[3x1] [3x1]
[3x1]
z Posun x
x(k/k)=x(k/k-1)+M(y(k)-C*x(k/k-1))
1
[3x3]
x(k/k-1) M x(k/k)
[3x1]
y (k)
y(k) [1x3]
C
x(k+1/k)=A*x(k/k)+B*u(k)
Datova aktualizace x [3x1]
2 3 A
x(k+1/k) [3x3]
B
Kalmánův filtr
u(k)
[3x3] u(k)
4
x(k/k)
[3x1]
A
[3x1] [3x1]
1 x(k+1)
B
Casova aktualizace x
LQ regulátor – programové řízení na konečném horizontu řízení s penalizací akční veličiny Soustava je řízena pomocí LQ regulátoru na konečném horizontu řízení délky N. Model soustavy je ve stavovém popisu x(k+1) = Ax(k) + Bu(k), y(k) = Cx(k) 1 1 k+ N-1 Kritérium je ve tvaru: J(N) = x' (N)Q N x(N) + [e' (i)Qe(i) + u' (i)Ru(i)] , kde 2 2 i=k+1 N je délka horizontu řízení (počet kroků) x(N) je vektor stavu na konci horizontu řízení je penalizační matice koncového stavu QN e(i) je vektor regulačních odchylek v i-tém kroku e(i) = w(i)-y(i), w = [w(k+N-1) w(k+N) ... w(k+1)] Q je penalizační matice regulační odchylky
∑
u(i) R
je vektor akčních zásahů v i-tém kroku je penalizační matice akčních zásahů
Regulační zákon: u(k) = K(1)x(k) + l(1)
Pro i = N-1,…,1 je nutné rekurentně počítat parametry K(i) a l(i), pomocnou matici P(i), pomocný vektor p(i) podle vztahů: 1. 2. 3. 4.
K(i) = -[R+B'P(i+1)B]-1B'P(i+1)A l(i) = -[R+B'P(i+1)B]-1B'p(i+1) P(i) = C'QC+A'P(i+1)A+[B'P(i+1)A]'K(i) p(i) = A'p(i+1)-C'Qw(i)+[B'P(i+1)A]'l(i)
výpočet parametru K výpočet parametru l výpočet pomocné matice P výpočet pomocného vektoru p
Vstupy bloku Simulinku jsou budoucí průběh žádané hodnoty w, matice A, B a C. Výstupem jsou matice K a vektor l regulačního zákona. Parametry bloku jsou délka horizontu řízení N a penalizační matice Q, R a QN.
w K
A
for { ... } B
l
C
LQ regulator
Iterace je provedena pomocí bloku For Iterator Subsystem. Počet iterací bloku „For Iterator“ je nastaven na N-1. Počáteční hodnoty pomocné matice P a pomocného vektoru p jsou zadány jako parametry bloků „Posun P“ a „Posun p“.
1 [3x3]
[3x3] [3x1] [3x1]
2
P(i+1) p(i+1)
l
[1x3]
l(i)
B [3x3]
Vypocet l 1
[1x9]
w For Iterator For Iterator
P(i+1)
[3x3]
l(i)
U C
U(R,C)
Selector
[3x1]
w(i) [3x1] [3x3] [3x1]
N [1x3]
Constant
[3x3]
p(i+1)
p(i)
K(i)
B
Vypocet K
[1x3]
[3x3] [1x3] [3x3] [3x1] [1x3]
P(i+1) K(i) A
P(i)
[3x3]
B C
B C
Vypocet p
1
[3x3]
K
Vypocet P
A
[3x1]
2
[3x1]
Posun P
1
P(i+1) A
[3x3]
z
[3x1]
z Posun p
A 3
[3x1]
B 4 C
[1x3]
LQ regulátor
Budoucí průběh žádané hodnoty Pro LQ regulátor je nutné mít w(k) k dispozici budoucí průběh w(k+N-1) w žádané hodnoty. Vstupem Budouci prubeh bloku Simulinku je žádaná zadane hodnoty hodnota v čase k+N-1. Výstupem je vektor w obsahující N-1 budoucích hodnot a žádaná hodnota v čase k. Parametry bloku jsou délka horizontu řízení N a počáteční hodnota žádané.
[1x9]
[1x8]
U U(E)
[1x9]
[1x9] [1x9]
Selector2
2 w
1 w(k+N-1) 1 [1x9]
[1x9] [1x9]
z
Unit Delay1
U U(E) Selector1
1 z
1 w(k)
Unit Delay
Budoucí průběh žádané hodnoty
Převod soustavy do stavového popisu Rekurentní metodou nejmenších čtverců získáme diferenční rovnici. Pro Kalmánův filtr a LQ regulátor je nutné model soustavy převést ze vstupně-výstupního do stavového popisu. x1 (k + 1) − a1 x (k + 1) = 1 2 M ( ) xN k + 1
− a2 L − a N −1 0 0 M 1
− a N x1 (k ) 1 0 x2 (k ) 0 ⋅ u (k ) , + ⋅ M M M 0 xN (k ) 0
y (k ) = [b1
b2
x1 (k ) x (k ) L bN ] ⋅ 2 M x N (k )
x(k + 1) = AA ⋅ x(k ) + BB ⋅ u (k ) y (k ) = CC ⋅ x(k )
Vstupem bloku jsou polynomy A a B. Výstupem je matice AA a vektory BB a CC stavového popisu. Parametrem bloku je řád soustavy N.
A
AA BB
B
CC
Prevod soustavy do stavoveho popisu
Počáteční naplnění matice AA je provedeno v bloku „posun AA“. V každém intervalu vzorkování je do prvního řádku matice AA přenesen vektor A se záporně vzatými koeficienty. Vektor BB je konstantní. Vektor CC je tvořený přímo koeficienty vektoru B.
1 [3x3]
[3x3]
z posun AA
[1x4]
1
[1x3]
A
[3x3]
U2 -> Y(R,C)
[3x1]
U1 -> Y
Constant1
1
[3x3]
AA
Assignment
Gain
Selector2
zeros(N,1)
U1 -> Y
[3x3] [1x3]
-1
U2 -> Y(E)
1
Y
[3x1]
2 BB
Assignment1
Constant2 [1x4]
2
[1x3]
3
B
CC Selector1
Převod soustavy do stavového popisu
Uzavřený regulační obvod
w(k)
u+3
w(k+N-1)
[1x9]
w
Fcn
Pulse Generator1
Budouci prubeh zadane hodnoty [1x9]
y (k)
A
[1x4]
A
AA BB
u(k-1)
B
[1x4]
Rekurentni metoda nejmensich ctvercu
B
CC
[3x3] [3x3] [3x1] [3x1] [1x3] [1x3]
w K
[1x3]
Matrix Multiply
A
for { ... }
[3x1]
B l
y
Saturation
C
u2
0
LQ regulator
Prevod soustavy do stavoveho popisu
u1
u
K*x(i)
Soustava
Constant3
1/z Unit Delay1
y (k) u(k) [3x3] [3x1] [3x1] [1x3]
A x(k+1) B
[3x1]
1/z
[3x1]
Unit Delay2
Bin C
Kalmanuv filtr
3
Scope
Uzavřený regulační obvod
Propojením výše uvedených bloků je vytvořeno simulační schéma uzavřeného regulačního obvodu. Pro generování žádané hodnoty je použit blok „Pulse Generator“. Blok soustava je subsystém obsahující pouze bloky pro vstupní a výstupní signály měřicí karty „RT In“ a „RT Out“ a přepočet na inženýrské jednotky. U Kalmánova filtru musí být blok „Unit Delay“ zpožďující predikovaný stav soustavy o jeden interval vzorkování. Vzorkování celého modelu je určováno vzorkováním bloku „Pulse Generator“ a bloků „RT In“ a „RT Out“.
RT In
(u+1)*5
RT In
Fcn
1 y Adapter
1 u1
2 u2
u/5-1
RT Out
Fcn1
RT Out
u/5-1
RT Out
Fcn2
RT Out1
Soustava
Řízená soustava a spojení s PC Uspořádání zařízení je na obrázku. Řízenou 8x MUX ADC soustavou je elektrická soustava (operační (12 bit, 100 kHz) elektrická soustava III.řádu 2x DAC (12 bit) zesilovače) s dvěma vstupy a jedním výstu(operační zesilovače) 8 bit TTL DI 8 bit TTL DO pem. Tato soustava je třetího řádu s ustálením cca 10 sec a zesílením cca 1. Pro připo0-10 V I A k jení soustavy je využita akviziční karta PC D S Σ 5 AD512 (Humusoft). Tato karta obsahuje 12 (T s + 1)3 Windows A 0-10 V 1 bitový analogočíslicový převodník 100 kHz MATLAB 2 (ADC Analog to Digital Convertor) s multi0-10 V plexorem (8 kanálů) a dva 12 bitové číslicoanalogové (DAC Digital to Analog Convertor) převodníky, oba s nastaveným vstupním i výstupním rozsahem 0-10 V. Karta je vložena do ISA slotu počítač PC v konfiguraci Pentium 150 MHz, 128 MB EDO RAM a Windows 98 SE. Použití karty z MATLABU verze 6.1 a SIMULINKu zajišťuje Real Time Toolbox verze 3.1 (Humusoft).
Realizace řízení soustavy v reálném čase Je ukázán průběh regulačního pochodu při adaptivním řízení elektrické soustavy. Interval vzorkování je 0,5 s. Žádaná hodnota má obdélníkový průběh s periodou 50 s. Regulační pochod začíná s úplnou neznalostí modelu soustavy. K odhadu parametrů dochází v několika prvních krocích regulace. Dále jsou uvedeny parametry bloků Simulinku a počáteční hodnoty pomocných matic. Parametry bloků Simulinku Rekurentní metoda nejmenších čtverců: N = 3, lambda = 0,99 Kalmánův filtr: N = 3, QK = 0,1, RK = 0,1 LQ regulátor: N = 10, Q = 20, R = 1, QN = eye(3) Budoucí průběh žádané hodnoty: N = 10, w0 = 3 (obdélníkový průběh, perioda 50 s, úrovně 3 a 7) Převod soustavy do stavového popisu: N = 3 Počáteční hodnoty pomocných matic Rekurentní metoda nejmenších čtverců: x = zeros(1,2*N), P = eye(2*N)*100, theta = ones(2*N,1) Kalmánův filtr: P = eye(N)*0.01, x = zeros(N,1) LQ regulátor: p = 0, P = QN Budoucí průběh žádané hodnoty: w = ones(1,N-1)*w0 10 u y w
9 8
u, y, w [V]
7 6 5 4 3 2 1 0
0
10
20
30
40
50 t [s]
Regulační pochod
60
70
80
90
100
Závěr Cílem článku není čtenáře seznámit s novým přístupem k řízení, ale na standardních příkladech demonstrovat možnosti Simulinku verze 4 v oblasti maticových výpočtů. Bloky lze většinou vytvořit přirozeným přepisem matematických vztahů. Práce s maticemi a jejich naplnění na začátku simulace je poněkud pracnější a proto je při vytváření blokových schémat velmi důležitá možnost průběžně kontrolovat rozměry signálů. Pro iterační výpočty disponuje Simulink subsystémy pro řízení výpočtů (rozhodování a cykly). Bloky LQ regulátoru a Kalmánova filtru jsou sestaveny obecně a lze je použít pro mnoharozměrovou soustavu (s větším počtem vstupů a výstupů). Bloky metody nejmenších čtverců a převodu do stavového popisu jsou uvažovány pro jednorozměrovou soustavu. U metody nejmenších čtverců jsou ukázána schémata všech použitých subsystémů. U ostatních metod jsou uvedeny pouze první úrovně. Interval vzorkování všech bloků je určován intervalem vzorkování nadřazeného systému a není jej nutné zadávat jako parametr. Oproti skriptu Matlabu je řešení v Simulinku poněkud pracnější a méně přehledné. V případě, že jsou v modelu různé nelinearity, části simulované spojitě nebo systémy s různými intervaly vzorkování, má použití Simulinku své opodstatnění. Práce se vstupními a výstupními signály je v Simulinku pohodlná (načtení dat z prostředí Matlabu nebo ze souboru, interpolace, předání libovolně vyvzorkovaných dat zpět do Matlabu). Simulaci lze spustit příkazem Matlabu, čímž jsou otevřené možnosti pro nejrůznější optimalizace.
Literatura Dušek, F.: MATLAB a SIMULINK úvod do používání. Druhé rozšířené vydání. [skriptum] Pardubice 2002, ISBN 80-7194-475-0 Dušek, F.: Adaptivní řízení. [učební text] Pardubice 1999 Dušek, F.; Honc, D.: Využití sériové linky pod MATLABem verze 6. [v tomto sborníku], 2002 Havlena, V.; Štecha, J.: Moderní teorie řízení. [skriptum] Vydavatelství ČVUT, 1996 SIMULINK Help: Using SIMULINK/Block Reference. 2001
Ing. Daniel Honc, Ph.D. doc. Ing. František Dušek, CSc.
e-mail:
[email protected] e-mail:
[email protected]
Katedra řízení procesů a výpočetní techniky Fakulta chemicko-technologická Univerzita Pardubice nám. Čs. legií 565 532 10 Pardubice
tel.: 040-603 7107 tel.: 040-603 7125