Andreas Ploetzeneder

Arbeiten mit Messkarten anhand von Labview und Matlab

Inhaltsverzeichnis


1.1 Übersicht
1.2 Floating Point Arithmetik und Allgemeine Matlab Grundlagen
1.3 Simulink Grundlagen
1.4 Behandlung eines Dirac Impuls im Freqünzbereich
1.4.1 Aufgabenstellung
1.4.2 Verfahren
1.4.3 Realisierung
1.4.3 Funktionsneuheiten
1.4.4 Wichtige Erkenntnisse
1.5 WAV File
1.5.1 Aufgabenstellung
1.5.2 Verfahren
1.5.3 Realisierung
1.5.3 Funktionsneuheiten
1.5.4 Wichtige Erkenntnisse

2.1 DAQ Hardware mit Matlab nutzen
2.2 DAQ Hardware mit Matlab nutzen
2.3 Data Acquisition mit Matlab
2.3.1 Aufgabenstellung
2.3.2 Realisierung
2.3.3 Erkenntnisse
2.4 Data Acquisition mit Simulink
2.4.1 Aufgabenstellung
2.4.2 Realisierung
2.5 Einführung in LabView
2.5.1 Aufgabenstellung
2.5.2 Grundlagen
2.5.2.1 Probe
2.5.2.2 Highlighting Funktion
2.4.2.3 Unterschied zwischen Indizierter-und Nicht Indizierter Ausgabe
2.4.3 Realisierung
2.4.3.1 Realisierung mit for Schleife
2.4.3.2 Realisierung mit while Schleife
2.4.3.2 Realisierung einer Sinusausgabe mithilfer einer zeitgesteürten While Schleife
3.1 Arbeiten mit dem DAQ Assistent unter LabView 8.5.1

4.1 Messen eines PT Elementes

5.1 Messen einer Schaltungsbrücke
5.2 Drehzahlmessung
5.3 Entfernungsmessung

6.1 Identifikation eines Systems



 




Dies ist eine kostenlose Leseprobe, das gesamte Dokiument erhalten sie um 5€

1.1 Übersicht

Tagebuch 40%
Jede übung muss reproduzierbar sein.
Abschlussquiz 30% (Abschlussübung)
Studierbarkeit 30% (Occassional Homework -> etwas kleines bis zum nächsten Mal)

1.2 Floating Point Arithmetik und Allgemeine Matlab Grundlagen

Matlab Befehl: format long
Die Ausgabe wird in double precission gemacht. Es wirkt sich nicht auf das Rechnen von Matlab aus
Rechnet man 1/3 * 3 und subtrahiert in einem weiteren Rechenschritt 1 so erhält man nicht 0.

.m Files sind Matlab Skripts welche man zur Dokumentation und Wiederholung des Skriptes benutzen kann.
Dies ist bei normaler Eingabe nicht derartig komfortabel möglich.
über File --> New--> Blank M-File lässt sich ein derartiges M-File erstellen.
Nach dem Speichern lässt sich das m File mit der run("Dateipfad") Routine ausführen.


function F = my_fibonacci(upper_bpound)
format long;
F=zeros(upper_bound,1);
F(1)=1;
F(2)=1;
for n03:upper_bound
F(n)=F(n-1)+F(n-2);
end

Matlab erlaubt das F zur Laufzeit zu machen. Somit kann ich mir das
F=zeros(upper_bound,1); sparen. Jedoch ist es perfomanter wenn ich das davor mache und nicht jedes mal in der for schleife.

Gebe ich den upper_bound davor an , so ist es um ca. 1000 schneller. Matlab meldet jedoch wenn es in der Laufzeit immer neu erstellt, ein Warning.

Mit help my_fibonacci kann ich die Kommentare ausgeben welche direkt unter der function angegeben werden.
Mit % kann man kommentieren.
Blöcke in Matlab werden mittels end beendet.

Die Ausgabe erfolgt mit disp ('Hallo Welt');
Mit sprintf kann ich in eine Variable schreiben. result=sprintf('asdf'); schreibt "asdf" in result , lässt man das result= weg, so wird das in ans geschrieben.

In Matlab wird statt default der die Anweisung otherwise verwendet.

Mittels tic und toc kann ich eine Ausgabe verzögern. Mit tic wird die ausgabe gestoppt mit toc wieder eingeleitet.
Mit dem parfor Befehl kann ich For Schreifen Parallel durchführen.
Hierbei ist es relevant den Overhead der Parallelisierung zu beachten.

for n=1:10000 hier wird n um 1 erhöht standardmässig
alternativ kann ich n auch um 2 erhöhen  for n=1:2:10000
Auch negative Schrittweiten für n sind möglich.

1.3 Simulink Grundlagen

Mit simulink wird simulink gestartet. Im Library Browser stehen die verschiedensten Toolboxen zur Verfügung, wobei weitere Toolboxen kommerziell zukaufbar sind. Für IMS sind die Data Acquisition Toolboxes primär relevant.
Simulink schaut welche Hardware an den PC angeschlossen ist und zeigt hier beispielsweise die Soundkarte aber teilweise auch NI Hardware an.

über Simulation -> Configuration Parameter kommt man zu den Configurationsparametern.
Links sieht man ein Karteikartensystem. Für IMS ist Solver relevant. Die Simulationsdauer kann man hier einstellen. Primär wird unterschieden zwischen Fixed-Step und Variable Step.

Jede Simulinkschaltung wird in Diff gleichung umgewandelt. Bei Variable Step wird beispielsweise bei einer Flächenberechnung eines Rechtecksimpuls erkannt dass vor dem Rechteck nichts passiert. Sobald Matlab den Ansprung erkennt nimmt er die Werrte weitaus genaür auf.
Der Nachteil ist, es ist nicht bekannt wieviele werte zur verfügung stehen. Für die Fouriertransformation sollte man wissen wieviele Werte man hat .(z.b. bei einer analogen Wertemessung). Hier hilft der Fixed-Step Solver, so kann genau angegeben werden, in welchem Abstand die Werte ausgelesen werden sollen. So bekomme ich genaü Werte in einem definierten Abstand und weis genau welche Werte ich wie oft erhalte.

Die Solver Einstellungen (Bogacki,...) sind in IMS irrelevant.
Bei Variable-Step ist es möglich, einen maximal Step festzulegen. Hier wird Simulink gezwungen innerhalb dieser Zeit die Messung zu machen.

Bei gleicher Zeit ist Variable-Step im allgemeinen genaür, allerdings weis man nicht genau wie häufig Matlab misst.

1.4 Behandlung eines Dirac Impuls im Freqünzbereich

1.4.1 Aufgabenstellung

Es ist zu beweisen, dass der Dirac-Impuls unendlich im Freqünz bereich ist.

1.4.2 Verfahren

Durch Subtraktion zweier Impulse welche gering voneinanderverschoben sind. Mit Zero-Order-Hold wird dann so abgetastet dass man nur einen Dirac-Impuls erhält.
Geleitet wird nun der Wert in einen Buffer .  mit der FFT wird das ganze vom Zeitbereich in den Freqünzbereich umgerechnet. Im Digitalen hat man keine kont. Werte sondern nur Abtastschritte.  Aufgrund dessen wird bn ei der FastFouriertransformation anstatt der Fouriertransformation angewandt, da diese nicht angewandt werden kann.
Stellt man nun beim Start Step Pulse eine Sample Time von 0,01 so hat man bei einer Simulationszeit 0,256 genau 25,6 Samples.
Zu einem gewissen Zeitpunkt soll ein Step passieren. z.b. 5 Sekunden . Um einen Dirac Impuls zu erzeugen wird die Stop Time mit 5 Sekunden+Sample Time erstellt. Somit überschneiden sich die beiden Rechtecke in der Breite von 0,01. Die Höhe muss 100 sein um eine Fläche  von 1 zu erreichen. Somit ist die Grundcharakteristika eines Dirac Impulses erfüllt.
Dieser Dirac Impuls wird Fouriertransformiert und daraufhin wieder Rücktransformiert, dies ergibt im Ende wieder einen Dirac Impuls. 

1.4.3 Realisierung


Abb. 1 Matlab Schaltbild

Einstellungen der Bauteile:

Start Step Pulse
Stop Step Pulse
Zero Order Hold
Buffer / Buffer 1
Step time: 0.2
Final valü: 1/0.001
Step time: 0.201
Final valü: 1/0.001
Sample time: 0.001

Output buffer size: 256


Gain
Vector Scope (Bauteilnahme)
  
Gain: 1/256

FFT Scope
Time Scope
 




Abb. 2 Dirac Impuls

Abb. 3 Rechtecksimpuls

1.4.3 Funktionsneuheiten

simout schreibt die Werte von der Simulation auf den Workspace und ist eine Struktur welche ich dann im Workspace nutzen kann.
buffer muss auf 256 gestellt werden,damit der Buffer die Werte nach 256 (wenn aufgefüllt)  ausgeschüttet werden und mittels FFT behandelt werden. Bei der Magintude FFT  wird als FFT Length auch 256 gestellt. Erst sobald 256 werte bei diesem Block eintreffen, reagiert der Block und die FFT wird durchgeführt.
gain=1/n wobei n im Beispiel die Anzahl der Buffergrösse ist.

1.4.4 Wichtige Erkenntnisse

Erstellt man eine Datei mittels Matlab 2008b so kann es sein dass  sie mit Matlab 2007b nicht mehr einwandfrei läuft. Es kann nötig sein, gewisse Blöcke neu zu erstellen wenn Fehler auftreten.
Wenn man die Zero-Order Hold so einstellt, dass die Holdzeit schneller ist als die Zeit des Signals, dann wird nicht mehr ein Dirac-Impuls interpretiert sondern ein Rechteckssignal.  Bei einer Fouriertransformation des Rechteckssignals (siehe Abb. 2) erhält man sin(x)/x im Gegesatz zur Fouriertransformation des Dirac-Impuls(siehe Abb. 3), wo man  alle Freqünzen gleichermasssen erhält. Umso höher der Dirac-Impuls und umso feiner die Abtastung, desto mehr Bandbreite hat das Freqünzspektrum des fouriertransformierten Dirac-Impulses. Daraus folgt dass bei einem unendlich hohen Dirac-Impuls mit unendlich feiner Abtastung, wirkl. das ganze Freqünzspektrum zurückgeliefert wird.

1.5 WAV File

1.5.1 Aufgabenstellung

Es sind mehrere Wav Dateien gegeben, deren Amplitude, Freqünz und Form zu bestimmen sind.

1.5.2 Verfahren

Um einen Wav File auszulesen gibt es einen Funktionsblock from wav file. Mit simout lässt sich die wav Datei exportieren in den workspace. Dann kann man mit plot() eine wav Datei auf den Bildschirm ausgben.

1.5.3 Realisierung

home_tone_1.wav
Abb. 4 Die Sounddatei enhält einen Sinus mit der Freqünz ...

home_tone_2.wav
Abb. 5 Die Sounddatei enthält einen überlagerten Sinus mit der Freqünz ...

home_tone_3.wav

Abb. 6 Die Sounddatei enhält einen Sinus mit der Freqünz ...

home_tone_4.wav
Abb. 7 Die Sounddatei enhält einen Sinus mit der Freqünz ...

home_tone_5.wav
Abb.8 Die Sounddatei enthält einen Reckteckimpuls mit der Freqünz ...

1.5.3 Funktionsneuheiten

Der Matlab Befehl wavread('test.wav') entspricht dem from wave file in Simulink.

1.5.4 Wichtige Erkenntnisse

Wenn man die Sounddateien anhört so erkennt man, das die erste Datei einen sehr tiefen gleichbleibenden Ton hat. Die zweite Datei enthält einen Knackser. Die dritte Datei hat einen höheren Ton als die erste Datei. Die vierte Datei ist aufgrund der Freqünz nicht hörbar (plötzi bitte überprüfen). Das Rechteckssignal der fünften Datei ruft ein Brummen hervor.


2.1 DAQ Hardware mit Matlab nutzen

In Matlab hat man die Möglichkeit Hardware über den Befehl hw=daqhwinfo('nidaq') abzufragen. Unter BoardNames findet man die Bezeichnung der Hardware (z.b. USB-9201).
Mit ai=analoginput('nidaq','Dev5')
nidaq bezeichnet den Treiber Dev5 , das Device. Diese Information erhält man über den Befehl daqhwinfo, welcher oben ausgeführt wurde.
Nun muss der Channel 0 hinzugefügt werden. Ein Kanal ist ein Analogeingang der Hardware.Mit addchannel(ai,0) kann man nun den Kanal 0 dem AnalogInput ai hinzufügen.
ai.SampleRate=10000 ist es möglich die SampleRate (engl. Wort für Abtastrate) zu setzen. ai.SamplesPerTrigger gibt die möglichen Samples pro Trigger an.
get(ai) kann man weitere Informationen über den AnalogInput, welcher oben mit ai bezeichnet wurde,  abfragen.Gleichermassen kann man mit set(ai) kann man die einzelnen Informationen setzen.
start(ai) ermöglicht das Starten des AnalogInput ai.wait(ai,2); gibt eine Anzahl der Sekunden zurück die das Programm warten soll.
data=getdata(ai); gibt soviele Werte zurück wie ich mit SamplesPerTrigger festgelegt habe.
plot(data) gibt die Daten am Bildschirm aus.

2.2 DAQ Hardware mit Matlab nutzen


In Simulink gibt es eine DataAquasition Toolbox. Bei Analog Input holt er den gesamten Buffer,bei Analog Single Sample Input holt das Programm nur einen Wert. Klickt man doppelt auf da Analog Input Element, so kommt man  die jeweilige Hardware und die jeweiligen Analog Eingänge selektieren, die man nutzen will. Der Ausgang kann mit einem Demux gesplittet werden. Der Funktionsblock geht davon aus dass er 2 Werte ausgibt ( Stereo).

2.3 Data Acquisition mit Matlab

2.3.1 Aufgabenstellung

Erzeugen Sie mti Hilfe eines Freqünzgenerators ein Sinussignal mit beliebiger Freqünz und Amplitude. Integrieren Sie anschliessend dieses Signal in Matlab(NIDAQ) und ermitteln Sie die Amplitude sowie die Freqünz. Die dazu  benötigte Logik soll übersichtlich in einem .m-file hinterlegt werden.

2.3.2 Realisierung

Am Freqünzgenerator wurde ein Signal von 300Hz erzeugt und mittels DAQ Hardware an den Computer angeschlossen:

Matlab Code zum Auslesen aus dem Analogen Gerät:

daqhwinfo('nidaq')
ai = analoginput('nidaq','Dev1')
addchannel(ai, 0)
ai.SampleRate=10000
ai.SamplesPerTrigger = 10000
start(ai);
data = getdata(ai);
plot(data);

Abb. 9: Ausgabe von plot(data)

Im folgenden das m-File zum Herauslesen der Freqünz:

minamp = min(data);
maxamp = max(data);
text = sprintf('Amplitude: %2.3f bis +%2.3f', minamp, maxamp);
disp(text);
fftresult = abs(fft(data,10000))*2/10000;
fftresult2 = fftresult(1:(length(fftresult)/2));
fftmax = max(fftresult2);
for i = 1:size(fftresult2)
    if fftresult2(i)==fftmax
        freq = i;
    end
end
text = sprintf('Freqünz: %2.0f', freq);
disp(text);

Das Programm gibt aus:

Amplitude: -4.680 bis +4.535
Freqünz: 296

Wir kontrollieren mittels plot(fftresult):


Man sieht, dass unser Programm zum Auslesen funktioniert!

2.3.3 Erkenntnisse

Wenn das Signal eine Amplitude von +-10 Volt überschneidet, so kann dies nicht mehr gemessen werden. Dies bedeutet, dass dieser Wert nicht mehr angezeigt wird. Man sieht im Diagramm folgerlich einen gedämpften Sinus, dessen Maximalwert bei 10 Volt abgeschnitten wird. Weiters ist zu beachten, dass das benutzte Modul NI 9215 Differenzsspannungen misst. Das bedeutet dass die 10 Volt zwischen AI0 und AI1 sind. Folgerlich sind gegen GND nur 5 Volt Maximalwert.


2.4 Data Acquisition mit Simulink

2.4.1 Aufgabenstellung

Lesen Sie das in Aufgabe 1) erzeugte Sinussignal in Simulink ein und führen Sie die FFT durch. Geben Sie jeweils das Signal im Zeitbereich sowie im Freqünzbereich aus.

2.4.2 Realisierung

Erzeugen Sie mti Hilfe e


2.5 Einführung in LabView

2.5.1 Aufgabenstellung

Erstellen Sie ein Programm welches die Summe, ausgehend von einem beliebigen Startwert ,Neürwert=Alterert+Schleifenzähler ausgibt. Berücksichtuigen Sie dass der Startwert nur einmal zur Summe addiert werden darf.

2.5.2 Grundlagen

Bei der Erstellung eines Labview Programms gibt es 2 Bereiche die der Benutzer nutzen kann. FrontPanel und Blockdiagramm. Im FrontPanel sieht man die Benutzeroberfläche die der Nutzer der entwickelten Anwendung ebenfalls sieht. Im Blockdiagramm steckt der Code dahinter. Hierbei ist zu bemerken dass Labview (mit Ausnahme von FormulaNodes,...) grafisch aufgebaut ist. Das bedeutet, das Coding erfolgt ähnlich zu Matlab ebenfalls per Drag&Drop.

 

2.5.2.1 Probe

Zum Debugging bietet Labview die Möglichkeit eine Probe einzusetzen.
Diese kann in der Werkzeugpalette gefunden werden.


Abb 10. Werkzeugpalette

Abb 11. Werkzeugpalette


In Abb. 11 sieht man eine Probe auf eine Leitung gehängt, so kann ausgelesen werden, welcher Wert gerade über die Leitung läuft. Dies ist bei sämtlichen Datentypen (auch selbsterstellten Clustern etc.) möglich.
2.5.2.2 Highlighting Funktion

 


Abb 13. Toolbar

Will man sich einen Gesamtüberblick über ein Programm verschaffen, so ist die Highlight Funktion eine praktische Hilfe. Sie kann in der Menüleiste (symbolisiert durch die Lampe) aktiviert werden. Im Blockdiagramm sieht man während der Laufzeit die Werte durch die Leitungen "laufen". WICHTIG! Dieser Prozess kostet Zeit. Das LabView Programm läuft langsamer als normal. Dies kann bei zeitkritischen Anwendungen zu einem Problem werden.

2.4.2.3 Unterschied zwischen Indizierter-und Nicht Indizierter Ausgabe
Indizierte Ausgabe
Nicht indizierte Ausgabe

Abb. 10 Ansicht im Blockdiagramm


Abb. 10 Ansicht im FrontPanel

Charakteristik

Die Indizierte Ausgabe gibt den akteullen Wert auf den Bildschirm während des Schleifendurchlaufs aus. Das bedeutet in jedem Schleifendurchlauf wird der jeweils aktülle Wert dem Array hinzugefügt. Der Benutzer sieht sämtliche bis dato an dieses Anzeigeelement übergebenen Werte.

Abb. 12


Abb. 13 Ansicht im FrontPanel

Charakteristik

Die Nicht indizierte Ausgabe gibt den akteullen Wert auf den Bildschirm während des Schleifendurchlaufs aus. Das bedeutet in jedem Schleifendurchlauf sieht man den jeweiligen aktüllen wert. Das bedeutet aber auch, dass nur der aktülle Wert gespeichert wird. Der Benutzer sieht nur den aktüllen Wert.

2.4.3 Realisierung


Abb. 14 Oberfläche im FrontPanel
2.4.3.1 Realisierung mit for Schleife
Abb.15
In Abb 33 sieht man das Beispiel realisiert mit einer for Schleife
2.4.3.2 Realisierung mit while Schleife

Abb. 14

Eine while Schleife hat die Eigenschaft dass lediglich TRUE und false abgefragt werden. Das bedeutet, dass die while Schleife beendet wird, wenn i<10 . Wichtig ist hierbei zu beachten, dass es 2 verschiedene Bedingungen gibt unter welcher die Schleife läuft oder nicht läuft.

Abb.15  Stop if false


Abb. 16 Stop if TRUE

Die Abbildungen sind selbsterklärend. Klickt man nun auf
läuft das Pro
2.4.3.2 Realisierung einer Sinusausgabe mithilfer einer zeitgesteürten While Schleife
Zunächst wird wieder eine While Schleife erzeugt:


Abb. 17 Erzeugung einer While Schleife

Durch einen Klick auf den Rahmen kann die Schleife in einer zeitgesteürte While Schleife umgewandelt werden:
Abb. 18 Umwandeln in zeitgesteürte Schleife

Dann erscheinen links und rechts der Scheife Felder mit Eigenschaften. Durch Doppelklick auf das linke Kästchen wird ein Fenster mit den Einstellungen geöffnet, wo wir die Werte auf die der Angabe einstellen:


Abb. 19 Einstellungen der Schleife

Weitere Elemente fügen wir mit einem Rechtsklick hinzu. Wir benötigen Bauteile aus Mathematik, und zwar einen numerischen Multiplizierer und eine trigonometrische Sinusfunktion.

Im Frontpanel erstellen wir ein Signalverlaufsdiagramm und schließen dann die Bauteile wie folgt im Blockdiagramm zusammen:

Abb. 20 Fertiges Blockdiagramm

Nach dem Starten der Simulation wie oben beschieben, zeigt das Frontpanel an:


Abb. 21 Ausgabe des Frontpanels

2.4.3 Erkenntnisse


Wir erkennen, dass das der aktülle Wert des Indizes benutzt wird, um mit dem Faktor 0,01 den Sinus zu berechnen uns auszugeben. Dadurch dass das Signalverlaufsdiagramm innerhalb der Schleife platziert ist, werden die Werte in Echtzeit und nicht gepuffert ausgegeben.



 

3.1 Arbeiten mit dem DAQ Assistent unter LabView 8.5.1

3.1.1 Aufgabenstellung
Es ist eine Diodenkennlinie mithilfe einer NI DAQ-9172 zu messen. Dieses Modul integriert in unserem Fall die Blöke NI 9263 und NI9215 wobei das NI9215 als Messmodul und das NI 9263

3.1.2 Realisierung
Mithilfe von LabView wurde folgende Messschaltung erzeugt. Hierbei wurde eine Spannung ausgegeben und selbige Spannung gemessen. Durch die gemessene Spannung lässt sich unter Wissen des Widerstandes der zugehörige Strom berechnen.


Stellt man nun Spannung und Strom auf einem Diagramm  dar so ist zu erkennen dass der Strom bei einer Spannung von 1,7 Volt eklatant ansteigt.


Da eine Diode kein lineares Baülement ist steigt die Spannung an der Diode eklatant an.


 


4.1 Messen eines PT Elementes

4.1.1 Aufgabenstellung
Zu messen ist ein PT Element bzw. deren resultierende Spannung. Diese Spannung ist der Temperatur gegenüberzustellen und somit ein Temperaturköffizient zu ermitteln.

4.1.2 Benutzes Messelement

Die Datenkarte NI9201 von NationalInstruments zeichnet sich durch 4 Eingänge zur Spannungsmessung aus. Die gemessene Spannung lässt sich dann per Labview verarbeiten.

4.1.3 Realisierung
Mittels LabView und der Datenkarte NI 9201 wurde die Spannung gemessen. Mit Hilfe der Anzeige auf dem Temperaturerzeugenden Bausteins wurde die Temperatur abgelesen. Stellt man nun Spannung und Temperatur gegenüber so kommt man auf folgende Tabelle:

Temperatur

mV

Faktor PT

70,1 1,8 38,94
69,1 1,75 39,48
67,7 1,7 39,82
66,7 1,65 40,42
65,5 1,6 40,93
64 1,55 41,29
63 1,5 42
61,5 1,45 42,41
60,5 1,4 43,21
59,1 1,35 43,7
57,1 1,3 43,92
64,02 1,55 41,30


Gemessen wurde dies mit folgender LabView Schaltung:


Die Werte wurden in zwei Textfiles gespeichert, das Auswerten gestaltete sich allerdings etwas schwierig. Deswegen wurde die oben gezeigte Excel Tabelle zur grafischen Auswertung verwendet:


Es zeigt sich, das der Temperaturköffizient nicht ganz linear ist. Bei einer Verwendung der Spannung zur Temperaturmessung müsste also ein Korrekturfaktor eingebaut werden.

5.Labor, Donnerstag 04. Juni 2009

5.1 Messen einer Schaltungsbrücke

5.1.1 Aufgabenstellung
Es ist die Verwendung 4 DMS Streifen in einer Vollbrückenschaltung und die Verstärkung des Ausgangsmesswertes mittels eines OPV mit der Verstärkung 100. Zu messen die Ausgangsspannung bei unterschiedlicher Gewichten.


5.1.1 Messerkenntnisse
Nun wurde die Spannung bei angehängten Gewichten gemessen:

Gewicht [kg] Spannung[V]
0 0,05
0,1 0,95
0,2 1,97
0,3 2,95
0,5 4,97
0,6 5,97
0,7 7
0,8 7,99
1 9,7
1,1 10,8
1,2 11,8

Aus den Werten erzeugen wir einen Graphen, der uns den linearen Zusammenhang zwischen angehängtem Gewicht und Spannung zeigt.



Die DMS Messstreifen verhalten sich linear, durch die Vollmessbrücke wird aus dem Widerstandswert eine Spannung.


5.2 Drehzahlmessung

5.2.1 Aufgabenstellung


5.2.1 Messerkenntnisse

Spannung Motor in Volt Spannung Generator in Volt Spannung Drehzahl 1V/1000min Hz Drehzahl
2,5 0,67 0,12 120
3 1,15 0,21 205
3,5 1,62 0,29 285
4 2,1 0,38 375
4,5 2,57 0,46 450
5 3,05 0,55 550
5,5 3,57 0,64 640
6 4 0,72 715
6,5 4,49 0,81 800
7 4,96 0,89 880
7,5 5,44 0,98 970
8 5,94 1,06 1050
9 6,92 1,24 1200
10 7,88 1,4 1390
11 8,78 1,57 1550
12 9,72 1,74 1725

Hieraus ergibt sich folgendes Diagramm:




5.3 Entfernungsmessung

5.3.1 Aufgabenstellung
Mit dem gezeigten Aufbau wurde die durch Induktion erzeugte Spannung gemessen und daraus eine Tabelle erstellt:


5.3.1 Messerkenntnisse

Entfernung Spannung
0 0
0,5 0,71
1 1,47
1,5 2,17
2 2,86
2,5 3,6
3 4,37
3,5 5,13
4 5,81
4,5 6,55
5 7,24

Jetzt werden die Messergebnisse in einem Graphen dargestellt.

Wir sehen, die Kennlinie verläuft linear.

6. Labor und Abschlussübung
Donnerstag 18./25. Juni 2009

6.1 Identifikation eines Systems

6.1.1 Einleitung
Labview bietet die Möglichkeit anhand eines Schaltungsaufbaus, deren Funktionen und Auswertung der Messwerte einer Übertragungsfunktion zu berechnen. Dieses wird am Beispiel einer Temperaturstrecke ausgetestet.

Die Schaltung wird in Labview aufgebaut und funktioniert folgendermaßen:
Mittels der DAQ MX Blöcke wird Spannung auf Kühlung und Heizung des B&R Element angelegt. Der Ventilator soll bei Starten der Simulation dauerhaft kühlen. Vom DAQ Modul wird die Temperatur eingelesen. Die Analog eingelesenen Daten müssen nun in einen Datentyp Signalverlauf umgewandelt werden. Continous SISO erstelllt ein Modell für die reelle Temperaturregelstrecke.



Das B&R Simulationsmodul 4SIM00-01 ist mit 24 Volt zu versorgen. Ein gewisser Grundstrom ist zum Heizen nötig. Als Temperaturabhänigger Widerstand wird ein PT1000 benutzt, um die Temperatur auszulesen. An einer LED am Simulationsmodell kann man erkennen wenn das Bauteil zu heiß ist. In diesem Fall ist die Simulation von LabView abzubrechen. Allerdings haben wir auch in Labview eine Abbruchtemperatur von 69°C eingestellt, darauf wird später noch eingegangen.

NI 9219 (Qülle: ni.com)
Nun werden NI9219 Analog Input Moduls verwendet um Daten einzulesen. Über TEDS (ein Sensorstandard) könnte man Signale der Sensoren einlesen, dieser Standard wird bei uns aber nicht genutzt. Über die Terminals 3, 4, 5, 6 kann man EXO/HI, HI, EXO/LO, LO das Signal einlesen. Terminal 3 und 4 sind für "+" und 5,6 ist für "-". Dies entspricht den Anschlüssen des PT1000.

In LabView ist die Temperatur und nicht die Spannung zu messen. (In der Realität handelt es sich selbstverständlich um Spannungswerte, die Einstellungen müssen lediglich in LabView so gesetzt werden.) Der Widerstand des PT Elements ist standardmässig auf PT1000 zu stellen.

Die Sollwertkurve kann selbst definiert werden, entspricht diese dem Realverhalten so ermittelt LabView ein gutes G(s).

Das Modul 4SIM00-01 bietet zusätzlich auch einen Anschluss der im Falle einer Überhitzung auf High geht. Somit kann beispielsweise mittels Datenkarte dieses Flag eingelesen werden und ein weitererhitzen vermieden werden indem eine Software entsprechend hierauf reagiert.

Der PT1000 Ausgang liegt auf X2 Port 16 und 17 und wird an die NI Karte 9219 bei 3,4,5,6 angeschlossen. Da es sich um eine Messbrücke handelt sind 4 Anschlüsse zu nutzen. Dies geht aus dem ausgegebenen Datenblatt hervor.

Die Ports 14 und 15 auf X2 sind für Heating und Cooling und werden an dem NI 9263 zur Steuerung angeschlossen. Sie simulieren die Anschlüsse für Heizung und Lüfter.

Wichtig ist dass man sowohl auf dem National Instruments und dem B&R Simulationsgerät die gleiche Masse nutzt.


Wenn die obige und die untere Bedingung erfüllt sind(TRUE) wird geheizt.
(Verknüpfung mittels AND Gatter)
Die obere Bedingung wird i%30 zwischen 10 und 30 erfüllt. Die untere Bedingung wird immer zwischen 0 und 10 erfüllt.

Dass heisst i%30 zwischen 0 und 10 ist oben immer FALSE und unten immer TRUE.
Dies bedeutet, dass i%30 zwischen 0 und 10 nie geheizt wird.

Da jede Messung eine Sekunde dauert (eingestellt bei den DAQ MX Elementen 1 Sample pro Sekunde), wird in der Zeit zwischen 0 und 10 Sekunden nicht geheizt.

Selbige Funktion wird nun für das Heizen verwendet wobei die 10 addiert werden.
Wird nun beispielsweise eine Heizdauer von 10 eingestellt, so ist die Summe von 10 und Dauer Heizen 20.
i %30 bewegt sich im Wertebereich 0-29. Die zuvor berechneten 20 sind im Bereich von i%30 0-19 grösser. Das bedeutet dass die untere Bedingung zwischen 10 und 19 TRUE ist.  Das führt zu eine Heizen im Bereich von 10 und 19.
In diesem Beispiel wird zwischen 0 und 10 nicht geheizt
10 und 19 wird geheizt und 20 und 29 wird nicht geheizt.


Die Konstante 120 gibt an wie lang die Simulation maximal läuft wenn der Benutzer zuvor nicht Stop drückt. Überschreitet i diesen Wert wird der Ausgang TRUE gesetzt. Da der Stop Button und diese Bedingung mit OR verknüpft sind muss nur eine der Bedingungen TRUE sein um die Schleife zu beenden. Weiters wird die Schleife abgebrochen wenn eine Temperatur größer 69 gemessen wird.



Nach Beenden der Schleife werden die Ausgänge wieder auf 0 gesetzt. Dies muss seperat gemacht werden. Dass die Funktionsblöcke erst nach der Schleife durchgeführt werden liegt daran dass Eingänge der Analog DBL Blöcke von Eingangswerten aus der Schleife abhängig sind. Diese Daten erhält der Block jedoch erst wenn die Schleife beendet wurde. Erst dann startet er.




Aufgrund der Wiederholung von Messungen bleibt eine Resttemperatur bestehen. Dieser Gleichanteil würde eine Reproduzierbarkeit des Versuchs unmöglich machen. Um dem entgegenzutreten wird mittels LabView der Gleichanteil entfernt. Dies geschieht mithilfe des obigen Funktionsblocks namens  SI Remove Trend.
Mittels der gemessenen Werte G und der hineingesendeten zugehörigen Werte  s kann LabView ein allgemeines System G(s) berechnen.

Um das Heizen und die Temperatur in einem Signalverlaufdiagramm dazustellen muss man beide Signale in ein Diagramm zusammenführen. Hierzu wird die Funktion Array Erstellen genutzt.




LabView bietet fertige Funktionsblöcke um Bodediagramme, Ortskurven und Pol-Nullstellendiagramme zu erstellen. Das Bodediagramm dient uns zur Darstellung des Frequenzgangs, also dem Übertragungsverhaltens eines Dynamischen Systems.

Die Gesamtschaltung sieht also so aus:


6.1.2 Ergebnisse

Wir lassen unsere Simulation nun mit verschiedenen Werten für die Heizdauer jeweils 120 Sekunden laufen. Wir stellen zunächst 10 Sekunden Heizdauer ein:


Wir starten die Simulation und nach Ende der Simulationszeit wird uns die Übertragungsfunktion angezeigt:
 
Das ist eine kostenlose Leseprobe. Hat Ihnen dieses Dokument gefallen und wollen Sie weiterlesen:
So laden sie sich 34 Seiten Inhalt um 5€ herunter.

 

Kommentar hinzufügen

Ihr Name:
Titel:
Kommentar:
You are here: