EDT211T Reguleringsteknikk PC-øving nr 1. NB: Det lønner seg å kjøre gjennom leksjonen før du tar fatt på selve øvingen på siste side.

Like dokumenter
Simulering i MATLAB og SIMULINK

Lineær analyse i SIMULINK

Inst. for elektrofag og fornybar energi

41070 STABILITET I ELKRAFTSYSTEMER

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Control Engineering. MathScript. Hans-Petter Halvorsen

Frekvensanalyse av likestrømsmotor med diskret regulator og antialiasing filter

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

SCE1106 Control Theory

Øving 1 ITD Industriell IT

Start MATLAB. Start NUnet Applications Statistical and Computational packages MATLAB Release 13 MATLAB 6.5

Control Engineering. State-space Models. Hans-Petter Halvorsen

TTK 4140 Reguleringsteknikk m/elektriske kretser Dataøving 1

Løsningsforslag Dataøving 2

MATLABs brukergrensesnitt

Plotting av data. Kapittel Plott med plot-funksjonen

nyq Inst. for elektrofag og fornybar energi Fag TELE2001 Reguleringsteknikk Simulink øving 4 Oppstart av Matlab. c:\temp.

Systemidentifikasjon Oppgaver

MathScript. Hans- Pe1er Halvorsen, M.Sc.

Neural Network. Sensors Sorter

FYSMEK1110 Eksamensverksted 23. Mai :15-18:00 Oppgave 1 (maks. 45 minutt)

Løsningsforslag oppgavene (Øving 3)

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Eksamen i emnet Mat131 - Differensiallikningar I Onsdag 25. mai 2016, kl.

Frequency Response and Stability Analysis. Hans- Pe9er Halvorsen, M.Sc.

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

Moving Objects. We need to move our objects in 3D space.

a) The loop transfer function with the process model with a P controller is given by h 0 (s) = h c (s)h p (s) = K p (1 + s)(2 + s) K p

Systemidentifikasjon Oppgaver

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

1 Tidsdiskret PID-regulering

2003/05-001: Dynamics / Dynamikk

Tilstandsrommodeller. Hans- Pe1er Halvorsen, M.Sc.

Stabilitetsanalyse i MATLAB og LabVIEW

1. Opprette Workspace: Velg File, New Workspace. Angi Workspace name og location (hvor filene skal lagres). Trykk OK

Frequency Response and Stability Analysis

Slope-Intercept Formula

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Control Engineering. Stability Analysis. Hans-Petter Halvorsen

START MED MATLAB. Når du starter Matlab, kommer du inn i kommandovinduet. Dersom du har versjon 6.1, ser du dette :

Transformanalyse. Jan Egil Kirkebø. Universitetet i Oslo 17./23. september 2019

KYBERNETIKKLABORATORIET. FAG: Industriell IT DATO: OPPG.NR.: LV4. LabVIEW Temperaturmålinger BNC-2120

Exercise 1: Phase Splitter DC Operation

Sammenlikningav simuleringsverktøyfor reguleringsteknikk

Norsk (English below): Guide til anbefalt måte å printe gjennom plotter (Akropolis)

ù [rad/sek] h O [db] o o o o o o o o o o o

Program for elektro- og datateknikk

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 33

Databases 1. Extended Relational Algebra

HØGSKOLEN I SØR-TRØNDELAG

Introduksjon til MATLAB Høgskolen i Agder Regulerings teknikk 2005 Morten Ottestad

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

Inst. for elektrofag og fornybar energi

Stabilitetsanalyse. Hans- Pe/er Halvorsen, M.Sc.

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import

Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes It s learning. systemidentifikasjon fra sprangrespons.

Løsningsforslag øving 4

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

ITGK - H2010, Matlab. Repetisjon

Kapittel Oktober Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 14.

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Eksamensoppgave i TELE2001 Reguleringsteknikk

Enkel plotting i LibreOffice/OpenOffice og Excel

PSi Apollo. Technical Presentation

Second Order ODE's (2P) Young Won Lim 7/1/14

TTK 4140 Reguleringsteknikk m/elektriske kretser Dataøving 2

Del 1: Leksjon Det anbefales å kjøre igjennom denne før dere begynner med oppgaven.

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3


Stabilitetsanalyse. Kapittel Innledning

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Oppgave 1.1. Den første er en klassiker. Studer figur A4.1 i vedlegg 1. Finn overføringsfunksjonen ved hjelp av manuelle, grafiske metoder.

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 1 Innleveringsfrist: 14. september klokka 14:00 Antall oppgaver: 3.

TMA Kræsjkurs i Matlab. Oppgavesett 1/3

HØGSKOLEN I SØR-TRØNDELAG

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Information search for the research protocol in IIC/IID

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN

UNIVERSITETET I OSLO

APPENDIX A 2 APPENDIX B 3 APPENDIX C 4 APPENDIX D 10

,QQOHGQLQJ 3-1/ )DJ 67( 6W\ULQJ DY URPIDUW \ / VQLQJVIRUVODJ WLO YLQJ

Ditt og Datt i MATLAB. En introduksjon til Matlab og Simulink for ferske kybernetikk-studenter

NB! Vedlegg 2 skal benyttes i forbindelse med oppgave 3a), og vedlegges besvarelsen.

Fasit til midtveiseksamen

KYBERNETIKKLABORATORIET. FAG: Dynamiske systemer DATO: OPPG.NR.: DS3 MOTOR GENERATOROPPGAVE I

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting

Inst. for elektrofag og fornybar energi

Hydrostatikk/Stabilitet enkle fall

Bokmål / Nynorsk / English NORGES TEKNISK- NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR FYSIKK. Eksamen TFY4185 Måleteknikk

6 Modellering av smelteovn Modellering Tilstandsromform Diskretisering Observerbarthet Tidssteg...

TMA4329 Intro til vitensk. beregn. V2017

Generell informasjon om faget er tilgjengelig fra fagets nettside, og for øvinger brukes canvas.

Obligatorisk oppgave nr 3 FYS Lars Kristian Henriksen UiO

Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

Transkript:

Høgskolen i Sør-Trøndelag Avdeling for Teknologi Institutt for Elektroteknikk Klasse 2EA Studieretning for automatisering EDT211T Reguleringsteknikk PC-øving nr 1 NB: Det lønner seg å kjøre gjennom leksjonen før du tar fatt på selve øvingen på siste side. 1. Oppstart Før du starter opp Matlab bør du lage en katalog til lagring av filer for eksempel c:\automat Etter at du har startet opp Matlab bør du bør du skifte til denne katalogen. Dette kan gjøres direkte på verktøymenyen (Current directory) eller i kommando-vinduet (command window). I sistnevnte vindu skriver du DOS-kommandoen: >> cd c:\automat 2. Hvordan lage funksjonsdiagrammer >> t=[0:0.01:2]; % Tidsvektor. Består av verdiene 0, 0.01, 0.02,...2 >> y=2*cos(10*t)+2; % Funksjonsvektor. Vil få like mange verdier som t >> plot(t,y) >> grid >> xlabel('t[sek]') >> ylabel('y') >> title('funksjonen y = 2(cos(10t) + 1)') Tittel samt merking av aksene kan også utføres via edit-menyen på figuren. Her brukes da Figure properties og Axes properties. Resultatet blir: 1

3. Bruk av m-fil. m-fil er en tekstfil bestående av tekst og MATLAB kommandoer. Den skal alltid ende med.m! Filen lages fortrinnsvis med Matlabs egen teksteditor. Trykk ikonet helt til venstre på verktøylinjen for å komme inn i editoren. En m-fil kan benyttes av Matlab som en funksjon og hentes ved å skrive navnet på filen uten file-extention.m Om filen heter f. eks tank1.m skriver du tank1 og den blir straks kjørt. NB: Pass på hvilken katalog du legger m-filen på. Du må stå i denne katalogen i kommando-vinduet for å få tilgang til funksjonen. Lag først denne filen og lagre den på katalogen c:\automat % cosplot.m % Denne m-filen plotter funksjonen y = a(cos(omega*t)+1) % Verdien av a og omega må eksistere før m-filen startes. % (parametre kan også legges inn interaktivt ved hjelp av funksjonen "input") % Tidshorisonten for plottet er 0 til 2 sekunder t=[0:0.01:2]; y=a*(cos(omega*t)+1); plot(t,y) xlabel('t[sek]') ylabel('y(t) = a(cos(omega*t) + 1)') title(['a = ',num2str(a),'omega = ',num2str(omega)]) grid I Matlab skriver du så: >> help cosplot cosplot.m Denne m-filen plotter funksjonen y = a(cos(omega*t)+1) Verdien av a og omega må eksistere før m-filen startes. (parametre kan også legges inn interaktivt ved hjelp av funksjonen "input") Tidshorisonten for plottet er 0 til 2 sekunder >> a=10; omega=5; >> cosplot 2

4. Bruk av subplot. >> subplot(221) >> cosplot >> omega=10; subplot(222) >> cosplot >> omega=20; subplot(212) >> cosplot Legg merke til at num2str funksjonen gjør at parameterverdiene a og omega i diagramoverskriftene blir oppdatert automatisk. Dersom du vil ha en oversikt over de variable som ligger i Matlabs arbeidslager, kan du benytte kommandoen whos: >> whos Name Size Bytes Class a 1x1 8 double array omega 1x1 8 double array t 1x201 1608 double array y 1x201 1608 double array Grand total is 404 elements using 3232 bytes 3

5. Forskjellige typer modeller for dynamiske systemer. Gitt svingesystemet til høyre. Bevegelsen av massen kan beskrives av følgende differensiallikning: mx dx kx F Laplacetransformert: ms 2 ds k X s F s d k Disse likningene gir den dynamiske variasjonen omkring likevektspunktet x 0 som er bestemt av tyngdekraften. Til bruk i eksemplene framover settes m=2, d=1,4 og k=0,1 5.1 Transferfunksjon, polynomform Transferfunksjonen mellom F og X blir: h s 2 X s 1 F s 2s 1, 4s 0,1 Denne beskrives i Matlab ved tellerpolynom teller, og nevnerpolynom nevner: >> teller=1; nevner=[2 1.4 0.1]; m F x 5.2 Transferfunksjon, pol-nullpunkt-form Alle transferfunksjoner uten tidsforsinkelse kan skrives på formen: s Z1s Z2 s ZM h s K s P s P s P 1 2 N Her er Z nullpunkter og P er poler i h(s). K er forsterkninga. Poler og nullpunkter kan du finne i Matlab ved å bruke tf2zp (Transfer Function TO Zero Pole): >> format compact >> [Z,P,K]=tf2zp(teller,nevner) Z = Empty matrix: 0-by-1 P = -0.6193-0.0807 K = 0.5000 ( format compact gjør utskriften litt tettere i Matlab-vinduet. ) En annen mulighet til å finne polene er å bruke funksjonen roots : >> P=roots(nevner) P = -0.6193-0.0807 4

5.3 Tilstandsromform (state space) Vi bruker følgende oppsett for tilstandsrommodeller: x Ax Bu Cv y Dx Eu Fw Tilstandsromformen for systemet vårt blir: x 0,7x 0,05x 0,5u v x 1 1 2 x 2 1 (dynamiske tilstandslikninger) (algebraiske målelikninger) der x 1 (hastighet) og x 2 (posisjon) er systemets tilstander, u = F er systemets pådrag v = mg er forstyrrelsen I Matlab kan vi overføre et system på transferfunksjonform til tilstandsform ved hjelp av funksjonen tf2ss (Transfer Function TO State Space): >> help tf2ss TF2SS Transfer function to state-space conversion. [A,B,C,D] = TF2SS(NUM,DEN) calculates the state-space representation:. x = Ax + Bu y = Cx + Du of the system: NUM(s) H(s) = -------- DEN(s) from a single input. Vector DEN must contain the coefficients of the denominator in descending powers of s. Matrix NUM must contain the numerator coefficients with as many rows as there are outputs y. The A,B,C,D matrices are returned in controller canonical form. This calculation also works for discrete systems. For discrete-time transfer functions, it is highly recommended to make the length of the numerator and denominator equal to ensure correct results. You can do this using the function EQTFLENGTH in the Signal Processing Toolbox. However, this function only handles single-input single-output systems. See also TF2ZP, SS2TF, ZP2SS, ZP2TF. Legg forøvrig merke til at Matlab bruker betgnelsen C om målematrisen (vi bruker D om denne) og D om overføringsmatrisen (vi bruker E om denne) og at vi ikke kan finne noen forstyrrelsesmatrise (vår C) eller målestøymatrise (vår F) ved hjelp av denne funksjonen. 5

Jeg foretrekker å bruke våre betegnelser for matrisene og dette kan vi få til på følgende måte: >> [A,B,D,E]=tf2ss(teller,nevner) A = -0.7000-0.0500 1.0000 0 B = 1 0 D = 0 0.5000 E = 0 6. Simulering av sprangrespons Matlab-funksjonen step gir en rask og enkel måte å få fram sprangresponser på. Vi har flere muligheter ved kall av funksjonen step. Vi kan også velge om vi vil benytte tilstandsrommodell eller transferfunksjonmodell. Skriv help step i Matlab for å se flere detaljer. Det aller raskeste er denne måten: >> step(teller,nevner) >> grid Diagrammene kan overføres til annet dokument ved å gå inn på edit-menyen og velge copy figure. Deretter brukes vanlige klipp-og-lim funksjoner. Best er allikevel å lage en såkalt LTI-modell som er standard i Matlab og gir et utgangspunkt for alle slags simuleringer, Bode-diagram osv. Dette gjøres på følgende måte: >> svingsys=tf(teller,nevner); >> step(svingsys), grid Resultatet bli selvsagt det samme som før. 6

7. Simulering i Matlab ut fra blokkdiagram Td + - h3 540 + - h1 10 s + 1 h2 1 2s+0.5 T h4 0.1 Følgende Matlab-funksjoner blir brukt: series, feedback, step, ginput, axis, lsim, bode og semilogx 7.1 Hvordan bestemme transferfunksjonen for et blokkdiagram I eksemplet vist nedenfor kaller vi tellerpolynomene tx og nevnerpolynomene nx der x refererer til transferfunksjon-nummer 1,2,3 og 4 i figuren ovenfor. Framgangsmåte: Først bruker vi series for å regne ut transferfunksjonen ha = ta/na som er seriekoplingen av h1 og h2. Deretter bruker vi feedback for beregning av transferfunksjonen hb = tb/nb for den innerste sløyfa. Deretter må vi finne hc = tc/nc for seriekoplingen av h3 og og hb. Til slutt brukes feedback på nytt for å finne transferfunksjonnen mellom ω d og ω. >> t1=10; n1=[1 1]; h1=tf(t1,n1); >> t2=1; n2=[2 0.5]; h2=tf(t2,n2); >> t3=540; n3=1; h3=tf(t3,n3); >> t4=1; n4=10; h4=tf(t4,n4); >> ha=series(h1,h2); >> hb=feedback(ha,h4); >> hc=series(h3,hb); >> motor=feedback(hc,1); >> motor Transfer function: 54000 --------------------- 20 s^2 + 25 s + 54015 7

7.2 Enkel sprangrespons, forandring av akser, avlesing av periodetid >> step(motor) >> axis([0 0.5 0 2]), grid >> [tid,turtall]=ginput tid = 0.1514 0.2738 turtall = 0.9952 0.9760 Priodetiden leses av ved hjelp av ginput. Ved kall av denne får du et trådkors i diagrammet. Plasser trådkorset ved starten av en periode og trykk på venstre musetast. Flytt trådkorset til slutten av perioden og trykk venstre musetast igjen og deretter ENTER-tasten på tastaturet. Du får da en utskrift som vist ovenfor, og kan beregne periodetiden T. ( Av turtallsverdiene som jeg fikk ser vi at disse målingene kan gjøres mer nøyaktig enn ovenfor. Turtallsverdiene skal ideelt sett bli like. Periodetiden blir differansen mellom de to tids-verdiene) 7.3 Bruk av lsim for simulering med pådrag som ikke er et enhetssprang >> help lsim LSIM Simulate time response of LTI models to arbitrary inputs. LSIM(SYS,U,T) plots the time response of the LTI model SYS to the input signal described by U and T. The time vector T consists of regularly spaced time samples and U is a matrix with as many columns as inputs and whose i-th row specifies the input value at time T(i). For example, t = 0:0.01:5; u = sin(t); lsim(sys,u,t) simulates the response of a single-input model SYS to the input u(t)=sin(t) during 5 seconds. For discrete-time models, U should be sampled at the same rate as SYS (T is then redundant and can be omitted or set to the empty matrix). For continuous-time models, choose the sampling period T(2)-T(1) small enough to accurately describe the input U. LSIM issues a warning when U is undersampled and hidden oscillations may occur. LSIM(SYS,U,T,X0) specifies the initial state vector X0 at time T(1) (for state-space models only). X0 is set to zero when omitted. LSIM(SYS1,SYS2,...,U,T,X0) simulates the response of multiple LTI models SYS1,SYS2,... on a single plot. The initial condition X0 is optional. You can also specify a color, line style, and marker for each system, as in lsim(sys1,'r',sys2,'y--',sys3,'gx',u,t). 8

Y = LSIM(SYS,U,T) returns the output history Y. No plot is drawn on the screen. The matrix Y has LENGTH(T) rows and as many columns as outputs in SYS. For state-space models, [Y,T,X] = LSIM(SYS,U,T,X0) also returns the state trajectory X, a matrix with LENGTH(T) rows and as many columns as states. For continuous-time models, LSIM(SYS,U,T,X0,'zoh') or LSIM(SYS,U,T,X0,'foh') explicitly specifies how the input values should be interpolated between samples (zero-order hold or linear interpolation). By default, LSIM selects the interpolation method automatically based on the smoothness of the signal U. See also GENSIG, STEP, IMPULSE, INITIAL, LTIMODELS. Overloaded methods help lti/lsim.m help frd/lsim.m For å kunne bruke lsim må vi først lage en tidsvektor t, og et pådrag u. Vi lar først u være en sinus med vinkelfrekvens 10 rad/s >> t=[0:0.01:2]; >> u=sin(10*t); >> [y,x]=lsim(motor,u,t); >> plot(t,u,'-',t,y,'--'), grid Så undersøker vi oppførselen til motoren for en frekvens som er 10 ganger så stor. Vi simulerer i 10 sekunder og ser på signalene de siste 0,2 sekunder av simuleringstiden. >> t=[0:0.001:10]; >> u=sin(100*t); >> [y,x]=lsim(motor,u,t); >> plot(t,u,'-',t,y,'--'), grid >> axis([9.8 10-1 1]) 9

7.4 BODE-diagram, enkleste måte Den enkleste måten å få fram et bodediagram på er ganske enkelt kommandoen bode >> bode(motor), grid Bruk selv help for å se hvordan funksjonen bode kan brukes. 7.5 BODE-diagram med kontroll av akser og oppløsning Vi bruker logspace til å lage en logaritmisk vektor for w. Som du ser nedenfor er det angitt at den skal ha 400 verdier fordelt mellom frekvensene 10 rad/s (log=1) og 100 rad/s (log=2) Ved plotting bruker vi kommandoen semilogx som gir logaritmisk skalert x-akse. Legg merke til at dataene må omformatteres for å kunne brukes til plotting. Dessuten må forsterkningsverdiene regnes om til db (20*log10(A)) : >> w=logspace(1,2,400); >> [A1,phi1]=bode(motor,w); >> size(a1) ans = 1 1 400 >> % vi ser at A1 (og phi1) har et format som er >> % uegnet for plotting. Dette ordnes slik: >> >> for n=1:400 A(n,1)=A1(1,1,n); phi(n,1)=phi1(1,1,n); end >> >> % så må forsterkningen (A) konverteres til db: >> >> AdB=20*log10(A); >> semilogx(w,adb), grid >> figure(2) >> semilogx(w,phi), grid 10

PC-øving 1 Oppgave 1 (plott.m) Lag et program som plotter i 4 adskilte plott, men i samme bilde, funksjonene : 1 2 3 1 2 4 1 2 y sin t a y cos t b y y y y y y Alle plottene skal ha grid og tidshorisonten 0 til 10 sekunder. a, b, ω og θ skal spesifiseres av bruker før kall av programmet. Det må gå klart frem av plottene hvilke funksjoner som vises samt verdiene på a, b, ω og θ. Programforfatters navn skal vises i hjelpeteksten til programmet. Programmet lagres på filen : plott.m NB: Pass på å få med to t er i navnet, ellers vil Matlab forveksle m-fila med kommandoen plot. Oppgave 2 (sprang.m) Differensialligningen for et svingesystem blir: mx Dx kx F Anta at m = 1 kg, k = 1 N/m. Du skal undersøke hvordan systemet oppfører seg for forskjellige verdier av D: D = 1, 1.5, 2 og 2.5 Lag et program (sprang.m) som simulerer systemet når F er et enhetssprang (1N) og systemet er helt i ro når spranget inntrer. Programmet skal vise innsvingningsforløpet for posisjonen, x, for de 4 forskjellige verdiene av D. Oppgave 3 (butterx.m) Et 3.ordens Butterworth lavpassfilter med båndbredde ω 0 har transferfunksjonen h s 3 0 2 2 s 0s 0 s 0 Lag at program (butterx.m) som tegner bodediagrammet for et slikt filter. Båndbredden ω 0 skal kunne spesifiseres før kall av programmet. (x-en i navnet er vesentlig da det finnes en Matlab funksjon som heter butter.) 11