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

discrete Time integrator

 

guguli
Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2013, 09:31     Titel: discrete Time integrator
  Antworten mit Zitat      
Hallo zusammen,

kann mir einer Sagen wie ich die Funktion discret integrieren kann??

f(x) = sin(x)
alsoich möchte das tun
\int_0^{10} sin(x)dx

THX
Private Nachricht senden Benutzer-Profile anzeigen


guguli
Themenstarter

Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 17:21     Titel:
  Antworten mit Zitat      
ich hab folgendermaßen bis jetzt gemacht:
hab einen Vector erstellt [0:10] dann habe ich jeden einzelnen Punkt berechnet, und die Summe davon ist ja die Fläche unter meiner Funktion. Aber wie kann ich aus diesen Punkten den Graph scopen??? Oder geht das vielleicht einfacher???

THX
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

was soll "discrete integrieren" heißen?

Integrale lassen sich am einfachsten direkt in MATLAB berechnen:
Code:
doc integral
% bzw. falls noch nicht vorhanden: quad statt integral
 


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

Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2013, 22:05     Titel:
  Antworten mit Zitat      
HI, ich will das aber in Simulink machen. Ambesten wäres mit discrete tim integrator block, aber kriege ich nicht hin Sad.. Kannste mir nen Tipp geben?? Ichbin echt seit Tagen dran:(

THX
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
HI, ich will das aber in Simulink machen.

Und warum? Die Aufgabe für sich wäre in MATLAB deutlich einfacher erfüllt.

Wenn du unbedingt willst, kannst du auch den von dir gewünschten Block verwenden. Du musst nur die Sample Time so einstellen, dass du eine vernünftige Genauigkeit bekommst. Beispiel im Anhang.

Grüße,
Harald

sin0to10.mdl
 Beschreibung:

Download
 Dateiname:  sin0to10.mdl
 Dateigröße:  27.36 KB
 Heruntergeladen:  624 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
guguli
Themenstarter

Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2013, 09:47     Titel:
  Antworten mit Zitat      
Hi, danke nochmal.

Aber wie geht das denn wenn die Funktion etwas komplizierter wird. also mit konstanten und so.

Z.B
f(x) = sinh(a*x) - sin(a.*x)
wobei a = 5

Im anhang hab ich meine Lösung, ist sie denn korrekt??? wenn ich von 0 bis 100 integrieren mächte?

t.mdl
 Beschreibung:

Download
 Dateiname:  t.mdl
 Dateigröße:  26.02 KB
 Heruntergeladen:  571 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bitte auf Rückfragen eingehen.

Ich bin nach wie vor der Meinung, dass eine Berechnung eines Integrals auf diese Weise recht sinnfrei ist. Für sich genommen sowieso, aber wohl auch als Teil eines größeren ganzen. Jedenfalls bin ich zuversichtlich, dir auch in letzterem Fall einen sinnvolleren Vorschlag machen zu können. Dazu müsste ich aber wissen, was dieses größere ganze ist.

In der Implementierung sind etliche Fehler:
- Anfangsbedingung sollte 0 sein, zumindest bei der von dir vorgegebenen Problemstellung.
- Sättigung ist nicht sinnvoll!
- du berücksichtigst x überhaupt nicht, sondern integrierst über eine Konstante!
- Endzeit der Integration muss über Simulationszeit eingestellt werden

Wenn du die integral-Funktion schon nicht nutzen willst, um das Integral zu berechnen, dann nutze sie doch wenigstens, um das Ergebnis zu überprüfen:
Code:
integral(@(x) sinh(5*x) - sin(5*x), 0, 100)

Als Ergebnis bekommt man da 1.4036e+216!

Ich habe eine meines Erachtens korrekte Implementierung angehängt.

Grüße,
Harald

integriereF.mdl
 Beschreibung:

Download
 Dateiname:  integriereF.mdl
 Dateigröße:  31.84 KB
 Heruntergeladen:  594 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
guguli
Themenstarter

Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2013, 13:49     Titel:
  Antworten mit Zitat      
Danke, das ist genau das was ich wollte.

Das funktioniert sehr gut, aber jetzt bekomme ich an einer anderen Stelle wenn ich integriere ein NaN zurück? Dasproblem ist ich kann das nicht schicken weil das sehr gruß und komplex ist. Aber kannste mir vllt sagen wann descretetime integrator einen NaN zurück gibt???? hab das Signal befro ich integriere auch gechekt, ist alles wunderbar, aber nach dem integral, kriege ich nen Nan Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

vermutlich hätte ich das Modell nicht anhängen sollen, denn ich würde das selbst nie so machen. Vor allem die Diskretisierung ist für mich fragwürdig, da da völliger Unsinn herauskommen kann.

Warum NaN herauskommt, kann ich ohne das Modell an sich nicht sagen.

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

Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2013, 15:38     Titel:
  Antworten mit Zitat      
Hi,

Ja aber das problem ist dass ich das Diskretisierung muss, da das ganze noch ins dSPACE kompelierbar sein muss. Und wieso kann da was Falsches raus kommen?

Also ich versuch die formel zu erklären.
sein f(x) die erste Formel, davon ich das Integral mache, F(X)
und g(x) = F(x) * .... davon mache ich ach ein Integral G(x)
und genau da ist mein Fehler, ich glaub er mag das nicht wenn ich zwei Integrale gleich zeitig mache, oder was mienste???

THX
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Ja aber das problem ist dass ich das Diskretisierung muss, da das ganze noch ins dSPACE kompelierbar sein muss.

Es wäre schön gewesen, das eher zu erfahren Wink
Ich kenne mich nicht mit dSPACE aus. Wenn es da die gleichen Anforderungen wie bei allgemeiner Codegenerierung gibt, wäre es meines Erachtens sinnvoller, einen (kontinuierlichen) Integrator zu verwenden und dann einen Fixed-Step Löser zu verwenden. Als Referenz würde ich jedoch immer einen Variable-Step - Löser verwenden.
Heißt: zunächst mit Variable-Step arbeiten und dann verifizieren, dass bei Fixed-Step etwas vergleichbares herauskommt.

Zitat:
Und wieso kann da was Falsches raus kommen?

Weil Diskretisierungen immer Annäherungen sind. Wenn man Pech hat, sehr schlechte.

Zitat:
und genau da ist mein Fehler, ich glaub er mag das nicht wenn ich zwei Integrale gleich zeitig mache

Ich bezweifle, dass es daran liegt. Die Signale werden nacheinander berechnet. Ob eines nun Ausgang eines Integrators ist oder irgendwie anders zustandekommt, ist dabei gleichgültig.

Grüße,
Harald
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.