PowerPredictor

alternative Firmware?
 
kredo01
****
Avatar
Geschlecht:
Herkunft: Oberösterreich
Alter: 36
Beiträge: 150
Dabei seit: 06 / 2010
Betreff:

Re: PowerPredictor

 · 
Gepostet: 14.10.2013 - 11:41 Uhr  ·  #141
Hi,

hat etwas gedauert. bisschen stressig grad...

Also ich hab mal ein paar (eventuell interessante) Codschnipsel rausgeholt.
Grundsätzlich ist alles in Structured Text programmiert.

Grundsätzlich werden die Messungen der Reedkontakte in eine 1ms Task abgearbeitet um auch hohe Drehzahlen richtig ermitteln zu können.
Alles andere in entsprechend langsameren Tasks....

Rotordrehzahl über einen am Geni angebrachten Reedkontakt:
Code
(* Ermitteln der Zeit zwischen 2 Impulsen des Rotors*)
    (* Ermitteln des aktuellen Zeitstempels*)
    TmAct := clock_ms();
    
    IF (DI_RotorReed01 = TRUE AND DI_RotorReed01 <> _RotorReed01Old) THEN
        
      TmDiff := TmAct - TmOld;
    
      TmOld := TmAct;
      
      RotorRpmAct := 1000 / TIME_TO_REAL(TmDiff) * 60 ;
    
    ELSIF  (TmAct - TmOld) >= T#5s THEN
      
      RotorRpmAct := 0;
    
    END_IF
    
  
    _RotorReed01Old := DI_RotorReed01;


Berechnung der Windgeschwindigkeit über Reedkontakt des Anemometers:
Code

    (* Ermitteln der Zeit zwischen 2 Impulsen des Anemometers*)
    TmAct := clock_ms();
    
    IF (DI_AnemoReed01 = TRUE AND DI_AnemoReed01 <> _AnemoReed01Old) THEN
            
      TmDiff := TmAct - TmOld;
    
      TmOld := TmAct;
      
      WindSpdAct := 1000 / TIME_TO_REAL(TmDiff) / 1.5555555555555555555555555555556 ;
      
    ELSIF  (TmAct - TmOld) >= T#5s THEN
      
      WindSpdAct := 0;
      
    END_IF
  
    _AnemoReed01Old := DI_AnemoReed01;

Achja: die "1,55555555555" ist ein empirisch ermittelter Korrekturfaktor. Hatte beim damals noch funktionierenden PowerPredictor mit dem Kompressor 30m/s erreicht und dann darauf abgestimmt.
Die Linearität des Anemometers bzw. die damals ermittelten Werte möchte ich nochmal nachmessen. Dazu werd ich die Messeinheit und meine SPS auf unser Quad montieren und über GPS-Daten bzw. Tachometer nochmal nachprüfen.
Für meine ersten Tests und die Logikerstellung reichte mir bisher dieser grobe Parameter (1,5555...)


Berechnung der Windrichtung:
Code
    (*Linearisierung der Eingangsspannung auf 0- 360°*)
    WindDirRaw := INT_TO_REAL(AI_WindVane01) * 360 / WINDVANCORRFAC;
      
    (*begrenzen wenn Spannung an Windfahne zu hoch*)
    IF (WindDirRaw >= 360) THEN
      WindDirRaw := 360;
        
    (*begrenzen wenn Spannung an Windfahne zu hoch*)
    ELSIF (WindDirRaw <= 0) THEN
      WindDirRaw := 0;
    
    END_IF
    
    
    //Korrigierte Linearisierung des gemessenen Rohwerts über MTLookUp Funktion >> Initialisierung der MTLookUp im INIT!!!!
    Table.InX:= WindDirRaw; (* Rohwert *)
    Table();
    WindDirAct:= REAL_TO_INT(Table.Out); (* Interpolierter Wert *)
  
    //WindDirAct := REAL_TO_INT(WindDirRaw);

"WINDVANCORRFAC" ist ein Umrechnungsfaktor für den Spannungsteiler zwischen dem Fixwiderstand und dem Windrichtungs-Potis.
In der "Table" ist eine linearisierungskennlinie enthalten um die bereits in vorherigen Posts erwähnte nicht-liniarität des Windrichtungs-Potis zu korrigieren.

Mittelung der Windgeschwindigkeit über die Letzte Minute.
(läuft in einer 1000ms-Task)
Kurzgesagt basiert das ganze auf 2 REAL-Arrays[60] in denen die x- und y-Komponente des Einheitskreises sekündlich abgelegt werden.
Aus der Mittelung der Komponenten (x und y EINZELN) wird dann dir resultierende mittlere Windrichtung errechnet.
Code
  
  (*Aktuelle Windrichtungskomponente in Array schreiben*)    
  _WindDirXYMin[_i01Min, 0] := SIN(WindDirAct * CONST_PI / 180);
  _WindDirXYMin[_i01Min, 1] := COS(WindDirAct * CONST_PI / 180);    
  
  
  _WindDirSumXMin := 0;
  _WindDirSumYMin := 0;
  
  FOR _i := 0 TO 59 BY 1 DO
    _WindDirSumXMin := _WindDirSumXMin + _WindDirXYMin[_i, 0];
    _WindDirSumYMin := _WindDirSumYMin + _WindDirXYMin[_i, 1];
  END_FOR
  
  _i01Min := _i01Min + 1;
  
  IF (_i01Min >= 60 ) THEN
    _i01Min := 0;
  END_IF
  
  _WindDirSumXMinInt := REAL_TO_INT((_WindDirSumXMin + 0.00444) * 100 );
  _WindDirSumYMinInt := REAL_TO_INT((_WindDirSumYMin + 0.00444) * 100 );
  _WindDirSumXMin := INT_TO_REAL(_WindDirSumXMinInt) / 100;
  _WindDirSumYMin := INT_TO_REAL(_WindDirSumYMinInt) / 100;
  
  _WindDirAvgXMin := _WindDirSumXMin / 60;
  _WindDirAvgYMin := _WindDirSumYMin / 60;
      
  (*In welchem Quadranten befindet sich die gemittelte Windrichtung*)
  (* erster Quadrant: 360° bis 90° *)
  IF (_WindDirAvgXMin >= 0 AND _WindDirAvgYMin >= 0) THEN
    Quad := 1;
    WindDirAvg := REAL_TO_INT( ATAN (_WindDirAvgXMin / _WindDirAvgYMin) * 180 / CONST_PI);
    
    
  (* zweiter Quadrant: 90° bis 180° *)
  ELSIF (_WindDirAvgXMin >= 0 AND _WindDirAvgYMin <= 0) THEN
    Quad := 2;
    WindDirAvg := REAL_TO_INT( 180 + ATAN (_WindDirAvgXMin / _WindDirAvgYMin) * 180 / CONST_PI);
    
  (* dritter Quadrant: 180° bis 270° *)
  ELSIF (_WindDirAvgXMin <= 0 AND _WindDirAvgYMin <= 0) THEN
    Quad := 3;
    WindDirAvg := REAL_TO_INT( 180 + ATAN (_WindDirAvgXMin / _WindDirAvgYMin) * 180 / CONST_PI);
    
    //zum vorbeugen von unklaren Sprüngen auf 90 bei _WindDirAvgXMin = -1 und _WindDirAvgYMin = 0
    IF WindDirAvg = 90 THEN
      WindDirAvg := 270;
    END_IF  
      
  (* vierter Quadrant: 270° bis 360° *)
  ELSIF (_WindDirAvgXMin <= 0 AND _WindDirAvgYMin >= 0) THEN
    Quad := 4;
    WindDirAvg := REAL_TO_INT( 360 + ATAN (_WindDirAvgXMin / _WindDirAvgYMin) * 180 / CONST_PI);
  ELSE 
    WindDirAvg := 0;
  END_IF


Ich hoffe es ist einigermaßen lesbar. Ich persönlich tu mich meist schwer fremden code zu lesen... :D
Bin natürlich für jegliches Feedback dankbar! :D
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 14.10.2013 - 23:23 Uhr  ·  #142
sehr schön, guter Quellcode erklärt sich selbst, wie der Deinige. Gut strukturiert und gute Variablenbenennung mit n paar Kommentaren, so soll es sein.
Hab den Code jetzt aus Zeitmangel nicht im Detail gecheckt, aber oberflächlich betrachtet schaut das doch schlüssig aus.

Danke

Im PCB-Layout bin ich ein wenig weiter gekommen, hänge derzeit an der Spannungsmessung vom Generator.
AC oder DC ... was wäre Euch wichtiger? Beides hab ich im Moment meine Zweifel die unterzubringen, es wird schon recht eng
Menelaos
Administrator
Avatar
Geschlecht:
Herkunft: Elsfleth
Alter: 38
Beiträge: 4908
Dabei seit: 04 / 2007
Betreff:

Re: PowerPredictor

 · 
Gepostet: 15.10.2013 - 00:31 Uhr  ·  #143
denke dass AC genommen werden sollte. Fast alle Generatoren liefern Drehstromund werden ggf. gleichgerichtet oder gehen direkt dreiphasig in den Inverter. Was hinterher am Gleichrichter herauskommt kann man prima errechnen...Wirklich eine Rolle spielen tut das aber nur bei Batterieladung und da gibts ohnehin wieder eigene Regeln.

Also am besten alles direkt Acmessen.

Gruss
Max
kredo01
****
Avatar
Geschlecht:
Herkunft: Oberösterreich
Alter: 36
Beiträge: 150
Dabei seit: 06 / 2010
Betreff:

Re: PowerPredictor

 · 
Gepostet: 15.10.2013 - 07:20 Uhr  ·  #144
zum code: bei Fragen können wir gerne nochmal drüber quatschen...

Bei der Spannungsmessung muss auch für >100V (AC und DC) möglich sein. Wie kriegste das hin? AC runter transformieren und DC über step-down? hat ja alles wieder verluste, oder nicht?
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 15.10.2013 - 20:57 Uhr  ·  #145
nee, für nen Übertrager hab ich zu wenig Platz und Stepdown würde nur bei bestimmter Last über Tastverhältnis gehen, das wird auch zu groß ... nee, dachte eher an Gleichrichter und hochohmigem Spannungsteiler mit nachgeschaltetem Impedanzwandler und pi-Glied ...

Bei DC könnt ich mir halt den größten Teil schenken, vorallem den Gleichrichter mit seinen PN-Übergängen und entsprechendem Spannungsabfall bei Temperaturabhängigkeit
kredo01
****
Avatar
Geschlecht:
Herkunft: Oberösterreich
Alter: 36
Beiträge: 150
Dabei seit: 06 / 2010
Betreff:

Re: PowerPredictor

 · 
Gepostet: 16.10.2013 - 07:10 Uhr  ·  #146
das schöne bei AC wäre halt, dass die Drehzahl gleich mit dabei wäre....
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 08.11.2013 - 13:52 Uhr  ·  #147
So, die Weinlese ist durch, jetzt wirds wieder etwas entspannter, nur noch 6 Tage die Woche und bei der Kellerarbeit kann ich nebenbei immer mal wieder während die Maschinen laufen an dem Projekt weiter knobeln.

Also, hier im Anhang der aktuelle Stand. Die Spannungsmessung ist schon ne Sache für sich, die Strommessung hab ich mit nem Baustein bis 10A realisieren können, für höhere Ströme braucht dann parallel nen Shunt, ist aber kein Hexenwerk. Die DC-Spannungsmessung kann man auf alle Fälle über die 4 freien auf Pfosten geführten 16-Bit Eingänge per externem Spannungsteiler realisieren. Es gibt einen AC-Spannungseingang, der für die Frequenzmessung des Generators schon fertig geplant ist, aus diesem Eingang leite ich noch ne AC-SPannungsmessung ab, was zwar etwas knifflig ist und rechnerisch aufbereitet werden muss, aber das kann der µC machen. Auch wird der voraussichtlich nicht ganz so hochpräzise werden, leider ... Aber ne absolut exakte AC-Spannungsschnittstelle bekomm ich einfach nicht mehr auf das Board drauf. Auch so ist es schon unumgänglich auf 4-lagige Leiterplatte zu gehen .... soweit der Stand, mal sehen, evtl. kann ich die aktuellsten Ergänzungen morgen in das Wiki einpflegen.
kredo01
****
Avatar
Geschlecht:
Herkunft: Oberösterreich
Alter: 36
Beiträge: 150
Dabei seit: 06 / 2010
Betreff:

Re: PowerPredictor

 · 
Gepostet: 12.11.2013 - 17:46 Uhr  ·  #148
So hab nochmals etwas dran geschraubt.

Jetzt wird auch alle 10 min ein Datensatz weggeloggt. Der enhält
1) ID des Datensatzes
2) Datum
3) Uhrzeit
4) mittlere Windgeschwindigkeit der letzten 10 min
5) max und min. Geschw. der letzten 10 min
6) mittlere Windrichtung der letzten 10 min


Die Visu sieht jetzt folgendermaßen aus:


werd mal Erfahrung damit sammeln und euch dann wieder berichten!
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 15.11.2013 - 12:32 Uhr  ·  #149
schaut sehr fein aus, Respekt ...

Hab derweil nochmal nen Ausflug in die Niederungen der USB-Wetterstation an RaPi gemacht, dachte mir, wenn das Ding schon aufzeichnet, dann kann man die Daten ja auch verwerten. Die Abweichungen zum powerpredictor waren nur gering in der Windmessung.
Hab daher das Wiki ergänzt, damit der RaPi auch n Log über den gesamten Zeitraum anfertigt und zum Download bereitstellt, und auch das Analysetool um die Option ergänzt.

Hier im Anhang mal n Demofile:
kredo01
****
Avatar
Geschlecht:
Herkunft: Oberösterreich
Alter: 36
Beiträge: 150
Dabei seit: 06 / 2010
Betreff:

Re: PowerPredictor

 · 
Gepostet: 15.11.2013 - 17:14 Uhr  ·  #150
hi vitis,

ich würd die nachkommastellen der gleitkommazahlen fixieren (z.b auf 2 stellen). das macht alles (auch rein optisch) viel leichter les- und verwertbar.
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 15.11.2013 - 18:48 Uhr  ·  #151
schon klar, das ist das ausgelesene Log, die Rohdaten von der USB-Wetterstation. Nach der Verarbeitung im Script ist da nur noch eine Nachkommastelle übrig ... die Dateien werden im Ganzen aneinanderkopiert, die Zeile für Zeile durchzugehen ginge dann doch auf die Performance vom RaPi und braucht es auch nicht, weil das Auswertescript das dann eh macht.

ah, ich verstehe, Du dachtest die Datei wäre schon das Ergebnis :) ... nene, das ist die Datei, die der RasPi an der USB-Wetterstation noch der Anleitung unter:

tools/powerpredictor/wiki/doku…terstation

generiert, die hat nur einen Zweck, downloaden und dann unter

tools/powerpredictor/

uploaden zur Analyse, als Datenquelle "Billigwindmesser" auswählen, die anderen Punkte sind denk ich selbsterklärend. Es geht um die Standortevaluierung.
In meinen Pi hab ich das Auswerte-PHP direkt eingepflegt, feine Sache auch, kann (leider derzeit nur in meinem LAN) direkt auf die Auswertung zugreifen.
Falls es jemand in der Weise bräuchte, PN an mich, gegen zusendung einer SD zieh ich ne Kopie von meiner Raspbian SD, da ist das alles dann schon voreingestellt.
wurzelsepp
*
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 11 / 2013
Betreff:

Re: PowerPredictor

 · 
Gepostet: 28.11.2013 - 11:44 Uhr  ·  #152
Hallo zusammen,
ich bin ganz neu in diesem Forum und verfolge mit Interesse die Beiträge zum Powerpredictor.
Seit ca. 1 Jahr haben wir einen Powerpredictor auf einem Mast auf dem Dach unseres Hauses (11 m Höhe), um die Windsitiuation bei uns einschätzen zu können.
Wir sind mit dem Powerpedictor mehr oder weniger zufrieden. z.Zt. eher weniger - der Powerpredictor läßt sich nach einem Batteriewechsel nicht mehr starten (Displayanzeige: V2.8 wait ...7). Auch ein erneuter Spannungsresett brachte keine Änderung. Hat da jemand von Euch eine Idee? Der Support ist ja etwas zäh...

Mich würde auch die "eigene" Auswertungssoftware interessieren. (der Nutzungsvertrag Powerpredictor läuft nur noch 10 Monate ....)

Vielen Dank
Manfred
kredo01
****
Avatar
Geschlecht:
Herkunft: Oberösterreich
Alter: 36
Beiträge: 150
Dabei seit: 06 / 2010
Betreff:

Re: PowerPredictor

 · 
Gepostet: 28.11.2013 - 13:49 Uhr  ·  #153
Hi,

Ich hatte auch mal ein ähnliches Problem beim einsetzen der Batterie. Der blieb dann beim runterzählen irgendwo hängen. Ich hab daraufhin die SD-Karte neu formatiert. Danach funktionierte es.
Das Handling der Speicherung der Daten auf die SD-Karte is beim PowerPredictor etwas bescheiden... Vermutlich war das File aufgrund eines Spannungsabfalls, oä. defekt....

vitis hat ein Tool zur verfügung gestellt, indem du ein Logfile auswerten kannst!
(siehe Link im letzten Post)
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 28.11.2013 - 15:19 Uhr  ·  #154
wenn Du mit eigener Auswertesoftware das Tool unter:

tools/powerpredictor/

meinst, das steht jedem frei zu nutzen. Wenn Du daran mitarbeiten willst zur Verbesserung, dann herzlich willkommen. PHP-Vorkenntnisse wären nützlich aber nicht zwingend notwendig, sind im Moment nur rund 3000 Codezeilen.
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 05.12.2013 - 15:04 Uhr  ·  #155
Hab mal für Spaß meine USB-Wetterstation mit RasPi und darauf laufendem Auswertetool ans www geschaltet ... wen es interessiert:

USB-Wetterstation Calculator
XXLRay
Moderator
Avatar
Geschlecht: keine Angabe
Herkunft: Süd-Niedersachsen
Homepage: xxlray.bplaced.net
Beiträge: 6834
Dabei seit: 11 / 2007
Betreff:

Re: PowerPredictor

 · 
Gepostet: 05.12.2013 - 15:24 Uhr  ·  #156
kredo01
****
Avatar
Geschlecht:
Herkunft: Oberösterreich
Alter: 36
Beiträge: 150
Dabei seit: 06 / 2010
Betreff:

Re: PowerPredictor

 · 
Gepostet: 16.10.2015 - 09:09 Uhr  ·  #157
Servus zusammen!
Bei mir wars aufgrund mehrerer anderer (vermeintlich wichtigerer) Dinge in der letzten Zeit ruhig zum Thema Wind.
Jetzt möcht ich wieder etwas aktiv werden und diesen Thread wieder aus der Versenkung holen.

Hat sich hier bei irgendwen etwas getan?
Hat noch wer Pläne oder Interesse?

Grüße ausm Alpenland!
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 19.10.2015 - 11:02 Uhr  ·  #158
Pläne und Interesse hab ich, das Wiki hab ich leider wieder entfernen müssen, das wurde in kürzester Zeit von P*rnoanbietern zugemüllt ... :(

Das Problem ist bei mir nur die Zeit, hab letztes Jahr Zwillinge beschert bekommen und dann nebenbei noch n Haus gebaut, da wirds schon eng mit der Freizeitplanung.
dig-it
*!*!*!*!*
Avatar
Geschlecht: keine Angabe
Alter: 71
Beiträge: 1289
Dabei seit: 12 / 2011
Betreff:

Re: PowerPredictor

 · 
Gepostet: 19.10.2015 - 14:09 Uhr  ·  #159
Zitat

hab letztes Jahr Zwillinge beschert bekommen


So sind sie, unsere Pfälzer! Am liebsten immer zwei für den Preis von einem...;-)

Bon courage!!!

Dieter
...
 
Avatar
 
Betreff:

Re: PowerPredictor

 · 
Gepostet: 19.10.2015 - 14:47 Uhr  ·  #160
Zitat geschrieben von dig-it

Zitat

hab letztes Jahr Zwillinge beschert bekommen


So sind sie, unsere Pfälzer! Am liebsten immer zwei für den Preis von einem...;-)

Bon courage!!!

Dieter


:) :)

Produktivitätssteigerung um 100%, erst Einer, dann Zwei ... dann Dicht gemacht :bandit:
Gewählte Zitate für Mehrfachzitierung:   0