WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Beschleunigungssignal integrieren

 

lbernhard
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 19.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2017, 15:32     Titel: Beschleunigungssignal integrieren
  Antworten mit Zitat      
Hallo Leute,

nach langem Suchen wende ich mich jetzt an euch.
Ich habe ein gemessenes Beschleunigungssignal das ich gerne integrieren möchte um die Geschwindigkeit zu erhalten.
Bisher bin ich nur auf trapz und cumtrapz gestoßen. Jedoch habe ich entweder nur einen Wert erhalten oder eine Gerade erhalten.

Parameter:
a=Beschleunigung
t=zeit

Normalerweise sollte es ja mit....

v=trapz(t,a) %a integriert nach t =>Geschwindigkeit v

funktionieren....
Jedoch bekomme ich mit
plot(t,v)
eine Gerade. Sad
Kann mir jemand einen Matlab Code sagen der mir das Integral liefert?
Im Anhang hab ich euch eine jpg mit dem Beschleunigungssignal angehängt.

Falls einer von euch mir da weiterhelfen kann, wäre ich sehr dankbar!

Grüße
Bernhard

Beschleunigungssignal.jpg
 Beschreibung:

Download
 Dateiname:  Beschleunigungssignal.jpg
 Dateigröße:  26.03 KB
 Heruntergeladen:  430 mal
Private Nachricht senden Benutzer-Profile anzeigen


AndyydnA

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2017, 15:47     Titel:
  Antworten mit Zitat      
Da musst du schon etwas Code liefern, damit dir jemand sagen kann, wo dein Fehler im Code steckt. Am besten gleich den kompletten Code vom Einlesen der Beschlöeunigungsdaten (ggf. die ersten paar hunder samples) bit finalem plot
 
lbernhard
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 19.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2017, 15:59     Titel:
  Antworten mit Zitat      
Signale werden mittels nCode in MAT Dateien umgewandelt.
Diese haben das Format "struct"

Parametrisierung dieser Dateien geht wie folgt:
t=double(Dateiname(1).data);
a=double(Dateiname(17).data);

Die Daten haben...
2725119 samples
samplerate=1600

Dann wie bereits beschrieben...

v=trapz(t,a)
plot(t,v);

Im Anhang befinden sich die ersten 500 samples


Nützen dir diese Infos?

Messdaten.mat
 Beschreibung:

Download
 Dateiname:  Messdaten.mat
 Dateigröße:  3.57 KB
 Heruntergeladen:  363 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
lbernhard
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 19.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2017, 07:57     Titel:
  Antworten mit Zitat      
Sodale,
darüber schlafen hat wohl was gebracht.. Rolling Eyes

Heut morgen hat es wunderbar geklappt.
Trotzdem vielen dank für die Hilfsbereitschaft.

Das nötige Skript hierzu hab ich trotzdem mal angehängt, falls ein dritter über dieses Thema stolpert.

Integration_Beschleunigungssignal.m
 Beschreibung:
Matlab Skript

Download
 Dateiname:  Integration_Beschleunigungssignal.m
 Dateigröße:  455 Bytes
 Heruntergeladen:  677 mal
a_und_t.mat
 Beschreibung:
Parametersatz

Download
 Dateiname:  a_und_t.mat
 Dateigröße:  155.5 KB
 Heruntergeladen:  413 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Heber
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 01.02.17
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 23.05.2017, 10:02     Titel:
  Antworten mit Zitat      
Lade Die Daten mittels from Workspace in ein Simulink-Modell, integriere hier und schreibe die Daten wieder mit to Workspace in dein Workspace.
Das müsste eig sehr einfach gehen...
Private Nachricht senden Benutzer-Profile anzeigen
 
lbernhard
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 19.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2017, 08:04     Titel: Beschreibung des Sachverhalts
  Antworten mit Zitat      
Sodale,

ich hab jetzt nochmal zur genaueren Schilderung, mein gesamten Vorgehen aufgeführt. Nachfolgend ist mein verwendeter Matlab Code aufgeführt.
Code:

%Skript zur Integration eines Beschleunigungssignals
clear all
close all
clc
%% Plotten des Beschleunigungssignals
load('a_und_t.mat');
% a=Beschleunigung in g
% t=Zeit in s

figure;
hold on
grid on
plot(t,a,'k');
% Variable a hat die Einheit g
title('Beschleunigungssignal');
ylabel('a in m/s^2');
xlabel('t in s');
hold off

%% Integration des Beschleunigungssignals

v=cumtrapz(a,t);    %v = Geschwindigkeit
figure;
hold on
grid on
title('Geschwindigkeit')
plot(t,v,'k');
ylabel('v in m/s');
xlabel('t in s');
hold off

%% Integration des Geschwindigkeitssignals

z=cumtrapz(v,t);    %z = Weg
figure;
hold on
grid on
title('Vertikalbewegung')
plot(t,z,'k');
ylabel('z in m');
xlabel('t in s');
hold off
 

Die im Code aufgeführte "a_und_t.mat" Datei habe ich euch dem Anhang beigelegt. Die durch den Code erhaltenen Plots habe ich ebenfalls angehängt.

Problem hierbei ist, wie bereits genannt, dass ich sehr hohe Wege erhalte. Bei dem ursprünglichen Beschleunigungssignal sind an der Radaufnahme eines Fahrzeuges die Beschleunigungen der Federung gemessen worden. Gegen Ende soll mit diesem Beschleunigungssignal als grobe Näherung die gefahrene Fahrbahn abgebildet werden.

Warum ich das mache?
Ich möchte damit einen in Simulink aufgebauten 2-Massen-Schwinger validieren. Heißt ich will über das gemessene Beschleunigungssignal die Fahrbahn erhalten. Durch Einspeisen dieser Fahrbahn sollen am Ende die gemessenen Beschleunigungen durch den 2 Massen Schwinger wieder raus kommen.

Die Einbindung des integrierten Weges in das Simulink Modell ist ebenfalls noch ausstehend. Zwar habe ich hierbei schon erste Versuche durchgeführt, aber ein Problem nach dem anderen.

Ich hoffe mein Sachverhalt ist gut nachvollziehbar, und dass jemand einen Lösungsansatz hat.
Gruß Bernhard[/code]

Vertikalbewegung.jpg
 Beschreibung:

Download
 Dateiname:  Vertikalbewegung.jpg
 Dateigröße:  21.09 KB
 Heruntergeladen:  370 mal
Geschwindigkeit.jpg
 Beschreibung:

Download
 Dateiname:  Geschwindigkeit.jpg
 Dateigröße:  23.23 KB
 Heruntergeladen:  448 mal
Gemessene Beschleunigung.jpg
 Beschreibung:

Download
 Dateiname:  Gemessene Beschleunigung.jpg
 Dateigröße:  22.19 KB
 Heruntergeladen:  435 mal
a_und_t.mat
 Beschreibung:

Download
 Dateiname:  a_und_t.mat
 Dateigröße:  155.5 KB
 Heruntergeladen:  378 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.05.2017, 08:35     Titel:
  Antworten mit Zitat      
Hallo,

die Reihenfolge der Argumente von cumtrapz stimmt nicht.
Richtig wäre
Code:
v=cumtrapz(t, a);    

und entsprechend für z.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
lbernhard
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 19.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2017, 08:44     Titel:
  Antworten mit Zitat      
Hallo Harald,
vielen Dank für die schnelle Antwort.

Harald hat Folgendes geschrieben:


die Reihenfolge der Argumente von cumtrapz stimmt nicht.
Richtig wäre
Code:
v=cumtrapz(t, a);    

und entsprechend für z.


Wenn ich das mache, bekomme ich eine zunehmende Geschwindigkeit als auch Auslenkung, die wiederum sehr hoch ist.
Die Plots und das Skript habe ich angehängt.

Geschwindigkeit_Arg_vertauscht.jpg
 Beschreibung:

Download
 Dateiname:  Geschwindigkeit_Arg_vertauscht.jpg
 Dateigröße:  19.22 KB
 Heruntergeladen:  370 mal
Vertikalbewegung_Arg_vertauscht.jpg
 Beschreibung:

Download
 Dateiname:  Vertikalbewegung_Arg_vertauscht.jpg
 Dateigröße:  17.22 KB
 Heruntergeladen:  304 mal
Integration_Beschleunigungssignal.m
 Beschreibung:

Download
 Dateiname:  Integration_Beschleunigungssignal.m
 Dateigröße:  711 Bytes
 Heruntergeladen:  341 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.05.2017, 09:13     Titel:
  Antworten mit Zitat      
Hallo,

wenn du dir den Plot der Beschleunigung ansiehst, dann ist das am Anfang relativ konstant bei ca. 0.1, und schwingt auch danach um diesen Wert. Das spricht für eine linear ansteigende Geschwindigkeit.
Falls am Anfang keine Beschleunigung vorliegen sollte, ist vielleicht der Sensor nicht richtig kalibriert?

Übrigens: du schreibst erst, dass die Beschleunigung in g wäre, dann in m/s^2. Das passt nicht zusammen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
lbernhard
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 19.01.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2017, 10:22     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

wenn du dir den Plot der Beschleunigung ansiehst, dann ist das am Anfang relativ konstant bei ca. 0.1, und schwingt auch danach um diesen Wert. Das spricht für eine linear ansteigende Geschwindigkeit.
Falls am Anfang keine Beschleunigung vorliegen sollte, ist vielleicht der Sensor nicht richtig kalibriert?


Durch Mittelung der ersten Werte, die um die Nulllage pendeln, habe ich einen Offset von 0.1087 berechnet. Jedoch gibt es bei den Ableitungen immer noch einen drift nach unten. Allerdings diesmal in die negative Richtung. Das bedeutet wohl, dass der Beschleunigungssensor über der aufgenommenen Zeit nicht um die Nulllage pendelt.
Daher liegst du wohl mit deiner Annahme richtig, dass der Sensor nicht richtig genullt worden ist. Gibt es eine andere Methodik, wie ich das Signal "ausrichten" kann?


Harald hat Folgendes geschrieben:

Übrigens: du schreibst erst, dass die Beschleunigung in g wäre, dann in m/s^2. Das passt nicht zusammen.


Vielen Dank für den Hinweis. D.h. ich muss die Messdaten a*9,81m/s^2 nehmen. Durch das Multiplizieren habe ich den Offset erneut angepasst. Dabei hat sich nun ein Wert von 1.067 ergeben. Dennoch driften die Plots ab.


Die neuen Plots sind angehängt.

gruß Bernhard

Vertkalbewegung_ohne_Offset_1,067.jpg
 Beschreibung:

Download
 Dateiname:  Vertkalbewegung_ohne_Offset_1,067.jpg
 Dateigröße:  18.21 KB
 Heruntergeladen:  386 mal
Geschwindigkeit_ohne_Offset_1,067.jpg
 Beschreibung:

Download
 Dateiname:  Geschwindigkeit_ohne_Offset_1,067.jpg
 Dateigröße:  24.1 KB
 Heruntergeladen:  441 mal
Beschleunigung ohne Offset_1,067.jpg
 Beschreibung:

Download
 Dateiname:  Beschleunigung ohne Offset_1,067.jpg
 Dateigröße:  22.79 KB
 Heruntergeladen:  359 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.