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 mit Hilfe des Integrator Blocks

 

klaive

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2012, 00:27     Titel: Integration mit Hilfe des Integrator Blocks
  Antworten mit Zitat      
Confused Sry aber ich muss das Thema nochmal aufwärmen...irgendetwas stimmt doch da nicht. Normalerweise müsste ja bei einem Integral sin ein -cos herauskommen der sowohl negative als auch positive Werte hat, jedoch gibt der Integrator in der ursprünglichen Auslegung nur positive Werte aus. Woran liegts?

Viele Grüße

Integrator.jpg
 Beschreibung:

Download
 Dateiname:  Integrator.jpg
 Dateigröße:  104.86 KB
 Heruntergeladen:  1669 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.01.2012, 00:40     Titel:
  Antworten mit Zitat      
Hallo,

du verwechselst anscheinend Stammfunktion und bestimmte Integrale. Stell dir einfach die Fläche unter dem (Standard-)Sinus vor. Die ist ja bis pi positiv. Von pi bis 2*pi hast du dieselbe Fläche unterhalb der x-Achse, zählt also negativ, und das Integral bis 2*pi ist somit 0.

Anders gesagt:
\int_0^x sin(t) dt = -cos(x) - (-cos(0)) = -cos(x) + 1
was nunmal >= 0 ist.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2012, 10:59     Titel:
  Antworten mit Zitat      
Hey,

erst mal sry für den Doppelthread, und danke für die Antwort Smile
Ich habe gerade erst mit Simulink angefangen...
Wie würde ich denn dann in Simulink umsetzen eine sin-Kurve zu einer -cos-Kurve mit negativen Werten zu machen?

Gruß Jonas
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.01.2012, 11:05     Titel:
  Antworten mit Zitat      
Hallo,

das Problem lag meiner Meinung nach nicht bei Simulink, sondern der Mathematik, aber sei's drum Wink

Du könntest 1 abziehen, oder eine Phasenverschiebung einbauen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2012, 12:14     Titel:
  Antworten mit Zitat      
Also das mit dem sinus zu minus cos klappt jetzt.

Ich habe allerdings ein konkretes Problem und komme da iwie nicht weiter. Es gibt schon andere Threads die in diese Richtung gehen, die mir aber leider nicht weiterhelfen.

Also...ich habe eine Kraft F, teile diese durch die Masse und erhalte eine Beschleunigung in [m/s²]. Liegt hier im Bereich von ca. 10g. Ich wüsste nun gerne was diese Beschleunigung für meinen Körper über der Zeit gesehen für eine Strecke bedeutet, d.h. welche Strecke er nach der Zeit x durch die Beschleunigung zurück gelegt hätte. Dass das mit dem Integrator nicht funktioniert ist mir klar, da ich ja dort nur das Integral nach der Zeit t erhalte. Ich bräuchte quasi zu jedem zeitschritt delta s+s. Ist wahrscheinlich ein mathematisches Problem, aber ich verzweifel da grade dran und brauche dringend Hilfe...

Danke schonmal im Vorraus

Integrator2.jpg
 Beschreibung:

Download
 Dateiname:  Integrator2.jpg
 Dateigröße:  136.91 KB
 Heruntergeladen:  1603 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.01.2012, 12:21     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe die Frage nicht.

Es wäre übrigens sinnvoller, das Simulink-Modell als Modell anzuhängen, damit man ggf. auch damit herumexperimentieren kann.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2012, 13:16     Titel:
  Antworten mit Zitat      
Hier ist das Modell. Man muss zunächst die Initialisierung durchführen und kann dann das Modell starten. Es geht dabei im konkreten um das Subsystem a_y ganz rechts im Modell. Dort soll aus einer Kraft ein Weg hergeleitet werden.

Das Modell stellt einen Körper im Raum dar, der in seinem Schwerpunkt durch Kräfte und Momente in x,y,z Richtung angeregt wird. Mich interessieren nun die aus den Kräften entstehenden Wege in die jeweiligen Raumrichtungen. Das Submodell a_y soll z.B. aus der Kraft in y-Richtung eine Strecke s in y-Richtung über der Zeit erzeugen. Da die Beschleunigung a_y einen oszillierenden Verlauf hat müsste dies auch auf die Geschwindigkeit v und den Weg s zutreffen (s = Zweifach Integral von a)...Durch die Integratoren erhalte ich jedoch nur eine Art aufsummierten Verlauf

Simulink Modell Integrator.zip
 Beschreibung:

Download
 Dateiname:  Simulink Modell Integrator.zip
 Dateigröße:  47.49 KB
 Heruntergeladen:  688 mal
 
Mojo

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2012, 22:32     Titel:
  Antworten mit Zitat      
Hey,

also ich glaube ich habe das gleiche Problem, ich formuliere es mal um:) :
Wie kann man in Simulink eine Funktion integrieren, also so wie man es in Mathe gelernt hat. Integral sin =-cos usw. Man kann sich ja in simulink wie du oben einfach eine sinus Kurve erzeugen...und dann?? Muss ich mir da eine eigene Funktion mit cumsumoder trapz schreiben und wenn ja wie genau sieht das dann aus? Ich muss dazusagen ich bin ebenfalls blutiger Anfänger aber schön das man nicht allein ist;)...

Viele Grüße Lara
 
Harald
Forum-Meister

Forum-Meister


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

wie gesagt: in Mathe hat man gelernt, dass es Stammfunktionen und bestimmte Integrale gibt, und was der Unterschied von ihnen ist.
Simulink berechnet bestimmte Integrale über die Laufzeit. Wenn man möchte, dass das bestimmte Integral gleich der gewünschten Stammfunktion(*) ist, muss man dafür sorgen, dass die Stammfunktion am Anfangszeitpunkt 0 ist oder einen entsprechenden Offset einführen.

(*) es gibt ja nicht nur eine Stammfunktion, zu sin(x) ist -cos(x) + c eine Stammfunktion.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2012, 23:24     Titel:
  Antworten mit Zitat      
Hallo Harald,

Vielen Dank für die rasche Antwort ... wärst du so lieb und könntest für das Beispiel des sin mal ein solches Modell hochladen? Ich wäre dir sehr verbunden Smile und viele andere bestimmt auch

Viele Grüße Lara
 
klaive

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2012, 17:57     Titel:
  Antworten mit Zitat      
Hey,

ich hoffe irgendjemand erbarmt sich und nimmt sich nochmal diesem Thema an, ich steh hier nämlich vor einem für mich momentan nicht lösbaren Problem:

Ich habe in Simulink eine beliebige, mathematisch komplizierte und auf dem Blatt erst mal nicht einfach zu integrierende funktion die von der Zeit abhängig ist [ a(t)]. Die kann ich mir plotten lassen, im workspace als n x 1 array speichern....ABER: Ich bekomme von dieser Funktion einfach nicht das unbestimmte Integral gelöst (ich muss zweimal integrieren um von meiner gegebenen Beschleunigungsfunktion auf den Weg zu kommen). Ich benötige diesen Lösungsweg auch für mehrere unteschiedliche Funktionen, d.h. ich kann mir nicht einfach jedesmal das +c ausrechnen und abziehen. Es sei denn man kann dies allgemein in Simulink mit einbauen...wo ich aber nicht wüsste wie dies gehen soll.
Das bestimmte Integral kann man ja, wie Harald oben schon gesagt hat, einfach mit dem Integraor-Block berechnen. Dies bestimmt allerdings nur die Fläche unter dem Graphen, was mir nichts bringt. Hab's schon mit curve-fitting und anschließendem integrieren versucht, kommt aber das gleiche wie beim Integrator raus....

Ich wär euch wirklich wirklich dankbar wenn ihr mir weiterhelfen könntet, da dies extrem wichtig für mich ist.

Danke schonmal im Vorraus für eure Mühe und viele Grüße
Jonas
 
klaive

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2012, 18:18     Titel:
  Antworten mit Zitat      
achja, embedded matlab function block hat ich mir auch schon überlegt und versucht...ist aber leider bisher auch nix gescheites bei raus gekommen...
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.01.2012, 18:39     Titel:
  Antworten mit Zitat      
Hallo,

ein unbestimmtes Integral scheint mir für solche Anwendungen wenig Sinn zu machen.
Der zurückgelegte Weg z.B. ist ja immer das bestimmte Integral über den entsprechenden Zeitraum.

Zitat:
Dies bestimmt allerdings nur die Fläche unter dem Graphen, was mir nichts bringt.

Das ist nicht korrekt. Der Integrator bestimmt das bestimmte Integral. Man kann einen Anfangswert (Initial Condition) angeben und über diese auch eine Verschiebung erreichen. Der Ausgang eines Integrators kann definitiv auch negativ sein.

Ich mach mal den ersten Schritt:
v(t) = v(t0) + \int_{t0}^t a(\tau) d \tau

Edit: Formel korrigiert.

Dann ist a(t) der Eingang des Integrators, und v(t0) die Initial Condition.

Von v auf s ist genauso.

Grüße,
Harald

Zuletzt bearbeitet von Harald am 07.01.2012, 20:17, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
klaive

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2012, 20:07     Titel:
  Antworten mit Zitat      
Hallo Harald,

erst mal wieder danke für deine Antwort Smile Problem ist, dass ich v(t0) nicht kenne. Mir ist auschließlich der von mir simulierte Beschleunigungsverlauf gegeben... Um mir eine Anfangsgeschwindigkeit zu defenieren könnte ich mir

v = delta a/delta t    mit delta a = a(t=t1=t+deltat) - a(t0)   und delta t = t1 - t0 = t1

bilden.

Meine configuration parameters sind für den Solver: variable step, step size:auto

Allderings hab ich wieder keinen Plan wie ich das umsetzen soll -.-...

Gruß Jonas
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
v = delta a / delta t

Falsche Richtung. v ist Integral von Beschleunigung.

Wenn du die Anfangsgeschwindigkeit nicht kennst und nicht irgendwelche weitere Informationen hast, dann ist es unmöglich, allein aus der Beschleunigung die Endgeschwindigkeit zu bestimmen.

Oft ist jedoch, wenn nichts anderes bekannt ist, vom Ruhezustand auszugehen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.