Introduktion till Simulink

Relevanta dokument
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

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

Liten MATLAB introduktion

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

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

Lab 1 Analog modulation

Stabilitetsanalys och reglering av olinjära system

Processidentifiering och Polplacerad Reglering

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

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Laboration: Grunderna i MATLAB

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

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

Simulering med ModelSim En kort introduktion

Monitor Pro V7.x SCADA. Förstå och skapa symboler

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

Laboration: Grunderna i Matlab

Programmera Kontaktlåda USB i Mac

Lösningsförslag TSRT09 Reglerteori

Flervariabel reglering av tanksystem

Laboration i tidsdiskreta system

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

Extend för Dummies Teknologer

Lunds Universitet LTH Ingenjörshögskolan IDa1, IEa1 Helsingborg. Laboration nr 4 i digitala system ht-15. Ett sekvensnät. grupp. namn.

SIMULINK. Grunderna. Introduktion till

Introduktion till LTspice

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering

Simulering med ModelSim En kort introduktion

Träff 1 Skissa & Extrudera

REGLERTEKNIK Laboration 5

Laboration Fuzzy Logic

Linköpings universitet Institutionen för systemteknik (ISY) Fordonssystem. Laborationskompendium Fordonsdynamik TSFS02

Lösningar till tentamen i Industriell reglerteknik TSRT07 Tentamensdatum: Martin Enqvist

Simulera med ModelSim

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

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016

Uppgift 18 Eget programval

Flervariabel reglering av tanksystem

Snabbstart av Aspen med hjälp av skärmdumpar

Ordinära differentialekvationer,

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

Skapa mapp. * Gör så här: Det finns många sätt att skapa mappar, men det enklaste sättet brukar vara följande.

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

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

Programmering. Scratch - grundövningar

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

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Laboration 1 Introduktion till Visual Basic 6.0

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Extramaterial till Matematik Y

Problemlösning 2 Stokastisk simulering., Problemlösning 2 Stokastisk simulering 1/13

INTRODUKTION TILL OrCAD

Introduktion till xdigiflex-simulatorn

WinStudio - Uppstart. Drifttagning av operato rspanel med IndraWorks och WinStudio. IndraWorks 14. Version

Extramaterial till Matematik Y

Flödesschema som visar hur man använder Quartus II.

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

Steg 8 OpenOffice Presentation

En introduktion till och första övning for Excel

DIGITALA RESURSER MANUAL FÖR

Absolutstabilitet. Bakåt Euler Framåt Euler

En kort introduktion till. FEM-analys

Snabbstart av Aspen med hjälp av skärmdumpar

Ladda ned appen Plickers till din surfplatta eller mobiltelefon och logga in med samma konto som du skapade ovan. Appen är gratis.

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

Introduktion till Xilinx CPLD och ISE WebPack 6.2 Version NV

Introduktion till syntesverktyget Altera Max+PlusII

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards

JavaScript Block Editor:

IndraView - VCPXX.2. Recepthantering Version 1

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

Välj Links i startmenyn och dubbelklicka på Matematik-mappen. Dubbelklicka därefter på MATLAB 5 - ikonen.

Beräkningsverktyg HT07

Steg 16 Video Debut video capture Video pad editor Windows 7/8

BICT:01 BICT. sv-se. Användarinstruktion Gäller från BICT Utgåva 5. Scania CV AB 2015, Sweden

Kort introduktion till Matlab och användbara kommandon i TSFS06

INLÄMNINGSUPPGIFT I. REGLERTEKNIK I för STS3 & X4

Juni 2003 PlanCon Viewer Handledning PlanCon PROJEKT

Handbok Spectacle. Boudhayan Gupta Boudhayan Gupta Översättare: Stefan Asserhäll

Exempel på hur man kan bygga enkla former i Illustrator

Visa/Dolj knappar i Webeditor 8

MODELLERING AV DYNAMISKA SYSTEM OCH INLUPP 2

Styrteknik: E-Designer och E-1000

Föreläsning 11, Dimensionering av tidsdiskreta regulatorer

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

Mus. Mike McBride Brad Hards Översättare: Stefan Asserhäll

STEG 1 Samla referenser till ditt EndNote-bibliotek

Linjär algebra med tillämpningar, lab 1

Matematisk analys för ingenjörer Matlabövning 3 Numerisk lösning av differentialekvationer

Här hittar du ett exempel på ritprogrammet:

Instruktion för laboration 1

BE MATLAB. (Matrix Laboratory) matlab.ico. för SIGNALER SYSTEM

SF1672, Linjär Algebra med Matlab för F1 Lab0

Styrsystem M580. Användare tips för Modicon M580. Skapad: Rev

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

Transkript:

Introduktion till Simulink Augusti 2009 2 s+2

Inledning Simulink är en simuleringsmiljö som körs under Matlab. Syftet med Simulink är att en användare ska kunna beskriva och simulera ett system på ett enkelt sätt. För att underlätta beskrivningen finns ett signalbaserat grafiskt användargränssnitt. I denna introduktion ges en kortfattad beskrivning av de mest använda funktionaliteterna. För en mer heltäckande beskrivning rekommenderar vi att man tittar i manualen som följer med programvaran. Observera att det kan skilja något mellan olika versioner av Simulink, så bli inte förvirrad om introduktionen skiljer sig från det på datorskärmen. Vi rekommenderar att du verkligen kör Simulink och följer med i exemplen medan du läser introduktionen. Det bästa sättet att få en känsla för hur Simulink fungerar är sedan att modifiera och experimentera på egen hand. Grundläggande användning Att komma igång För att starta Simulink måste man först starta Matlab och sedan ge kommandot simulink vid Matlab-prompten. Då kommer Simulink-biblioteket i figur upp på skärmen. För att börja bygga en modell, gå via menyn File och välj därefter New. I det nya fönster med namnet untitled som då öppnas kommer vi att bygga en modell med hjälp av komponenter från biblioteket. Figur : Simulink-biblioteket. 2

Bygga ett system Antag nu att man vill studera stegsvaret till det linjära systemet G(s) = 2 s + 2 genom att simulera det. För att skapa en överföringsfunktion, dubbelklickar man på blocket Continuous i högra delen av fönstret Simulink Library Browser och sedan blocket. Genom att peka på Transfer Fcn med musen, hålla vänster mustangent nere och dra över det till fönstret untitled förs en kopia av blocket in i den nya modellen. Dubbelklicka på blocket med vänster mustangent och ändra därefter på raderna Numerator och Denominator. Observera att man bara anger koefficienterna till polynomen, det vill sägas + 2 anges som [ 2] och 2:an i täljaren anges som [2]. För att hitta ett steg som insignal går man till blocket Sources i Simulink Library Browser och väljer. Utsignalblocket tas från Sinks och där är lämpligt, eftersom det visar utsignalen från det simulerade systemet. Blocken förbinds nu genom att man pekar på en utport, håller ned vänster mustangent och drar iväg till en lämplig inport. I figuren dras då en pil från ett block till ett annat. Efter ihopkoppling ser systemet ut som i figur 2. Genom att följa pilarna kan man se hur signalflödet går. 2 s+2 Figur 2: En överföringsfunktion med hjälp av blocket. Om man skulle råka göra något misstag kan man ta bort block (eller exempelvis pilar) på följande sätt. Antag att man vill ta bort blocket. Först markerar man det genom att klicka på det med vänster mustangent. Blocket kommer då att se ut enligt figur 3. Vill man plocka bort det väljer man Cut som finns i Edit-menyn eller trycker på delete på tangentbordet. 2 s+2 Figur 3: Ett markerat element. 3

Simulera ett system Innan man simulerar systemet bör man nu bestämma simuleringstiden, som per default är satt till 0.0 s. Välj Configuration Parameters i menyn Simulation. Där kan man sätta ett antal parametrar som bestämmer hur simuleringen ska utföras. De som är intressanta nu finns under fliken Solver. Gå in under fliken Solver och ändra Stop time från 0 s till exempelvis 20 s. Nu kan simuleringen startas genom att välja Start i menyn Simulation. Simulink piper till när simuleringen är färdig. För att se resultatet dubbelklickar man på. Genom att välja något av de tre förstoringsglasen i -fönstret och markera ett område i figuren med hjälp av musen kan figuren skalas. Prova dig fram och se vad som skiljer förstoringsglasen åt. Variabler/parametrar i Matlab Nu kan man testa lite olika överföringsfunktioner. Prova till exempel med G(s) = 2 s 2 +s+2 genom att ändra Numerator och Denominator. Vill man manipulera utsignalen mer i Matlab kan man spara Simulink-signaler med hjälp av blocket To Workspace som finns i Sinks. Detta block kan kopplas till utsignalen från överföringsfunktionen genom att peka på inporten till To Workspace-blocket och hålla ned någon mustangent samtidigt som man drar korset till pilen mellan och, så att en ny pil bildas utgående från den redan existerande pilen som i figur 4. Dubbelklicka på To Workspace-blocket och ändra Save format från Structure till Array. Kör nu en simulering och plotta resultatet i Matlab genom att skriva plot(tout,simout). 2 s 2+s+2 simout To Workspace Figur 4: Signal till Matlabs workspace med hjälp av blocket To Workspace. Man kan också definiera systemet som ska simuleras direkt i Matlab genom >> num=[2]; >> den=[ 2]; 4

och skriv in variabelnamnen num och den i blocket på respektive plats. Blockschemat i Simulink blir då som i figur 5. num(s) den(s) simout To Workspace Figur 5: Variabler i täljare (num) och nämnare (den) i. Fler byggstenar Vill man simulera ett olinjärt system, till exempel ẋ(t) = x(t) 2 +u(t) kan man göra så här istället. Om båda sidorna av tillståndsekvationen integreras får man istället x(t) = t 0 ( x(τ) 2 +u(τ) ) dτ så vad som behövs är en numerisk integrator. Denna finns under Continuous och heter Integrator. Dessutom måstex 2 beräknas, vilket exempelvis kan göras med hjäp av blocket Fcn som finns under Functions & Tables. Allt man behöver göra är att gå in och ändra det förinskrivna exempeluttrycket sin(u()*exp(2.3*(-u(2)))) till det nu aktuella uttrycket u()^2. Funktionen beskrivs alltid i termer av u, som är en vektor med insignalerna u[],u[2],... I det här exemplet äruen vektor med en enda signalu[]. Ett blockschema i Simulink kan då se ut som i figur 6, där också blocket Sum använts som finns under Math. För att byta ut de två plustecknen i Sum, dubbelklicka och byt ut ett av plustecknen till ett minustecken. Övertyga dig själv om varför figuren simulerar det system vi vill och att du själv kan återskapa motsvarande blockschema i Simulink. Kontrollera speciellt att du förstår varför man plockar ut x efter integratorn. Prova också att simulera. Strukturera genom att skapa delmodeller Större Simulink-modeller är svåröverskådliga om man inte strukturerar dem. Ett bra sätt är då att skapa delmodeller. I figur 6 ovan utgör blocken 5

simout To Workspace s Integrator u()^2 Fcn Figur 6: Ett olinjärt system. Sum, Integrator och Fcn en överföringsfunktion. Låt oss göra en delmodell av de tre blocken. Markera blocken genom att trycka ner vänster musknapp och innesluta dem i den rektangel som bildas då man drar musen med knappen nedtryckt. Gå in i menyn Edit och välj Create Subsystem, vilket ger figur 7. Dubbelklickar man på Subsystem öppnas ett nytt fönster med delmodellen, se figur 8. Detta nya block kan nu betraktas som vilket annat Simulink-block som helst och kan till exempel kopieras och användas i en annan modell. In Out Subsystem simout To Workspace Figur 7: Ett system med en delmodell. Out In s Integrator u()^2 Fcn Figur 8: Innehållet i blocket Subsystem. 6

Val av numerisk lösare Ett svårighet vid simuleringar är att välja rätt numerisk lösare. I Simulink bestäms lösare genom att välja Simulation och därefter Configuration Parameters. Lösarna finns under fliken Solver. De delas först upp i lösare med fix eller variabel steglängd. Om lösare med variabel steglängd används kan de maximala felen specificeras. De med fix steglängd är något snabbare. Lösarna kan också delas in i enstegs- och flerstegslösare. En enstegslösare använder vid varje iterationssteg endast de värden den räknade ut vid föregående steg. En flerstegslösare även värden den räknat ut tidigare. Generellt kan man säga att en enstegslösare är snabbare men mindre noggrann. Lösare med variabel steglängd: Standardlösaren ode45 är en enstegslösare, baserad på en explicit Runge-Kutta-algoritm. Det är generellt en mycket bra lösare och vi rekommenderar att den används i första hand. ode23 är likvärdig. ode3 är en Adams-Bashforth-Moulton-lösare. Det är en flerstegslösare och är bra om man vill ha små feltoleranser. Den är långsammare än ode45 och ode23. ode5s är också en flerstegslösare. Den använder en numerisk deriveringsalgoritm, NDF, och är effektiv för styva problem. ode23s är en enstegslösare, baseras på en Rosenbrockalgoritm. Även denna lösare är bra för styva problem. Då den är en enstegslösare är den snabbare men mindre noggrann än ode5s. För problem som saknar kontinuerliga tillstånd finns lösaren discrete. Lösare med fix steglängd: ode5 är en variant av ode45 med fix steglängd. ode4 är precis som ode5 en Runge-Kuttalösare, fast av ordning 4. ode3 är ode23 med fixerad steglängd. ode använder Eulers metod. Det är en enstegslösare som är användbar för små, enkla problem. ode2 använder en något förbättrad version av Eulers metod. Även lösaren discrete finns med fix steglängd. 7

Block i Simulink Vi går nu igenom de block som finns tillgängliga och ger korta kommentarer till speciellt användbara block. Funktionen hos de block som inte nämns kan man själv lätt kolla genom att dubbelklicka på dem. Varje block har en hjälptext som kort beskriver vad blocket gör och hur det används. Först ut är signalkällorna, det vill säga Sources, se figur 9. De mest användbara blocken här är förutom de som redan nämnts Constant, Sine Wave och Signal Generator. Det sistnämnda blocket innehåller möjligheter att välja ett antal olika insignaler, som exempelvis fyrkantvåg. Studerar vi sedan sänkorna i Sinks, ger de oss möjlighet att titta på olika signaler i de system som simuleras. Blocken To Workspace och har redan undersökts i exemplen. I XY Graph kan man plotta två signaler mot varandra, vilket är speciellt användbart då man ska rita fasplan. Signal Source Library Clock Signal Generator Sine Wave 2:34 Digital Clock Constant Input Repeating Sequence Pulse Generator Graph Signal Sinks Library yout To Workspace untitled.mat To File untitled.mat From File [T,U] From Workspace Chirp Signal Auto Scale Graph STOP Stop Simulation Random Number Band Limited White Noise XY Graph Hit Crossing Figur 9: Block i biblioteken Sources och Sinks. I biblioteket Continuous, figur 0, finns block med vilkas hjälp olika former av tidskontinuerliga system kan simuleras. Här finns ett antal sätt att beskriva tidskontinerliga överföringsfunktioner och tillståndsbeskrivningar. I biblioteket Discrete, figur, finns i princip samma sak för tidsdiskreta system. I Math i figur 2 finns det mycket användbara block som Sum för summering och Gain för förstärkning (multiplikation med en konstant). Observera att 8

s Integrator du/dt Derivative x = Ax+Bu y = Cx+Du State Space s+ (s ) s(s+) Zero Pole Memory Transport Delay Variable Transport Delay Figur 0: Block i biblioteket Continuous. Zero Order Hold z Unit Delay y(n)=cx(n)+du(n) x(n+)=ax(n)+bu(n) Discrete State Space T z Discrete Time Integrator +0.5z Discrete Filter z+0.5 Discrete (z ) z(z 0.5) Discrete Zero Pole First Order Hold Figur : Block i biblioteket Discrete. 9

genom att lägga till fler plus- eller minustecken i Sum kan man addera fler signaler är bara två. Product utför multiplikation mellan två signaler är också mycket användbar och ändras på samma sätt som Sum. I biblioteket hittar man också mer avancerade funktioner, som till exempel Sign (signum). Sum Product Dot Product Gain Slider Gain K*u Matrix Gain e u Math Function sin Trigonometric Function min MinMax u Abs Sign floor Rounding Function Combinatorial Logic AND Logical Operator bitwise AND FFFF Bitwise Logical Operator <= Relational Operator u u Complex to Magnitude Angle. Magnitude Angle to Complex Re(u) Im(u) Complex to Real Imag Re Im Real Imag to Complex f(z) Solve f(z) = 0 Algebraic Constraint z Figur 2: Block i biblioteket Math. Hur slår man ihop flera insignaler till en vektor som bara beskrivs med hjälp av en pil? Detta tas hand om av biblioteket Signal & Systems i figur 3. Vill man beskriva en vektor av flera signaler används Mux och vill man dela upp en vektor i sina komponenter använder man Demux. Givetvis kan man specificera hur många in- respektive utsignaler man vill ha. Signals & Systems innehåller även annat blocken In och Out som används om man vill definiera egna block, till exempel delsystem av ett större system. I Functions & Tables, figur 4, hittar man blocket Fcn vilket är det mest generella. Där kan man ange i princip vilken funktion som helst. Det enda man måste komma ihåg är att funktionerna måste vara i termer av u. Om man har flera insignaler anges de som u(),u(2) och så vidare. 0

In Out Enable Trigger em Mux Selector [A] From Bus Selector Merge Merge {A} Goto Tag Visibility Demux Horiz Cat Matrix Concatenation [A] Goto A Data Store Read A Data Store Memory A Data Store Write Ground Terminator U( : ) Reshape auto (???) Data Type Conversion f() Function Call Generator SubSystem Master Configurable Subsystem Model Info [] 0 W:0, Ts:[0 0], C:0, D:0 Hit Crossing IC Width Probe Inherit Signal Specification Figur 3: Block i biblioteket Signals & Systems.

n D T(u) Look Up Table Look Up Table (2 D) Look Up Table (n D) u k f n D T(k,f) n D T[k] PreLook Up Index Search Interpolation (n D) using PreLook Up Direct Look Up Table (n D) f(u) Fcn MATLAB Function MATLAB Fcn system S Function P(u) O(P) = 5 Polynomial Figur 4: Block i biblioteket Functions & Tables. Rate Limiter Saturation Quantizer Backlash Dead Zone Relay Switch Manual Switch Multiport Switch Coulomb & Viscous Friction Figur 5: Block i biblioteket Nonlinear. 2

I Nonlinear i figur 5 kan man hitta olika olinjära fenomen, som exempelvis mättning och dödzon. Här finns också en manuell switch, som kan vara bra att ha när man vill växla manuellt mellan två olika insignaler. Den noggranne teknologen har antagligen redan noterat att det finns ytterligare blockbibliotek. I det som heter Blocksets & Toolboxes finns block för mer avancerade användningar av Simulink som inte tas upp här. Den som är intresserad uppmanas att botanisera bland dessa block på egen hand. I Demos kan du se exempel på hur Simulink kan användas. 3