einführung in scilab - mdt: startseite · 1-inhalt 1 einführung 2 matrizen 3...
TRANSCRIPT
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
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- 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- 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
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