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

Mittelwert eines Sinus-Signals bestimmen

 

JaSoIstEs
Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 09.11.2018, 14:42     Titel: Mittelwert eines Sinus-Signals bestimmen
  Antworten mit Zitat      
Servus,

Gibt es einen "fertigen" Block mit dem ich den Mittelwert eines Sinus-Signals mir ausgeben lassen kann?
Hier kommt hinzu das er ab einer bestimmten Zeit erst die Werte benutzen darf... .

Im moment mach ich das händisch das ich einen Block "To Workspace" verwende und darüber mein kleines Skript laufen lasse, dass mein Signal Cropped sprich den forderen Kram den ich nicht brauche abschneidet und dann den befehl mean() verwende.
Kann ich das auch irgendwie automatisiert in Simulink machen?

Danke im Voraus
Private Nachricht senden Benutzer-Profile anzeigen


equi
Forum-Century

Forum-Century


Beiträge: 123
Anmeldedatum: 07.03.17
Wohnort: Tübingen
Version: Matlab 2018a
     Beitrag Verfasst am: 09.11.2018, 15:17     Titel:
  Antworten mit Zitat      
Code:
(max(signal) + min(signal))) / 2

oder was meinst du mit fertigen Block?

Oder schwingt dein Signal um kein festen Startwert?
_________________

Grüße Equi Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 09.11.2018, 17:04     Titel:
  Antworten mit Zitat      
Hey danke dir für deine Antwort.
Hab dir mal ein Signal angehängt als Bild.
Ich brauche den Mittelwert vom Zeitpunkt 1.5 ca. bis zum ende der Simulation.
Der Zeitpunkt ist aber Variabel je nach dem wie lange ich die Simulation laufen lasse.

2018-11-09_15-24-54.png
 Beschreibung:

Download
 Dateiname:  2018-11-09_15-24-54.png
 Dateigröße:  81.19 KB
 Heruntergeladen:  361 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
fabianT
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 84
Anmeldedatum: 31.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2018, 10:44     Titel:
  Antworten mit Zitat      
Hallo,

es gibt keinen fertigen Block für deine Anwendung.

Du kannst das natürlich machen, zum Beispiel:

- Um erst bei 1,5 Sekunden zu starten kannst du einen Enabled Subsystem Block verwenden

- Um den Mittwelwert zu bilden kannst du im Enabled Subsystem Block dein Signal integrieren und durch einen Zähler dividieren. Das ist dann das gleiche Konzept wie mean(). Im Enabled Subsystem Block kannst du nur einen diskreten Integrator verwenden. Wenn du States When Enabling auf reset stellst, kannst du den Enabled Subsystem Block beliebig aktivieren und der Mittelwert wird immer neu berechnet.

Das Ergebnis hängt natürlich vom Solver ab und ob die kontinuierlich oder diskret simulierst. Für die Berechnung des Mittelwert solltest du diskret rechnen.

Wenn es bei dir aber eh nur um Postprocessing geht, ist dein aktuelles Vorgehen wahrscheinlich das einfachste...

Viele Grüße
Fabian
Private Nachricht senden Benutzer-Profile anzeigen
 
Nicolas S.
Forum-Century

Forum-Century


Beiträge: 146
Anmeldedatum: 15.07.09
Wohnort: ---
Version: R2014a/b
     Beitrag Verfasst am: 14.11.2018, 08:14     Titel:
  Antworten mit Zitat      
Wenn Du ohnehin schon in Simulink bist, würde ich das Problem auch wie ein Signalverarbeiter angehen:

Ein Tiefpass liefert den Mittelwert. Sobald sowohl die erste als auch die zweite Ableitung des Mittelwerts einen Schwellwert unterschreiten, ist dieser eingeschwungen und genau genug.
_________________

--
The programmer suggested it.
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 19.11.2018, 10:06     Titel:
  Antworten mit Zitat      
Danke für die Antworten.
Werde beides mal ausprobieren.
Werde mich wieder melden und berichten.
Private Nachricht senden Benutzer-Profile anzeigen
 
JaSoIstEs
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 19.11.2018, 11:46     Titel:
  Antworten mit Zitat      
Hallo Nicolas,

wie muss ich den Filter denn einstellen?
Bin da leider nicht so fit.

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
fabianT
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 84
Anmeldedatum: 31.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2018, 14:47     Titel:
  Antworten mit Zitat      
Hallo,

das was ich beschrieben habe ist so etwas wie ein smoothing average filter, nur für den gesamten Zeitraum.

Ein Tiefpass ist letztendlich eine Übertragungsfunktion, die bestimmte höhere Frequenzen rausfiltert. Wenn du einen kontinuierlichen Filter baust, kannst du mit einem transfer function Block anfangen. Ein Filter erster Ordnung hat die Übertragungsfunktion:

G(s) = 1/(T*s+1)

T = 1/(2*pi*f) --> f ist die Grenzfrequenz.

Such einfach mal im Internet oder in der MATLAB Doku.

Viele Grüße
Fabian
Private Nachricht senden Benutzer-Profile anzeigen
 
Nicolas S.
Forum-Century

Forum-Century


Beiträge: 146
Anmeldedatum: 15.07.09
Wohnort: ---
Version: R2014a/b
     Beitrag Verfasst am: 20.11.2018, 08:57     Titel:
  Antworten mit Zitat      
Filtereinstellung ist ein bischen trial and error. Die Filterkonstante Tau muß lang genug sein, daß mehrere Sinusschwingungen hineinpassen, und kurz genug sein, daß der Einschwingvorgang (in Deinem Fall aperiodischer Grenzfall) rechtzeitig abgeklungen ist.

Ich würde mit Tau = 1/6*1,5s anfangen.
_________________

--
The programmer suggested it.
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.