Matlab < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 08:31 Fr 08.04.2005 | Autor: | bernd79 |
Hallo, ich soll ne Diplomarbeit mit Matlab machen und bin gerade dabei, mich in Matlab einzuarbeiten(absoluter Anfänger).
Frage: ich möchte Messdaten in Echtzeit über eine Schnittstelle einlesen und dann verarbeiten. Geht das mit Matlab? Ist dazu Simulink nützlich?
Gibt es auch die Möglichkeit, ein Fenster Programmieren (ähnlich wie in Labview) das jeder einfach bedienen kann?
Danke!!
bernd
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:07 Mi 13.04.2005 | Autor: | Hyco |
Hallo,
bin auch noch recht neu in Matlab, aber muss damit auch gerade nen Projekt machen,... aber ich denke ich kann Dir sagen, dass Du am besten mit Simulink arbeitest, das ist wohl recht aehnlich wie Labview oder Diadem,... in Matlab selbst kannst Du so genannte GUI erstellen, aber in wie weit man da Daten kontinuierlich auslesen kann weiss ich nicht. Ein GUI ist eine Benutzerflaeche fuer ne Komfortablerer Eingabe von Daten,... am besten Du schaust mal auf der Webseite von Mathworks, dort gibt es wirklich gute Einfuehrungstutorials,... so weit ich weiss auch in Simulink, damit kann man dann recht einfach in Matlab zurecht kommen. Es gibt auch noch eine Toolbox die heisst external Interfaces, da sollte man vielleicht auch Daten lesen koennen,
hoffe ich konnte Dir nen bissle weiterhelfen,
Hyco
|
|
|
|
|
Hi!
In unsrem Messtechnik-Labor haben wir das so gemacht:
Wir benutzen den Analog-digital Wandler Adwin Gold Box.
Auf dessen Echtzeit-Mikroprozessorsystem läuft die BASIC-ähnliche Programmiersprache ADbasic. Die Verbindung zum PC wird per USB hergestellt.
In Matlab kann man das ADwin System steuern, also die Box hochfahren, konfigurieren, Programme auf der Box laufen lassen (also Messungen starten/abbrechen), und Daten (Vektoren, Variablen und Matrizen) zwischen den Computer und der Gold Box austauschen.
Die wichtigsen Befehle für die Adwin Box lauten:
m_boot startet die Box
messen(Abtastintervall in Mikrosekunden, Anzahl Messpunkte)
Also beispielsweise um Kanal A und Kanal B auszulesen, mit dem Abtastintervall 200 Mikrosekunden und 500 Messpunkten, Messvektoren abspeichern als M1 und M2:
[M1,M2]=messen(200,500);
Vorsicht, angeblich gibt es Probleme mit Matlab wenn es mehr als 1000 Messpunkte gibt.
Nach dem Einlesen liegen die Daten digital vor, also als ganze Zahlen von 0 bis 255. 0 entspricht -10V, 128 sind 0V, und 255 entspricht +10V
Jetzt muss diese Umformung gemacht werden, und ein Zeitvektor konstruiert werden.
Ich hab eine Matlab m-file dafür geschrieben, aber ich weiß nicht ob es auch fehlerlos funktioniert:
% Interpretieren von digitalen Werten
% Eingabe: auswert(Abtastperiode,Anzahl Messpunkte)
% wobei die Abtastperiode in Mikrosekunden einzugeben ist.
% Ausgabe: u1, u2 und Plot von beiden Kanälen
function[u1,u2]=auswert(ta,anzahl)
[mess1,mess2]=messen(ta,anzahl);
anzahl_bits=16; %Die Golden Box hat eine Auflösung von 16 Bit
stufen=2^anzahl_bits;
u1=(mess1 - stufen/2) / (stufen/2) * 10; %Maximalwert: +/-10V
u2=(mess2 - stufen/2) / (stufen/2) * 10;
t=linspace(0,(anzahl-1)*ta/1000000,anzahl);
plot(t,u1,t,u2);
xlabel('Zeit in Sek');
ylabel('Abtastwerte in V');
title('Digitale Messung der Eingangsspannung');
grid on;
|
|
|
|