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 auslesen

 

Melissa_
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 28.02.13
Wohnort: BaWü
Version: ---
     Beitrag Verfasst am: 28.08.2014, 13:59     Titel: Mittelwert auslesen
  Antworten mit Zitat      
Hallo,

wie unten zu sehen versuche ich den Mittelwert einer Schwingung auszulesen. Den Modellaufbau habe ich als Bild angehängt.
Es funktioniert perfekt solange ich eine konstante Schwingung habe.
Ändern sich aber die Amplituden, nimmt mein Minimum immer den geringsten Wert an und bleibt da, aufgrund des Memory Blocks.
Ich habe nun versucht das ganze ohne den Memory Block aufzubauen, allerdings schwankt dabei der Wert des Minimums, und ich bekomme keinen konstanten Mittelwert ausgegeben.
Kann mir einer dabei helfen?
Wenn ich zu verwirrend geschrieben habe einfach Fragen, ich versuche es dann anders zu erklären.
Danke schonmal für eure Hilfe!!!

Melissa

Unbenannt.JPG
 Beschreibung:

Download
 Dateiname:  Unbenannt.JPG
 Dateigröße:  20.45 KB
 Heruntergeladen:  474 mal
Private Nachricht senden Benutzer-Profile anzeigen


Turbolentz
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 28.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2014, 10:56     Titel:
  Antworten mit Zitat      
Ich würde es mit Hilfe des Buffer-Blocks versuchen. Bei dem dann eine Output Buffer Size die zu deiner Frequenz passt(groß genug). Und dann ohne Memory, die min und max Blöcke hinterschalten.

Deine Näherung für den Mittelwert ist übrigens nicht allgemein gültig. Aber für Sinus gehts.
Private Nachricht senden Benutzer-Profile anzeigen
 
Melissa_
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 28.02.13
Wohnort: BaWü
Version: ---
     Beitrag Verfasst am: 02.09.2014, 20:22     Titel:
  Antworten mit Zitat      
Danke für deinen Tipp, ich habe hier eine Sinusschwingung, dann geht es ja.
Ich habe das mit den Bufferblocks nicht verstanden /finde diese Blocks nichtmal, wie genau meintest du das?
Private Nachricht senden Benutzer-Profile anzeigen
 
Turbolentz
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 28.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2014, 09:37     Titel:
  Antworten mit Zitat      
http://www.mathworks.de/de/help/dsp/ref/buffer.html Hier dieser Block. Der sammelt praktisch über einen bestimmten Zeitraum die Eingangswerte und gibt dann alle gleichzeitig aus. Dann könnte man immer das Minimum bzw Maximum von den gesammelten Werten nehmen und dein Memoryblock mit dieser Rückkoppöung würde überflüssig. Welche Matlab Version hast du denn vielleicht ist das da noch nicht bei? Confused
Eine andere Lösung fällt mir leider aber auch nicht ein Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
felix
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 16.01.14
Wohnort: ---
Version: 2014a
     Beitrag Verfasst am: 03.09.2014, 18:03     Titel:
  Antworten mit Zitat      
Wenn dir der Mittelwert aus dem letzten Maximum und dem Letzten Minimum reicht, könntest du meine Lösung aus diesem Thread nehmen und erweitern.
http://www.gomatlab.de/viewtopic.ph.....101a655f134a4f1f54bf45ef3
Die hier gezeigte Lösung speichert den letzten lokalen Maximalwert.
Schöne Grüße,
Felix
Private Nachricht senden Benutzer-Profile anzeigen
 
Melissa_
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 28.02.13
Wohnort: BaWü
Version: ---
     Beitrag Verfasst am: 03.09.2014, 18:50     Titel:
  Antworten mit Zitat      
Ich habe Version R2010a, kann die Buffer Blocks also leider nicht benutzen, trotzdem vielen Dank Turbolentz.
Private Nachricht senden Benutzer-Profile anzeigen
 
Melissa_
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 28.02.13
Wohnort: BaWü
Version: ---
     Beitrag Verfasst am: 03.09.2014, 19:25     Titel:
  Antworten mit Zitat      
Ich habe es jetzt auf deinem Weg versucht Felix, komme aber auf keine Lösung. Meine Schwingung sieht aus wie angehängt, sie steigt und wird irgendwann "konstant". Ich würde nun gerne das Minimum bestimmen, das ja wie die Schwingung steigen sollte und irgendwann konstant werden.
Hat noch jemand eine Idee, oder könnt ihr mir zumindest folgen?

Detail.JPG
 Beschreibung:
Detailauszug

Download
 Dateiname:  Detail.JPG
 Dateigröße:  148.64 KB
 Heruntergeladen:  456 mal
alles.JPG
 Beschreibung:
Gesamtschwingung

Download
 Dateiname:  alles.JPG
 Dateigröße:  69.19 KB
 Heruntergeladen:  466 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Turbolentz
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 28.08.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2014, 09:29     Titel:
  Antworten mit Zitat      
Ich bin gerade zufällig auf den Block "Delay-Line" gestoßen welcher eine sehr ähnliche Funktion wie der buffer-Block hat. gibts den vllt schon in deiner Matlab version?
Private Nachricht senden Benutzer-Profile anzeigen
 
Melissa_
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 28.02.13
Wohnort: BaWü
Version: ---
     Beitrag Verfasst am: 16.09.2014, 11:58     Titel:
  Antworten mit Zitat      
Nein, scheint mir nicht so, hab grad die ganze Simulink Library durchsucht...
Schade, ich hätte nicht gedacht dass mich das vor so ein Problem stellen wird
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.09.2014, 12:13     Titel:
  Antworten mit Zitat      
Mal eine ganz andere Idee. Wie wäre es ein Tiefpassfilter zu benutzen, dass dir die Schwingung entfernt und somit einen relativ konstanten Wert nach dem Anstieg liefert?

Man könnte zunächst mal ein einfaches gleitendes Mittelwertfilter nehmen, dabei mal die Anzahl der Mittelungen variieren. Evtl reicht das schon. Oder aber wenn auch der Verlauf entscheidend ist bzw. das Mittelwertfilter die Schwingung nicht genug dämpfen kann, dann mittels FFT ein passenderes Filter ermitteln.
Private Nachricht senden Benutzer-Profile anzeigen
 
Melissa_
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 28.02.13
Wohnort: BaWü
Version: ---
     Beitrag Verfasst am: 16.09.2014, 12:19     Titel:
  Antworten mit Zitat      
Also meinst du das ganze mit den Min- und Maxblöcken komplett wegzulassen und mit einem Tiefpassfilter arbeiten?

Welchem Block entspricht denn das, tut mir leid wenn ich da so fragen muss, aber ich arbeite noch nicht lange mit Simulink. Embarassed
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.09.2014, 12:38     Titel:
  Antworten mit Zitat      
Melissa_ hat Folgendes geschrieben:
Also meinst du das ganze mit den Min- und Maxblöcken komplett wegzulassen und mit einem Tiefpassfilter arbeiten?


Ja, genau das meine ich.

Da gibt es einige Möglichkeiten...

Eine wäre den Discrete FIR Filter unter den Discrete Blocks zu verwenden.
Wenn du den Block öffnest, ist default "Coefficient source: Dialog parameters"
und unter Coefficient: [0.5 0.5]. Heißt nichts anderes als das der Mittelwert aus 2 Werten gebildet wird. Coefficient: [0.25 0.25 0.25 0.25] wäre dann eben 4 gemittelte Werte. Du kannst source auch auf extern umstellen und dann einen Array übergeben.

EDIT:
Die Summe der Koeffizienten muss auf jeden Fall immer 1 ergeben, ansonsten würde der Filter das Ergebnis/Mittelwert verfälschen. Je länger du den Filter machst (= Anzahl an Koeff.) desto mehr wird er die Schwingung glätten, aber auch den Anstieg deines Signals verzögern und die Steigung wird geringer. Somit wird dann der konstante Bereich immer kleiner.

Andere Möglichkeit wäre der Transfer Function Block unter "Continuous" und dort eben das ganze als s-funktion angeben und nicht im z-Bereich.
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.