You are on page 1of 75

30.1.2013.

VJEBE - NTDU
1. Analyzing Survival or Reliability Data, survivaldemo.m (1 sat)
2. Modeling a Fault-Tolerant Fuel Control System,
sldemo_fuelsys.mdl (1 sat)
3. Upravljanje robotskim kolicima od prole godine uzet od
Cibilia (3 sata)
4. ANN u Matlabu; nndtoc je GUI s raznim primjerima,
model_maglev_demo.m
Maglev
modeliranje,
PNN
Classification demopnn1.m (3 sata)
5. Fuzzy logika u Matlabu (3 sata): What Is Fuzzy Logic?;
MEMBERSHIP FUNCTION GALLERY, mfdemo.m; CHAOTIC
TIME-SERIES PREDICTION, mgtsdemo.m; Working in Simulink
Environment-An Example: Water Level Control, sltank,
sltank2
6. Fuzija slika: wavemenu, Image Fusion, unjeti 2 slike (1 sat)

1. Analiza podataka o pouzdanosti


U ovoj vjebi e se razmatrati analiza podataka o ivotnom vijeku.
Kod biolokih ili medicinskih primjena, ovo je poznato kao analiza
preivljavanja. Pri tome vremena predstavljaju vrijeme
preivljavanja organizma ili vrijeme dok se bolest ne izlijei.
U tehnikim primjenama, ovo je poznato kao analiza pouzdanosti, a
vremena su vrijeme do otkaza dijela opreme.
Da bi se demostriralo kako radi MALAB i Statistics Toolbox kod
analize ivotnog vijeka, pogledat emo primjenu u modeliranju
vremena do otkaza regulatora protoka zraka na usisnoj grani
automobilskog sustava ubrizgavanja goriva.

206

30.1.2013.

Analiza podataka o pouzdanosti


Posebna svojstva podataka o ivotnom vijeku
Neke znaajke podataka o ivotnom vijeku razlikuje ih od drugih
tipova podataka. Kao prvo, ivotna vremena su uvijek
pozitivne vrijednosti, jer obino predstavljaju vrijeme.
Nadalje, neka vremena ivota ne mogu se izravno vidjeti. Stoga
se zna npr. da su vea od neke vrijednosti.
Tree, tehnike distribucije i analize se obino koriste nisu
predviene za posebnosti podataka o ivotnom vremenu.
Simulirat emo rezultate testiranja 100 regulatora protoka zraka
do otkaza. Generirat emo podatke koji se mogu vidjeti ako je
veina regulatora protoka zraka imaju zadovaljavajue dug
ivotni vijek, ali mali postotak ima tendenciju otkazati
relativno rano.
>> rand('state',1);
>> lifetime = [wblrnd(15000,3,90,1); wblrnd(1500,3,10,1)];

Napomena Funkcija WBLRND


Ova funkcija daje sluajni red (array) dobijen Weibullovom
distribucijom.
Pozivom naredbe npr. R = WBLRND(A,B), dobiva se red sluajnih
brojeva izabran iz Weibullove distribucije s parametrom skale
A i parametrom oblika B. Dimenzije R su obiajeno veliine A i
B ako su obje istih dimenzija. Ako je jedan parametar skalar,
onda je R dimenzija drugog parametra, koji to nije.
Weibullova funkcija gustoe vjerojatnosti da se izraziti s:
x

b 1 a

y = f (x a, b ) = ba b x e

I ( 0 , ) ( x )

207

30.1.2013.

Analiza podataka o pouzdanosti


Pretpostavit emo da testiramo regulatore pod uvjetima
naprezanja takvim da je svaki sat testiranja ekvivalentan 100 sati
stvarnog rada u praksi. Iz pragmatskih razloga, test se
pouzdanosti zaustavlja nakon odreenog fiksnog vremena. U
ovom sluaju, nakon 140 sati, to je ekvivalent 14000 sati u
stvarnom radu. Neki regulatora protoka zraka na usisnoj grani
otkazuju tijekom testa, dok drugi pouzdano rade svih 140 sati (u
stvarnosti 14000 sati). To emo zapisati u simuliranim podacima.
Takoer je uobiajena praksa sortirati vremena otkaza.
>> T = 14000;
>> obstime = sort(min(T, lifetime));
Naravno, znamo da e jednom i svi ispusi koji su preivjeli test
takoer otkazati, ali test nije dovoljno dug da bi se izmjerilo
njihovo tono vrijeme otkaza.

Analiza podataka o pouzdanosti


Za takve regulatore je poznato samo da im je ivotni vijek vei od
14,000 sati. Za te vrijednosti se kae da su cenzurirana. Kao
to emo vidjeti, 40% svih naih podataka je cenzurirano.
>> failed = obstime(obstime<T); nfailed = length(failed);
>> survived = obstime(obstime==T); nsurvived = length(survived);
>> censored = (obstime >= T);
>> plot([zeros(size(obstime)),obstime]',
repmat(1:length(obstime),2,1), ...
'Color','b','LineStyle','-')
>> line([T;3e4], repmat(nfailed+(1:nsurvived), 2, 1),
'Color','b','LineStyle',':');
>> line([T;T], [0;nfailed+nsurvived],'Color','k','LineStyle','-')
>> text(T,30,'<--Nepoznato vrijeme ivota ovdje prestaje')
>> xlabel('Vrijeme preivljavanja'); ylabel('Broj observacija')

208

30.1.2013.

Analiza podataka o pouzdanosti


U drugom prozoru pogledajte graf:
100
90
80

Broj observacija

70
60
50
40
30

<--Nepoznato vrijeme ivota ovdje prestaje

20
10
0

0.5

1.5
2
Vrijeme preivljavanja

2.5

3
4

x 10

Analiza podataka o pouzdanosti


Pogledi na distribuciju
Prije nego ispitamo distribuciju ovih podatka, pogledajmo
razliite poglede na distribuciju vjerojatnosti.
Funkcija gustoe vjerojatnosti (PDF) ukazuje na relativnu
vjerojatnost otkaza u razliitim trenutcima. Funkcija
preivljavanja daje vjerojatnost preivljavanja kao funkciju
vremena. Ona je 1 minus kumulativna funkcija distribucije (1CDF). Rizik daje trenutnu vjerojatnost otkaza s obzirom na
mogunost preivljavanja u datom vremenskom trenutku. To
je PDF podijeljen s funkcijom preivljeavanja. U tom sluaju,
rizik se poveava, to znai da su dijelovi/sustav/stvari
podlonije otkazu kako stare (kako vrijeme prolazi).

209

30.1.2013.

Analiza podataka o pouzdanosti


Graf vjerojatnost je reskalirana CDF te se koristi za usporedbu podataka
s interpoliranom distribucijom.
Ovako emo dobiti primjere 4 grafa upotrebom Weibull distribucije
(Weibull je uobiajena distribucija za modeliranje podataka o
ivotnom vijeku.):
>> x = linspace(1,30000); subplot(2,2,1);
>>plot(x,wblpdf(x,14000,2),x,wblpdf(x,18000,2),x,wblpdf(x,14000,1.1))
>> title('Funkcija gustoe vjerojatnosti')
>> subplot(2,2,2); plot(x,1-wblcdf(x,14000,2),x,1-wblcdf(x,18000,2),x,1wblcdf(x,14000,1.1)); title('Funkcija preivljavanja')
>> subplot(2,2,3); wblhaz = @(x,a,b) (wblpdf(x,a,b) ./ (1-wblcdf(x,a,b)));
>> plot(x,wblhaz(x,14000,2),x,wblhaz(x,18000,2),x,wblhaz(x,14000,1.1))
>> title('Funkcija rizika'); subplot(2,2,4);
>> probplot('weibull',wblrnd(14000,2,40,1))
>> title('Graf vjerojatnosti')

Analiza podataka o pouzdanosti

210

30.1.2013.

Analiza podataka o pouzdanosti


Interpolacija (popunjavanje, fitting) Weibullove distribucije
Weibullova distribucija je generalizacija eksponencijalne
distribucije. Ako ivotni vijek slijedi eksponencijalnu
distribuciju, onda postoji konstantni rizik. To znai da dijelovi
ne stare u smislu da je vjerojatnost otkaza u nekom intervalu
ne ovisi o tome gdje poinje interval. Weibullova distribucija
ima rizik koji se moe poveavati ili smanjivati u ovisnosti o
poetku intervala.
Druge distribucije koje se koriste za modeliranje podataka o
ivotnom vijeku ukljuuju lognormal, gamma i BirnbaumSaundersovu distribuciju.

Analiza podataka o pouzdanosti


Iscrtat emo empirijsku kumulativnu funkciju distribucije naih
podataka, koji pokazuju razmjerni broj otkaza u svakom
vremenu preivljavanja. Tokaste krivulje daju 95% intervala
pouzdanosti za ove vjerojatnosti.
>> subplot(1,1,1);
>> [empF,x,empFlo,empFup] =
ecdf(obstime,'censoring',censored);
>> stairs(x,empF);
>> hold on;
>> stairs(x,empFlo,':'); stairs(x,empFup,':');
>> hold off
>> xlabel('Vrijeme');
>> ylabel('Proporcija otkaza');
>> title('Empirijski CDF')

211

30.1.2013.

Analiza podataka o pouzdanosti


Empirijski CDF
0.7

0.6

Proporcija otkaza

0.5

0.4

0.3

0.2

0.1

2000

4000

6000
8000
Vrijeme

10000

12000

14000

Analiza podataka o pouzdanosti


Sljedei graf pokazuje da je razmjer otkaza do vremena 4000 oko 12%
te je granica pouzdanosti 95% za vjerojatnost otkaza do tog trena
od 6% do 18%.
Zamjetite da nam zbog duine testa od 14000 sati, empirijski CDF
samo doputa izraunati vjerojatnosti otkaza izvan tog limita. Oko
40% podataka je cenzurirano na 14000. Stoga empirijski CDF samo
raste do oko 0.60, umjesto do 1.0.
Weibullova distribucija je esto dobar model za otkaz opreme.
Funkcija wblfit prilagoava Weibullovu distribuciju podacima,
ukljuujui i podatke s cenzuriranjem. Nakon raunanja procjena
parametara, evaluirat emo CDF za prilagoeni (fitted) Weibullov
model, koristei te procjene.
Kako se vrijednosti CDF temelje na procjenjenim parametrima,
izraunat emo granice pouzdanosti samo za njih.

212

30.1.2013.

Analiza podataka o pouzdanosti


>> paramEsts = wblfit(obstime,'censoring',censored);
>> [nlogl,paramCov] = wbllike(paramEsts,obstime,censored);
>> xx = linspace(1,2*T,500);
>>
[wblF,wblFlo,wblFup]
=
wblcdf
(xx,paramEsts(1),
paramEsts(2), paramCov);
Moe se superponirati grafove empirijskog CDF i interpoliranog
CDF, kako bi prosudili koliko dobro modeli Weibullove
distribucije regulatora predstavljaju pouzdane podatke.
>> stairs(x,empF);
>> hold on
>> handles = plot(xx,wblF,'r-',xx,wblFlo,'r:',xx,wblFup,'r:');
>> hold off
>> xlabel('Vrijeme'); ylabel('Interpolirana vjerojatnost otkaza');
>> title('Weibullov model vs. empirijski')

Analiza podataka o pouzdanosti


Weibullov model vs. empirijski
1
0.9

Interpolirana vjerojatnost otkaza

0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0

0.5

1.5
Vrijeme

2.5

3
4

x 10

213

30.1.2013.

Analiza podataka o pouzdanosti


Primjetite da nam Weibullov model doputa izprojektirati i
izraunati vjerojatnosti otkaza za vremena izvan vremena testa.
Meutim, izgleda da interpolirana krivulja ne odgovara dobro
naim podacima. Imamko previe ranih otkaza do t = 2,000 u
usporedbi s predvianjem Weibullovog modelom. Kao rezultat,
premalo ih je izmeu 7000 i 13000. Ovo nije iznenaujue
sjetite se da smo generirali podatke s ba ovakivim ponaanjem.
Dodavanje glatkih neparametarskih procjena
Prethodno definirane funkcije koje prua Statistics Toolbox ne
ukljuuju distribucije koje imaju eksces ranih otkaza poput ovih.
Umjesto toga, moe se nacrtati glatka, neparametarska krivulja
preko empirijskog CDF-a, koritenjem funkcije ksdensity.

Analiza podataka o pouzdanosti


Uklonit emo pojaseva pouzdanosti za Weibullov CDF i dodati
dvije krivulje, jednu s default parametrom glaenja, a jednu
s 1/3 te vrijednosti. Manji parametri glaenja ine da krivulja
blie slijedi podatke.
>> delete(handles(2:end))
>> [npF,ignore,u] = ksdensity (obstime, xx, 'cens', censored,
'function', 'cdf');
>> line(xx,npF,'Color','g');
>> npF3 = ksdensity (obstime, xx,'cens', censored, 'function', 'cdf',
'width', u/3);
>> line(xx, npF3, 'Color', 'm');
>> xlim([0 1.3*T])
>> title('Weibullov i neparametarski model vs. empirijski')
>> legend('Empirijski', 'Intep. Weibull', 'Neparametarski, default',
'Neparametarski, 1/3 default', ...
'location','northwest');

214

30.1.2013.

Analiza podataka o pouzdanosti


Weibullov i neparametarski model vs. empirijski
0.8
Empirijski
Intep. Weibull
Neparametarski, default
Neparametarski, 1/3 default

Interpolirana vjerojatnost otkaza

0.7
0.6
0.5
0.4
0.3
0.2
0.1
0

2000

4000

6000

8000 10000 12000 14000 16000 18000


Vrijeme

Analiza podataka o pouzdanosti


Neparametarska procjena s manjim parametrom glaenja
podudara se dobro s podacima. Meutim, kao i za empirijski
CDF, nije mogue ekstrapolirati neparametarski model van
testnog vremena estimirane razine CDF izvan su poslednje
observacije.
Izraunajmo rizik za ovu neparametarsku interpolaciju i iscrtajmo
je preko cijelog vremenskog opsega podatka.
>> hazrate = ksdensity(obstime,xx,'cens',censored,'width',u/3) ./
(1-npF3);
>> plot(xx,hazrate)
>> title(Rizik naparametarskog modela')
>> xlim([0 T])

215

30.1.2013.

Analiza podataka o pouzdanosti


-4

Hazard Rate for Nonparametric Model

x 10

2000

4000

6000

8000

10000

12000

14000

Analiza podataka o pouzdanosti


Krivulja s prethodnog slide-a pomalo podsjea na oblik kade, s
rizikom koji je vii blizu 2000, koji opada na nie vrijednosti, te
opet raste. To je tipino za rizike za komponente koje su vie
podlone otkazu u ranom ivotu (novoroenad kod ivih bia) i
ponovo im se poveava rizik otkaza u kasnom ivotu (starenje).
Takoer primjetite da se rizik ne moe procjeniti iznad najdue
necenzurirane observacije kada je rije o neparametarskom
modelu te da graf pada na nulu.
Alternativni modeli
Za simulirane podatke koje smo koristili u ovom primjeru, moe se
zakljuiti da Weibullova distribucija nije pogodna za
interpolaciju. Bili smo u mogunosti podesiti podatke s
neparametarskom interpolacijom, ali je model bio koristan samo
u opsegu podataka.

216

30.1.2013.

Analiza podataka o pouzdanosti


Jedna alternativa bi bila koristiti razliite parametre
distribucije.
Statistics Toolbox ukljuuje funkcije za druge uobiajene
distribucije ivotnog vijeka, kao to su lognormal, gama, ili
Birnbaum-Saunders, kao i mnoge druge distribucije koje se
uobiajeno za to koriste. Takoer je mogue definirati svoj
model interpolacije podataka o ivotno vijeku, kako je
opisano u Fitting Custom Univariate Distributions, Part 2
za one koji ele to dalje prouavati.
Druga alternativa bi bila koristiti mjeavinu 2 parametarske
distribucije jedna koja predstavlja rani otkaz i jednu koja
predstavlja starenje. Interpolacija mjeavine opisana je u
Fitting Custom Univariate Distributions demo za one koji
ele dalje prouavati.

2. Modeliranje sustava za upravljanje


gorivom koji tolerira otkaze
U ovoj emo vjebi ilustrirati kako kombinirati Stateflow s
Simulink-om da bi uinkovito modelirali hibridne sustave.
Ovaj tip modeliranja je posebno koristan za sustave koji imaju
razliite mogue modove rade koji se temelje na diskretnim
dogaajima. Tradicionalni tok signala se izvrava u Simulinku,
dok se promjene u upravljakoj konfiguraciji implementiraju u
Stateflow-u.
Model koji emo obraditi u ovoj vjebi je model sustava ua
upravljanje gorivom benzinskog motora. Sustav je vrlo
robustan u smislu da se kvar pojedinog senzora otkriva
uspjeno te se upravljaki sustav dinamiki rekonfigurira, a
njegov rad se ne prekida.

217

30.1.2013.

2. Modeliranje sustava za reguliranje goriva koji


tolerira otkaze: Analiza i fiziki model
Fiziki i empirijski odnosi formiraju temelje za regulator i
dinamiku priliva iz cijevi. Odnos zrak/gorivo se rauna
dijeljenjem toka zrane mase (koji se upumpava u dotok) s
tokom mase goritva (koju je injektirao kroz ventil).
Idealni (i.e. stoihiometrjski) omjer mjeavine prua dobar
kompromis izmeu snage, ekonomije goriva i emisija plinova.
Ciljani omjer zrak/gorivo za sustav koji e se razmatrati je 14,6.
Tipino, senzor odreuje koliinu rezidualnog kisika prisutnog
u ispustnom plinu (exhaust gas).
Ovo daje dobru indikaciju mjeavine omjera i prua povratnu
vezu s mjerenjem za upravljanje u zatvorenoj petlji. Ako
senzor indicira visoku razinu kisika, upravljaki zakon poveava
koliinu goriva koja se ubrizgava. Kada senzor detektira da je
mjeavina bogata gorivom, to odgovara niskom rezidualnom
kisiku, regulator smanjuje dotok goriva.

2. Modeliranje sustava za reguliranje


goriva koji tolerira otkaze: Modeliranje
Slika 1 prikazuje gornju razinu modela u Simulink-u.
Model uitava neophodne podatke iz ve postojee datoteke u
Matabu (sldemo_fuelsys_data.m). Model vraa relevantne
podatke u MATLABov radni prostor u podatkovnoj strukturi
koja je nazvana sldemo_fuelsys_output. Na slici ti podaci
imaju plavi indikator.
Uitavanje poetnih uvjeta u modelski prostor zadrava
simulacijske podtke izoliranima od ostalih otvorenih modela
(ukoliko ih imamo otvorenima). To takoer pomae u
izbjegavanju pretrpavanja MATLAB-ovog radnog prostora.
Da bi se vidio sadraj modelskog prostora odaberite View >
Model Explorer te kliknite na Model Workspace iz Model
Hierarchy list.

218

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Fault-Tolerant
Fueltolerantan
Control System
Sustav
regulacije goriva
na kvarove
engine speed o2_out

Throttle
Command

throttle

0 Throttle Sensor
throttle angle

Nominal
Speed
300
0
700
High
Speed

MAP

speed

Engine
Speed
Selector

Speed Sensor

Convert

sensors f uel_rate

To Plant

ego

12

Convert

EGO Sensor

fuel_rate_control

f uel

f uel

air/f uel ratio

Engine Gas Dynamics

f uel

air_f uel_ratio

map

?
0

MAP Sensor
To Controller

sensor switches
simulatebilo
any combination
of sensor failures.
Senzorski The
prekidai
simuliraju
koju kombinaciju
otkaza senzora. Copyright 1990-2010 The MathWorks, Inc.
The Engine
Speed Selector
switch
engine
speeds (rad/sec).
Odabirom
poloaja
sklopke
zasimulates
brzinudifferent
motora,
simuliraju
se razliite brzine motora.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Model fuel_rate_control koristi signale iz sistemskog senzora da
bi se odredila brzina toka goriva, to daje stoihiometrijsku
mjeavinu. Tok goriva kombinira se sa stvarnim tokom zraka u
modelu dinamike strojnog plina, koji se modelira tako da je
omjer mjeavine prema senzorskim mjerenjima u ispuhu.
Korisnik moe selektivno onesposobiti svaki od 4 senzora (kut,
brzina, EGO, apsolutni tlak (MAP)), da bi simulirao kvar.
Simulink ovo ostvaruje s runim prekidakim blokom (Manual
Switch blocks). S 2 klika na blok mijenja se poloaj prekidaa.
Slino tome, korisnik moe inducirati stanje kvara na visokim
brzinama okretaja motora s prekidaem na krajnje lijevoj
strani. U maski su specificirani podaci koji se periodino
ponavljaju (Repeating Table block), tj. sekvenca ponavljanja, a
sastoje se od podataka o kutu.

219

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Blok fuel_rate_control koristi senzorski ulaz i signale s povratne
grane (feedback signals) da bi prilagodio dotok goriva
zadanom stoihiometrikom omjeru.
Model koristi 3 podsustava da bi se implementirala ova
strategija:
- upravljaku logiku,
- proraun toka zraka i
- proraun goriva.
Pod okolnostima normalnog rada, model estimira dotok zraka i
estimaciju mnoi s recipronom vrijednou eljenog omjera
da bi se dobio eljeni dotok goriva.
Povratna veza sa senzora za kisik prua prilagodbu u zatvorenoj
petlji za estimaciju kako bi se odrao idealni omjer mijeanja.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Fuel Rate Control Subsystem

sensors

In1

est_airf low

est_airflow

validate_sample_time
O2_normal
es_o

fb_correction

fb_correction

f uel_mode

es_i

f uel_rate

1
fuel_rate

O2_normal

airflow_calc

sensors
f uel_mode

fuel_mode

control_logic
fuel_calc

220

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Upravljaka logika (slika - prethodni slide)
Stateflow karta sastoji se od skupa od 6 paralelnih stanja, koji
implementiraju upravljaku logiku u svojoj cijelovitosti.
4 paralelna stanja prikazana su na vrhu slike, a odgovaraju
etrima pojedinanim senzorima.
Preostala 2 paralelna stanja na dnu razmatraju stanje ta 4
senzora istovremeno i odreuju cjelokupni radni mod sustava.
Model sinhronizirano poziva cijeli Stateflow dijagram u
redovitom intervalu uzorkovanja od 0,01 [s]. To omoguuje
stanjima za tranzistore da isprave mod koji se testira na
vremenskoj bazi.
Da bi se otvorio control_logic Stateflow chart, potrebno je 2 puta
kliknuti na fuel_rate_control podsustav.

221

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Kada izvravanje simulacije zapone, sva stanja poinju s
njihovim normalnim modom osim senzora kisika (EGO).
O2_warmup stanje je postavljeno kao poetno i potreban je
period zagrijavanja.
Sustav detektira otkaze senzora regulatora i tlaka kada njihove
izmjerene vrijednosti ispadnu iz uobiajenog opsega
vrijednosti. Vakuum u cijevi u odsutnosti signala brzine
indicira kvar senzora brzine. Senzor kisika takoer ima
nominalni opseg za stanje otkaza, ali kako je nula i minimalna
razina signala i dno opsega, otkaz se moe detektirati samo
kada se premai gornji limit.
Bez obzira koji senzor otkae, model uvijek generira usmjereni
izvjetaj o dogaaju. Na ovaj nain, okidanje logike otkaza
univerzalnog senzora je neovisno o pojedinanom senzoru.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Model takoer koristi odgovarajui dogaaj oporavka senzora.
Stanje otkaza vodi zapisnik o broju otkaza senzora. Broja se
poveava za 1 svaki put kada se dogodi otkaz.
Model koristi tzv. superstanje, Multi, za grupiranje svih sluajeva
kada je otkazalo vie od 1 senzora.
Donje paralelno stanje predstavlja mod opskrbe gorivom motora.
Ako pojedinani senzor otkae, rad se nastavlja, ali mjeavina
zrak/gorivo biva bogatija kako bi omoguila glae rad uz
troak u smislu vie emisije. Ako je otkazao vie od jednog
senzora, motor se iskljuuje kao mjera sigurnosti zato to se
omjerom zrak/gorivo ne moe pouzdano upravljati.

222

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Tijekom zagrijavanja senzora kisika, model odrava mjeavinu na
normalnim razinama. Ako je to nezadovoljavajue, korisnik
moe izmjeniti projekt tako da pomie stanje zagrijavanja
prema tzv. Rich_Mixture superstate (superstanju obogaene
mjeavine). Ako se senzorski kvar dogodi u tijeku zagrijavanja,
tzv. Single_Failure state se ukljuuje nakon to istekne vrijeme
zagrijavanja. U suprotnom se aktivira tzv. normalno stanje.
Mogunost zatitnog ukljuinja prekoraenja brzine je dodana u
model kreiranjem novog stanja u bloku Fuel_Disabled
superstate.
Kroz zapise o prijanjim stanjima, moe se osigurati da se dobiva
odgovarajue stanje kada model izlazi iz stanja prekoraene
brzine.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Kao sigurnosni zahtjevi za motor, potrebno ga je bolje
specificirati, te moemo npr. dodati dodtna stanja za
iskljuivanje u blok Fuel_Disabled superstate.
Korekcija senzora
Kada senzor otkae, rauna se estimacija senzora. Npr., ako se
senzor tlaka koristi pod normalnim okolnostima za njega,
koriste se i normalne vrijednosti senzorskih oitanja. U
protivnom se vrijednosti estimiraju, jer ne upadaju u opseg
normalnih vrijednosti.

223

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Estimacija tlaka u cijevi se proraunava kao funkcija brzine
motora i poloaja regulatora protoka zraka u usisnoj grani.
Vrijednost se rauna s pomou Simulink funkcije unutar
Stateflow-a.
Proraun zranog toka
Blok za proraun zranog toka (na sljedeoj slici) je lokacija za
centralne zakone upravljanja.
Ovaj blok se nalazi unutar fuel_rate_control podsustava.

224

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Blok estimira utok zraka da bi se odredilo koliinu goriva koju je
potrebno dati za primjereni omjer mjeavine zrak/gorivo.
Upravljanje u zatvorenoj petlji podeava estimaciju prema
povratnom podatku o rezidualnom kisiku kako bi odrao
precizan omjer mjeavine.
ak kada i otkaz senzora zahtjeva rad u otvorenoj petlji, najnovija
podeavanja se izvravaju tako da se najbolje prilagode
upravljakim ciljevima.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Intake Airflow Estimation and Closed-Loop Correction
.01-.01z-1
1-.8z-1

<throttle>

Throttle Transient
1
u1

<speed>

est_airflow

2-D T(u)

u2
1

Pumping Constant

sensors
<map>

u1

Feedforward Control

2-D T(u)

u2
<ego>

0.5
<=

Ramp Rate Ki

0.5
Oxygen Sensor
Switching Threshold

Convert

e1

e0

K Ts
z-1

2
fb_correction

2
0

O2_normal
3
fuel_mode

enable_integration
==
sld_FuelModes.LOW

normal_operation

Feedback Control

225

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Jednadba 1:
Dotok zraka u motor moe se formulirati kao umnoak brzine
motora, tlaka u cijevi i vremenski promijenjivog faktora
skaliranja:

gdje su: N kruna brzina stroja (rad/s), Vcd volumen pomaka


cilindra motora, - volumetrijska uinkovitost, Pm tlak u cijevi,
R plinska specifina konstanta, T temperatura plina. Cpump se
rauna preko tzv. lookup table i mnoi s brzinom i tlakom kako bi
se dobila poetna estimacija. Tijekom prijelaza, brzina ventila s
derivacijom aproksimiranom kroz VP filter ispravlja dinamiku
punjenja tokom.
Upravljaki algoritam prua dodatne korekcije prema jednadbi 2.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Jednadba 2:

226

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Nelinerani senzor kisika (EGO Sensor block) se nalazi u Mixing &
Combustion bloku (sl.7) u podsustavu za Engine Gas Dynamics
subsystem (sl. 6). EGO senzor je modeliran kao hiperbolna
tanges funkcija, te prua smisleni signal kada je u okolici od
0,5 V. Pogreka u petlji s povratnom granom se stoga detektira
s pragom prema jednadbi 2. Ako je omjer zrak/gorivo nizak,
izvorna procjena zraka je premala i potrebno ju je poveati.
Kada senzor kisika ima na izlazu visoku razinu, projecna zraka
je prevelika i potrebno ju je sniziti. Integralno upravljanje se
izvodi tako da korekcija dovodi do razine kada je greka u
ustaljenom stanju oko nule u omjeru mijeanja.
Normalni nain rada u zatvorenoj petlji, LOW, prilagoava
integrator dinamiki kako bi minimizirao pogreku. Integracija
se izvodi u diskretnom vremenu s osvjeenjem svakih 10 ms.

227

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Kada se radi s otvorenom petljom, u RICH ili O2 modovima otkaza,
pogreka u povratnoj grani se ignorira, a integrator se zadrava.
Ovo daje najbolju korekciju temeljem zadnje validne povratne
informacije.
Proraun goriva
Podsustav fuel_calc subsystem (u fuel_rate_control subsystem)
postavlja injektorski signal da bi se izjednaio dati zrani tok sa
statusom otkaza. Prvi ulaz je proraunata estimacija zranog toka.
To se multiplicira s ciljanim omjerom gorivo/zrak da bi se dobila
zahtjevana brzina dotoka goriva. Normalno cilj je stoihiometrijski,
tj. jednak je optimalnom omjeru zraka prema gorivu od 14,6. Kada
se dogodi senzorski otkaz, skup Stateflow upravljake logike
postavlja ulazni mod na vrijednost od 2 do 3 (RICH ili
DISABLED) tako da je mjeavina ili blago bogata ili
stoihiometrijska ili je potpuno iskljuena.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Fuel Rate Calculation

est_airf low

est_airflow

f f _f uel_rate

f f _f uel_rate

f uel_mode

feedforward_fuel_rate
3

f uel_mode

f uel_rate

fuel_mode

1
fuel_rate

f b_correction

fb_correction
switchable_compensation

228

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Podsustav fuel_calc subsystem (ptethodni slide) koristi
prilagodljivu kompenzaciju (sljedei slide) kako bi postigao
razliite svrhe u razliitim modovima. Kod normalnog rada,
fazom voena kompenzacija povratnog signala korekcije
dodaje se margini stabilnosti zatvorene petlje.
U RICH modu i tijekom otkaza EGO senzora (otvorena petlja),
meutim, kompozitni signal goriva je filtriran NP filterom da bi
se atenuirao um uveden u estimacijski proces. Krajnji rezultat
je signal koji predstavlja tok goriva, koji bi u stvarnom sustavu,
bio preveden na vremenske impulse injektora.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Loop Compensation and Filtering

case: { }
f b_correction

3
fb_correction

f uel_rate

f f _f uel_rate

ff_fuel_rate
low_mode
case [ LOW ]:

[RICH]
2

u1

case [ RICH ]:

[RICH]

fuel_mode

case: { }
f f _f uel_rate

def ault:

f uel_rate
f b_correction

Merge

1
fuel_rate

def ault: { }

rich_mode
f uel_rate

disabled_mode

229

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Na sljedeim slide-ovima emo prikazati simulacijske rezultate.
Simulacija se izvodi s kutem regulatora izmeu 10 i 20
stupnjeva (ramp) tijekom perioda od 2 s. Tada se vraa nazad
na 10 stupnjeva tijekom sljedee 2 s.
Ovaj se ciklus ponavlja kontinuirano dok se motor dri na
konstantnoj brzini tako da korisnik moe eksperimentirati s
razliitim stanjima otkaza.
Ako se 2 puta klikne na senzorski prekida, simulira se otkaz
pridruenog senzora. Ako se to ponovi, senzor se vraa u
normalu.
Slika na sljedeem slide-u daje usporedbu toka goriva pod
stanjem bez otkaza sa tokom koji je primjenjen pri otkazu
jednog senzora.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze

230

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
U svakom sluaju, primjetite da je nelinearni odnos izmeu dotoka
goriva i triangularne komande regulatora. U temeljnom sluaju,
dotok goriva je reguliran usko, dajui mali obrnuti iljak zbog
prekidake prirode GO senzora u ulaznom krugu. U sva 4 preostala
sluaja, sustav radi u otvorenoj petlji. Upravljaka strategija se
pokazala uinkovita u odravanju korektnog profila goriva u modu s
jednim otkazom senzora. U svakom od stanja otkaza, gorivo je na
razini od 125% toka u normalnom stanju, ispunjavajui projektirani
cilj o obogaenju od 80% .
Sljedei slide prikazuje odgovarajui omjer zrak/gorivo za svaki sluaj.
Temeljnji graf prikazuje uinak rada u zatvorenoj petlji. Omjer
mijeanja se regulira vrlo usko uz stoihiometrijski cilj od 14,6.
Omjer za bogatu mjeavinu prikazan je na dnu slike. Iako omjer nije
striktno reguliran kao u sluaju zatvorene petlje, aproksimacija
daje omjer zrak/gorivo 0,8*14,6=11,7.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze

231

30.1.2013.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze
Tranzietno ponaanje sustava
prikazano je na slici. Slika je s
konstantnim kutom regulatora od
12 stupnjeva i sustavom u
postojanom stanju. U trenutku t =
2, unosi se kvar regulatora, a on
se ispravlja u t = 5. Pri kvaru,
dotok goriva se odmah poveava.
Uinak se moe primjetiti na
ispustu jer se omjer kree prema
obogaenoj smjesi, koja propagira
kroz sustav. Ustaljeno stanje se
onda brzo oporavlja kada se
oporavlja normali nain rada.

2. Modeliranje sustava za reguliranje


gorivom koji tolerira otkaze

Zadatak: Kombinirati razliite otkaze senzora i promatrati rezultat


u dijagramu.

232

30.1.2013.

4. Umjetne neuronske mree:


neuron s jednim ulazom
Ulaz

Linearni neuron: a = pureline (teina*ulaz+pomak)

Teina

Pomak

Tip funkcije neurona

4. Umjetne neuronske mree:


neuron s dva ulaza
Ulaz

Ulaz

Linearni neuron

Linearni neuron: a = pureline (teina*ulaz+pomak)

233

30.1.2013.

4. Umjetne neuronske mree:


klasifikacija
Klasificirat e se voe koje dolazi na traku na tri naina:
perceptronima, Hammingom i Hopfieldom.

4. Umjetne neuronske mree:


granice odluke

234

30.1.2013.

4. Umjetne neuronske mree:


pravilo perceptrona

4. Umjetne neuronske mree:


vektorski prostor

235

30.1.2013.

4. Umjetne neuronske mree:


linearne transformacije i igra a ANN

4. Umjetne neuronske mree: primjeri


Neural Network

DESIGN

Directional Derivatives
Function F

2
Directional Derivative

x(2)

1
0
-1
-2
-4

3
0
-3
-6

-3

-2

-1

x(1)
DIRECTIONAL DERIVATIVES
To measure a directional derivative click on the graph and move
the cursor w hile holding your mouse button dow n.
The directional derivative is taken at the point you clicked in the
direction of the current cursor position.

Chapter 8

236

30.1.2013.

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Quadratic Function
Function F

Function F
1

10
F(x)

x(2)

Change the values of


the Hessian matrix A,
the vector d, and
the constant c. Then
click [Update] to see
the new function.

-1
0
1

-2
-2

-1

-1

-1
-2 x(1)

x(2) -2

Note that the Hessian


matrix A w ill alw ays be
symmetric.

x(1)

F(x) = 1/2*x'Ax + d'x + c


A=

d=

c=
Chapter 8

4. Umjetne neuronske mree: primjeri


Neural Network

DESIGN

Taylor Series #1

cos(x)

Approximation

2
< CLICK ON ME >

-1

-1

-2
-6

-3

-2
-6

-3

TAYLOR SERIES APPROXIMATION


Click in the lef t graph to create a Taylor series approximation
of the cosine function.
Click on the check-box buttons at the right of the w indow to turn
various orders of approximation on and of f.

Chapter 8

237

30.1.2013.

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Adaptive Noise Cancellation

Original (blue) and Estimated (red) Signals


2
Click on the bottom
contour plot to change.
initial w eights.

Amplitude

Use the sliders to


alter the learning rate
and momentum.

0
-1
-2
0

0.1

0.2

0.3

0.4

0.5

Time

Adaptive Weights

The radio buttons


allow the display of
the original and
estimated signals
or their difference

2
Learning Rate:

0.2

0.1

1.5

-1

Momentum:

W(1,2)

Chapter 10

-2
-2

W(1,1)

0.0

1.0

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

EEG Noise Cancellation

Original (blue) and Estimated (red) Signals

Amplitude

2
An EEG signal has
been contaminated
w ith noise.

An adaptive linear
netw ork is used to
remove the noise.

0
-1
-2
0

0.1

0.2

0.3

0.4

0.5

Tim e

Learning Rate:

0.0

Use the sliders to set


the learning rate and
the number of delays.
Use the radio buttons
to select the original
and estimated signals,
or their difference.

0.02

0.2

Delays:

10

20

Chapter 10

238

30.1.2013.

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Orienting Subsystem

Response
1
Adjust the inputs,
& constants then
push [Update] to
see the system
respond.

Reset a0

0.5
0

Click [Clear] to
remove old responses.

-0.5
-1
0

0.05

0.1

0.15

0.2

Tim e

Input p(1):

Input a1(1):

Input p(2):

Input a1(2):

+W0 Elements:

3.3

-W0 Elements:

3.7

0.1

5.0

0.1

5.0

Chapter 16

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Effects of Decay Rate

Hebb Learning
10

Use the slider bars


to adjust learning
and decay rates.

Weight

Click [Clear] to
remove old responses.
Click [Random] to get
random parameters.

6
4

2
0
0 2

6 8 10 12 14 16 18 20 22 24 26 28 30
Tim e

Learning Rate:

0.71

Decay Rate:

0.18

Chapter 13
0.0

1.0

0.0

1.0

239

30.1.2013.

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Competitive Learning

Click on the edge of


the circle to add and
remove input vectors.
Click and drag to
move w eight vectors.
Click [Learn] to
present one input.
Click [Train] to
present five inputs.

Learning Rate:

0.4

0.0

1.0

Chapter 14

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Function Approximation

Function Approximation
2
Click the [Train]
button to train the
logsig-linear
netw ork on the
function at left.

Target

1.5

Use the slide bars


to choose the
number of neurons
in the hidden layer
and the difficulty
of the function.

1
0.5

0
-2

-1

Input

Number of Hidden Neurons S1:

Difficulty Index:

Chapter 11

240

30.1.2013.

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN Variable LR Backpropagation
W1(1,1)

W2(1,1)
Use the radio buttons
to select the netw ork
parameters to train
w ith backpropagation.

a2

b1(1)

1
W1(2,1)

b2

W2(1,2)

The corresponding
contour plot is
show n below .

b1(2)

Click in the contour


graph to start the
variable learning
rate backpropagation
learning algorithm.

14

15

0.0

20.0

10

Increase Rate:

1.05

1.00

1.20

Decrease Rate:

W2(1,1)

Initial Learning Rate:

0.7

0.50

5
0
-5
-5

10

15

Chapter 12

W1(1,1)

1.00

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Momentum Backpropagation

W1(1,1)

W2(1,1)
Use the radio buttons
to select the netw ork
parameters to train
w ith backpropagation.

a2

b1(1)

1
W1(2,1)

b2

W2(1,2)

The corresponding
contour plot is
show n below .

b1(2)

Click in the contour


graph to start the
momentum backprop
learning algorithm.
You can reset the
algorithm parameters
using the sliders.

15
Learning Rate:

3.5
20.0

Momentum:

0.90

W2(1,1)

10
0.0

5
0

0.0

1.0
-5
-5

10

15

Chapter 12

W1(1,1)

241

30.1.2013.

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN
-0.480
W1(1,1)

b1(1)
n1(1)

Backpropagation Calculation

s1(1)
a1(1)

-0.270

W2(1,1)

s2

0.090
n2

p
-0.410

n1(2)

a1(2)

W1(2,1)

Input:

b1(2)

-0.170
W2(1,2)

-0.130

a2

0.480

b2

s1(2)

t
Last Error: ?.??

p =

Target:

t = ?

Sim ulate:

a1 = ?
a2 = ?
e = ?

Backpropagate:

s2 = ?

Update:

W1 = ?

s1 = ?
b1 = ?

Chapter 11

W2 = ?
b2 = ?

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Dynamic System
Pendulum Energy

pi radians

500
Drag the pendulum or
click on the contour
to set the initial
state.

Energy

400
3/2 pi

300

1/2 pi

200

Click [Go] to simulate


and clear to erase
previous simulations.

100
0

0 radians

10

Velocity (rad/sec)

20

30

40

Time (sec)

Energy Contour
2

-2
-15

-10

-5

10

15

Chapter 17

Angle (radians)

242

30.1.2013.

4. Umjetne neuronske mree: primjeri


Neural Network DESIGN

Hopfield Network
Lyapunov Function

Lyapunov Function
1
2
V(a)

a2

0.5
0

Click in the left


graph to simulate
the Hopfield netw ork.

0
-2
1

-0.5
-1
-1

0
0

a2

-1 -1

Change the w eights,


biases, and gain
then click [Update]
to change the
netw ork.

0
a1

a1

W=

b=
Finite Gain Value:

1.4

0.0

2.0

Chapter 18

4. Umjetne neuronske mree: zadatak


Utipkajte u komandni prozor: nndtoc. Mijenjajte sve parametre i
napiite zakljuke o svakom od priloenih programa.

243

30.1.2013.

4. Umjetne neuronske mree: Modeliranje


magleva
U

ovoj vjebi ilustrirat emo kako NARX (Nonlinear


AutoRegressive with eXternal input) neuronska mrea moe
modelirati dinamiki sustav za magnetsku levitaciju.
Pokuat emo izgraditi ANN koja e predviati dinamiko
ponaanje magnetske levitacije koja se upravlja strujom.
Sustav je karakteriziran magnetskom pozicijom i upravljakom
strujom, a obje odreuju gdje e se kasnije nalaziti magnet.
>> model_maglev_demo
ans =
1
4001
ans =
1
4001
perf =
3.0813e-006

4. Umjetne neuronske mree:


Modeliranje magleva
Ovo je primjer problema vremenskog niza, gdje se prole
vrijednosti vremenskog niza (poloaj magneta) i vanjski ulazni
niz (upravljaka struja) koriste da bi se predvidjelo trenutne
vrijednosti niza.
ANN su vrlo dobre za probleme vremenskih nizova. ANN s
dovoljno elemenata (neurona) moe modelirati dinamike
sustave s proizvoljnom preciznou. One su osobito podeene
za nelinearne dinamike probleme. ANN su dobri kandidati za
rjeavanje ovog problema.
Mrea e se projektirati upotrebom snimki stvarnog odziva tj.
poloaja levitiranog magneta koji odgovara odreenom
upravljakom strujom.

244

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
Priprema podataka
Podaci za problem popunjavanja (interpoliranja, fitting) su
podeeni za ANN tako da se organizira podatke u dvije
matrice, ulazni vremenski niz X i ciljani vremenski niz T.
Ulazni niz X je redna sloena podatkovna struktura od elija, gdje
je svaki element povezan s timestep (konstanta vremenski
korak) poloaji levitacijskog magneta u odreenim
vremenskim korakom.
Ovako emo uitati slup podataka za ovu vjebu:
>> [x,t] = maglev_dataset;
Moemo vidjeti veliine ulaza X i cilja T (naredba size).

4. Umjetne neuronske mree:


Modeliranje magleva - Priprema podataka
Primjetite da oba vektora imaju istu veliinu od 4001 stupaca.
Ovo predstavlja 4001 timesteps (vremenskih koraka) struje
upravljanja i poloaja magneta.
>> size(x)
>> size(t)
ans =
1
4001
ans =
1
4001

245

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
Modeliranje vremenskog niza s neuronskim mreama
Sljedei korak je kreirati ANN koji e nauiti modelirati kako se
mijenja poloaj magneta.
Kako ANN poinje sa sluajnom poetnom teinom, rezultat ovog
programa e se malo razlikovati svaki put kada se ponovo
starta. Opcija seed podeava sluajnost. Meutim, nije ju
neophodno koristiti.
>> rand('seed', 491218381)
Dvoslojne (npr. s jednim skrivenim slojem) NARX ANN-e mogu
interpolirati bilo koji dinamiki odnos ulaz-izlaz s obzirom da
ima dovoljno neurona u skrivenom sloju. Slojevi koji nisu izlaz
nazivaju se skrivenim slojevima.

4. Umjetne neuronske mree:


Modeliranje magleva
Pokuat emo s jednim skrivenim slojem od 10 neurona za ovaj
primjer. Openito, tei problem zahtjeva vie neurona i moda
vie slojeva. Jednostavniji problemi zahtjevaju manje neurona.
Pokuat emo koristiti 2 kanjenja za vanjski ulaz (upravljaka
struja) i povratnu vezu (poloaj magneta). Vie kanjenja
doputa mrei da modelira kompleksniji dinamiki sustav.
Ulaz i izlaz imaju veliine 0, jer mrea jo nije konfigurirana da
pogodi na ulaz i ciljane podatke. To e se dogositi kada se
mrea istrenira.
Izlaz y(t) je takoer i ulaz, koji kasni za v.
>> net = narxnet(1:2,1:2,10);
>> view(net)

246

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva

Slika: izvrena naredba view


Prije nego treniramo mreu, moramo koristiti prva dva
vremenska koraka eksternog ulaza i povratnog vremenskog
niza da bi popunili 2 stanja kanjanja mree.
Nadalje, moramo koristiti povratni niz i kao ulazni niz i kao ciljani
niz.

4. Umjetne neuronske mree:


Modeliranje magleva
Funkcija PREPARETS priprema podatke vremenskog niza za
simulaciju i treniranje. Xs e se sastojati od pomaknutih ulaza i
ciljanih vremenskih nizova koji se prezentiraju u mrei. Xi su
poetna stanja kanjenja. Ai su stanja kanjenja u slojevima (u
ovom sluaju prazno kao da nema sloj-po-sloj kanjenja), a Ts
su pomaknuti povratni vremenski nizovi.
>> [Xs,Xi,Ai,Ts] = preparets(net,x,{},t);
Sada je mrea spremna za treniranje. Timesteps se automatski
dijeli u skupove: treniranje, validacija i test. Skup za treniranje
se koristi za uenje mree. Treniranje se nastavlja toliko dugo
koliko se mrea nastavlja poboljavati u skupu za validaciju.
Testni skup prua potpuno nezavisne mjere mrene
preciznosti.

247

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
ANN alatka za treniranje pokazuje da se mrea trenira i koji se
algoritmi koriste za njeno treniranje. Takoer pokazuje stanje
treniranja tijekom treniranja i kriterij koji zaustavlja treniranje
(zeleno).
Dugmad na dnu otvaraju korisne grafove tijekom i nakon
treniranja. Linkovi do algoritma, imena i grafovi se otvaraju
odgovarajuim klikom na uzbornike i dugmad.
>> [net,tr] = train(net,Xs,Ts,Xi,Ai);
>> nntraintool

4. Umjetne
neuronske
mree:
Modeliranje
magleva
Slika:
Alatka za treniranje mree

248

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
Da bi vidjeli kako se mrena izvedba poboljava tijekom procesa
treniranja, ili kliknite "Performance" u alatki za treniranje ili
pozovite funkciju PLOTPERFORM.
Izvedba se mjeri u okviru srenje kvadraten pogreke (MSE) i
pokazuje na logaritamskoj skali. Rapidno se smanjuje kako se
mrea sve vie trenira.
Izvedba se moe prikazati za svaki skup odvojeno (treniranje,
validacija i test). Verzija mree koja je bila najbolja pri validaciji
postignuta je nakon treniranja.
>> plotperform(tr)

4. Umjetne neuronske mree:


Modeliranje magleva

249

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
Testiranje ANN
Srednja kvadratna pogreka trenirane ANN za sve vremenske
uzorke moe se mjeriti.
>> Y = net(Xs,Xi,Ai);
>> perf = mse(net,Ts,Y)
perf =
3.0813e-006
Naredba PLOTRESPONSE e nam prikazati mreni odziv u
usporedbi sa stvarnim poloajem magneta. Ako je model
dovoljno precizan '+' toke e pratiti dijamantne toke, a
pogreke u donjoj osi e biti vrlo male.

4. Umjetne neuronske mree:


Modeliranje magleva
>> plotresponse(Ts,Y)

250

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
PLOTERRCORR prikazuje korelaciju pogreke u vremenu t, e(t),
s pogrekama u razliitim poloajima, e(t+lag). Centralna linija
prikazuje srednju kvadratnu pogreku. Ako je mrea trenirana
dobro, sve druge linije e biti mnogo krae, a veina e pasti
unutar crvene linije granice pouzdanosti.
Funkcija GSUBTRACT se koristi za proraun pogreke. Ova
funkcija generalizira oduzimanje da bi podrala razlike izmeu
elija podataka.
>> E = gsubtract(Ts,Y);
>> ploterrcorr(E)

4. Umjetne neuronske mree:


Modeliranje magleva

251

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
Slino tome naredba
PLOTINERRCORR
prikazuje korelacijsku
pogreku s obzirom na
ulaze s varirajuim
stupnjem zadravanja
(lag). U ovom sluaju,
veina ili sve linije bi
trebale
upasti
u
granicu pouzdanosti,
ukljuujui centralnu
liniju.
>> plotinerrcorr(Xs,E)

4. Umjetne neuronske mree:


Modeliranje magleva
Mrea je trenirana u obliku otvorene petlje, gdje su ciljevi
koriteni kao povratni ulazi. Mrea moe takoer biti
konvertirana u oblik sa zatvorenom petljom, gdje njihovo
predvianje postaje povratni ulaz.
>> net2 = closeloop(net);
>> view(net)

252

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
Moemo simulirati mreu u obliku zatvorene petlje. U ovom
sluaju mrei se samo daju poetni poloaji magneta, a onda
mora koristiti svoje predvianje pozicija rekurzivno da bi
predvidjela novu poziciju.
Ovo brzo rezultira u slabom podudaranje izmeu predvienog i
stbarnog odziva. Ovo e se dogoditi ak i ako je model vrlo
dobar. Ali je interesantno vidjeti koliko se koraka podudaraju
prije razdvajanja.
Ponovo, PREPARETS ini posao pripremanja podataka
vremenskog niza podataka uzimajui u obzir izmjenjenu
mreu.

4. Umjetne neuronske mree:


Modeliranje magleva
>> [Xs,Xi,Ai,Ts] = preparets(net2,x,{},t);
>> Y = net2(Xs,Xi,Ai);
>> plotresponse(Ts,Y)

253

30.1.2013.

4. Umjetne neuronske mree:


Modeliranje magleva
Ako primjena zahtjeva pristup predvienim poloajima magneta,
timestep unaprijed u odnosu na to kad se zapravo dogodio,
moemo ukloniti kanjenje iz mree tako da u bilo koje dato
vrijeme t, izlaz bude estimacija poloaja u vremenu t+1.
>> net3 = removedelay(net);
>> view(net)

4. Umjetne neuronske mree:


Modeliranje magleva
Sada ponovo koristimo
PREPARETS
da
bi
pripremili za simulaciju
vremenski niz. Ovaj put
mrea je opet vrlo
precizna
kao
da
jepredvianje otvorene
petlje, ali izlaz je
pomaknut
za
jedan
vremenski korak.
>> [Xs,Xi,Ai,Ts] =
preparets(net3,x,{},t);
>> Y = net3(Xs,Xi,Ai);
>> plotresponse(Ts,Y)

254

30.1.2013.

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama
U ovoj vjebi se koristi funkcije NEWPNN i SIM. Imamo 3
dvolana ulazna vektora P i s njima povezanih klasa Tc. eljeli
bi kreirati probabilistiku (vjerojatnosnu) neuronsku mreu
koja klasificira ispravno ove vektore.
>> P = [1 2; 2 2; 1 1]';
>> Tc = [1 2 3];
>> plot(P(1,:),P(2,:),'.','markersize',30)
>> for i=1:3, text(P(1,i)+0.1,P(2,i),sprintf('class %g',Tc(i))), end
>> axis([0 3 0 3])
>> title('Three vectors and their classes.')
>> xlabel('P(1,:)')
>> ylabel('P(2,:)')

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama

255

30.1.2013.

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama
Prvo treba konvertirati klasu Tc u klasu vektora T. Potom dizajniramo
probabilistiku ANN s naredbom NEWPNN. Koristimo SPREAD
vrijednosti 1, jer je to tipina udaljenost izmeu ulaznih vektora.
>> T = ind2vec(Tc);
>> spread = 1;
>> net = newpnn(P,T,spread);
Sada testiramo mreu prema projektiranom ulaznom vektoru. To
inimo simuliranjem mree i konvertiranjem nenih izlaza prema
ulazu.
>> A = net(P); Ac = vec2ind(A);
>> plot(P(1,:),P(2,:),'.','markersize',30); axis([0 3 0 3])
>> for i=1:3,text(P(1,i)+0.1,P(2,i),sprintf('class %g',Ac(i))),end
>> title('Testing the network.')
>> xlabel('P(1,:)'); ylabel('P(2,:)')

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama

256

30.1.2013.

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama
Klasificirajmo novi vektor s naom mreom:
>> p = [2; 1.5];
>> a = net(p);
>> ac = vec2ind(a);
>> hold on
>> plot(p(1),p(2),'.','markersize',30,'color',[1 0 0])
>> text(p(1)+0.1,p(2),sprintf('class %g',ac))
>> hold off
>> title('Classifying a new vector.')
>> xlabel('P(1,:) and p(1)')
>> ylabel('P(2,:) and p(2)')

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama

257

30.1.2013.

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama
Sljedei dijagram pokazuje kako probabilistika ANN dijeli ulazni
prostor u 3 klase:
>> p1 = 0:.05:3;
>> p2 = p1;
>>[P1,P2] = meshgrid(p1,p2);
>> pp = [P1(:) P2(:)]';
>> aa = net(pp);
>> aa = full(aa);
>> m = mesh(P1,P2,reshape(aa(1,:),length(p1),length(p2)));
>> set(m,'facecolor',[0 0.5 1],'linestyle','none');
>> hold on

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama
>> m = mesh(P1,P2,reshape(aa(2,:),length(p1),length(p2)));
>> set(m,'facecolor',[0 1.0 0.5],'linestyle','none');
>> m = mesh(P1,P2,reshape(aa(3,:),length(p1),length(p2)));
>> set(m,'facecolor',[0.5 0 1],'linestyle','none');
>> plot3(P(1,:),P(2,:),[1 1 1]+0.1,'.','markersize',30)
>> plot3(p(1),p(2),1.1,'.','markersize',30,'color',[1 0 0])
>> hold off
>> view(2)
>> title('The three classes.')
>> xlabel('P(1,:) and p(1)')
>> ylabel('P(2,:) and p(2)')

258

30.1.2013.

4. Umjetne neuronske mree: klasifikacija s


probabilistikim neuronskim mreama
The three classes.
3

2.5

P(2,:) and p(2)

1.5

0.5

0.5

1.5
P(1,:) and p(1)

2.5

5. Neizrazita logika
Tipian oblik funkcija pripadanja
DSIGMF, GAUSS2MF, GAUSSMF, GBELLMF, EVALMF, PIMF,
PSIGMF, SMF, TRAPMF, TRIMF, ZMF
FigTitle = 'Membership Functions Gallery';
fig = findobj('Name',FigTitle);
if isempty(fig)
fig = figure('Unit','pixel',...
'Name',FigTitle,...
'NumberTitle','off');
% V5 default color
colordef(fig, 'black');
end

259

30.1.2013.

5. Neizrazita logika
set(0,'Current',fig)
x = linspace(-20, 20, 201);
mf_type = str2mat('trapmf', 'gbellmf', 'trimf', 'gaussmf',
'gauss2mf', 'smf');
mf = zeros(size(mf_type, 1), length(x));
param = [-19 -17 -12 -7;
3 4 -8 0;
-9 -1 2 0;
3 5 0 0;
3 10 5 13;
11 17 0 0];
mf = evalmmf(x, param, mf_type);
subplot(211);
plot(x, mf');

5. Neizrazita logika
axis([min(x) max(x) 0 1.2]);
text((param(1,2)+param(1,3))/2, 1.1, ...
deblank(mf_type(1,:)), 'horizon', 'center');
text(param(2,3), 1.1, ...
deblank(mf_type(2,:)), 'horizon', 'center');
text(param(3,2), 1.1, ...
deblank(mf_type(3,:)), 'horizon', 'center');
text(param(4,2), 1.1, ...
deblank(mf_type(4,:)), 'horizon', 'center');
text((param(5,2)+param(5,4))/2, 1.1, ...
deblank(mf_type(5,:)), 'horizon', 'center');
text(param(6,2), 1.1, ...
deblank(mf_type(6,:)), 'horizon', 'center');
set(gca, 'xtick', []);

260

30.1.2013.

5. Neizrazita logika
mf_type = str2mat('zmf', 'psigmf', 'dsigmf', 'pimf','sigmf');
mf = zeros(size(mf_type, 1), length(x));
param = [-18 -10 0 0; 2 -11 -5 -4; 5 -3 1 5; 0 7 11 15; 2 15 0 0];
mf = evalmmf(x, param, mf_type); subplot(212); plot(x, mf');
axis([min(x) max(x) 0 1.2]);
text(param(1,1), 1.1, ...
deblank(mf_type(1,:)), 'horizon', 'center');
text((param(2,2)+param(2,4))/2, 1.1, ...
deblank(mf_type(2,:)), 'horizon', 'center');
text((param(3,2)+param(3,4))/2, 1.1, ...
deblank(mf_type(3,:)), 'horizon', 'center');
text((param(4,2)+param(4,3))/2, 1.1, ...
deblank(mf_type(4,:)), 'horizon', 'center');
text(param(5,2), 1.1, ...
deblank(mf_type(5,:)), 'horizon', 'center'); set(gca, 'xtick', []);

5. Neizrazita logika

261

30.1.2013.

5. Neizrazita logika
Primjena: predikcija kaotinih vremenskih nizova
Predikcija se moe izvriti naredbom ANFIS.
Podaci vremenskog niza
Podatak se generira iz Mackey-Glass diferencijalnom
jednadbom s vremenskim kanjenjam definirano s izrazom:
dx(t)/dt = 0.2x(t-tau)/(1+x(t-tau)^10) - 0.1x(t)
kada je x(0) = 1.2 i tau = 17, imamo neperiodine i
nekonvergentne vremenske nizove koji su vrlo osjetljivi na
poetne uvjete. (Pret. x(t) = 0 za t < 0.)

5. Neizrazita logika
load mgdata.dat
a = mgdata;
time = a(:, 1);
x_t = a(:, 2);
plot(time, x_t);
xlabel('Time (sec)');
ylabel('x(t)');
title('Mackey-Glass Chaotic Time Series');

262

30.1.2013.

5. Neizrazita logika
Predprocesuiranje podataka
Sada elimo izgraditi ANFIS koji
predvia x(t+6) iz prolih vrijednosti
ovog istog vremenskog niza, tj.x(t-18),
x(t-12), x(t-6) i x(t). Stoga su podaci za
treniranje dani u formatu:
[x(t-18), x(t-12), x(t-6), x(t); x(t+6]
Iz t = 118 do 1117, skupljamo 1000
parova podataka u gornjem formatu.
Prvih 500 se koriste za treniranje dok
se ostali koriste za provjeru. Slika
prikazuje segment vremenskog niza iz
kojeg su parovi izlueni. Prvih 100
toaka podataka se ignoriraju da bi se
izbjeglo prijelazni dio podataka.

5. Neizrazita logika
trn_data = zeros(500, 5); chk_data = zeros(500, 5);
% prepare training data
trn_data(:, 1) = x_t(101:600); trn_data(:, 2) = x_t(107:606);
trn_data(:, 3) = x_t(113:612); trn_data(:, 4) = x_t(119:618);
trn_data(:, 5) = x_t(125:624);
% prepare checking data
chk_data(:, 1) = x_t(601:1100); chk_data(:, 2) = x_t(607:1106);
chk_data(:, 3) = x_t(613:1112); chk_data(:, 4) = x_t(619:1118);
chk_data(:, 5) = x_t(625:1124);
index = 119:1118; % ts starts with t = 0
plot(time(index), x_t(index)); xlabel('Time (sec)'); ylabel('x(t)');
title('Mackey-Glass Chaotic Time Series');

263

30.1.2013.

5. Neizrazita logika
Izrada ANFIS modela
Koristimo GENFIS1 da bi generirali poetnu FIS matricu iz podataka za
treniranje. Naredba je jednostavna, jer se koriste preddefinirane
vijednosti (default) za MF number (2) i MF type ('gbellmf'):
fismat = genfis1(trn_data);
% Poetne funkcije pripadanja (MF) za treniranje su prikazane na grafu.
for input_index=1:4,
subplot(2,2,input_index)
[x,y]=plotmf(fismat,'input',input_index);
plot(x,y)
axis([-inf inf 0 1.2]);
xlabel(['Input ' int2str(input_index)]);
end

5. Neizrazita logika

264

30.1.2013.

5. Neizrazita logika
Ima 2^4 = 16 pravila u generiranim FIS matricama, a broj
interpoliranih parametara je 108, ukljuujui 24 nelinearna
parametra i 80 linearnih parametara. Ovo je ispravan balans
izmeu broja paramatara za interpolaciju i broja podataka za
treniranje (500). Naredba ANFIS izgleda kao:
[trn_fismat,trn_error] = anfis(trn_data, fismat,[],[],chk_data)
Da bi utedili vrijeme, uitat emo izravno rezultate treniranja.
Nakon 10 epoha treniranja, konane funkcije pripadanja (MF) su
prikazane na grafu. Primjetite da se ove funkcije pripadanja ne
mijenjaju drastino. Oito je da veina interpolacijskih podataka
dobivena linearnim parametrima dok se nelinearni parametri
veinom koriste za fino podeavanje i daljnja poboljanja.

5. Neizrazita logika
% uitavanje rezultata treniranja
load mganfis
% iscrtavanje konanih funkcija pripadanja na x, y, z, u
for input_index=1:4,
subplot(2,2,input_index)
[x,y]=plotmf(trn_fismat,'input',input_index);
plot(x,y)
axis([-inf inf 0 1.2]);
xlabel(['Input ' int2str(input_index)]);
end

265

30.1.2013.

5. Neizrazita logika

5. Neizrazita logika
Krivulje pogreki
Sljedei graf prikazuje krivulje pogreki i podatka za trenianje i
podataka za provjeru. Primjetite da su pogreke treniranja vie
od pogreki provjere. Ovaj fenomen nije neuobiajen u ANFIS
uenju ili nelinearnoj regresiji openito; moe indicirati da je
proces treniranja daleko od gotovog.
% graf krivulji pogreki
close all; epoch_n = 10;
plot([trn_error chk_error]);
hold on; plot([trn_error chk_error], 'o'); hold off;
xlabel('Epochs');
ylabel('RMSE (Root Mean Squared Error)');
title('Error Curves');

266

30.1.2013.

5. Neizrazita logika

5. Neizrazita logika
Usporedbe
Sljedei graf pokazuje izvorni vremenski niz i onaj predvien
ANFIS-om. Razlika je toliko mala da je nemogue rei kolika je
iz vizuelne inspekcije grafa. Zato se vidi samo krivulja koju je
predvidio ANFIS. Predikcijske pogreke moraju se promatrati
na drugoj skali.
input = [trn_data(:, 1:4); chk_data(:, 1:4)];
anfis_output = evalfis(input, trn_fismat);
index = 125:1124;
plot(time(index), [x_t(index) anfis_output]);
xlabel('Time (s)');

267

30.1.2013.

5. Neizrazita logika

5. Neizrazita logika
Predikcijske pogreke ANFIS-a
Predikcijska pogreka ANFIS-a je prikazana ovdje. Primjetite da je
skala oko stotine skale prethodnog grafa. Prisjetite se da
imamo samo 10 epoha treniranja u ovom sluaju. Bolji
rezultat se moe postii ako se koristi ekstenzivniji trening.
diff = x_t(index)-anfis_output;
plot(time(index), diff);
xlabel('Time (sec)');
title('ANFIS Prediction Errors');

268

30.1.2013.

5. Neizrazita logika

5. Neizrazita logika
Primjer: Regulacija razine vode
Fuzzy Logic Toolbox moe raditi sa Simulink-om. Nakon to
kreiramo neizraziti sustav uporabom GUI alatki ili nekako
drugaije, sistem se moe ubaciti izravno u simulaciju.
Zamislite tank sa slavinom za ulaz i izlaz. Moete promijeniti
ventil koji regulira tokove vode na ulazu, ali izlazni tok ovisi o
dijametru izlazne slavine (koji je konstantan) i tlaku u
spremniku (koja varira s razinom vode).
Sustav ima vrlo nelinearnu karakteristiku.

269

30.1.2013.

5. Neizrazita logika

5. Neizrazita logika
Regulator za razinu vode u premniku treba znati trenutnu razinu
vode i treba biti sposoban postavljati ventil u eljeni poloaj. Ulaz
regulatora je pogreka razine vode (eljena razina vode minus
stvarna razina vode), a izlaz je brzina kojom se ventil otvara ili
zatvara. Prvi korak pri projektiranju neizrazitog regulatora moe
biti:
1. Ako (razina je uredu) onda (nema promjene na ventilu
2. Ako (razina je niska) onda (otvoriti brzo ventil)
3. Ako (razina je visoka) onda (ventil brzo zatvorti)
Neizraziti sustav moe se izravno uvesti u Simulink i testirati u
simulacijskom okruju. Simulink blok dijagram za taj sustav je
prikazan na narednoj slici. Sadri Simulink blokove. Sustav se
pojavljuje ako utipkamo sltank u liniji za naredbe. Istovremeno se
uitava datoteka tank.fis.

270

30.1.2013.

5. Neizrazita logika

5. Neizrazita logika
Neka eksperimentiranja pokazuju da ova 3 pravila nisu dovoljna,
jer razina vode tei osciliranju oko eljene razine:

271

30.1.2013.

5. Neizrazita logika
Potreban nam je dodatni ulaz,
brzina promjene razine vode, da bi
usporili pokretanje ventila kada je
blizu ispravnoj razini.
4. Ako (razina je dobra) i (brzina je
negativna), onda (ventil sporo
zatvori)
5. Ako (razina je dobra) i (brzina je
pozitivna), onda (ventil se otvara
sporo)
Model sltank je izgraen s 5
pravila. Sa svih 5 pravila moe se
ispitati odziv na step simuliranjem
ovog sustava. To moemo uiniti
klikom na Start iz izbornika
Simulate i klikom na Comparison
blok. Rezultat je slian sljedeem
grafu.

5. Neizrazita logika
Jedna interesantna znaajka
sustava spremnika vode je da se
spremnik prazni mnogo sporije,
nego se puni, zbog specifine
vrijednosti izlaznog dijametra
slavine. S time se moe nositi
podeavajui
close_slow
ventilsku funkciju pripadnosti
malo razito od open_slow. PID
regulator nema tu mogunost.
Ventilska naredba nasuprot
razini vode mijenja brzinu i
relativnu razinu vode te povrina
izgleda kao na slici. Ako se
pogleda poblie, moe se vidjeti
blaga asimetrija na grafu.

272

30.1.2013.

5. Neizrazita logika
Kako MATLAB podrava mnogo alatki, kao Control System
Toolbox ili Neural Network Toolbox, lako se moe usporediti
neizraziti regulator s linearnim regulatorom ili ANN regulatorom.
Za ilustraciju kako se Rule Viewer moe koristiti za
meudjelovanje s Fuzzy Logic Toolbox blokom u Simulink-ovom
modelu, ukucajte:
>> sltankrule

Rule Viewer se otvara kada se starta simulacija. Rule Viewer


prua animaciju kako se pravila koriste tijekom simulacije
spremnika vode. Prozor koji se otvori kada se simulira sltankrule
izgleda kao na sljedeem slide-u:

5. Neizrazita logika

273

30.1.2013.

5. Neizrazita logika
Rule Viewer koji se otvori tijekom simulacije moe se koristiti za
pristup Membership Function Editor (editoru funkcije
pripadnosti), Rule Editor (editor pravila) ili bilo koji drugi GUI.
Npr. moete htjeti otvoriti Rule Editor da bi izmjenili jedno ili vie
pravila. Da bi se to postiglo, potrebno je odabrati Rules pod
izbornikom Edit otvorenog Rule Viewer-a.
Sada moete mijenjati pravila i promatrati kako te promjene
utjeu na rezultat u Simulink modelu.

5. Neizrazita logika

274

30.1.2013.

5. Neizrazita logika
Ako se zaustavi simulacija prije odabira nekog od ovih editora,
trebali bi promijeniti FIS. Zapamitete da treba spremati promjene
koje napravite u FIS-u u workspace prije nego restartate
simulaciju.
Izgradnja vlastitog neizrazitog simulink modela
Da bi ga izgradili, jednostavno je potrebno kopirati Fuzzy Logic
Controller blok iz sltank (ili bilo kojeg drugog Simulink programa,
dema ili explorera) i stavite ga u svoj blok dijagram. Takoer
moete nai Fuzzy Logic Controller blocks u Fuzzy Logic Toolbox
library. Moete otvoriti library odabirom Fuzzy Logic Toolbox u
Simulink Library Browser prozoru ili tipkajui u konadnom
prozoru: >> fuzblock

5. Neizrazita logika
Fuzzy Logic Toolbox library sadri Fuzzy Logic Controller i Fuzzy
Logic Controller s Rule Viewer blokovima. Takoer ukljuuje
podbiblioteku funkcija pripadanja koji sadri Simulink blokove za
ugraene funkcije pripadanja.
Da bi dodali blok iz biblioteke, povucite blok u prozor Simulink
modela. Moete dobiti pomo za specifini blok klikom na Help.
Za veinu neizrazitih sustava zakljuivanja Fuzzy Logic Controller
blok automatski generira hijerarhijski blok dijagram. Ova
mogunost automatskog generiranja modela se naziva Fuzzy
Wizard. U blok dijagramu se koriste samo ugraene funkcije
Simulink blokova. Stoga je mogue i uinkovito generiranje koda.
Fuzzy Wizard ne moe se nositi s FIS-om koji ima definirane od
strane korisnika funkcije pripadanja ili s AND, OR, IMP, AGG
funkcijama osim ako to nisu: orMethod: max, andMethod:
min,prod, impMethod: min,prod, aggMethod: max.

275

30.1.2013.

5. Neizrazita logika
O ovom sluaju, Fuzzy Logic Controller blok koristi S-funkciju sffis
da bi simulirala FIS.
Fuzzy Logic Controller with Rule Viewer blok je proirenje Fuzzy
Logic Controller bloka. Doputa vizuelizaciju kako se pravila
aktiviraju tijekom simulacije. Ako se napravi desni klik na Fuzzy
Controller With Rule Viewer block, te se odabere Look Under
Mask, pojavit e se prozor koji pokazuje to je unutar crne kutije.
Da bi inicijalizirali Fuzzy Logic Controller block, potrebno je koristiti
korake:
2x kliknite blok da se otvori Function Block Parameters. Uite na
Fuzzy Logic Controller dialog box.
U FIS datoteci ili strukturi, unesite ime strukturne varijable ili ime
.fis file.

5. Neizrazita logika
Primjer: Ovo je primjer FIS modela auto-generiranog Fuzzy Logic
Controller blokom. Utipkajte:
>> slcp
u komandnom prozoru
i model se
pojavljuje.

276

30.1.2013.

5. Neizrazita logika

5. Neizrazita logika
Desnim klikom na Fuzzy Logic Controller block te odabirom Look
under mask iz izbornika dobija se:

Kako slika pokazuje, Fuzzy Logic Controller blok koristi ugraene


Simulink blokove da bi realizirao na FIS.

277

30.1.2013.

5. Neizrazita logika
Iako model moe postati kompleksan, ovakav nain realizacije je bolji
za S-funkciju sffis kako bi se dobila bolja uinkovitost koda.

6. Fuzija slika
Naelo fuzije (spajanja) slika je u primjeni postupaka spajanja
dva ili vie originala u novu sliku koja ima dodatnu kvalitetu.
Da bi se to postiglo, slika ne mora biti iz istog izvora, npr. moe se
koristiti radarska i infracrvena slika ili ultrazvuna i od kamere
u vidnom podruju.
Za fuziju slika u Matlabu postoji razvijeno grafiko suelje koje
koristi tzv. valinu alatku (wavelet toolbox), tj. valinu
transformaciju. Ona spada u jednu od novijih vrsta
transformacije signala. Pri tome se slika razlae na
aproksimaciju i detalje.
Prilikom fuzije, slike moraju biti istih dimanzija. Fuzija se moe
sprovoditi na bilo kojoj razini valine transformacije i u bilo
kojim ili svim koeficijentima.

278

30.1.2013.

6. Fuzija slika
Prisjetite se
vaine
transformacije

50
100
150
200
250
300
350
400
450
500
550
100

200

300

400

500

600

700

NF

VF

50

50

50

50

100

100

100

100

150

150

150

150

200

200

200

200

250

250

250

50

100

150

200

CA

250

300

350

50

100

150

200

CH

250

300

350

250

50

100

150

200

250

CV

300

350

50

100

150

200

250

300

350

CD

6. Fuzija slika

279

30.1.2013.

6. Fuzija slika

280

You might also like