matla bands i mu link hand out malaysia

Upload: ir-mathan-raj

Post on 14-Oct-2015

20 views

Category:

Documents


0 download

DESCRIPTION

matlab

TRANSCRIPT

  • MATLAB und Simulink

    Prof. Dr. Ottmar Beucher

    Hochschule Karlsruhe - Technik und WirtschaftDeutschland

    Universiti Malaysia Pahang23.-27. September 2013

  • Was ist MATLAB ?

    Was ist MATLAB ?

    Ein numerisches Berechnungs- und Simulationswerkzeug

    Eine hohere Programmiersprache

    Eine interpretierte Programmiersprache

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 1

  • Elementare MATLAB Operationen

    Elementare MATLAB Operationen:

    Arithmetische Operationen

    Logische Operationen

    Mathematische Funktionen

    Grafische Funktionen

    I/O-Operationen (Datenaustausch)

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 2

  • Das MATLAB User Interface (ab Release 2012b)

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 3

  • Definition numerischer Felder (MATrizen)

    rowvector = [1 5 3]

    rowvector =

    1 5 3

    columnvector = [ 2 ; 4 ; 3 ; 1; 14 j ]

    columnvector =

    2.00004.00003.00001.00001.0000 4.0000 i

    aMatrix = [3 1+2 i 2; 4 0 5]

    aMatrix =

    3.0000 1.0000 + 2.0000 i 2.00004.0000 0 5.0000

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 4

  • Definition numerischer Felder (MATrizen)

    % einen Ze i l envek to r anhangen (Bem . : Semicolon ) aMatrix = [ aMatrix ; 1 2 3 ]

    % einen Ze i l envek to r anhangen aMatrix = [ aMatrix ; rowvector ]

    % einen Spa l tenvek tor anhangen (Bem . : Komma) v = [ 1 ; 2 ; 3 ] ; aMatrix = [ aMatrix , v ]

    % Zug r i f f auf eine Komponente element23 = aMatrix ( 2 ,3 )

    % Setzen e ine r Komponente aMatrix ( 2 ,3 ) = 25

    % Loschen eines Ze i l envek to rs aMatrix ( 1 , : ) = [ ]

    % Loschen eines Spa l tenvek tors aMatrix ( : , 2 ) = [ ]

    % ABER: aMatrix ( 2 ,3 ) = [ ]Subscripted assignment dimension mismatch .

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 5

  • Definition numerischer Felder (MATrizen) - Interaktiver Zugang

    Das Variables Fenster:

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 6

  • MATLABs Arbeitsspeicher - Der Workspace

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 7

  • Ubungen

    1 Definieren Sie in MATLAB die folgenden Matrizen und Vektoren und speichernSie diese in den entsprechenden Variablen:

    M =

    1 0 00 j 1j j+ 1 3

    ,

    k = 2.75, ~v =

    1

    3

    70,5

    ,

    ~w =(

    1 5.5 1.7 1.5 3 10.7),

    ~y =(

    1 1.5 2 2.5 100.5).

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 8

  • Ubungen

    2 Betrachten Sie die Matrix M der vorangegangenen Ubung:

    Erweitern Sie die Matrix M zu einer 6 6-Matrix V, sodass

    V =

    M MM M

    .Loschen Sie aus der Matrix V die zweite Zeile und die dritte Spalte.Speichern Sie die vierte Zeile der Matrix V in einem neuen Vektor r4.Andern Sie die Komponente (4, 2) der Matrix V zu j+ 5.

    3 Loschen Sie alle Variablen des Workspace und rekonstruieren Sie dann dieMatrix V, indem Sie die automatisch gespeicherten Kommandos zur Definitionvon V und die - und -Tasten verwenden.Versuchen Sie zusatzlich andere Variablen mit Hilfe des CommandHistory-Fensters zu rekonstruieren.

    4 Uberschreiben Sie unter Verwendung des Variables-Fensters die funfte Zeile derMatrix V mit Nullen.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 9

  • Arithmetische Operationen

    Matrix-Algebra-Operationen: M N, M+N, M

    M = [1 2 3; 4 1 2 ] ; % d e f i n i e r t e ine 2x3mat r i x M N = [1 2 1 ; 4 1 1; 2 0 1] % d e f i n i e r t e ine 3x3mat r i x N

    V = MN % Produkt MN NICHT ERLAUBT!

    V =

    15 0 44 9 3

    W = NM % Produkt NM NICHT ERLAUBT!??? Error using ==> mtimes Inner matrix dimensions must agree .

    K = [1 5 3; 2 1 2]; % d e f i n i e r t e ine andere 2x3Mat r i x KW = N+M; % Summen N+M, M+N ERLAUBT!

    lambda = 2; % d e f i n i e r t einen Ska larwer t (1x1mat r i x ) V = lambdaM; % Produkt lambdaM, Mlambda ERLAUBT!

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 10

  • Arithmetische Operationen

    Feldoperationen: M N, Mk, M/N

    M = [1 2 3; 4 1 2 ] ; % d e f i n i e r t e ine 2x3mat r i x M N = [1 2 1 ; 4 1 1; 2 0 1 ] ; % d e f i n i e r t e ine 3x3mat r i x N

    V = M.N % FeldProdukt M.N NICHT ERLAUBT!Error using .Matrix dimensions must agree .

    K = [1 5 3; 2 1 2]; % d e f i n i e r t e ine andere 2x3Mat r i x K V = M.K % FeldProdukte M.K, K.M ERLAUBT!

    V =

    1 10 98 1 4

    k = 3; % d e f i n i e r t einen Ska larwer t (1x1mat r i x )M. k ; % FeldPotenzen ERLAUBT!

    W = M . /K % FeldDiv is ionen ERLAUBT!W =

    1.0000 0.4000 1.00002.0000 1.0000 1.0000

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 11

  • Ubungen

    5 Bearbeiten Sie folgende Probleme:

    Berechnen Sie unter Verwendung von Matrix- oder/und Feld-Operationen das Standard-Skalarprodukt derVektoren

    ~x =(

    1 2 12 3 1)

    und ~y =(

    2 0 3 13 2).

    Berechnen Sie das Produkt der Matrizen

    A =

    1 3.5 2

    0 1 1.31.1 2 1.9

    und B =

    1 0 11.5 1.5 3

    1 1 1

    .

    Berechnen Sie mit Hilfe von

    A =

    1 3.5 2

    0 1 1.31.1 2 1.9

    die Matrix

    C =

    1 0 0

    0 1 0

    0 0 1.9

    indem Sie geeignete Feld-Operationen verwenden!

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 12

  • Logische Operationen

    Operationen:

    Und (&)

    Oder (|)

    Negation ()

    Exklusives Oder (xor)

    immer Feld-OperatorenResultat: logische Werte, Logische Arrays

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 13

  • Logische Operationen (Beispiele)

    A=[1 3 ;0 0 ]

    A =

    1 30 0

    B=[0 5 ;0 1 ]

    B =

    0 50 1

    Res=A&B % Logisches UND

    Res =

    0 10 0

    Res=A|B % Logisches ODER

    Res =

    1 10 1

    Res=xor (A,B) % Exk lus ives ODER

    Res =

    1 00 1

    Res=B % Negation

    Res =

    1 01 0

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 14

  • Relationale Operationen

    Operationen:

    Groer als (>)

    Kleiner als (=)

    Kleiner oder gleich (

  • Relationale Operationen (Beispiele)

    A=[1 3 ;0 0 ]

    A =

    1 30 0

    B=[0 5 ;0 1 ]

    B =

    0 50 1

    Res=A>B % groer

    Res =

    1 00 0

    Res=A

  • Logisches und Numerisches Indizieren

    Zwei Arten der Indizierung:

    mit ganzen Zahlen

    A=[1 3 ;0 0 ]

    A =

    1 30 0

    a = A( 2 ,1 ) % Zug r i f f auf Element (2 ,1 )

    a =

    0

    z = A( 1 : 2 , 1 ) % Zug r i f f auf Elemente% (1 ,1 ) und (2 ,1 )

    z =

    10

    mit logischen Werten

    vect=[2, 3 , 4, 5 , 1 ]

    vect =

    2 3 4 5 1

    select = vect>2 % pr u fe wo Elemente > 2

    select =

    0 1 0 1 0

    whosName Size Bytes Class

    select 1x5 5 log ica lvect 1x5 40 double

    pick = vect ( select ) % se l e k t i e r e mi t% log i sche r I nd i z i e r ung

    pick =

    3 5

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 17

  • Ubungen

    6 Betrachten Sie die folgende Matrix:

    C =

    1 2 3 4 10

    22 1 11 12 48 1 6 11 5

    18 1 11 6 4

    .Setzen Sie mit Hilfe eines geeigneten relationalen Operators alle Eintrage > 10und < 10 der Matrix C auf 0.Hinweis: Realisieren Sie zuerst die Vergleiche > 10 und < 10 und verwenden Siedann die Resultate, um die Eintrage mit einer geeigneten Feldoperation auf 0 zu setzen.

    7 Betrachten Sie die Matrix:

    D =

    7 2 3 10

    2 3 11 48 1 6 5

    18 1 11 4

    .Selektieren Sie unter Verwendung logischer Felder die Diagonale von D undspeichern Sie diese in einen Vektor namens diag.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 18

  • Mathematische Funktionen

    Wirken immer alsFeld-Operatoren:

    t = (0 : 1 : 4 ) % Au f ru f mi t einem Vektor

    t =

    0 1 2 3 4

    s=sin ( t ) % Werte von s in ( t )

    s =

    0 0.8415 0.9093 0.1411 0.7568

    mess=[25.5 16.3 18 .0 ; . . . % Au f ru f mi t e ine r Mat r i x2.0 6.9 3 . 0 ; . . .0.05 4.9 1 . 1 ] ;

    dBmess=20log10 (mess )

    dBmess =

    28.1308 24.2438 25.10556.0206 16.7770 9.542426.0206 13.8039 0.8279

    Aufruf aquivalent zuProgrammierschleifen wie:

    double s [ 6 ] ;for ( i =0; i

  • Ubungen

    8 Berechnen Sie fur einen Zeitvektor zwischen 0 und 10 und einer aquidistantenUnterteilung von 0.1 die Werte des Signals (der Funktion):

    s(t) = sin(2pi5t) cos(2pi3t) + e0.1t.

    9 Berechnen Sie fur einen Zeitvektor zwischen 0 und 10 und einer aquidistantenUnterteilung von 0.1 die Werte des Signals (der Funktion):

    s(t) = 20 sin(2pi5t).

    Runden Sie dann die Werte nach bzw. nach 0. Finden Sie dazu mit derMATLAB-Hilfe die geeigneten Funktionen.Geben Sie in beiden Fallen 6 Werte von s(t) zusammen mit ihren gerundetenWerten in einer Matrix mit zwei Zeilen auf dem Bildschirm aus undinterpretieren Sie das etwas merkwurdige Resultat.

    10 Berechnen Sie mit Hilfe geeigneter elementarer mathematischerMATLAB-Funktionen den Vektor der 2er- und der 10er-Logarithmen fur

    ~b =(

    1024 1000 100 2 1).

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 20

  • Signale und Funktionen mit MATLAB plotten

    MATLABs Plot-Funktionalitaten:

    Plot-Funktionen im interaktiven Betrieb und inMATLAB-Programmen nutzen:

    x y-Plots mit plot, stem, stairs, ...Linienstil-Optionen

    Annotierungs-Funktionen

    Dreidimensionale Plots mit surf, mesh, ...

    Plotten mehrerer Funktionen mit subplot

    Nutzung des Plot Tools-Fesnsters im interaktiven Betrieb:

    Interaktive Anpassung der Plots

    Dokumentation der Plots

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 21

  • MATLABs x y-Plot-Kommandos

    Nutzung der StandardPlot-Kommandos

    t = ( 0 : 1 : 5 ) ; s=sin ( t ) ; plot ( t , s ) ; % die e in fachs te Form

    % Mehrere Signale p l o t t e n t = ( 0 : 0 . 0 1 : 2 ) ; s in fk t=sin (2pi5t ) ; cosfkt=2cos(2pi3t ) ; expfkt=exp(2t ) ; plot ( t , [ s in fk t ; cosfkt ; expfkt ] ) ;

    % v i e l besser plot ( t , sinfkt , k , t , cosfkt , . . .

    b , t , expfkt , m. )

    % LattenzaunPlo ts t = ( 0 : 0 . 0 5 : 2 ) ; cosfkt=2cos(2pit ) ; stem ( t , cosfkt )

    Linienstile und Annotationanpassen

    t = ( 0 : 1 : 5 ) ; s=sin ( t ) ; plot ( t , s , mo ) ; % L i n i e n s t i l Kre ise

    % Farbe magenta

    xlabel ( time / s ) % Beschr i f tung der x ylabel ( ampl . / V ) % und yAchse

    % F i g u r e n t i t e l t i t l e ( A sine function )

    grid % blende e in G i t t e r e in axis ( [ 0 , 0 .5 , 0 , 2 ] ) % zeige Ausschn i t t

    % einen Text hinzufugen text (0 .75 ,0 , \le f tarrow signal , . . .

    FontSize ,18)

    % und Vie les mehr . . .

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 22

  • Das Plot-Tools-Fenster

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 23

  • Das subplot-Kommando

    Mehrere Signale mit subplotplotten

    % Be i sp i e l : p l o t t e Absolutbet r age% und Argumente e ine r komplexwert igen Funkt ion

    x = ( 0 : 0 . 0 1 : 1 ) ; f = (1+ jx ) . / ( j2x ) ; % die komplexe Funkt ion

    subplot (211) % Oberes P l o t f e n s t e r

    plot (x , abs ( f ) , b ) % Abso lu tbet rag grid % Fuge G i t t e r e in

    % Annot ierung xlabel ( xvalues ) ylabel ( modulus of f ( x ) )

    subplot (212) % Unteres P l o t f e n s t e r plot (x , angle ( f ) , r )% p l o t t e d ie Argumente grid % Fuge G i t t e r e in

    % Annot ierung xlabel ( xvalues ) ylabel ( phase angle of f ( x ) )

    Vorteil:

    - plot von mehreren Funktionenmit demselben Argument aberverschiedenen Einheiten furdie Funktionswerte

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 24

  • Ubungen

    11 Geben Sie die folgenden MATLAB-Kommandos in das Kommandofenster ein und versuchen Sie das merkwurdigegrafische Resultat zu interpretieren:

    t = ( 0 : 0 . 5 : 1 0 ) ; s in fk t=sin (2pi5t ) ; cosfkt=2cos(2pi3t ) ; expfkt=exp(2t ) ; plot ( t , [ s in fk t ; cosfkt ; expfkt ] )

    12 Experimentieren sie mit den MATLAB-Funktionen semilogx, semilogy und loglog.Definieren Sie zu diesem Zweck den Frequenzvektor

    = (0.01, 0.02, 0.03, 0.04, . . . , 5) rad/s

    und versuchen Sie Betrag und Phasenwinkel der so genannten Ubertragungsfunktionen

    H() =1

    j

    und

    H() =1

    1 + j.

    zu plotten.13 Plotten Sie die zweite der oberen Ubertragungsfunktionen ubereinander. Verwenden Sie fur die Frequenz und (nur) fur

    den Betrag eine logarithmische Skala. (Dies ist ein so genanntes Bode-Diagramm).

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 25

  • MATLABs I/O-Operationen

    MATLABs I/O-Funktionalitaten:

    I/O-Funktionen im interaktiven Betrieb und inMATLAB-Programmen nutzen:

    Speichern von Workspace-Variablen mit save

    Laden von Variablen mit load

    Die ASCII-Schnittstelle

    Spezielle Funktionen fur viele Formate

    Nutzung des Import Data Tools im interaktiven Betrieb:

    Offnen des Import Data Tools mit uiimport

    Offnen des Import Data Tools mit dem Menu oder Doppelklick

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 26

  • Ubungen

    14 Erzeugen sie mit Hilfe des MATLAB-Editors einen Vektor und/oder eine Matrixvon reellen Zahlen und speichern Sie diese in ein Textfile.Loschen Sie alle Daten im Workspace mit clear.Laden Sie dann unter Verwendung von load die Inhalte des Textfiles wieder inden Workspace und analysieren Sie das Resultat.

    15 Erzeugen Sie mit MATLAB einen Spaltenvektor mit komplexen Zahlen.Speichern Sie diesen Vektor in MATLABs binarem Format mit Hilfe dessave-Kommandos.Loschen Sie alle Daten im Workspace mit clear. Lesen Sie dann die Daten desgespeichertenFiles wieder in den MATLAB Workspace ein. Verwenden Sie dazudie Funktion load oder das Import Tool!Vergleichen Sie das Resultat mit dem der vorangegangene Ubung.

    16 Suchen Sie mit der MATLAB-Hilfe eine geeignete Funktion zum Einlesen des*.wav-Files Tada.wav der Begleitsoftware.Stellen Sie das eingelesene Audio-Signal grafisch dar. Achten Sie darauf, dassdie Achsen korrekt beschriftet sind.Multiplizieren Sie dann das Signal mit dem Factor 10 und speichern Sie dasResultat unter einem anderen Dateinamen als *.wav-file.Horen Sie sich die Audio-Signale an.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 27

  • Elementare Matrix-Operationen

    Nutzlich zur Initialisierung inMATLAB-Programmen:

    % I n i t i a l i z i n g mi t Nul lenM = zeros ( 2 , 2 ) ;

    % I n i t i a l i s i e r u n g mi t Einsen K = ones ( 2 , 2 ) ;

    % I n i t i a l i s i e r u n g mi t e ine r E i nhe i t sma t r i x E5 = eye ( 5 ) ;

    % I n i t i a l i s i e r u n g wi th einem leeren Vektor N = [ ] ;

    % Bestimme Lange und / oder Groe eines Arrays x1 = [1 , 2 , 3 , 4 , 5 , 6 ] ; k = length (x1 ) ; [n ,m] = size (M) ;

    % Zug r i f f auf d ie l e t z t e Komponente l as t = zVec (end ) ;

    Reorganisation von Vektorenund Matrizen:

    % Transponiere eine Mat r i xM = [1 2 ; 3 j ; 1 j +1 ] ; N = M ;

    % Transponiere eine Mat r i x ( FeldOperat ion )M = [1 2 ; 3 j ; 1 j +1 ] ; N = M . ;

    % Reorganis iere a l s Spa l tenvek tormVec = M ( : ) ;

    % Reorganis iere a l s Spa l tenvek tor L = repmat (M, 2 , 2 ) ;

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 28

  • Ubungen

    17 Finden Sie mit Hilfe der MATLAB-Hilfe eine Funktion, die denVektor

    ~y = (1, 1.1, 1.2, 1.3, 1.4, , 9.8, 9.9, 10)

    in den folgenden Vektor umwandelt:

    ~z = (10, 9.9, 9.8, 9.7, , 1.2, 1.1, 1).18 Betrachten Sie den Vektor

    ~z = (1, 1.5, 2, , 98.5, 99, 99.5, 100).

    Konstruieren Sie ausgehend von diesem Vektor mit Hilfelogischer Operationen und der Funktion repmat einen neuenVektor ~w, der nur noch jede dritte Komponente von~z enthalt !

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 29

  • MATLAB Script Files

    Beispiel:

    % Scr ip tF i l e funkbsp%% Auf ru f : funkbsp%% Erstes Be i sp i e l f u r e in MATLAB Scr ip tF i l e%% Autor : Prof . Dr . Ottmar Beucher% HS Kar lsruhe Technik und Wi r t s cha f t% Version : 1.01% Datum : 14.11.2012

    t = ( 0 : 0 . 0 1 : 2 ) ;s in fk t=sin (2pi5t ) ;cosfkt=2cos(2pi3t ) ;expfkt=exp(2t ) ;plot ( t , [ s in fk t ; cosfkt ; expfkt ] )xlabel ( Time / s )ylabel ( Amplitude )t i t l e ( Three beaut i fu l signals )

    % Au f ru f im CommandWindow funkbsp

    Eigenschaften:

    - Fasst MATLAB-Kommandoszu einer Programm-Einheitzusammen

    - Konnen im Kommandofensterals Kommando ausgefuhrtwerden

    - Konnen MATLABshelp-Mechanismus nutzen

    - ErzeugenWorkspace-Variablen, arbeitenmit Workspace-Variablen!

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 30

  • MATLAB Funktionen

    Beispiel:

    function [ t , sinfkt , cosfkt , expfkt ] = . . .funkbsp2 ( f1 , f2 , damp)

    %% Funkt ion funkbsp2%% Auf ru f : s iehe unten%% Erstes Be i sp i e l f u r e ine MATLABFunkt ion

    t = ( 0 : 0 . 0 1 : 2 ) ;s in fk t=sin (2pif1t ) ;cosfkt=2cos(2pif2t ) ;expfkt=exp(dampt ) ;plot ( t , [ s in fk t ; cosfkt ; expfkt ] )xlabel ( Time / s )ylabel ( Amplitude )t i t l e ( Three beaut i fu l signals )

    % Au f ru f im CommandWindow [ t , sinfkt , cosfkt , expfkt ] = . . .

    funkbsp2 (2 , 3 , 0 .1 )% oder e in fach funkbsp2 (2 , 3 , 0 .1 )

    Eigenschaften:

    - Fasst MATLAB-Kommandos zueiner Programm-Einheitzusammen kann jedochparametrisiert werden

    - unter dem Dateinamen imCommand Window als Kommandomit Parametern aufrufbar

    - Konnen MATLABshelp-Mechanismus nutzen

    - Klare Ein-/Ausgabeparameter-Schnittstelle

    - Operieren auf ihrem eigenenSpeicherbereich!

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 31

  • Aufrufmechanismus von MATLAB-Funktionen (Call by Value)

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 32

  • Ubungen

    19 Andern Sie den Code der Funktion funkbsp3 so ab, dass mannach Aufruf auf die Inhalte des komponentenweise quadriertenVektors a zugreifen kann.

    20 Andern Sie den Code der Funktion funkbsp2 so ab, dass manzusatzlich Farben und Linienstile fur die Graphen der Signaleubergeben kann. Die Funktion sollte die Graphen dannentsprechend plotten.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 33

  • MATLAB als Programmiersprache

    MATLAB als prozeduraleProgrammiersprache:

    Programming language constructs .

    Control flow .i f Condit ional ly executeelse statements .e l se i fend

    for Repeat statements aspeci f ic number of times .

    while Repeat statements aninde f in i t e number of times .

    . . .switch Switch among several

    cases based on expressions .. . .

    MATLAB als Objektorientierte Sprache:

    classdef exampleclass

    properties % de f i n i e r e Klasseneigenschaf tenend

    methods % de f i n i e r e zugehor ige Methodenend

    end

    Eigenschaften:

    - ProzeduraleProgrammiersprache

    - Kommandos undKonstrukte ahnlich zuanderenProgrammiersprachen (etwaC/C++)

    - Spezielle Kommandos furMATLAB-Funktionen mitvariabler Parameterliste

    - wird hier nicht behandelt.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 34

  • Ubungen

    21 Schreiben Sie eine MATLAB-Funktion, die fur einen gegebenen Zahlenvektordas Maximum seiner Eintrage bestimmt. Verwenden Sie dazu ein geeignetesSchleifenkonstrukt. Der gegebene Vektor sollte der einzige Eingangsparameter,das gefundene Maximum der einzige Ausgabeparameter derMATLAB-Funktion sein.

    22 Schreiben Sie eine MATLAB-Funktion, die fur einen gegebenen Zahlenvektordie positiven Eintrage bestimmt. Verwenden Sie dazu ein geeignetesSchleifenkonstrukt. Der gegebene Vektor sollte der einzige Eingangsparameterder MATLAB-Funktion sein. Das Resultat (die positiven Eintrage) sollte ineinem Vektor organisiert werden und dieser Vektor sollte der Ausgabeparameterder MATLAB-Funktion sein.

    23 Schreiben Sie eine MATLAB-Funktion, die das Signal sin(x) zwischen 0 und 2piin einer gegebenen Farbe plottet. Der gegebene Farbe sollte der einzigeEingangsparameter der MATLAB-Funktion sein und folgende erlaubte Wertehaben: red, blue, green, magenta. Verwenden Sie einswitch...case-Konstrukt, um entsprechend dem Wert des Eingangsparametersprogrammintern die Farbe fur den Plot zu bestimmen.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 35

  • Function Handles

    Function handles- eine spezielle Art Zeiger:

    my cos = @cos ;

    whosName Size Bytes Class

    my cos 1x1 16 function handle

    value = cos ( 1 )

    value =

    0.5403

    value = my cos ( 1 )

    value =

    0.5403

    Eigenschaften:

    - Ein Zeiger auf eineMATLAB-Function

    - Hauptverwendung:

    MATLAB-Funktionenan andereMATLAB-Funktionenvia Parameterlisteubergeben!

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 36

  • Ubungen

    24 Greifen sie Ubung (23) noch einmal auf und erweitern Sie dieFunktionalitat des Programms, sodass der Nutzer ein Signal unddas Plot-Intervall an die MATLAB-Funktion ubergeben kann.Nehmen Sie dafur an, dass das Signal in einer separatenMATLAB-Funktion ausprogrammiert ist oder dass es einevordefinierte MATLAB-Funktion ist.

    25 Die MATLAB-Funktion fzero berechnet (unter Verwendung einesgeeigneten numerischen Verfahrens) eine Nullstelle einer reellenFunktion. Diese reelle Funktion, die als MATLAB-Funktionrealisiert sein muss, muss fzero als function handle ubergebenwerden.Machen Sie sich mit der Aufrufkonvention von fzero vertraut undberechnen Sie Nullstellen von geeigneten Beispielfunktionen,indem Sie fzero im Command Window aufrufen.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 37

  • MATLABs ODE-Solver (DGL-Loser)

    Aufruf der MATLAB ODE-Solver:

    help ode23

    ode23 Solve nons t i f f d i f f e r en t i a l equations ,low order method .

    [TOUT,YOUT ] = ode23 (ODEFUN,TSPAN,Y0 ) withTSPAN = [T0 TFINAL ] integrates the system ofd i f f e r en t i a l equations y = f ( t , y ) from timeT0 to TFINAL with i n i t i a l conditions Y0 .

    ODEFUN is a function handle .

    For a scalar T and a vector Y , ODEFUN(T ,Y )must return a column vector correspondingto f ( t , y ) .Each row in the solution array YOUT corresponds to a time returned in the columnvector TOUT .To obtain solutions at speci f ic timesT0 ,T1 , . . . , TFINAL , use TSPAN =[T0 T1 . . . TFINAL ] .. . .

    See also ode45 , ode113 , ode15s , ode23s ,ode23t , ode23tb , ode15i , odeset , odeplot ,odephas3 , odeprint , . . . .

    Reference page in Help browserdoc ode23

    Eigenschaften:

    - Lost Anfangswertproblemevom Typ y = f (t, y)

    - Lost DGL 1. Ordnung oderSysteme von DGL 1.Ordnung

    - Benotigt eine (vonAnwender zu schreibende)ODE-Funktion

    - Benotigt Zeitintervall undeinen Vektor vonAnfangswerten

    - Liefert eine numerischeLosung an internberechneten Stutzstellen

    - Sind berechnungsoptimiertdurch interneSchrittweitensteuerung

    - Runge-Kutta-basierteAlgorithmen furnicht-steife und steifeDGLs

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 38

  • Das mathematische Pendel

    Beispiel: Mathematisches Modell:

    Anfangswertproblem 2. Ordnung:

    (t) = gl sin((t)), (0), (0).

    oder aquivalent:

    1(t) = 2(t),

    2(t) = gl sin(1(t))

    ~(0) =

    (0)(0)

    = 1(0)

    2(0)

    .Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 39

  • Die Struktur des ODE-Files

    Struktur eines ODE-Files(Beispiel):

    function [ alphadot ]= pendgl ( t , alpha )%% Funkt ion pendgl%% Auf ru f : w i rd NUR von% ODESolvern aufgerufen ! ! !%% Be i sp i e l e ines ODEF i l e s f u r d ie Solver% ode23 , ode45 u . s .w.%

    l =10; % Pendellangeg=9.81; % Erdbeschleunigung

    %% I n i t i a l i s i e r u n g

    alphadot = [ 0 ; 0 ] ;

    %% Dars te l l ung der DGL 1. Ordnung

    % ers te Gleichungalphadot ( 1 ) = alpha ( 2 ) ;

    % zwei te Gleichungalphadot ( 2 ) = (g / l )sin ( alpha ( 1 ) ) ;

    Eigenschaften:

    - Reprasentiert dasaquivalente System vonDGL 1. Ordnung

    - Hat eine festeEingangsparameter-Schnittstelle

    - Ist keine Funktion, dieeigenstandig laufen kann!Wird ausschlielich vonMATLAB-Solvernverwendet

    - Muss den MATLAB-Solvernmit Hilfe eines functionhandles ubergeben werden.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 40

  • Wie die Solver die ODE-File Information nutzen

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 41

  • RC-Tiefpass

    Beispiel: Mathematisches Modell:

    Anfangswertproblem 1. Ordnung:

    ddtu(t) = 1

    RCu(t) +

    1RC

    u1(t), u(0) = u0.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 42

  • Ubungen

    28 Losen Sie das Anfangswertproblem fur den RC-Tiefpass furverschiedene Eingangssignale des Tiefpasses. (Nehmen Sie zumBeispiel anstatt u1(t) ein sinusformiges Eignangsignal).

    29 Losen Sie das Problem:

    y1(t) = 2y1(t) y2(t) y1(0) = 1,y2(t) = 4y1(t) y2(t) y2(0) = 1.

    Vergleichen sie die numerische Losung mit der analytischenLosung (die Sie zum Beispiel von Hand ausrechnen).

    30 Losen Sie das Problem:...y + 3y+ 3y+ y = u1(t), y(0) = 0, y(0) = 1, y(0) = 1.

    Die Funktion u1(t) bezeichnet dabei den Einheitssprung.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 43

  • Die Symbolic Math Toolbox

    Stellt Computer Algebra Funktionalitat zur Verfugung

    Hat zwei verschiedene Anwenderschnittstellen

    the MuPAD-Notebook: Anwenderschnittstelle mit eigener Befehlssyntax

    the MATLAB-Adaption: Anwenderschnittstelle mit gewohnterMATLAB-Syntax

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 44

  • Beispiel aus der Analysis

    syms x y v whos

    Name Size Bytes Class Attr ibutesv 1x1 60 symx 1x1 60 symy 1x1 60 sym

    f = sin (xy 2)cos (vxy ) % de f i n i e r e eine Funkt ion

    f =

    sin (xy 2)cos (vxy )

    dfy = d i f f ( f , y ) % Ab le i tung nach y

    dfy =

    2xycos (xy 2)cos (vxy)vxsin (xy 2) sin (vxy )

    dfv = d i f f ( f , v ) % Ab le i tung nach v

    dfv =

    xysin (xy 2) sin (vxy )

    pret ty ( f ) % p r e t t y da r s t e l l e n

    2sin (x y ) cos (v x y )

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 45

  • Export symbolischer Losungen in numerische Losungen

    syms x % de f i n i e r e symbolische Var iab lenf = x2cos (x ) ; % de f i n i e r e eine Funkt iondf = d i f f ( f , x ) % berechne d ie Ab le i tung

    dt = 0 .1 ; % de f i n i e r e eine Sch r i t t we i t et = ( 0 : dt : 1 0 ) ; % de f i n i e r e d ie S t u t z s t e l l e nfnum = t . 2 .cos ( t ) ; % berechne d ie Funkt ion numerisch

    dfnum = d i f f ( fnum ) / dt ; % d i f f e r e n z i e r e numerisch

    % p l o t t e d ie numerische Ab le i tungplot ( ( dt : dt : 10 ) , dfnum , b )

    holddfnum2 = subs ( df , x , t ) ; % konve r t i e re d ie symbolische Losung

    % in eine numerische Losung mi t demplot ( t , dfnum2 , r ) % subsKommando und p l o t t e diese

    gridxlabel ( x )ylabel ( der ivat ive )

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 46

  • Ubungen

    31 Integrieren Sie die Funktion

    g(x) = sin(5x 2)

    zwei Mal symbolisch auf.

    32 Berechnen Sie fur die Funktion g(x) das Taylor-Polynom 3.Ordnung am Entwicklungspunkt x0 = 1.

    33 Berechnen Sie unter Verwendung der symbolischen Funktiondsolve die Losung der folgenden gewohnlichenDifferentialgleichung:

    y = xy2.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 47

  • Dynamische Systeme - ein bekanntes Beispiel

    Beispiel: Modellierung dynamischer Systeme:

    y(t) =1C

    t0

    i() d,

    y(t) = x(t) i(t) R( i(t) = 1

    R(x(t) y(t)

    ).

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 48

  • Die Idee hinter Simulink

    Die Idee hinter Simulink:Zeichne ein Blockschaltbild des dynamischen Systems

    Lass Simulink das Blockschaltbild in ein System vonDifferentialgleichungen konvertieren

    Lass Simulink dieses System von Differentialgleichungen mitHilfe von MATLABs numerischen ODE-Solvern losen

    Lass Simulink die Signale grafisch darstellen (Eingangssignale,Ausgangssignale - normalerweise die Losungen desDGL-Systems - und interne Zustande)

    Simulink kann verwendet werden um,ein gegebenes reales dynamisches System durch einBlockschaltbild zu modellieren und das dynamische Verhaltendieses Systems zu simulieren

    ein System von DGL zu losen, indem es zunachst in einBlockschaltbild ubersetzt und dann simuliert wird.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 49

  • Entwurf eines Simulink Modells - Der Library Browser

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 50

  • Entwurf eines Simulink Modells - Das Modell-Fenster

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 51

  • Simulation eines Simulink Modells - Das Parameter-Panel

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 52

  • Ubungen

    34 Testen Sie das System sl test1.slx fur verschiedene Schrittweitenund einen Solver mit Schrittweitensteuerung (variable-stepSolver). Vergleichen Sie die Losung des fixed-step Solvers ode3bei Verwendung einer Schrittweite von 0.00001 auf der einen Seiteund bei Verwendung des variable-step Solvers ode23 auf deranderen Seite.

    35 Entwerfen Sie ein Simulink Test-System sl LsgDiff.slx fur denAbleitungsblock Derivative. Verwenden Sie dazu am besten dasSystem sl test1.slx als Ausgangsbasis. Experimentieren Sie dannmit dem System wie in der vorangegangenen Ubung.

    36 Erlautern Sie, inwiefern das Resultat des Testsystems sl test1.slxdie Losung des Anfangswertproblems

    y(t) = x(t), y(0) = 0.

    reprasentiert. Was ist in diesem Fall die Storfunktion x(t), was dieLosung y(t)?

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 53

  • Dynamische Systeme - Drei Beispiele

    Drei Beispiele:

    Eine ungedampfte harmonische Schwingung:

    y(t) = y(t), y(0) = 1, y(0) = 0.

    DEr RC-Tiefpass:

    T y(t) + y(t) = x(t), T := 1RC

    Schnelle mechanische Oszillationen in Luft oder Flussigkeiten:

    mx(t) + b sgn(x(t)) x2(t) + cx(t) = 0.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 54

  • Ubungen

    37 Entwerfen Sie ein Simulink-System zur Losung der nichtlinearenDifferentialgleichung

    (t) = gl sin((t)), (0) = a0, (0) = a1

    des mathematischen Pendels (d.h. um das dynamische Verhalten desmathematischen Pendels zu simulieren).

    38 Entwerfen Sie ein Simulink-System zur Losung des folgendenAnfangswertproblems dritter Ordnung:

    ...y (t) + 3y(t) + 4y(t) + 2y(t) = 0, y(0) = 1, y(0) = 1, y(0) = 0.

    39 Losen Sie mit einem geeigneten Simulink-System dasDifferentialgleichungssystem:

    y1(t) = 3y1(t) 2y2(t), y1(0) = 1,y2(t) = 4y1(t) + 2y2(t), y2(0) = 1.

    Vergleichen sie die numerische Simulink-Losung mit einer exaktenLosung, die Sie entweder von Hand oder mit Hilfe der Symbolic MathToolbox bestimmen.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 55

  • Methoden der Vereinfachung von Simulink Systemen

    Methoden: Der function-Block (Fcn)

    Erzeugung von Subsystemen

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 56

  • Ubungen

    40 Vereinfachen Sie das Simulink System zur Losung von Ubung(39), in dem Sie geeignete Subsysteme erzeugen.

    41 Vereinfachen Sie das Simulink System zur Losung von Ubung(39), in dem Sie geeignete Fcn-Blocke verwenden.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 57

  • Interaktion mit MATLAB - ein Uberblick

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 58

  • Interaktion mit MATLAB - das Config Parameters Panel

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 59

  • Ubungen

    42 Entwerfen Sie ein Simulink-System zur Losung der linearenDifferentialgleichung

    my(t) + 2y(t) + 4y(t) = F(t), y(0) = 1, y(0) = 0.

    Diese Gleichung modelliert die Bewegung eines schwingenden Objekts derMasse m, welche durch eine auere Kraft F(t) gestort wird.Verwenden Sie in einem ersten Experiment eine Sprungfunktion fur dieModellierung der Kraft F(t). Der Ubergang von 0 (keine Krafteinwirkung) nachc (konstante Krafteinwirkung) sollte zum Zeitpunkt t0 > 0 erfolgen. VerwendenSie Workspace Variablen, um das System zu parametrisieren.

    43 Losen Sie das Problem der vorangegangenen Ubung (42) nochmals, indem Sieein neues Simulink-System entwerfen, welches die auere Kraft F(t) mit einemFrom Workspace-Block von MATLAB einliest und welches die Losung in einemTo Workspace-Block an MATLAB zuruckliefert.

    44 Losen Sie das Problem der vorangegangenen Ubung(42) nochmals, indem Sieein neues Simulink-System entwerfen, welches die auere Kraft F(t) mit einemInport einliest und welches die Losung mit einem Outport an MATLABzuruckliefert.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 60

  • Interaktion mit MATLAB - Datenaustausch mit Funktionen

    Setze die Parameter eines Simulink-Systems mit set param:% Be i sp i e l : Setze den Parameter StopTime des Systems s l Pende l auf 30 set param ( sl Pendel , StopTime , 30 )

    % Be i sp i e l : Setze den Parameter Gain des Blocks Gain des Systems s l Pende l auf 1 set param ( sl Pendel / Gain , Gain , 1 ) ;

    % Be i sp i e l : Setze den Parameter Gain des Blocks Gain des Systems s l Pende l auf g / l g = 9 .81 ; % Erdbeschleunigung l = 25; % Pendellange

    set param ( sl Pendel / Gain , Gain ,num2str(g / l ) ) ;

    Bestimme die Parameter eines Simulink-Systems mit get param:% Be i sp i e l : E rm i t t l e den Parameter StopTime des Systems s l Pende l get param ( sl Pendel , StopTime )

    % Be i sp i e l : E rm i t t l e den Parameter Gain von Block Gain im System s l Pende l set param ( sl Pendel / Gain , Gain ) ;

    % Be i sp i e l : E rm i t t l e den i n i t i a l cond i t i on Parameter des I n t eg ra t o r% Blocks des Systems s l Pende l

    set param ( sl Pendel / Integrator1 , I n i t i a lCond i t ion ) ;

    Beachte: Das funktioniert auch aus MATLAB-Funktionen heraus!

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 61

  • Ubungen

    45 Greifen Sie das Simulink-System der vorangegangenen Ubung(42) nochmlas auf und und verandern Sie die Parameter mitset param bevor Sie das System starten.

    46 Offnen Sie das Simulink-System sl Pendel2.slx derBegleitsoftware. Dieses System simuliert das mathematischePendel.Andern Sie den Parameter pendellaenge mit set param einmal auf5 m und dann auf 8 m bevor Sie die Simulation starten.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 62

  • Interaktion mit MATLAB - das sim-Kommando

    Das sim-Kommando

    simuliert (ein geoffnetes) Simulink-System

    kann ein Simulink-System uber seine Parameterliste initialisieren

    liefert die Simulationsergebnisse uber einen Ruckgabeparameter(das Simulink.SimulationOutput-Object) zuruck

    geloggete Signale (siehe Data Import/Export-Panel) konnen in dasSimulationOutput-Object integriert werden

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 63

  • Das sim-Kommando - das Config Parameters Panel

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 64

  • Das sim-Kommando - Automatisierung von Simulink Simulationen

    Automatisierung von Simulink Simulationen mit sim - ein Beispiel:function [ ze i t , simuerg ] = simPendel2 ( pendellaenge )

    % Offene das Simul inkSystem , f a l l s es n i ch t o f fen i s topen ( sl Pendel2 . slx ) ;

    % Setze d ie Gain Block Parameterg = 9 .81 ; % Erdbeschleunigung mi t set paramset param ( sl Pendel2 / Gain , Gain ,num2str(g / pendellaenge ) ) ;

    % Simu l ie re das Simul inkSystem mi t sim% S t e l l e s icher , dass sim ein Simul ink . Simulat ionOutputObject% zu r u c k l i e f e r t , indem der Parameter SaveOutput auf on gese tz t wi rd% (wenn sim nur mi t des Simul inkSystem Namen ges t a r t e t wird ,% wird nur der Ze i t v ek t o r z u r u c k ge l i e f e r t )

    simOut = sim ( sl Pendel2 , SaveOutput , on ) ;

    % Gre i fe mi t der getMethode auf d ie Resu l ta te zu% und speichere Sie i n den Ausgangsvariablen% der Funkt ion simPendel2

    ze i t = simOut . get ( t ) ;simuerg = simOut . get ( yout ) ;

    Beachte: Das System sl Pendel2 kann mehrere Male in dieser Form gestartet werden.Dazu kann eine for-Schleife verwendet werden, die die Resultate in Matrizen oder CellArrays speichert!!

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 65

  • Ubungen

    47 Schreiben Sie eine MATLAB-Funktion, mit der das Simulink-Systemsl Pendel2.slx fur einen gegebenen Vektor von Pendellangendurchsimuliert werden kann.

    48 Entwerfen Sie ein Simulink-System, welches sinusoidale Signale mitHilfe des Generator-Blocks Sine Wave erzeugt.Schreiben Sie dann eine MATLAB-Funktion, mit der Sie dieses Systemmehrere Male aufrufen konnen, wobei die Frequenz des Sinus variiertwerden soll.

    49 Entwerfen Sie ein Simulink-System, welches das Anfangswertproblem

    y(t) + y(t) + y(t) = f (t), y(0) = 0, y(0) = 0.

    lost.Die Funktion f (t) sollte eine Sprungfunktion (verwenden Sie denStep-Block) mit Sprunghohe h sein.Schreiben Sie dann eine MATLAB-Funktion, mit der Sie dieses Systemmehrere Male aufrufen konnen, wobei der Parameter h variiert werdensoll.

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 66

  • Kennlinien und Kennfelder (Look-Up Tables)

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 67

  • Kennlinien und Kennfelder (Look-Up Tables) - ein Beispiel

    Strom-Spannungs-Charakteristik einer Solarzelle:

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 68

  • Ubungen

    50 Betrachten Sie die folgende Kennlinie:

    k(x) =

    0 fur x < 0,x fur x [0, 4],

    2 fur x > 4.

    Entwerfen Sie ein Simulink-System, welches diese Kennlinie mit einem 1-DLookup Table realisiert. Regen Sie den Kennlinienblock mit einem Sinussignalan und analysieren Sie das Ausgangssignal. Experimentieren Sie mitverschiedenen Amplituden des Sinussignals.

    51 Betrachten Sie das folgende Kennfeld:

    k(x, y) = x2 + y2 fur x, y [1, 1].Entwerfen Sie ein Simulink-System, welches diese Kennlinie mit einem 2-DLookup Table realisiert. Aktivieren Sie sodann die Kennlinie an den Punkten(x, x) mit x [1, 1]. Entwerfen Sie zu diesem Zweck ein geeignetesEingangssignal. Dieses Eingangssignal sollte mit einem From Workspace-Blockeingelesen werden. Konsultieren Sie bitte bezuglich der Parametrisierung des2-D Lookup Table die Anweisungen, die fur die Parametrisierung einesdreidimensionalen Plots notwendig sind (z.B. die Funktion meshgrid)!

    Prof. Dr. Ottmar Beucher MATLAB und Simulink - Universiti Malaysia Pahang September 2013 69

    Was ist MATLAB ?Erste Schritte in MATLABArithmetische OperationenLogische und relationale OperationenMathematische FunktionenGrafikfunktionenI/O-OperationenElementare Matrix-OperationenMATLAB-Scripts und MATLAB-FunktionenMATLABs SprachkonstrukteFunction handlesLsung gewhnlicher Differentialgleichungen mit MATLABDie Symbolic Math ToolboxWas ist Simulink?Simulation dynamischer SystemeSimulink Systeme vereinfachenSimulinks Interaktion mit MATLABKennlinien und Kennfelder (Look-Up Tables)