uvod u labview simulation module

27
Uvod u LabVIEW Simulation Module Damir Mileta ožujka 2008. TŠRB, Zagreb 1 Uvod u LabVIEW Simulation Module Damir Mileta 19. veljače 2008. Sadržaj: 1 Predgovor 2 Uvod 3 Sadržaj palete Simulation 4 Primjer: Simulator spremnika tekućine 4.1 Razvoj matematičkog modela sustava koji će se simulirati 4.2 Prednja ploča (Front panel) i blok dijagram (Blok dijagramu) simulatora 4.3 Konfiguriranje simulacije 5 Različite teme 5.1 Prikaz modela u prostoru stanja koristeći integratore i formula čvor (Formula node) 5.2 Izmjenjivanje podataka između petlje simulacije i While petlje 5.3 Pretvaranje modela između Simulation Module i Control Design Toolkita 5.4 Stvaranje podsustava 5.5 Dobivanje lineariziranog modela podsustava 5.6 Korištenje programskih flow struktura u petlji simulacije 5.7 Prevođenje SIMULINK modela u LabVIEW simulacijski model 5.8 Ispitivanje regulacijskih sustava korištenjem simulacije 1 Predgovor Tekst predstavlja uvod u LabVIEW Simulation Module za LabVIEW 7.1. Pretpostavljaju se osnovne vještine LabVIEW programiranja. Priručnik sadrži određeni broj vježbi koje bi trebalo izvesti. Iste su prikazane u plavim površinama kao što je ova: Vježbe su prikazane u plavim površinama kao što je ova. 2 Uvod LabVIEW Simulation Module je okružje zasnovano na blok dijagramu regulacijskog sustava za simulaciju linearnih i nelinearnih kontinuiranih i diskretnih dinamičkih sustava. Na raspolaganju su mnogi različiti algoritmi simulacije (tj. numeričke metode

Upload: ilet09

Post on 06-Jun-2015

1.351 views

Category:

Documents


2 download

DESCRIPTION

...uvod u LabVIEW Simulation Module za LabVIEW 7.1

TRANSCRIPT

Page 1: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

1

Uvod uLabVIEW Simulation Module

Damir Mileta

19. veljače 2008.

Sadržaj:

1 Predgovor2 Uvod3 Sadržaj palete Simulation4 Primjer: Simulator spremnika tekućine4.1 Razvoj matematičkog modela sustava koji će se simulirati

4.2 Prednja ploča (Front panel) i blok dijagram (Blok dijagramu) simulatora

4.3 Konfiguriranje simulacije

5 Različite teme5.1 Prikaz modela u prostoru stanja koristeći integratore i formula čvor (Formula node)

5.2 Izmjenjivanje podataka između petlje simulacije i While petlje

5.3 Pretvaranje modela između Simulation Module i Control Design Toolkita

5.4 Stvaranje podsustava

5.5 Dobivanje lineariziranog modela podsustava

5.6 Korištenje programskih flow struktura u petlji simulacije

5.7 Prevođenje SIMULINK modela u LabVIEW simulacijski model

5.8 Ispitivanje regulacijskih sustava korištenjem simulacije

1 Predgovor

Tekst predstavlja uvod u LabVIEW Simulation Module za LabVIEW 7.1.Pretpostavljaju se osnovne vještine LabVIEW programiranja.

Priručnik sadrži određeni broj vježbi koje bi trebalo izvesti. Iste su prikazane u plavimpovršinama kao što je ova:

Vježbe su prikazane u plavim površinama kao što je ova.

2 Uvod

LabVIEW Simulation Module je okružje zasnovano na blok dijagramu regulacijskogsustava za simulaciju linearnih i nelinearnih kontinuiranih i diskretnih dinamičkihsustava. Na raspolaganju su mnogi različiti algoritmi simulacije (tj. numeričke metode

Page 2: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

2

rješavanja diferencijalnih jednadžbi), npr. različite Runge-Kutta metode. Matematičkimodel koji će se simulirati mora biti postavljen u petlju simulacije koja je sličnauobičajenoj while petlji u LabVIEW. Može se izraditi simulacija koja se odvija onombrzinom koju računalo dozvoljava ili se može odvijati s realnom vremenu, daklesimulirajući realno ponašanje s mogućnošću djelovanja korisnika na simulirani proces.Osim toga petlja simulacije se može odvijati paralno s while petljom unutar istog VI.

3 Sadržaj palete simulacije (Simulation Function palette)

Jednom kad se Simulation Module instalira, paleta simulacije je raspoloživa unutarpalete funkcija (Function palette). Paleta simulacije je prikazana na donjoj slici.

Otvorite blok dijagram praznog VI (blank VI).

Otvorite paletu simulacije na slijedeći način: Otvorite Function palette(škljocanjem desne tipke miša bilo gdje na blok dijagramu) / OdaberiteControl Design & Simulation / Simulation. Donja slika prikazuje ovupaletu.

Pretražite podpalete u paleti simulacije. Pročitajte informaciju o svakoj paletikoju ste otvorili ovdje.

Zatvorite VI bez spremanja.

Simulation Palette unutar Function Palette

Slijedi pregled svih funkcija i mogućih podpaleta u Simulation Palette.

Petlja simulacije, određuje granice simulacijskog dijagrama na koji se funkcijesimulacije postavljaju. Uočite da se (većinom) funkcije koje se nalaze u paletisimulacije mogu postavljati samo unutar petlje simulacije.

Paleta kontinuiranih funkcija sadrži slijedeće funkcije i/ili podpalete:o Integratoro Derivativeo Time Delayo State Space

Page 3: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

3

o Transfer Functiono Zero-Pole-Gain

Paleta nelinearnih funkcija sadrži slijedeće funkcije:o Backlasho Frictiono Quantizero Dead Zoneo Rate Limitero Relayo Saturationo Switcho Zero Cross Detection

Paleta diskretnih funkcija sadrži slijedeće funkcije:o Discrete Integratoro Discrete Unit Delayo Discrete Zero-Order Holdo Discrete First-Order-Holdo Discrete State Spaceo Discrete Transfer Functiono Discrete Zero-Pole-Gaino Discrete Filter

Paleta za generanje signala sadrži slijedeće funkcije:o Chirp Signalo Rampo Pulseo Signal Generatoro Sine Waveo Stepo Indexer, koji se upotrebljava za indeksiranje polja (array) ili valnog

oblika (waveform), (kao obične funkcije indeksiranja polja (array) u LabWIEW-u), uz aktualno vrijeme simulacije.

Paleta aritmetičkih operatora (Signal Arithmetic palette) sadrži slijedećefunkcije:

o Gaino Summation, s bilo kojim brojem ulaza. Može se ostvariti oduzimanje

također.o Multiplication, s bilo kojim brojem ulaza. Može se ostvariti dijeljenje

također. Paleta Lookup Tables sadrži slijedeće funkcije, koje mogu biti korištene u

look up vrijednosti iz arrays of tabular (e.g. experimental) podataka:o Lookup Table 1D (dimenzija jedan)o Lookup Table 2D (dimenzija dva)o Lookup Table 3D (dimenzija tri)

Palete Utilities sadrži slijedeće funkcije:o Collector, koja prikuplja signal u svakom vremenskom koraku

simulacije i daje na izlaz sve prošle vrijednosti signala i vrijeme u kojemje ova funkcija snimila svaku vrijednost iz prošlosti. Kolektor gradipolje (array) na svom izlazu od ulaznih vrijednosti koje je dobio prisvakom koraku simulacije.

Page 4: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

4

o Memory, pohranjuje vrijednosti ulaznog signala prethodnih iteracijasimulacije. Možete koristiti ovu funkciju pri prijenosu vrijednosti izjedne iteracije petlja simulacije u slijedeću.

o Indexer, koji se upotrebljava za indeksiranje polja (array) ili valnogoblika (waveform), (kao obične funkcije indeksiranja polja (array) u LabWIEW-u), uz aktualno vrijeme simulacije.

o Parametri simulacije, koji mogu biti korišteni za pročitati ili uzeti (nepostaviti) simulacijske parametre.

o Simulacije Vremena, čiji izlaz je simulacija vremena. Ona radi poputsimulacije sata.

o Report Sim Error (Izvještaj o grešci unutar simulacije)o Halt Simulacije, koja zaustavlja simulaciju kad njegovog ulaz postane

False. Paleta Graph Utilities sadrži slijedeće funkcije:

o SimTime Waveform, koji se koristi u grafičkom prikazu (krivulji)simuliranih variabli kontinuirano u LabVIEW Chart. Kad je ova funkcijastavljena u simulacijsku petlju, Chart je automatski pridodan funkciji.

o Buffer XY Graph, koji se koristi za prikupljanje polja (array) signala zagrafički prikaz (krivulju) u LabVIEW Graph. Kad se ovu funkciju staviu simulaciju petlje, Graph je automatski pridodan funkciji.

o Trim & Linearize paleta sadrži mnoge funkcije za izračun operativnetočke, kako bi Lab WIEW mogao razviti linearni model unutar teoperativne točke.

o Optimal Design palette sadrži funkcije za izračun optimalnih PIDpostavki za procesni model iz stvarne funkcije (optimizacijski kriterij).

o CD Implementation palette sadrži funkcije za izračun estimacije stanjauz uporabu Kalman Filtera. CD (Kontrolni dizajn (Control Design). Istefunkcije se nađu na CD palette, također.

4. primjer: Simulator spremnika tekućine

U ovom primjeru proučit će se i djelomično razviti simulator spremnika tekućine. Ustvari, pokrenut će unaprijed izrađeni primjer i neće se razvijati od početka. Ovo jeefikasan način za učenje korištenja Simulation module, pretpostavljajući da imateosnovne vještine u LabVIEW programiranju. Također se pretpostavlja da imateosnovno znanje o modeliranju dinamičkih sustava, kao što je opisano u bilo kojoj knjizio teoriji dinamičkih sustava.

4.1 Razvoj matematičkog modela sustava koji će biti simuliran

Sustav koji će biti simuliran je spremnik tekućine (vidi donju sliku). Simulator ćeizračunavati i prikazivati razinu h u bilo kojem trenutku vremena. Simulacije će seodvijati u realnom vremenu s mogućnošću skaliranja realnog vremena, dajući osjećaj"realnog" sustava. Korisnik može podešavati ulaz tekućine u spremnik podešavajućiregulacijski signal pumpe, u.

Page 5: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

5

Spremnik Tekućine

Bilo koji simulator je zasnovan na matematičkom modelu sustava kojeg treba simulirati.Dakle, krenut ćemo od razvijanja matematičkog modela spremnika.

Pretpostavlja se slijedeće (parameteri korišteni u izrazima dolje su definirani u slicigore):

gustoća tekućine je ista u ulazu, u izlazu i u spremniku. spremnik ima ravne, vertikalne zidove. masa tekućine i njezina razina se odnose prema izrazu

m(t) = ρAh(t)

volumen ulaznog protoka kroz pumpu je proporcionalan regulacijskom signalupumpe:

qin(t) = Kuu(t)

volumen izlaznog protoka kroz ventil je proporcionalan drugom korijenu padatlaka na(preko ventila) ventilu. Za ovaj se pad tlaka pretpostavlja da je jednakhidrostatskom tlaku na dnu spremnika (sqrt znači drugi korijen):

qout(t) = Kvsqrt[ρgh(t)]

Ravnoteža mase (tj., količina promjene mase je jednaka ulaznom protoku minus izlazniprotok) prema slijedećoj difrencijalnoj jednadžbi:

dm(t)/dt = ρqin(t) - ρqout(t)] (1)

ili koristeći gornje odnose,

Page 6: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

6

d[ρAh(t)]/dt = ρKuu(t) - ρKvsqrt[ρgh(t)] (2)

Sad ćemo nacrtati matematički blok dijagrama modela. Ovaj blok dijagram će nakontoga biti implementiran u blok dijagram simulatora VI. Kao prikladnu polaznu točku zacrtanje matematičkog blok dijagrama, napisat ćemo diferencijalnu jednadžbu kao modelu prostoru stanja što je diferencijalna jednadžba koja ima derivacijski član prvog redana lijevoj strani. To može biti izvedeno vadeći konstante ρ i A izvan diferencijalnog dijela, zatim dijeleći obije strane s ρA, rezultirajući da diferencijalna jednadžba postaje

d[h(t)]/dt = (1/A)*{Kuu(t) - Kvsqrt[ρgh(t)]} (3)

Ovo je diferencijalna jednadžba za h(t). Ona govori kako vremenski derivacijski člandh(t)/dt može biti izračunat. h(t) se izračunava (simulatorom) integriranjem dh(t)/dt uvremenu (poštujući vrijeme) od trenutka 0 do trenutka t s početnom vrijednošću h(0)koju ćemo ovdje označiti hinit. Da bismo nacrtali blok dijagram modela (3), krenutćemo s dodavanem integratora na prazan blok dijagram. Ulaz u ovaj integrator je dh/dta izlaz je h(t). Nakon toga dodat ćemo blokove matematičkih funkcija da bi konstruiraliizraz za dh/dt, koji je desna strana diferencijalne jednadžbe (3). Rezultirajući blokdijagram za model (3) može biti kao onaj prikazan u donjoj slici.

Matematički blok dijagram Diferencijalne Jednadžbe (3)

Numeričke vrijednosti parametara prikazane su u front panelu slika ispod.

Pretpostavit ćemo da postoje granice razine za alarm koje će biti prikazane nasimulatoru. Granice su

AH_h = 0.9m (Alarm za visoko stanje)

AL_h = 0.1m (Alarm za nisko stanje)

Blok dijagram koji je (ovako) razvijen na način prkazan gore, bit će sada implementiranu Simulacijskoj Petlji, u Blok dijagramu naše simulacije VI.

Page 7: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

7

4.2 Front panel i blok dijagram simulatora

Slijedeće slike prikazuju front panel i blok dijagram cijelog VI, spremniksim.vi.

Front panel spremniksim.vi.

Page 8: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

8

Blok dijagram spremniksim.vi.

Otvorite spremniksim.vi, i spremite ga s imenom moj_spremniksim.vi u bilokoju mapu želite.

Pokrenite VI i poigrajte se s komandama na front panelu kako želite.Pokušajte podešavati faktor_skaliranja _vremena (VI mora biti zaustavljen ipokrenut ponovno da bi promjena ovog faktora imala učinak). Konačno,zaustavite VI.

Pročitajte komentare na Front panel dane ispod.

U slijedećem dijelu trebate maknuti i nakon toga ponovno staviti elemente u Frontpanel i Blok dijagram moj_spremniksim.vi. Svrha je u tome da se nauči kako razvitisimulator realistične složenosti u Simulation Module a da se ne krene u cijelosti izpočetka. Nadam se da je to efikasan način učenja. Pretpostavka je za to da imateosnovne vještine iz LabVIEW programiranja kao što je naznačeno u Predgovoru.

Front panel

Indikator Tanka (Spremnika) je kopiran iz Numeric palette (na Controlspalette).

Pretpostavka je da je moj_spremniksim.vi otvoren. Uočite Label i Captionindikatora Spremnika. Maknite Indikator Spremnika s Front panel. Nakon

Page 9: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

9

toga umetnite novi na isto mjesto s istim Labelom i Captionom.

Otvorite Blok dijagram. Spojite terminal Indikatora Spremnika na integratorizlaza, koji predstavlja razinu.

Provjerite da VI nema grešaka. Spremite ga. Pokrenite ga, i konačno,zaustavite ga.

numeričke komande, tj. vertikalni kliznik s pokazivačem kopiran je iz Numericpalette.

slike pumpe i ventila su grafički objekti koja su već originalno kreirani u Visioalatima za tehničko crtanje. Ovdje su EMF-fajlovi (Enhanced Meta Files) tihobjekata: pumpa.emf i ventil.emf

Otvorite Front panel moj_spremniksim.vi. Maknite sliku pumpe.

Skinite pump.emf u bilo koju mapu. Umetnite sliku pumpe kako slijedi:Odaberite slijedeći padajući izbornik u LabVIEW: Edit / Import Picturefrom File i odaberite fajl pump.emf. Nakon toga zalijepite fajl na Front panelna odgovarajuće mjesto s Edit / Paste. Uobličite sliku po veličini pravilno.

Ako slika prekriva jedne ili više elemenata komandi na front panel možda nećebiti moguće podešavati te komande. Da bi se izbjegla ova situacija, neophodnoje staviti sliku u pozadinski sloj (background layer) Front panela. To se izvodiputem gumba za promjenu redoslijeda (Reorder alat) u alatnom traku.

Odaberite sliku pumpe (škljocanjem na nju). Zatim škljocnite Reorder alat ualatnom traku / Odaberite Move to Back.

Spremite VI.

cjevovodi su kopirani iz palete za ukrašavanje (Decorations palette). Postavljenaje plava boja korištenjem gumba Postaviti Color u Tools palette, koja jeotvorena preko View / Tools palette izbornika.

Maknite cjevovode koji ulaze u Spremnik indikator. Nakon toga dodajte novecjevovode i obojite ih plavom bojom.

Spremite VI.

chart nije kopiran direktno na front panel iz Graph palette. Umjesto toga na jekreiran na front panel preko blok dijagrama. Vidi komentare uz Blok dijagramispod.

Blok dijagram

Otvorite Blok dijagram moj_spremniksim.vi. Pokušajte identificiratiodgovarajuće elemente u matematičkom blok dijagramu i Blok dijagramu

Page 10: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

10

moj_spremniksim.vi (odabirite jedan po jedan blok u matematičkom blokdijagramu i nađite odgovarajući element u VI Blok dijagramu).

Slijede komentar i aktivnosti za različite dijelove Blok dijagrama:

Petlja simulacije sadrži blokove ili funkcije koje predstavljaju matematičkimodel spremnika. Ona izgleda poput While petlje ali nije ista. Petlja simulacijepokreće simulaciju u skladu s postavkama (konfiguracijom) simulacije. Whilepetlja samo izvršava kod postavljen unutar petlje.

Dodajte Simulacijsku petlju na prazno mjesto izvan postojeće Simulacijskepetlje. Simulacijska petlja je na Simulation palette. (Nemojte maknutipostojeću petlju budući da su mnogi elementi ožičeni na njen Ulazno Node(Čvorište) nalijevo.) Nakon toga maknuti ovu novu Simulacijsku petlju.

Funkcija Integrator izvodi vremensku integraciju ulaza unutar funkcije.

Otvorite Configuration prozor bloka Integrator dvostrukim škljocanjem nablok. Donja slika prikazuje Integrator Configuration prozor.

Configuration window bloka Integrator. Prozor se otvara dvostrukim škljocanjem na blok.

Slijede komentari na Integrator Configuration prozor: Dio Parameters sadržirazličite parametere koji mogi biti podešeni. Jednom kad imate odabraneparametere s popisa imat ćete dvije mogućnosti u dijelu Parameter source:

Page 11: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

11

o odabirom Configuration Dialog Okvir, koja je default mogućnost,možete postaviti vrijednosti odabranog parametra direktno u dijalogokvir. To je internal postavljanje parametara.

o odabirom Terminal ulazni terminal je stvoren na lijevom dijelu bloka uPetlji Simulacije, pa možete ožičiti vrijednosti ispravnih podataka vrstetom ulazu. Ovo je vanjsko (external) postavljanje parametara. U našemVI slijedećem dijelu parameteri su postavljeni vanjski (externally):Početni uvjeti; Upper Limit (Gornja Granica); Lower Limit (DoljnjaGranica). Terminali ožičeni ka ovim trima blokovima ulaza su h_max,h_min, i h_init, kao što se može vidjeti iz slike blok dijagrama .

Maknite postojeću funkciju Integrator u Blok dijagramu. Nakon togaumetnite novu funkciju Integrator iz Continuous palette na isto mjesto, s istimpostavkama kao za originalnu funkciju Integrator, kako je u opisu gore.

Osigurajte VI je bez grešaka, Nakon toga spremite VI.

Funkcija Summation može biti podešena da izvodi i zbrajanje i oduzimanje.

Otvorite Configuration prozor bloka Summation dvostrukim škljocanjem nablok. Donja slika prikazuje Summation Configuration prozor.

Osigurajte da je VI bez grešaka, Nakon toga spremite VI.

Configuration prozor Summation bloka

Page 12: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

12

Ovo su komentari o Summation Configuration prozoru: Možete odabrati brojulaza preko Input list, odabrati zbrajanje(Add) ili oduzimanje (Subtract) ili(Disable) onemogući, za svaki ulaz (škljocanjem na simbole unutar kruga).Možete također odabrati između Pravokutnog (Rectangle) i kružnog (Circle)oblika ikone (Icon shape) i je li ulaz skalar (pojedinačni signal) ili vektor(višestruki signali).

Maknite postojeću Summation funkciju u Blok dijagramu. Nakon toga,umetnite novu Summation funkciju iz Signal Arithmetic palette na istomjesto, s istim postavkama kao za originalnu Summation funkciju, opisanogore.

Osigurajte da je VI bez grešaka, Nakon toga spremite VI.

Funkcija Multiplication je podešena na sličan način kao blok Summation.Možete dodavati i micati ulaze, te odabirati množenje (Multiply) ili dijeljenje(Divide) ili onemogućiti (Disable) za svaki ulaz.

Otvorite Configuration prozor bloka Multiplication dvostrukim škljocom nablok. Uočite postavke.

Maknite postojeću Multiplication funkciju s blok dijagrama. Nakon toga,umetnite novu Multiplication funkciju iz palete Signal Arithmetic na istomjesto s istim postavkama kao za originalnu Multiplication funkciju.

Osigurajte da je VI bez grešaka, Nakon toga spremite VI.

Square Root funkcija je kopirana iz standardne Numeric palette. Dakle, ovo jeprimjer uključivanja bloka ili funkcije koja je sadržana u paleti izvansimulacijske palete. Općenito, funkcije iz drugih paleta mogu biti korišteneunutar Simulation Modula.

Maknite Square Root funkciju iz Blok dijagrama. Nakon toga, dodajteSquare Root funkciju na isto mjesto, i ožičite njegov ulaz i izlaz.

Osigurajte da je VI bez grešaka, Nakon toga spremite VI.

Funkcija Build Array je kopirana iz uobičajene Array palete. Ona se koristi zaskupljanje triju signala koji će se iscrtavati na ljestvici (Chart): razine (izlaz izIntegratora) i dvaju konstanti 0.9 i 0.1. Možete se pitati: Zbog čega koristitiBuild Array funkciju? U While petlja se koristi Bundle funkcija u skupljanjeviše signala. Na ovo pitanje Nacional Instrument odgovara da upotrebasimulacijske petlje zahtijeva korištenje Build Array funkcije.

Iako nije korišteno u našem VI, možete preokrenuti blok škljocanjem desnomtipkom miša na blok i odabrati Reverse terminals u izborniku koje će se otvoriti.

Maknite postojeću funkciju Build Array s blok dijagrama. Nakon toga,umetnite novu funkciju Build Array na isto mjesto, proširite broj ulaz na tri

Page 13: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

13

(vučenjem donje ivice bloka prema dolje ili škljocanjem desnom tipkom mišana blok i odaberite Dodajte Ulaz u izborniku koji će se otvoriti).

Osigurajte da je VI bez grešaka, Nakon toga spremite VI.

Funkcija SimVremena Waveform kopirana je iz Graph Utilities palete. Kadumetnete SimVremena Waveform blok u simulacijski dijagram, WaveformChart automatski nastaje na front panelu. Zbog toga vremenska os naWaveform Chart automatski prikazuje vrijeme simulacije tako da ne trebatedefinirati Multiplier paramtere u Scale tab unutar Property prozora Charta (kaošto morate učiniti s Chart u uobičajenoj While petlja). Bilo kako bilo,postavljeni (default) vremenski format je Absolute Time koji nije osobitoprikladan jer on prikazuje 1.1.1904 kao referencu vremena. Predlažemkorištenje formata Floating point umjesto toga (to se postavilja u Format &Precision opciji prozora Property Waveform Charta).

Ljestvica (Chart) se automatski prazni prije no što se VI pokreće, tako da nemorate kreirati Property node za ovu ljestvicu (Chart) s ovom svrhom.(korištenje Property node za konfiguriranje Charts je opisano je u Uvod uLabVIEW).

Maknite postojeći SimTime Waveform funkciju i Chart terminal s blokdijagrama. Nakon toga umetnite novu funkciju SimTime Waveform zajedno sChart Build na isto mjesto, spojite SimTime Waveform na izlaz funkcije BuildArray. Konfiguriranje Chart ispravno pomoću njegovog prozor Property(otvoren pomoću škljocanja desnom tipkom miša na Chart na Front panelu).

Osigurajte da je VI bez grešaka, Nakon toga spremite VI.

4.3 Konfiguriranje simulacije

Parametri simulacije

Parametri simulacije su Continuos Solver (tj. metoda numeričkog rješavanjadiferencijalnih jednadžbi koje tvore simulirani model) vremenski inkrement, početnovrijeme i konačno vrijeme mogu biti postavljeni škljocom desne tipke miša na granicupetlje simulacije i odabiranjem izbornika Configure Simulation Parameters. Time seotvara dijaloški prozor Simulation Parameters (vidi sliku ispod).

Page 14: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

14

Dijaloški prozor Simulation Parameters, koji se otvara škljocanjem desne tipke miša na granicu simulacije petljei odabiranjem izbornika Configure Simulation Parameters.

Ukoliko želite da se simulacija izvršava (dok korisnik na) škljocnite na Stop (Halt)gumb na front panel kao u tfsys.vi možete postaviti Final Time na Inf (infinity-beskonačno).

Iako nije upotrijebljeno u trenutnom primjeru možete preokrenuti blok škljocom desnetipke miša na blok i odabiranjem izbornika Reverse terminals.

Vodeći računa o metodi kontinuiranog rješenja iskusitvo pokazuje da korištenje metodeRunge-Kutta drugog reda (s nepromjenjivim vremenskim inkrementom) daje dobrerezultate. Simulacija se izvršava točno bez nepotrebne vremenske zadrške, kojidrugačije mogu nastupiti zbog numeričkih komplikacija.Obično se vremenski inkrement postavlja u slijedu sa slijedećim jednostavnimpravilom: Ukoliko najmanja vremenska konstanta modela iznosi Tmin vremenskiinkrement h se postavlja na

h = 0.1*Tmin

Ukoliko najmanja vremenska konstanta modela nije poznata treba početno postavljenih=0.1 i smanjivati ga dok se ne postigne zadovoljavajuća točnost simulacije.

Page 15: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

15

Na slici gore Discrete Time Step Multiple parametar je broj vremenski diskretnihfunkcija (blokova) koji se pozivaju u svakom vremenskom inkrementu. Postavljena(default) vrijednost je 1.

Kao alternativa postavljanju parametara simulacije pomoću dijaloškog prozoraSimulation Parameter kao što je objašnjeno gore možete postaviti parametreprogramski spajanjem Set Diagram Parameters function koja se nalazi u Utilities paletina Simulation parameters terminal na gornji lijevi kut petlje simulacije (vidi slikudolje).

Parametre simulacije možete postaviti programski spajanjem Set Diagram Parameters function (iz Utilities palete) naSimulation parameter terminal petlje simulacije.

Ulaz u Set Diagram Parameters function je klaster parametara simulacije (vidi slikudolje).

Simulacija parametara na front panelu simulatora

Ovo su komentari parametara:

Intial Time određuje početno simulacije, obično nula. Final Time određuje vrijeme simulacije kad će se simulacija zaustaviti. U ovom

VI konačno vrijeme je postavljeno na Inf (infinity). Znači li to da se simulacijane će nikad zaustaviti? Zaustavit će se zbog funkcije Halt Simulation na blokdijagram. Kad korisnik škljocne gumb Stop na front panel funkcija HaltSimulation će uzrokavati prestanak simulaije.

Page 16: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

16

Time Step predstavlja rezoluciju vremenske osi simulacije, vidi sliku ispod.

Time step predatavlja rezoluciju vremenske osi simulacije

Simulacija timing parametara

Škljocanjem desne tipke miša na granicu petlje simulacije i odabiranjem izbornikaConfigure Simulation Timing Parameters otvara se dijaloški prozor Loop Configuration(vidi sliku dolje).

Page 17: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

17

Dijaloški prozor Petlje Configuration koji se otvara škljocanjem desnom tipke miša na granicu petlje simulacije

Parametar Period određuje protok vremena između dvije uzastopne iteracije petljesimulacije. Postavljanjem parametra Period jednakim koraku vremena simulacije,simulacija se odvija u realnom vremenu. Dajući parametru Period neku druguvrijednost vremenska os simulacije je proporcionalna realnom vremenu s nekimfaktorom. Na primjer ukoliko korak vremena simulacije iznosi 0.01s postavljanjePeriod na 0.05 uzrokuje da se simulacija odvija 5 puta sporije nego realno.Postavljanjem Period na 0, simulacija se odvija najbrže što se može. (ovisno oračunalu).

Pokrenite VI. Nadajmo se da radi.

5 Različite teme

5.1 Ostvarenje modela prostora stanja korištenjem integratora i Formulanode

Page 18: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

18

Model u prostoru stanja (state-space model) je skup diferencijalnih jednadžbi prvogreda koje tvore model sustav. On je standardizirani oblik model nekog dinamičkogsustava. Uobičajeno je da se matematički model dinamičkih sustava piše kao model sprostorom stanja (state-space model). Konkretnije, opći oblik modela varijablamastanja drugog reda izgleda ovako (točkice predstavljaju argumente funkcija):

dx1/dt = f1(x1,x2,...)

dx2/dt = f2(x1,x2,...)

y = g(x1,x2,...)

gdje f1(•) i f2(•) su funkcija koje čine desne dijelove diferencijalnih jednadžbi prvogreda. Argumenti mogu biti variable stanja, ulazne varijable i parametri. Te funkcijemogu biti linearne ili nelinearne. Oni su vremenske derivacije stanja x1 i x2 respektivno.Ponekad su jedne ili više izlaz varijabli definirane. U gornjim je izrazima izlaznavarijabla y i izlazna funkcija g(•).

Da bi primijenili blok dijagram s modelom prostora stanja može se krenuti dodavanjempo jednog bloka Integrator za svaku varijablu stanja na blok dijagram. Izlazi integratorasu varijable stanja. Ulazi u integratore su vremenske derivacije. Funkcije f1(•) i f2(•) uprikazanom oglednom model su te vremenske derivacije. Da bi primijenili funkcijeimate slijedeće dvije mogućnosti (koja također mogu biti kombinirane):

Konstruiranje funkcija, f1(•) i f2(•) gore, korištenjem blok funkcija kao Sum,Gain, Multiplication itd., koja su u paleti Simulation palete Function. Primjeretoga je blok dijagram modela spremnik tekućina prikazan ovdje.

Pisanje tekstuanih funkcija f1(•) i f2(•) u Formula Node. Formula node je upaleti Analyse/Mathematics (i u paleti Structure). Formula Node je objašnjenoovdje (u mojem Uvod u LabVIEW). Pomoću Formula Node funkcije se mogulakše modificirati (to se može izvršiti jednostavnim uređivanjem teksta uFormula Node) a i blok dijagramu može izgledati jednostavnije. Ipak pomoćuFornula Node je teže primjeniti nelinearne funkcije kao histereza, backlash itd.(postoje brojni takvi blokovi nelinearnih funkcija u paleti Nelinear u paletiSimulation).

Evo jednostavnog primjera korištenje Formula Node. Dan je slijedeći model prostorastanja:

dx1/dt = x2

dx2/dt = -x1 + u

y = x1

(to je model prostora stanja oscilatora). u je ulazna varijabla y je izlazna varijabla.ssformulanode.vi prikazan dolje primjenjuje simulator za ovaj sustav. Formula node jeiskorištena da ostvari desnu stranu diferencijalnih jednadžbi. Integracija vremenskihderivacija se izvodi blokom Integrator iz palette Continuous.

Page 19: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

19

Front panel i blok dijagramu ssformulanode.vi.

5.2 Izmjenjivanje podataka između petlje Simulation i While petlje

Pri tvorbi simulacijskog modela moguće je staviti (gotovo) bilo koji LabVIEW kod(code) za analizu i tvorbu u dijagram simulacije, ali radeći tako može se dogoditi dasimulirani model postane nepotrebno velik čime se može usporiti vrijeme simulacije.Stoga ne trebate staviti više kodova unutar petlje simulacije nego što je striktnoneophodno za predstavljane modela koji će biti simuliran. Ali gdje staviti kod? Onmože biti stavljen u jednu ili više običnih While petlji koje se odvijaju paraleno spetljom simulacije. Podaci mogu biti izmjenjivanje između petlji korištenjem localvariables. Pokretanje petlji paralelno je opisano ovdje.

U paralelnepetlje.vi prikazom ispod podaci su izmjenjivani između While petlje iSimulation petlje korištenjem local variable. Vrijednost pojačanja K je generirana uwhile petlji koja je korištena u petlji simulacije pomoću local variable.

Page 20: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

20

Front panel i blok dijagram paralelnepetlje.vi.

Uočite da su obje petlje u primjeru zaustavljene samo jednim Stop gumbom. Korištenaje local variable pa logička konstanta povezana na drugu local variable uzrokujezaustavljanje while petlje kad je pritisnut Halt gumb u simulacijskom dijagramu. Da bise mogla koristiti local variable stop (halt) logičke varijable mechanical actionpočetnog stop gumba, ne smije biti postavljena kao latch operacija nego kao switchoperacija, npr. Switch When Pressed. (mechanical action se može postaviti pomoćuopcije Property logičke stop komande. Opcija Property se otvara pomoću škljocanjadesnim tipkom miša na logičke stop komande.)

Page 21: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

21

5.3 Pretvaranje modela između Simulation Module i Control DesignToolkit

Možete pretvarati modele između Simulation Module i Control Design Toolkitkorištenjem funkcija pretvorbe u paleti Model Conversion u Control Design Tookit.Dvije funkcija konverzije su prikazane u donjoj slici.

Funkcija konverzije na paleti Control Design Toolkit / Model Conversion

5.4 Stvaranje podsustava

Možete također stvarati podsustave od dijelova simulacijskog dijagrama. Prvi je koraku odabiranju ili označavanju dijelova koji vas zanimaju za tvorbu podsustava. Vididonju sliku koja prikazuje blok dijagram spremniksim.vi.

Prvi korak u stvaranju podsustava u simulacijskom dijagramu je u odabiranju dijelova koji vas zanimaju za tvorbupodsustava

Page 22: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

22

Nakon toga podsustav se stvara korištenjem izbornika Edit/Create SimulationSubsystem. Rezultirajući dijagram prikazuje donja slika.

Rezultirajući dijagram simulacije nakon uključivanja podsustava

Uočite da možete promjeniti veličinu ikone podsustava korištenjem kursora.

Ukoliko želite možete otvoriti front panel podsustava dvostrukim škljocanjem na ikonupodsustava (vidi donju sliku).

Page 23: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

23

Front panel podsustava

Možete otvoriti blok dijagramu podsustava preko izbornika Window/Show Blockdiagram (vidi sliku dolje).

Blok dijagram podsustava

Page 24: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

24

5.5 Lineariziranje modela podsustava

LabVIEW može stvoriti linearni model prostora stanja iz linearnog ili nelinearnogpodsustava. (Stvaranje podsustava je opisano u prethodnom dijelu). Postupak je uodabiranju ili označavanju dijelova koji vas zanimaju i nakon toga u stvaranjulinearnog modela korištenjem slijedećeg dijela izbornika: Tools/Simulation Tools/Linearize Subsystem. Dana vam je mogućnost spremanja linearnog modela kaomodela (koji će biti korišten pomoću funkcija u Control Design Toolkit) ili kao VI kojisadrži model prostora stanja u obliku klastera polja koeficijenata. Možda jenajfleksibilniji izbor VI.

5.6 Korištenje programa flow structure u Simulation petlja

U simulacijskoj petlji možete koristiti većinu LabVIEW VI i funkcija. Ipak, nekestrukture kao Case structure, While petlja, For petlja, Event struktura ili Sequencestruktura se ne mogu direktno smjestiti na simulacijski dijagram. Umjesto toga, možetestaviti te strukture u podVI i nakon toga smjestiti podVI na simulacijski dijagram.

5.7 Prevođenje SIMULINK modela u LabVIEW Simulation Modulemodele

Možete prevoditi SIMULINK (MathWorks) modele u LabVIEW simulacijske modelekorištenjem izbornika Tools/Simulation Tools/SIMULINK Translator u LabVIEW.

5.8 Ispitivanje regulacijskih sustava korištenjem simulacije

Donja slika ilustrira načelo ispitivanja regulacijskog sustava zamjenom fizičkog sustava(procesa) koji će biti reguliran simuliranim sustavom. Pretpostavlja se da je primjenjeniregulator PID regulator, ali je slika primjenljiva za bilo koju vrstu regulatora.

Ispitivanje PID regulacijskog sustava korištenjem simulatora procesa

Page 25: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

25

Pogledajmo na stvaran primjer. Pretpostavlja se da PID regulator regulira fizičke procespomoću povratne veze s mjerenog signala procesa korištenjem FieldPoint sustava zafizičke I/O (koji je jedan od I/O sustava National Instruments). Da bi ispitaliregulacijski sustav prije nego što se primjeni na zamišljeni realni, fizički proces, pustitćemo da PID regulator izregulira simulator procesa, koji je samo transfer funkcijaprvog reda pojačanja 1 i vremenske konstante 1.

Dolje je prikazan front panel control_sim_real.vi koja realizira primjer. (Ipak, maknuosam FieldPoint I/O funkcija iz VI da bi se izbjegli problemi s učitavanjem VI ukolikonemate imati instaliran FieldPoint. FieldPoint funkcija su ipak prikazane na slici Blokdijagrama prikazanog ispod.)

Front panel control_sim_real.vi

Page 26: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

26

Komentari na front panel:

VI je spreman za izvršavanje ali naravno dobit ćete pogrešku (error) ukolikopostavite Select_real_sim_process sklopku u Real process position (budući danemate FieldPoint sustav za koji se predpostavlja da je instaliran na računalo).

PID postavke su u skladu s Ziegler-Nichols metod zatvorene petlje (metodakritičnog pojačanja).

Ispod su dvije slike koje prikazuju blok dijagram control_sim_real.vi. Dvije slike suprikazane da pokažu oba različita stanja Case strukture koja sadrži simulator (Truecase) i funkciju FieldPoint I/O (False case) respektivno.

Blok dijagram control_sim_real.vi prikazuje True stanje Case strukture koje sadrži simulator.

Page 27: Uvod u Labview Simulation module

Uvod u LabVIEW Simulation Module

Damir Mileta ožujka 2008.TŠRB, Zagreb

27

Blok dijagram control_sim_real.vi prikazuje False stanje Case strukture koja sadrži funkciju FieldPoint I/O.Uočite: Iako su FieldPoint I/O funkcije prikazane u gornjem Blok dijagramu, maknuo sam O funkciju iz VI da bi se

izbjegli problemi pri učitavanju VI ukoliko nemate instaliran FieldPoint.)

Komentari na blok dijagram control_sim_real.vi:

PID Advanced.vi ostvaruje funkciju PID regulatora. On je kopiran izAddons/Control/PID palete iz palete Function.

Terminal imenovan Switch_real_sim_process je spojen na ulaz Case selektoraCase strukture. Time logičko stanje sklopke na front panel određuje regulira liPID regulator realni proces ili simulirani proces.

Pri realnom regulacijskom sustavu vjerojatno ćete uvijek željeti prigušitipostojeći visokofrekvencijski šum korištenjem niskopropusnog filtra. Ovaj filterbi trebao biti korišten također sa simuliranim procesom tako da regulator"osjeća" što je više moguće dinamiku realnog sustava. U ovu primjer mjernifilter je drugog reda (Buttherworth lowpass filter) koji se nalazi u SignalProcessing/Point By Point/Filters PtByPt paleti palete Function.

U drugim primjenama vaš VI može upotrijebiti nekoliko PID reguliranih sustava. Utakvim primjenama predlažem da strukturirate VI korištenjem jedne While petlje posvakom PID regulacijskom sustavu uključujući simulator za ispitivanje i I/O funkcija.Te While petlje treba pokrenuti paralelno. VI s takvim paralelnim While petljama suopisani ovdje.