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

Integration einer Funktion (Geschwindigkeit über Strecke)

 

luna
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 14.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2010, 15:15     Titel: Integration einer Funktion (Geschwindigkeit über Strecke)
  Antworten mit Zitat      
Olá Ihr schlauen Matlabber!

Ich hab folgendes Problemchen:
Ich habe über viele m Files eine Funktion m erzeugt, die mir jetzt als Array vorliegt.
Diese Funktion stellt einen Geschwindigkeitsverlauf über die Strecke dar. Ich möchte das Ganze jetzt gerne integrieren um Geschwindigkeitsverlauf oder erstmal Streckenverlauf über der Zeit zu erhalten.
Problem bei der Sache: m ensteht durch Überlagerung verschiedener Kurven, d.h. es gibt keine Explizite Glechung für m sondern die Daten liegen nur im Array vor. Ich möchte praktisch nur aus dem v/s-Diagramm ein s/t-Diagramm/ v/t-Diagramm machen.

Ode berechnet mir soweit ich weiß ja nur die Fläche unter der Kurve, hilft mir hier also glaub ich wenig weiter....
Weiß jemand von Euch eine Lösung? Möglichst ohne das Ganze mit SIMULINK zu lösen???

Tausend Dank shconmal im Voraus,

luna
Private Nachricht senden Benutzer-Profile anzeigen


monica
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2010, 16:12     Titel:
  Antworten mit Zitat      
probier mla mit der curve fitting toolbox.

dort gibt es bei fitting --> new fit die möglichkeit als "interpolant" zu fitten, d.h. es muss keiner funktion folgen.

danach findest du bei "analysis" die möglichkeit bequem zu integrieren...
Private Nachricht senden Benutzer-Profile anzeigen
 
luna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 14.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2010, 16:22     Titel:
  Antworten mit Zitat      
ja dankeschön, wirklich lieb von Dir, aber dann muss ich ja doch in simulink arbeiten, oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Monica123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2010, 23:49     Titel:
  Antworten mit Zitat      
nein, die cftool box gibts in matlab

Code:
 
luna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 14.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2010, 09:32     Titel:
  Antworten mit Zitat      
oh das wusste ich nicht, dankeschön!

jetzt ist das Problem, glaube ich, dass ich Version 2007b arbeiten muss, ich glaube da gibts die toolbox nicht, oder die ist nicht standardmäßig bei matlab dabei, oder - was auch möglich ist - ich bin zu doof sie zu finden, ich find nur basic fitting ...

weißt du weiter?
wäre echt lieb, komm mir shcon ein bisschen doof vor...Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2010, 11:02     Titel:
  Antworten mit Zitat      
Guck Dir mal die Hilfe-Seiten zu cumtrapz, trapz, und cumsum. Irgendwas davon müsste eigentlich zu Deinem Problem passen.
Private Nachricht senden Benutzer-Profile anzeigen
 
luna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 14.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2010, 11:13     Titel:
  Antworten mit Zitat      
ok gut, bin gleich dabei, danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.06.2010, 17:59     Titel:
  Antworten mit Zitat      
Hallo,

ich würds so sehen. Gegeben sind Vektoren s und v(s).
Für jedes s-Intervall würde ich folgendes sagen:
v_av ~ (v(s1) + v(s2))/2 % Durchschnittsgeschw.
ds ~ s2 - s1

Dann ist
dt = ds/v.

In MATLAB:
Code:
v_av = (v(1:end-1) + v(2:end))/2;
ds = diff(s);
dt = ds./v_av;
t = cumsum([0, dt]);

t-s und t-v sollten dann die gewünschten Diagramme sein, mit den originalen s und v.
Natürlich sind das nur (ungetestete) Näherungen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 14.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2010, 09:05     Titel:
  Antworten mit Zitat      
Hallo Zusammen,
also mit trapz komme ich leider nicht weiter, ich glaube der berechnet mir immer gleich die ganze Fläche unter der Kurve und damit kann ich leider nichts anfangen.


Harald, sorry, hab deine Nachricht grad erst gesehen, werd gleich mal testen und Feedback geben, vielen Dank!!!

luna
Private Nachricht senden Benutzer-Profile anzeigen
 
luna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 14.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2010, 08:24     Titel:
  Antworten mit Zitat      
Also, Dein Code hat mich jetzt auf die Idee gebracht das als function zu schreiben. Mit etwas Hilfe habe ich ein function File für das Integral geschrieben und das drüberlaufen lassen.
Danke für den Denkanstoß!
Private Nachricht senden Benutzer-Profile anzeigen
 
luna
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 14.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2010, 17:02     Titel: Problem mit integrier-function
  Antworten mit Zitat      
Hallo, habe doch wieder ein Problem.....Sad
habe ja eine function, die für mich das integrieren übernimmt, sieht so aus:
Code:
function Yint=integriere(y,x)
Yint=zeros(size(y));
for n=2:length(y)
     Yint(n)=Yint(n-1)+0.5*(y(n)+y(n-1))*(x(n)-x(n-1));%
end
end
 


da ist jetzt alles prächtig, wenn ich irgendwelche funktionen zum integrieren eingebe, ... wenn ich aber meinen array der eine blockfunktion mit übergängen formuliert mit tanh als y einspeise, bekomme ich unglaublich hohe y Werte heraus, die einfach nicht stimmen, habt ihr eine ahnung woran das liegen könnte???
bin mal wieder ratlos
dankeschön, luna
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 - 2025 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.