|
|
AUfsummieren eines Signals |
|
dirksen |
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 11.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.03.2013, 17:34
Titel: AUfsummieren eines Signals
|
|
Hallo,
ich habe eine embedded matlab function, welche ein Signal ausgibt, das anschließend aufsummiert werden soll. Das habe ich auch soweit mit Hilfe des unit dela blocks und dem sum-block hingekriegt. Bisher wird das Signal für jeden Zeitschritt von einer Sekunde aufsummiert, allerdings möchte ich das der Signalwert nach der Zeit "dt" aufsummierd wird(dt zb gleich 10 Sekunden). Weiß jemand wie ich das hinkriegen kann?
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.03.2013, 21:21
Titel:
|
|
Hallo,
was bedeutet "dass der Signalwert nach der Zeit "dt" aufsummiert wird"?
Grüße,
Harald
|
|
|
dirksen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 11.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.03.2013, 21:42
Titel:
|
|
Folgendes, ich habe das Signal "Leistung". Hieraus wird die Energie berechnet. Allerdings möchte ich am Ende die Gesamtenergieerzeugung erhalten, deshalb soll die Energie nach jedem Zeitschritt aufsummiert werden. An diese Stelle möchte ich aber nicht das die Energieerzeugung nach jeder Sekunde aufsummiert wird, sondern nach "dt"(z.B. 10 Sekunden). dt ist eine Variabel, dessen Wert ich ändern kann.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.03.2013, 22:09
Titel:
|
|
Hallo,
ich werde daraus leider immer noch nicht schlau.
Vielleicht kannst du anhand eines Datenbeispiels zeigen, welche Ergebnisse du in jedem Zeitschritt haben möchtest?
Grüße,
Harald
|
|
|
dirksen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 11.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.03.2013, 22:35
Titel:
|
|
Ich versuche mal das Ganz etwas praktischer zu erklären
Ich habe das Signal "Leistung", bzw "P". Daraus möchte ich die Energie E berechnen. Die Formel dafür lautet E=0,5*(Pi+P)*dt. P ist also die aktuelle Leistung, Pi die Leitung nach dem nächsten Zeitschritt, also nach der Zeitspanne dt. Somit wird nach jedem Zeitschritt dt eine Energie berechnet, welche ich aufsummieren will. Das Aufsummieren klappt auch(mithilfe des unit delay blocks und des sum-blocks), nur das nach jeder Sekunde aufsumiert wird. Ich möchte aber, das nach dt(z.B. 10 Sekunden) aufsummiert wird. Wie kiege ich das hin?
Ich hoffe ich habe das halbwegs verständlich dargelegt
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.03.2013, 23:02
Titel:
|
|
Hallo,
das war nun zum dritten Mal dieselbe Formulierung, aber immerhin auch mit einer Formel, die weiterhilft, wenn ich sie richtig verstehe.
Denn dann musst du das Signal ja nur um 10 statt um einen Zeitschritt verzögern. Dazu kannst du z.B. den Delay-Block aus Continuous verwenden.
Grüße,
Harald
|
|
|
dirksen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 11.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.03.2013, 08:36
Titel:
|
|
Entschuldige das ich das Ganze so unklar formuliere;)
Das klingt gut, aber mit welchem delay-block bzw. an welche Stelle gebe ich die gewünschte Verzögerung(10 oder eben "dt") ein?
Meine bisherige Konstruktion dazu sieht so aus: ich leite das Signal "Energie" in den ersten input eines "Add" blocks. Den output des "Add"-blocks leite ich in einen unit delay block, und den output des unit delay blocks leite ich dann in den zweiten input des "Add"-blocks. Das Aufsummieren findet dann allerdings nach einem Zeitschritt von einer Sekunde statt.
|
|
|
knilumis_baltaM |
Forum-Century
|
|
Beiträge: 241
|
|
|
|
Anmeldedatum: 20.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.03.2013, 08:13
Titel:
|
|
Kannst du nicht den Teil mit aufsummieren in ein Subsystem (STRG+G) auslagern und die sample time auf 10 Sekunden von diesem System setzen? "Rate Transistion" Blocks an Aus-/Eingänge noch.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 27.03.2013, 09:22
Titel:
|
|
Hallo,
es gibt einen Block in der Discrete-Library (sorry, ich hatte zuletzt versehentlich auf Continuous verwiesen), der Delay heißt. Dort kannst du die Anzahl der Zeitschritte, um die verzögert werden soll, einstellen. Dieser Block ersetzt dann in deinem Modell den Unit Delay-Block.
In älteren Versionen heißt dieser Block Integer Delay.
@ knilumis_baltaM
Das geht natürlich auch, man bekommt aber nur alle 10 Zeitschritte ein Ergebnis. Bei meinem Ansatz bekommt man zu jedem Zeitschritt ein Ergebnis, sobald 10 zurückliegende Werte verfügbar sind.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|