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

AUfsummieren eines Signals

 

dirksen
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 11.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2013, 17:34     Titel: AUfsummieren eines Signals
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Harald
Forum-Meister

Forum-Meister


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

was bedeutet "dass der Signalwert nach der Zeit "dt" aufsummiert wird"?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 11.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2013, 21:42     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2013, 22:09     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
dirksen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 11.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2013, 22:35     Titel:
  Antworten mit Zitat      
Ich versuche mal das Ganz etwas praktischer zu erklären Wink

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 Wink
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2013, 23:02     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
dirksen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 11.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2013, 08:36     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.03.2013, 08:13     Titel:
  Antworten mit Zitat      
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.
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: 27.03.2013, 09:22     Titel:
  Antworten mit Zitat      
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
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.