Liten MATLAB introduktion



Relevanta dokument
Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

SIMULINK. En kort introduktion till. Polplacerad regulator sid 8 Appendix Symboler/block sid 10. Institutionen för Tillämpad Fysik och elektronik

Institutionen för Tillämpad Fysik och elektronik Umeå Universitet BE. Introduktion till verktyget SIMULINK. Grunderna...2

Datorövning Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

Introduktion till verktyget SIMULINK. Grunderna...2. Tidskontinuerliga Reglersystem Övningsuppgift...13

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

PC-BERÄKNINGAR. REGLERTEKNIK Laboration 5 och inlämningsuppgift. Inlämningsdatum:... Inlämnad av labgrupp:... Gruppdeltagare:

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

Processidentifiering och Polplacerad Reglering

Introduktion till Control System Toolbox 5.0. This version: January 13, 2015

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

Laboration: Grunderna i MATLAB

Laboration: Grunderna i Matlab

REGLERTEKNIK Laboration 5

REGLERTEKNIK Laboration 4

Överföringsfunktioner, blockscheman och analys av reglersystem

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Övningar i Reglerteknik

REGLERTEKNIK W3 & ES3 BERÄKNINGSLABORATION 1

Stabilitetsanalys och reglering av olinjära system

Lab 1 Analog modulation

Flervariabel reglering av tanksystem

Reglerteknik M3. Inlämningsuppgift 3. Lp II, Namn:... Personnr:... Namn:... Personnr:...

Lösningsförslag till tentamen i Reglerteknik fk M (TSRT06)

Laboration i Automationsteknik FK: Del 1: Polplacering. Del 2: Markovkedjor

Flervariabel reglering av tanksystem

Introduktion till Simulink

Laboration i tidsdiskreta system

Reglerteknik AK. Tentamen 24 oktober 2016 kl 8-13

TSBB14 Laboration: Intro till Matlab 1D

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Introduktion till Matlab

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

REGLERTEKNIK I BERÄKNINGSLABORATION 2

A

System. Z-transformen. Staffan Grundberg. 8 februari 2016

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

MATLAB övningar, del1 Inledande Matematik

Lab 4: Digital transmission Redigerad av Niclas Wadströmer. Mål. Uppstart. Genomförande. TSEI67 Telekommunikation

Föreläsning 10, Egenskaper hos tidsdiskreta system

TSIU61: Reglerteknik. Sammanfattning från föreläsning 5 (2/4) Stabilitet Specifikationer med frekvensbeskrivning

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Lösningar till tentamen i styr- och reglerteknik (Med fet stil!)

Laplacetransform, poler och nollställen

MMA132: Laboration 1 & 2 Introduktion till MATLAB

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

Välkomna till TSRT19 Reglerteknik Föreläsning 8. Sammanfattning av föreläsning 7 Framkoppling Den röda tråden!

Fredrik Lindsten Kontor 2A:521, Hus B, Reglerteknik Institutionen för systemteknik (ISY)

TENTAMEN I REGLERTEKNIK

Reglerteknik 7. Kapitel 11. Köp bok och övningshäfte på kårbokhandeln. William Sandqvist

SIMULINK. Introduktion till. Grunderna...2. Tidskontinuerliga Reglersystem. 6. Uppgift Appendix A. Symboler 14

Flerdimensionella signaler och system

Lab Tema 2 Ingenjörens verktyg

Introduktion till MATLAB

Frekvensbeskrivning, Bodediagram

Laplace, Fourier och resten varför alla dessa transformer?

ÅBO AKADEMI REGLERTEKNIK I

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

Department of Physics Umeå University 27 augusti Matlab för Nybörjare. Charlie Pelland

Tillämpad digital signalbehandling Laboration 1 Signalbehandling i Matlab och LabVIEW

Datorövning 1: Introduktion till MATLAB

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Välkomna till TSRT19 Reglerteknik Föreläsning 3. Sammanfattning av föreläsning 2 PID-reglering Blockschemaräkning Reglerdesign för svävande kula

DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1. Frekvensfunktioner FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM. x(n)= Asin(Ωn)

Föreläsning 14-16, Tillståndsmodeller för kontinuerliga system

Datorövning 1 Fördelningar

Reglerteknik 7. Kapitel 11. Köp bok och övningshäfte på kårbokhandeln. William Sandqvist

Introduktion till Matlab

Matematisk Modellering

TSRT91 Reglerteknik: Föreläsning 5

Matlabövning 1 Funktioner och grafer i Matlab

Frekvensbeskrivning, Bodediagram

Matematisk Modellering

Innehνall 1 Introduktion Processbeskrivning Inloggning och uppstart

Välkomna till TSRT19 Reglerteknik Föreläsning 6. Sammanfattning av föreläsning 5 Lite mer om Bodediagram Den röda tråden!

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Reglerteknik Z / Bt/I/Kf/F

Introduktion till MATLAB

Försättsblad till skriftlig tentamen vid Linköpings universitet

Föreläsning 11, Dimensionering av tidsdiskreta regulatorer

G(s) = 5s + 1 s(10s + 1)

Föreläsning 9, Bestämning av tidsdiksreta överföringsfunktioner

Vetenskapsdagen 2016 SciLab för laborativa inslag i matematik eller fysik

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

Reglerteknik AK, FRT010

Simulering med ModelSim En kort introduktion

Introduktion till Matlab

Beräkningsverktyg HT07

MMA132: Laboration 1 Introduktion till MATLAB

Matriser och Inbyggda funktioner i Matlab

Introduktion till Matlab

Matlabövning 1 Funktioner och grafer i Matlab

Kap 3 - Tidskontinuerliga LTI-system. Användning av Laplacetransformen för att beskriva LTI-system: Samband poler - respons i tidsplanet

Nyquistkriteriet, kretsformning

Välkomna till TSRT19 Reglerteknik Föreläsning 7

Transkript:

Liten MATLAB introduktion Denna manual ger en kort sammanfattning av de viktigaste Matlab kommandon som behövs för att definiera överföringsfunktioner, bygga komplexa system och analysera dessa. Det förutsätts en viss kunskap i de grundläggande Matlab funktionerna (vektor- och matrishantering). För en kort överblick kan man skriva >demo i Matlabs fönster. Denna introduktionen utgår från Matlab 5.* och den motsvarande Control toolboxen. Det krävs tillgång till båda. Matlab har en rätt så utförligt help funktion. Genom att skriva >help funktionsnamn får man en kortfattad beskrivning av funktionen. >help control ger en överblick över alla kommandon som finns tillgängliga i Control toolboxen. Bara >help ger en innehållsförteckning över de olika funktionerna i Matlab och dess toolboxar. Vi begränsar oss i denna introduktion på single-input-single-output (SISO) system, d.v.s. system med endast en in- och en utsignal. Med funktion diary går det att spara allt som händer i kommandofilen som en textfil. Skriv >help diary för mer information. Att programmera i MATLAB Ibland kan det kännas mödosamt att knappa in samma kommandonekvens om och om igen till exempel när man pröva sig fram i en uppgift. Matlab erbjuder två sätt att skriva färdiga program som ska exekveras, m-filer och functions. En m-fil är en textfil med Matlabkommandon som ska exekveras. Filen exekveras genom att skriva filnamnet i Matlabs kommandofönster. En m-fil skapas genom MATLAB menyn File - New - m-file. Att exekvera en m-fil har samma effekt som att kopiera in motsvarande Matlab kommandon i kommandofönstret. Man kan även definiera nya funktioner i Matlab. Man öppnar en m-fil och skriver som första rad function [u1, u2, ] = funktionsnamn(i1, i2, i3, ) Här betecknar u1, u2, u3 lokala namn för ut-variablerna och i1, i2, i3 lokala namn för in-variablerna. Funktionen kan anropas antingen direkt från kommandofönstret i en annan m-fil funktion. Exempel: Ett kort exempel skall illustrera användningen: En funktion "test" skall ta två lika stora vektorer som insignal och leverera deras in-produkt. Vi skriver en m-fil på följande sätt: function [c] = test(a,b) for i = 1:length(a) x = a(i)*b(i); c = c+x end Vi noterar bara att det finns enklare sätt att beräkna in-produkten i Matlab, nämligen >sum(a.*b).

Anta nu att vi ska beräkna inprodukten av vektorerna c1 och c2. Resultatet vill vi spara under namnet E. Funktionen kan nu anropas med >E = test(c1,c2) Modelldefinitioner Det finns olika sätt att definiera en processöverföringsfunktion i s-planet. Det vanligaste sättet är att använda nämnare och täljare polynom, men det är också möjligt att definiera en process med hjälp av dess nollställen, poler och förstärkning (zpk). I Matlab går det att definiera en process på godtyckligt sätt och det är rätt fram att till exempel konvertera en process given av zpk till den motsvarande överföringsfunktionen. Sådana generella mod av processer kallas i Matlab för lti-mod. Vi ska illustrera varje funktion med ett kort exempel. Funktion tf: 2s + 4 Antar vi har en överföringsfunktion G ( s) = som ska matas in i Matlab. s 2 + 2 Först definieras nämnare- (den) och täljarepolynom (num) m.h.a. koefficienterna i nedstigande exponent. Num och den är godtyckliga variabelnamn som ska beteckna numerator och denominator. Därefter definieras en överföringsfunktion (tf) bestående av dessa polynom. Ett semikolon efter ett kommando undertrycker att Matlab trycker ut värdet av variablen. >num=[2 4]; >den=[1 0 2]; >G = tf(num,den) Själva överföringsfunktionen är nu definierad som variabel G. Funktion zpk: Antar vi har en process sys som har två poler, en i -2 och en i -10, inget nollställe och en förstärkning av 5. I Matlab gör man nu så: >sys = zpk([],[-2-10],5) 5 Sys är nu definierad som sys =. Lägg märke till att 5 inte är ( s + 2)( s + 10) lågfrekvensförstärkningen. Konvertering av sys till en överföringsfunktion med polynom i täljare och nämnare: >systf = tf(sys) Definiera överföringsfunktion genom att först definiera Laplace operatorn s : >s = tf([1 0],[1]) och därefter kan du definiera överföringsfunktioner m.h.a. denne operatorn. T.ex. föregående överföringsfunktion definieras då som >sys = 5 / ((s+2)*(s+10)) >sys = 5/(s^2 + 12*s + 20)

Dödtid: använd funktionen set Med hjälp av set kan man sätta vissa modellkarakteristika. Vi inskränker oss här bara på definitionen av en dödtid. Har systemet sys även en dödtid av till exempel 3 sekunder, så läggs den till separat på följande sätt: >set(sys,'iodelay', 3) >sys Genom att bara skriva sys visas den nya överföringsfunktionen, nu med den angivna dödtiden. Funktion tfdata: Antar nu att vi vill spara systf:s nämnar- och täljarpolynom som variabler sysnum och sysden: >[sysnum, sysden]=tfdata(systf) Alternativt kan vi också extrahera dessa ur sys: >[sysnum, sysden]=tfdata(sys) Blockschema I denna avsnitt lär vi oss att bygga mer komplexa mod ur överföringsfunktionsblock. Det kallas ofta också blockschemaförenkling. Det är viktigt att påpeka att Matlab inte gör själva blockschemaförenklingen utan vi kan m.h.a. Matlabfunktioner sätta ihop olika block. Parallellkoppling Det finns två likvärdiga kommandon för att parallellkoppla två SISO system, sys1 och sys2: >sys3 = sys1 + sys2 >sys3 = parallel(sys1,sys2) Seriekoppling Även i detta fall finns det två kommandon för att seriekoppla sys1 och sys2: >sys3 = sys1 * sys2 >sys3 = series(sys1,sys2) Återkoppling Med sys1 i framlänken och sys2 i återkopplingen beräknas den totala överföringsfunktionen (vi antar att vi har en negativ återkoppling) till >sys3 = feedback(sys1,sys2) sys1 Detta motsvarar alltså sys3 = 1+ sys1* sys2 I det fallet att man vill ha en positiv återkoppling skriver man: >sys3 = feedback(sys1,sys2,+1) Bråk

sys2 Även ett bråk av två överföringsfunktioner, d.v.s. G 1 = kan enkelt beräknas: sys3 >G1 = sys2/sys3 Systemegenskaper I detta avsnitt lär vi oss att bestämma några viktiga systemegenskaper. För att kunna avgöra stabilitetet krävs det beräkning av polerna. Andra intressanta egenskaper är systemets nollställen och för komplexa poler deras dämpningsfaktor och egenfrekvens. Antag vi har definierat en process: sys = tf(num,den). Då gäller, Poler: >pole(sys) >eig(sys) >roots(den) Nollställen: >roots(num) >zero(sys) %systemets poler %systemets egenvärden (samma som poler) %nollställen i nämnaren %nollställen i täljaren %systemets nollställen lågfrekvensförstärkning: dcgain(sys) dämpning och egenfrekvens för alla poler damp(sys) Transientanalys Stegsvar: >step(sys) Impulssvar >impulse(sys) Simulering Antag att vi vill simulera utsignalen y för ett system G, given en insignalvektor u. U är en vektor som innehåller en sekvens av insignaler, t ger de respektive tidspunkterna. >lsim(sys,u,t) plottar utsignalen med t som tidsaxel. Användaregränssnitt ltiview Efter att man har definierat några system så kan man starta ltiview som ger möjligheter att analysera olika aspekter av dessa system. Prova själv. >ltiview

Frekvensegenskaper Två viktiga sätt att representera processen är Bodediagram och Nyquistdiagram. I kursen använder vi frekvensplanet framförallt för att designa regulatorer av typ Lead/Lag, samt för att analysera stabilitet, statisk noggrannhet och för att ge ett mått för systemets snabbhet (se föreläsning) Bodediagram >bodeplot(sys) %plottar Bodediagrammet, frekvensområdet väljs automatiskt >bodeplot(sys,{wmin,wmax}) %plottar Bodediagrammet mellan frekvenserna wmin och wmax frekvenseran ges i [rad/sek] >bodeplot(sys1,sys2) %plottar Bodediagrammet för sys1 och sys2 i samma plot >bodeplot(sys1,'r',sys2,'y') %plottar Bodediagrammet för sys1 och sys2 i samma plot med specifikation om hur kurvorna ska ritas. Kurvorna för sys1 ritas i rött ('r'), kurvorna för sys2 i gul ('y') i det senare fallet. Nyquistdiagram Analog till Bodediagram, bara ersätt "bodeplot" med "nyquist". Marginaler För att kunna beräkna amplitud- och fasmarginal används kommandot: >[Gm,Pm,Wcg,Wcp] = MARGIN(sys) %OBS: fungerar inte för system med dödtid Funktionen ger amplitudmarginal (Gm), fasmarginal (Pm), ω π (Wcg) och ω C (Wcp). Genom att välja ltiview får man tillgång till alla dessa funktioner. Klicka på kurvan för att få koordinaterna av respektive punkt. Simulink Simulink är ett kraftfullt simuleringsverktyg. För att starta Simulink skriv >simulink i Matlabs kommandofönster och ett fönster med Simuling Library Browser kommer upp. Där hittar man ett uppskov av grafiska block som representera olika funktioner block i ett blockschema. Välj att antingen skapa en ny Simulink modell öppna en redan existerande. Varje block i Simulink biblioteket kan dras från biblioteket till modellfönstret och har in- och/ utgångar som kan kopplas ihop med hjälp av musen. Ett sträck mellan två block innebär att den enes utsignal blir den nästes insignal. Genom att dubbelklícka på en sådan block kan man ändra definitionerna och parametrarna. Kort beskrivning av olika typer av Simulink block: Continuous: block som används för att beskriva linjära system med kontinuerlig dynamik Discrete: block som används för att beskriva linjära system i diskretiserad form Math: block som innehåller matematiska funktioner med allt från enkla operationer till mer avancerade funktioner Signals and Systems: block för att hantera och behandla signaler Sinks: olika block för datarepresentation av utsignalerna (grafisk i form av variabler) Sources: block som genererar olika insignaler Control System Toolbox: LTI system (generisk överföringsfunktion) Simulink Extras: ytterligare block: t.ex. regulator block i Additional Linear

Några tips: Alla variabler som är definierade i Matlab kan användas som parametrar i Simulink. T.ex. en variabel K som har ett värde tilldelat i Matlab kan användas som en parameter i ett block. Utsignaler i Simulink kan exporteras till Matlab genom att koppla utsignalen till ett block To Workspace som finns under Sinks. I blocket definierar man sedan ett namn för signalen (signalen har formen av en vektor). OBS: Ändra save format i blocket To Workspace till Matrix. Om du vill plotta ut en signal som funktion av tiden behöver man även simulera tiden (Clock i Source foldern) I menyn till Simulink modellens fönster Simulate>Parameters kan du välja simuleringstid.