Einführung in Scilab - MDT: Startseite · 1-Inhalt 1 Einführung 2 Matrizen 3...

41
Einführung in Scilab Rechenübung zu Grundlagen der elektronischen Messtechnik (MT I) Mahmoud Felk Dipl.-Ing. Sebastian Nowoisky Prof. Dr-Ing. Clemens Gühmann Vorgetragen durch Tom Piechotta und Severin Sander Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Institut für Energie und Automatisierungstechnik Fachgebiet Elektronische Mess- und Diagnosetchnik http://www.mdt.tu-berlin.de

Transcript of Einführung in Scilab - MDT: Startseite · 1-Inhalt 1 Einführung 2 Matrizen 3...

Einführung in ScilabRechenübung zu Grundlagen der elektronischen Messtechnik

(MT I)

Mahmoud FelkDipl.-Ing. Sebastian Nowoisky

Prof. Dr-Ing. Clemens Gühmann

Vorgetragen durch Tom Piechotta und Severin Sander

Technische Universität BerlinFakultät IV Elektrotechnik und Informatik

Institut für Energie und AutomatisierungstechnikFachgebiet Elektronische Mess- und Diagnosetchnik

http://www.mdt.tu-berlin.de

1- Inhalt

1 Einführung

2 Matrizen

3 Graphische Darstellung in Scilab

4 Scilab als Programmiersprache

5 Statistik mit Scilab

6 Polynome und Übertragungsfunktion

7 Xcos

Folie 2 / 36 WS 2013/2014

2- Einführung

Was ist Scilab?

Tool für numerische Berechnungen

Numerischer und grafischer „Taschenrechner“Basiert auf einem InterpreterToolboxen erweitern die GrundfunktionalitätDie grundlegende Datenstruktur von Scilab ist die Matrix

Folie 3 / 36 WS 2013/2014

2- Einführung

Was ist Scilab?

Tool für numerische BerechnungenNumerischer und grafischer „Taschenrechner“

Basiert auf einem InterpreterToolboxen erweitern die GrundfunktionalitätDie grundlegende Datenstruktur von Scilab ist die Matrix

Folie 3 / 36 WS 2013/2014

2- Einführung

Was ist Scilab?

Tool für numerische BerechnungenNumerischer und grafischer „Taschenrechner“Basiert auf einem Interpreter

Toolboxen erweitern die GrundfunktionalitätDie grundlegende Datenstruktur von Scilab ist die Matrix

Folie 3 / 36 WS 2013/2014

2- Einführung

Was ist Scilab?

Tool für numerische BerechnungenNumerischer und grafischer „Taschenrechner“Basiert auf einem InterpreterToolboxen erweitern die Grundfunktionalität

Die grundlegende Datenstruktur von Scilab ist die Matrix

Folie 3 / 36 WS 2013/2014

2- Einführung

Was ist Scilab?

Tool für numerische BerechnungenNumerischer und grafischer „Taschenrechner“Basiert auf einem InterpreterToolboxen erweitern die GrundfunktionalitätDie grundlegende Datenstruktur von Scilab ist die Matrix

Folie 3 / 36 WS 2013/2014

2- Einführung

Die Benutzerschnittstelle

Abbildung: Scilab Konsole

Folie 4 / 36 WS 2013/2014

2- Einführung

Interaktive Eingabe von Kommandos

Eingabe der Kommandos hinter dem Prompt -->

Starten der Berechnung mit ReturnAusgabe des Ergebnisses erfolgt in der nächsten ZeileUnterdrücken der Ausgabe mit Semikolon (;)Zuweisung von Ergebnissen zu Variablen mit (=)

--> 1 + 2ans =

3.

-->

--> 1 + 2;

-->

-->a=1 + 2a =

3.

-->

Folie 5 / 36 WS 2013/2014

2- Einführung

Variablen

Scilab benötigt keine VariablendeklarationenDer Typ einer Variable wird automatisch bei der ZuweisungfestgelegtScilab kann nur mit Variablen rechnen, die einen numerischen WertrepräsentierenEs wird zwischen Groß- und Kleinschreibung unterschiedenVariablen müssen immer mit einem Buchstaben beginnen

--> a = 1; b = 2;

--> c=a+bc=3.

-->

--> a = 1;

--> a+b!--error 4

Undefinierte Variable: b-->

Folie 6 / 36 WS 2013/2014

2- Einführung

Aufruf von Funktionen

Funktionen sind Makros, die Eingabeparameter verarbeiten undeinen Wert zurückliefernScilab verfügt über eine Vielzahl an eingebauten FunktionenDas Schreiben eigener Funktionen wird bei Scilab Programmierunggenannt

-->sqrt(4)ans=

2

-->

Die Vordefinierte Funktionensum prod length size max minsqrt mean sin asin cos acostan atan sinh asinh cosh acoshtanh atanh exp log log10 log2

Folie 7 / 36 WS 2013/2014

2- Einführung

Wichtige Befehle

help startet die Scilab-Hilfe.pwd zeigt den aktuellen Pfad an.clear löscht alle selbstdefinierten Variablenclc löscht die Scilab-Konsolechdir(<neue Pfad>) wechselt den aktuellen Pfad in denangegebenen Pfad <neue Pfad>.save(dateiname, a1, a2,...) speichert die Variablen a1,a2,. . . , die im Workspace gespeichert sind, in der Datei (dateiname).load(dateiname) lädt die Variablen, die in der Datei (dateiname)mit dem Befehl save gespeichert sind, hoch.who zeigt die gesamte Variablen, die im (Workspace) definiert sind.who_user zeigt die Variablen, die vom Benutzer definiert wurden.Kommentare werden mit einem führendem ( \\ ) eingeleitet.

Folie 8 / 36 WS 2013/2014

2- Einführung

Konstanten und OperationenKonstanten

%pi Kreiszahl π

%e Euler’sche Zahl%eps kleinste Zahleps = 2,2202 e16

%s Polynomvariable%inf Unendlich ∞%i imaginäre Einheit

√−1

%nan keine Zahl%t oder %T Wahr (True)%f oder %F Falsch (False)

Operationen* Multiplikation/ Division+ Addition- Subtraktion.* ElementweiseMultiplikation./ Elementweise Division.∧ Elementweise Potentz$ Index der letzten Element.: Bis Ende

Boolesche Operationen~= ungleich <> ungleich, == gleich, > größer, < kleiner, <= kleiner gleich>= größer gleich& und | oder ~nicht.

Folie 9 / 36 WS 2013/2014

2- Einführung

Komplexe Zahlen

Erzeugen

-->Z=-1+%i*2Z =-1. + 2.i

-->

Realteil

-->Re=real(Z)Re =- 1.

-->

Imaginärteil

-->Im=imag(Z)Im =

2.-->

Betrag

-->r=abs(Z)r =

2.236068-->

Konjugiertkomplexe

-->Z_=conj(Z)Z_ =- 1. - 2.i

-->

Argument

-->phi=atan(Im/Re)phi =- 1.1071487

-->

Folie 10 / 36 WS 2013/2014

3- MatrizenMatrix erzeugenMatrix eingeben.

-->M=[1 2 3; 8,9,6;10 0 20]M =

1. 2. 3.8. 9. 6.10. 0. 20.

-->

-->V1=[1 2 3];V2=[8,9,6];-->V3=[10 0 20];M=[V1;V2;V3]M =

1. 2. 3.8. 9. 6.10. 0. 20.

-->

Matrix generieren.

-->eins=ones(2,2)eins =

1. 1.1. 1.

-->

-->null=zeros(2,3)null =

0. 0. 0.0. 0. 0.

-->

-->zufall=rand(2,3)zufall =

0.2113249 0.0002211 0.66538110.7560439 0.3303271 0.6283918

-->

Folie 11 / 36 WS 2013/2014

4- Graphische Darstellung in Scilab

plot-Befehl

clcclearxdel();t=linspace(-%pi, %pi,

100);u=sin(t);plot(t,u);title("Sinusfunktion

ueber den Winkel");xlabel("Winkel in Rad");ylabel("Amplitude");legend("Sinus",pos=2);xgrid(1);

Sinus

-1.0

-0.8

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

0.8

1.0

-4 -3 -2 -1 0 1 2 3 4

Sinusfunktion über den Winkel

Winkel in Rad

Am

plitu

de

Folie 12 / 36 WS 2013/2014

4- Graphische Darstellung in Scilab

plot2d-Befehlplot2d1(x,sin(x),axesflag=2)

-1.0

-0.8

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

0.8

1.0

0 1 2 3 4 5 6 7

plot2d2(x,sin(x),5,axesflag=4)

-1.0

-0.8

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

0.8

1.0

0 1 2 3 4 5 6

plot2d3(x,sin(x),3,axesflag=3) plot2d4(x,sin(x),2,axesflag=0)

Folie 13 / 36 WS 2013/2014

4- Graphische Darstellung in Scilab

Wichtige Befehle

scf(n) aktiviert die Fensternummer n bzw. öffnet sie, falls sie nochnicht existiert.clf() löscht den Inhalt des aktivierten Fenster.xdel() schließt das aktuelle Fenster.winsid() gibt die Nummern der geöffneten Fenstern zurück.gca() gibt die Achsen-Eigenschaften des aktuellen Fenster zurück.subplot(n,m,p) teilt das graphische Fenster in (n x m) bereichauf und aktiviert den Bereich p.gcf() gibt die Fenster-Eigenschaften des aktuellen Fenster zurück.xs2pdf(n,name,O) speichert das Graphikfenster in einer*.pdf-Datei.xs2png(n,name) speichert das Graphikfenster in einer *.png-Datei.

Folie 14 / 36 WS 2013/2014

4- Graphische Darstellung in Scilab

plot3d

t=linspace(0,5*%pi,100);t=t’;u=cos(t)*exp(-t’/10);scf(1);f=gca();f.margins=[.05,.05,.05,

.05]plot3d(t,t,u,100);

0-1.0

-0.8

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

0.8

2

1.0

0 42 4 66 88 1010 1212 1414 1616

Folie 15 / 36 WS 2013/2014

5- Scilab als Programmiersprache

Schleifen und bedingte Anweisungen for i=1:40 // 40 Schleifen

x(i)=i; f(i)=exp(-x(i)/20).*cos(x(i)/2);clf();// Fenster Loeschenplot(x,f,"-*-");//Plotten

end// End der for-Schleife Rumpfxtitle("$\textf(x)=\exp(-x/20)\cdot\cos(x/2)$","x","f(x)");//While-Schleife while(%t)

i=i+1;//Inkrementieren darf man nicht vergessenprintf(string(i)+"\n");

if i==10 thenbreak;

endend

Folie 16 / 36 WS 2013/2014

5- Scilab als Programmiersprache

Eigene Funktionen function [t,U]=sprung(t0,T_s,tr,dt)

[r,e]=argn();if (e ~= 4) then

error("Falsche Anzahl an Argumenten",9)endif tr>T_s then

error("Schwellenzeit ist groesser als die Simulationszeit",9)

endif tr<t0 then

error("Schwellenzeit ist groesser als die Anfangszeit", 9)endt=[t0:dt:T_s]// [Startwert:Schritte:Endwert]U=zeros(1,length(t));ind=find(t>=tr);U(ind)=1

endfunction Folie 17 / 36 WS 2013/2014

6- Statistik mit ScilabWichtige Befehle

grand generiert einen Vektor von Zufallszahlen von verschiedeneVerteilungrand generiert einen Vektor von Zufallszahlenmean berechnet den arithmetischen Mittelwert eines Datensatzesvariance berechnet die empirische Varianzst_deviation berechnet die empirische Standardabweichungtabul berechnet die steigende oder absteigende Häufigkeithistplot zeigt das Histogramm eines Datensatzes an.gsort sortiert einen Datensatzcdfnor berechnet den Wert einer Gauss-Verteilungsfunktionbar für Balkendiagramm-Darstellung

Folie 18 / 36 WS 2013/2014

7- Polynome und ÜbertragungsfunktionBeispiel: Übertragungsfunktion und Bodediagramm

u

ic iR iL

i

C LR

RLC-Parallelschwingkreis

100µF100mH100Ω

C=.1e-3;// Kapazitaet in CL=.1; // Induktivitaet in HR=20e3;// Widerstand in OhmP= poly([1 L/R C*L], ’s’, ’coeff’);TF=syslin(’c’, 1, P);[f,FG]= repfreq(TF, 1, 500)//

Frequenzgang (kompexe Zahlen)[phi, amp]=phasemag(FG);// Phasengang

und Ampletudengang

i = iC + iR + iL

Mit uL = L diLdt , iC = C duL

dt = CL d2iLdt2

und iR =uLR =

LR

diLdt =

LR

diLdt

i = CL d2iLdt2 +

LR

diLdt + iL

Laplace transformation

I(s) = (CL s2 +LR s +1) · IL(s)

Übertragungsfunktion

G(s) = IL(s)I(s) =

1CL s2 + L

R s +1

Resonanzfrequenzω0 =

12π√

LC = 50,33 HzResonanzfrequenz α = 1

2 ·1

RC = 50

Folie 19 / 36 WS 2013/2014

7- Polynome und ÜbertragungsfunktionDarstellung des Bodediagramms scf();subplot(2,1,1);plot2d(’ln’,f,amp,2);title("Das

BodedieagrammRLC-Parallel-schwingkreis",’fontsize’,3)

xlabel("f in Hz",’fontsize’, 3);

ylabel("in db",’fontsize’, 3);

subplot(212);plot2d(’ln’,f,phi,5);ylabel("in grad",

’fontsize’, 3);

-40

-30

-20

-10

0

10

20

30

40

50

10 10 10 100 1 2 3

Das Bodedieagramm RLC-Parallel- schwingkreis

f in Hz

in d

b

-180

-160

-140

-120

-100

-80

-60

-40

-20

0

10 10 10 100 1 2 3

in g

rad

Folie 20 / 36 WS 2013/2014

8- XcosArbeiten mit Xcos

Xcosist ein Tool zur Modellierung und Simulationdynamischer Systeme.löst Differentialgleichungen.besteht aus einem Editor und einer Bibliothekvon vordefinierten Blöcke.wird hauptsächlich in der Reglungs-,Nachrichtentechnik und in derSignalverarbeitung verwendet.wird von Scilab heraus aufgerufen.

Folie 21 / 36 WS 2013/2014

8- XcosXcos-Editor und Platten-Browser

Folie 22 / 36 WS 2013/2014

8- XcosBeispiel: Lösung einer Differentialgleichung 2. Ordnung

u

ic iR iL

i

C LR

RLC-Parallelschwingkreis

100µF100mH100Ω

i = iC + iR + iL

uL = L diLdt , iC = C duL

dt = CL d2iLdt2 und iR =

uLR =

LR

diLdt

i = CL d2iLdt2 +

LR

diLdt + iL

(i− iL) ·1

CL =d2iLdt2 +

1RC

diLdt

d2iLdt2 = (i− iL) ·

1CL −

1RC

diLdt

Folie 23 / 36 WS 2013/2014

8- Xcosd2iLdt2 = (i− iL) · 1

CL −1

RCdiLdt

Folie 24 / 36 WS 2013/2014

8- XcosZeitkontinuierliche Systeme

Folie 25 / 36 WS 2013/2014

8- Xcosd2iLdt2 = (i− iL) · 1

CL −1

RCdiLdt

Folie 26 / 36 WS 2013/2014

8- XcosMathematische Operationen

Folie 27 / 36 WS 2013/2014

8- Xcosd2iLdt2 = (i− iL) · 1

CL −1

RCdiLdt

Folie 28 / 36 WS 2013/2014

8- XcosQuellen

Folie 29 / 36 WS 2013/2014

8- XcosSenken

Folie 30 / 36 WS 2013/2014

8- XcosEinstellungen

Folie 31 / 36 WS 2013/2014

8- XcosEinstellungen

Folie 31 / 36 WS 2013/2014

8- XcosXcos-Ausgabe

Folie 32 / 36 WS 2013/2014

8- XcosScilab-Ausgabe

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

0.00 0.01 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10

Time in s

in A

Folie 33 / 36 WS 2013/2014

Danke für ihreAufmerksamkeit!!~

9- LiteraturQuellen & Literatur

I Scilab Online Hilfehttp://help.scilab.org/docs/5.3.3/en_US/

pinconD.pdfEine Einführung in Scilab http://www.mi.uni-koeln.deheruntergeladen am: 21.03.2009

Arbeiten mit Scilab und Scicos_v1.pdfArbeiten mit Scilab und Scicos http://www.zogg-jm.chheruntergeladen am: 02.11.2008

Einführung-Scilab.pdfEinführung in Scilab und Xcos http://www.mdt.tu-berlin.de/heruntergeladen am: 028.11.2011

Folie 35 / 36 WS 2013/2014

10- Sprechstunde

Falls noch offene Fragen gibt, wenden sie sich bitte andie zuständigen Tutoren.

Wer Wann EmailFeras Alojali Mo 12–13 Uhr [email protected] Cheng Mi 14–15 Uhr [email protected] Cirol Mo 13–14 Uhr [email protected] Erhardt Mo 16–17 Uhr [email protected] Fechner Mi 13–14 Uhr [email protected] Fleig Di 10–11 Uhr [email protected] Franke Di 16–17 Uhr [email protected] Herzberg Do 18–19 Uhr [email protected] Piechotta Mi 14–15 Uhr [email protected] Sander Mo 16–17 Uhr [email protected]

berlin.deChristian Stoll Mi 18–19 Uhr [email protected] Stahl Mi 18–19 Uhr [email protected] Westerheide Mi 18–19 Uhr [email protected]

Folie 36 / 36 WS 2013/2014