|
Melissa_ |
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 28.02.13
|
|
|
|
Wohnort: BaWü
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.08.2014, 13:59
Titel: Mittelwert auslesen
|
|
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
Beschreibung: |
|
Download |
Dateiname: |
Unbenannt.JPG |
Dateigröße: |
20.45 KB |
Heruntergeladen: |
474 mal |
|
|
|
|
|
Turbolentz |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 28.08.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.09.2014, 10:56
Titel:
|
|
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.
|
|
|
Melissa_ |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 28.02.13
|
|
|
|
Wohnort: BaWü
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.09.2014, 20:22
Titel:
|
|
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?
|
|
|
Turbolentz |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 28.08.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.09.2014, 09:37
Titel:
|
|
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?
Eine andere Lösung fällt mir leider aber auch nicht ein
|
|
|
felix |
Forum-Anfänger
|
|
Beiträge: 32
|
|
|
|
Anmeldedatum: 16.01.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 2014a
|
|
|
|
|
|
Verfasst am: 03.09.2014, 18:03
Titel:
|
|
|
|
Melissa_ |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 28.02.13
|
|
|
|
Wohnort: BaWü
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.09.2014, 18:50
Titel:
|
|
Ich habe Version R2010a, kann die Buffer Blocks also leider nicht benutzen, trotzdem vielen Dank Turbolentz.
|
|
|
Melissa_ |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 28.02.13
|
|
|
|
Wohnort: BaWü
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.09.2014, 19:25
Titel:
|
|
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?
Beschreibung: |
|
Download |
Dateiname: |
Detail.JPG |
Dateigröße: |
148.64 KB |
Heruntergeladen: |
456 mal |
Beschreibung: |
|
Download |
Dateiname: |
alles.JPG |
Dateigröße: |
69.19 KB |
Heruntergeladen: |
466 mal |
|
|
|
Turbolentz |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 28.08.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.09.2014, 09:29
Titel:
|
|
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?
|
|
|
Melissa_ |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 28.02.13
|
|
|
|
Wohnort: BaWü
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.09.2014, 11:58
Titel:
|
|
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
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 16.09.2014, 12:13
Titel:
|
|
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.
|
|
|
Melissa_ |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 28.02.13
|
|
|
|
Wohnort: BaWü
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.09.2014, 12:19
Titel:
|
|
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.
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 16.09.2014, 12:38
Titel:
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|