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

Standartabweichung über Zeitfenster

 

Bennny013
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 04.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 07:57     Titel: Standartabweichung über Zeitfenster
  Antworten mit Zitat      
Hallo,

da ich auf der Arbeit bei der ich zz meine Bachelorarbeit schreibe immer öffters Matlab einsetze habe ich mich hier jetzt einfach mal registriert weil ich in ein paar Themen nicht so fit bin. Smile

Ich bin zz dabei über einem Spannungswert die Standartabweichung zu bilden. Das kontinurierliche Spannungssignal habe ich mit einem 1/Z block in ein Zeitdiskretes Signal gewandelt. Abtastzeit ist hier 10 ms.

Nun möchte ich von jeweils 500 Werten die Standartabweichung bilden. Mir geht es darum geziehlt Spannungshübe eben über die Standartabweichung zu erkennen.

Nun wollte ich fragen ob es eine Möglichkeit gibt hier eine Art gleitendes Fenster einzubauen, denn wenn jetzt ein Hub genau zwichen zwei Fenster auftritt ist meien Standartabweichung natürlich wesentlich geringer oder veschwindet komplett.

Wäre echt super wenn mir hierbei jemand helfen könnte denn ich sitz schon eine Weile an diesem Problem. :/

Beste Grüße

Benny
Private Nachricht senden Benutzer-Profile anzeigen


knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 10:19     Titel:
  Antworten mit Zitat      
Suchst du nach einer fertigen Lösung oder brauchst du hilfe dieses gleitende Fenster zu implementieren? Es gibt viele (freie) toolboxen vielleicht gibt es sowas in einer Form und du kannst es verwenden. Willst du es im Simulink machen? Du könntest die Daten ins Workspace laden und mit den vorgefertigten Matlab Funktionen arbeiten.

Ansonsten etwas genauer Fragen bzw. Problem beschreiben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bennny013
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 04.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 11:01     Titel:
  Antworten mit Zitat      
Am liebsten wäres mir die 500 Werte in ein Array zu speichern und dann imme wenn ein neuer Wert reinkommt den alten rauszuwerfen nd somit ein gleitendes Fenster zu haben. Gibt es hierzu eine Möglichkeit?? Am liebsten würde ich dies direkt in simulink machen falls dies aber nicht geht auch in Matlab. Schon mal besten Dank für die Antowrt Wink

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 11:13     Titel:
  Antworten mit Zitat      
Mit embedded Matlab bzw. Matlab Function Block.

Matlab Function Block Code:
Code:

function [ausgabe] = func_name(neuer_Wert)

persistent Werte_500;
if isempty(Werte_500)
    Werte_500 = zeros(500,1);
end

% Letzten Wert löschen und neuesten oben in den Vektor.
circshift(Werte_500,1);
Werte_500(1) = neuer_Wert;

% Hier etwas mit den neusten 500 Werten machen.

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Bennny013
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 04.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 11:29     Titel:
  Antworten mit Zitat      
So habe ich es schon einmal probiert... nur habe ich irgendwie 3 variablen weil es sich bei mir um ein dreiphasen system handelt und die Messeinheit gleich alle drei werte aufnimmt. Ich weis leider nicht genau wie ich das jetzt hinbekomme :/
Aber auf jeden fall schon mal vielen Dank!! =)
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 12:18     Titel:
  Antworten mit Zitat      
Hast du also 3 mal 500 Werte? Kannst ja alles drei mal machen (copy&paste)
Private Nachricht senden Benutzer-Profile anzeigen
 
Bennny013
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 04.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 15:21     Titel:
  Antworten mit Zitat      
ja nur bei mir ist es so dass ich die dreit Werte, glaube ich, als Vektor bekomme. Zumindest ist mein Messgerätsausgang mit einer 3 beziffert, also die Leitung. Ich möchte jetzt jeden dieser drei Werte seperat einlesen und von jeweils 500 Werten die standartabweichung berechnen und in jedem zyklus den alten Messwert rausschmeisen und durch den neuen ersetzen. Ich weis halt nicht wie ich diesen 3er Vektor auftrenne und separat einlese. Ich hab mal noch n kleines Bild mit angehängt =) Die Zeitdiskreten Werte bilde ich mit dem 1/z Block. Besten Dank schon mal Wink

Unbenannt.JPG
 Beschreibung:

Download
 Dateiname:  Unbenannt.JPG
 Dateigröße:  15.11 KB
 Heruntergeladen:  423 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2012, 15:28     Titel:
  Antworten mit Zitat      
In diesem Fall würde es dann so aussehen:

Code:

function [ausgabe] = func_name(neuer_Wert)

persistent Werte_120;
if isempty(Werte_120)
    Werte_120 = zeros(500,1);
end

persistent Werte_2400;
if isempty(Werte_240)
    Werte_2400 = zeros(500,1);
end

persistent Werte_360;
if isempty(Werte_360)
    Werte_360 = zeros(500,1);
end

% Letzten Wert löschen und neuesten oben in den Vektor.
circshift(Werte_120,1);
Werte_120(1) = neuer_Wert(1);

circshift(Werte_240,1);
Werte_240(1) = neuer_Wert(2);

circshift(Werte_360,1);
Werte_360(1) = neuer_Wert(3);

% Hier etwas mit den neusten 500 Werten (von jeder Phase) machen.
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Bennny013
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 04.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2012, 11:36     Titel:
  Antworten mit Zitat      
Ok schon einmal besten Dank... habe gerade noch ein paar Probleme mit dem installieren des Compilers... welche ich jetzt erst einmal klären werde und dann werde ich die Lösung noch einmal probieren... Aber auf jeden Fall schon mal vielen Dank für die Antwort und die Hilfe! =)
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.