Verwenden Sie maschinelles Lernen, um Spiegel in einem Solarfeld auszurichten?

10

Ich habe über Solarkollektoren nachgedacht, bei denen mehrere unabhängige Spiegel das Licht auf einen Solarkollektor fokussieren, ähnlich dem folgenden Design von Energy Innovations.

Solar Array

Da die Montage dieser Solaranlage fehlerhaft sein wird, gehe ich von folgenden Annahmen aus (oder von deren Fehlen):

  • Die Software kennt die "Position" jedes Spiegels, weiß jedoch nicht, wie sich diese Position auf die reale Welt oder auf andere Spiegel bezieht. Dies erklärt eine schlechte Spiegelkalibrierung oder andere Umgebungsfaktoren, die einen Spiegel beeinflussen können, die anderen jedoch nicht.

  • Wenn sich ein Spiegel um 10 Einheiten in eine Richtung und dann um 10 Einheiten in die entgegengesetzte Richtung bewegt, landet er dort, wo er ursprünglich begonnen hat.

Ich möchte maschinelles Lernen verwenden, um die Spiegel richtig zu positionieren und das Licht auf den Kollektor zu fokussieren. Ich gehe davon aus, dass ich dies als Optimierungsproblem betrachten und die Spiegelpositionen optimieren würde, um die Wärme im Kollektor und die Ausgangsleistung zu maximieren.

Das Problem besteht darin, ein kleines Ziel in einem lauten, hochdimensionalen Raum zu finden (wenn man bedenkt, dass jeder Spiegel zwei Rotationsachsen hat). Einige der Probleme, die ich erwarte, sind:

  • Bewölkte Tage, selbst wenn Sie auf die perfekte Spiegelausrichtung stoßen, kann es zu diesem Zeitpunkt bewölkt sein

  • verrauschte Sensordaten

  • Die Sonne ist ein sich bewegendes Ziel, sie bewegt sich entlang eines Pfades und folgt jeden Tag einem anderen Pfad. Obwohl Sie jederzeit den genauen Sonnenstand berechnen können, wissen Sie nicht, wie sich dieser Stand auf Ihre Spiegel bezieht

Meine Frage bezieht sich nicht auf das Solar-Array, sondern auf mögliche Techniken des maschinellen Lernens, die bei diesem Problem "kleines Ziel in einem lauten Raum mit hohen Dimensionen" helfen würden. Ich erwähnte die Solaranlage, weil sie der Katalysator für diese Frage und ein gutes Beispiel war.

Welche Techniken des maschinellen Lernens können ein so kleines Ziel in einem lauten hochdimensionalen Raum finden?

BEARBEITEN:

Ein paar zusätzliche Gedanken:

  • Ja, Sie können die Sonnenposition in der realen Welt berechnen, aber Sie wissen nicht, wie die Position der Spiegel mit der realen Welt zusammenhängt (es sei denn, Sie haben es irgendwie gelernt). Möglicherweise wissen Sie, dass der Azimut der Sonne 220 Grad und die Sonnenhöhe 60 Grad beträgt, und Sie wissen möglicherweise, dass sich ein Spiegel in Position befindet (-20, 42). Jetzt sag mir, ist dieser Spiegel richtig auf die Sonne ausgerichtet? Du weißt es nicht.

  • Nehmen wir an, Sie haben einige sehr ausgefeilte Wärmemessungen und wissen, "bei dieser Wärmestufe müssen 2 Spiegel richtig ausgerichtet sein". Nun stellt sich die Frage, welche zwei Spiegel (von 25 oder mehr) richtig ausgerichtet sind.

  • Eine Lösung, die ich in Betracht gezogen habe, bestand darin, die korrekte "Ausrichtungsfunktion" unter Verwendung eines neuronalen Netzwerks zu approximieren, das den Azimut und die Höhe der Sonne als Eingabe und Ausgabe eines großen Arrays mit 2 Werten für jeden Spiegel verwendet, die den 2 Achsen jedes Spiegels entsprechen. Ich bin mir nicht sicher, was die beste Trainingsmethode ist.

Weitere Gedanken:

  • Die Spiegel haben ein Koordinatensystem, auf das die Software Zugriff hat, aber die Software weiß nicht, wie dieses Koordinatensystem die reale Welt in Beziehung setzt. Angenommen, ein Spiegel befindet sich an Position (4, 42). was bedeutet das? Ich weiß es nicht und die Software auch nicht. Aber ich weiß, dass sich der Spiegel in derselben Position befindet, in der er sich zuvor befand, wenn ich den Spiegel bewege und ihn dann zurück zu (4, 42) bewege. Zusätzlich können sich zwei Spiegel an Position (4, 42) befinden, aber in der realen Welt in entgegengesetzte Richtungen zeigen.

  • Ja, mit vielen Qualitätssensoren ist das Problem leicht zu lösen. Energy Innovations ist, soweit ich das beurteilen kann, aus dem Geschäft, wahrscheinlich weil sie eine Reihe wirklich großartiger Sensoren verwendet haben und die Leute sagten: "Ich kaufe nur Sonnenkollektoren, sie sind billiger."

  • Die einzigen Sensoren im System befinden sich im Kollektorkopf.

Buttons840
quelle
Es tut mir leid, dass ich Ihre Frage nicht beantwortet habe, aber ich hatte plötzlich eine Idee, Ihren Beitrag zu lesen. Wäre es nicht sinnvoll, die Messungen des anderen zu verwenden, um zu bestimmen, wer die beste Ausrichtung hat, und das Gesamtziel, die Standardabweichung so klein wie möglich zu halten UND dass jeder gleich oder mehr als das Maximum aus der Bevölkerung produzieren sollte?
AlexanderBrevig
2
Siehe auch en.wikipedia.org/wiki/Heliostat
Robert Harvey
2
In einer Welt, in der jedes Mobiltelefon weiß, wo es sich befindet und wie es positioniert ist, ist die Annahme, dass ein Spiegel eines Heliostaten dies nicht tut, unrealistisch.
Mouviciel
1
Solange Sie wissen, wo sich Ihr Array befindet, wo sich jeder Spiegel relativ zu diesem Punkt befindet, wo sich der Kollektor relativ zu jedem Spiegel befindet und wie das Array ausgerichtet ist (azimutweise), ist alles, was Sie tun möchten, berechenbar. Dies ist kein Problem des maschinellen Lernens, sondern nur Geometrie.
Blrfl
1
Ich sehe deine neue Bearbeitung. Mir scheint, Ihr Problem läuft darauf hinaus, die Spiegelkoordinaten in Azimut und Höhe zu übersetzen. Es sollte weder ein Array noch maschinelles Lernen erfordern. Es sind wahrscheinlich nur ein paar einfache mathematische Gleichungen mit einigen Konstanten.
Robert Harvey

Antworten:

15

Sonnenpfade können vorhergesagt werden , daher kann ich mir vorstellen, dass Sie den Spiegel bereits ziemlich genau ausrichten können, wenn Sie die Tageszeit, den Tag des Jahres sowie den Breiten- und Längengrad kennen.

Sie brauchen dafür kein maschinelles Lernen.

Wenn Sie Spiegel haben, die nicht wissen, in welche Richtung sie gerichtet sind (dh Sie können ihre Position nicht mit Höhen- und Azimutmessungen korrelieren), können Sie versuchen, eine Kamera mit einem weiten Sichtfeld zu verwenden, die den Himmel bis zu einem hellen Licht streicht In der Ansicht der Kamera wird ein weißer Fleck angezeigt. Sie können dann den Spiegel in Richtung dieses Punkts bewegen (mithilfe einiger einfacher x / y-Berechnungen), bis der helle Punkt in der Ansicht der Kamera zentriert ist. Setzen Sie einen dunklen Filter auf die Kamera, damit sie nur die Sonne sieht.

Ihre Frage besagt jedoch, dass Sie wissen , wohin die Spiegel zeigen. Wenn Sie Sensoren auf den Spiegeln haben, die Ihnen sagen, wie sie positioniert sind, können Sie diese Positionsmessungen mit tatsächlichen Azimut- und Höhenzahlen korrelieren.

Ich würde mir vorstellen, dass es ziemlich einfach wäre, bewölkte Tage mit einer einzigen Solarzelle oder das Fehlen von Wärme auf dem Spiegel zu erkennen.

Robert Harvey
quelle
5
Sie müssen weiterhin Unvollkommenheiten bei der Montage berücksichtigen, dies ist jedoch ein Kalibrierungsproblem, bei dem kein maschinelles Lernen erforderlich ist. Die Steuerungstechnik wäre ein relevanterer theoretischer Rahmen.
Mouviciel
2
@FrustratedWithFormsDesigner: Wenn Ihre Spiegel auf Eisenbahnwaggons montiert wären, nehme ich an. Ein gewöhnliches GPS und Nivelliersensoren würden dieses Problem lösen.
Robert Harvey
3
@ RobertHarvey: Aber würde es genauso viel Spaß machen? ;)
FrustratedWithFormsDesigner
7
Die Tatsache, dass Sie Hunderte von Spiegeln haben, ist keine große Sache, das Verhalten für jeden einzelnen Spiegel hängt nicht von seinen Nachbarn ab. Sie machen dieses Problem absichtlich schwieriger als es wirklich ist.
Whatsisname
4
@ Buttons840: Wenn Sie nicht in der Lage sind, die Bedeutung Ihrer Positionssensoren in Bezug auf die tatsächliche Position des Spiegels zu korrelieren, hilft Ihnen maschinelles Lernen nicht, sie zu positionieren. Alles, was Sie ohne diese Daten tun, ist im Wesentlichen ein Trunkenbold. Die Grobkalibrierung sollte ein Faktor des Designs sein. Eine Feinkalibrierung kann durchgeführt werden, indem jeder Spiegel gegen die Sonne gerastert und die Ausgabe Ihres Kollektors beobachtet wird. Whatsisname ist absolut richtig: Sie machen dies schwieriger als es sein muss.
Blrfl
9

Für diese Art von Anwendung, ein Feld von Spiegeln, die versuchen, auf einen Sonnenkollektor zu zeigen, können Sie sehr genau berechnen, wo sich die Sonne befinden sollte, wo sich die Spiegel befinden sollten, in welchem ​​Winkel sie sich befinden sollten und wie sie so positioniert werden sollten Sie zeigen auf Ihren Sammler. Sie wissen, ein mathematisches Modell. Es wird nah sein. Wahrscheinlich nah genug.

Zum Kalibrieren der Spiegel, um Unvollkommenheiten und Abweichungen von Ihrem Modell zu
beheben : Wackeln Sie jeweils mit einem Spiegel. Wenn sich Ihre Leistung erhöht, behalten Sie die Änderung bei. Speichern Sie die Änderung als calOffset. Nennen wir es erledigt.

Ich stimme Harvey zu, maschinelles Lernen ist dafür übertrieben.

Aber hey, nehmen wir an, Sie möchten ein mobiles autonomes System, das nach einem langen Nickerchen aufwachen und die Sonne suchen kann . Und wir können uns keine 0,05-Dollar-Batterie leisten, um Zeit zu sparen. Und da es mobil ist, könnte die Sonne in Gott weiß, in welche Richtung. Und alle Menschen sind tot. Und unsere Roboter-Solarzellen-Overlords hatten einen ernsthaften Scherz und sie wissen nicht, auf welchem ​​Teil der Welt sie aufgewacht sind. Und ihr GPS kann kein Signal empfangen. Und keiner ihrer Freunde weiß, was passiert ist.

1) Fegen Sie den Bereich mit einem Spiegel ab und achten Sie auf Leistungsspitzen. Wiederholen Sie dies einige Male, um sicherzustellen, dass es sich nicht um eine Wolke oder etwas anderes handelt.
2) Sie kennen jetzt den Sonnenstand. Geh und mach es.
3) Warten Sie eine Stunde.
4) Fegen Sie den gesamten Bereich erneut mit einem Spiegel ab. Spikes. Wolken. Yada yada.
5) Sie kennen jetzt den Weg der Sonne. Folgen Sie ihm, bis Sie die Grenze Ihrer Servos erreichen oder bis die Stromversorgung abfällt.
6) Drehen Sie ihn um 180 Grad und warten Sie 12 Stunden.
7) Mach das Sweep-Ding.
8) Aus dem Unterschied zwischen dem Sonnenuntergang und dem Aufgang der Sonne kennen Sie jetzt ungefähr Ihren Breitengrad / Ihre Jahreszeit *. (Zumindest dein Versatz vom Äquator. Weiß immer noch nicht von Norden nach Süden). Dementsprechend anpassen.
9) Warte einen Tag. Beachten Sie den Unterschied im Sonnenaufgang. Sie wissen jetzt, auf welcher Seite der Sonnenwende Sie stehen.
10) Warten Sie 6 Monate nach oben. Beachten Sie, wo die Richtung des Sonnenaufgangs am höchsten ist. Sie wissen jetzt, ob Sie im Winter oder Sommer sind, und können den Weg der Sonne für das nächste EON sicher herausfinden.

Wenn einer der Schritte mit "Jetzt weißt du" nicht klar ist, lautet die Antwort MATH (und die Orbitalmechanik der Erde **). Mr. Math ist dein Freund. Er kann dir Dinge erzählen. Und wenn sich das Axiom der Gleichheit oder ein solches nicht als falsch herausstellt, können Sie ihm sogar vertrauen.

* Angebot gilt nicht in arktischen oder antarktischen Kreisen.
** Das Angebot gilt auch nicht für Mars, Venus, Titan, Io und andere ausgewählte Standorte.

Philip
quelle
Wie bereits erwähnt, gehe ich davon aus, dass ich die Spiegelpositionen in der realen Welt nicht kenne, und die Behauptung, dass ich mit etwas Mathematik "nah genug" kommen kann, hat keine Grundlage.
Buttons840
Wenn Sie sagen, dass Sie die Positionen der Spiegel in der realen Welt nicht kennen, was meinen Sie damit genau? Ich habe ein GPS auf meinem Telefon, mit dem Sie Längen- und Breitengradkoordinaten auf wenige Meter genau anzeigen können.
Robert Harvey
2
Angenommen, GPS wurde durch Sonneneruptionen oder eine Kessler-Bombe außer Betrieb gesetzt.
Weltingenieur
@WorldEngineer - Angenommen, alles außer maschinellem Lernen wurde außer Betrieb gesetzt. Wäre maschinelles Lernen die Lösung?
Mouviciel
@mouviciel nein, ohne Servos oder Sensoren hat maschinelles Lernen nichts zu lernen und nach all dem Denken nichts zu tun.
Philip
2

Ihre Frage scheint sich weniger auf maschinelles Lernen als auf die automatische Kalibrierung einer Gruppe von Geräten zu beziehen. Sie haben ein Gerät (einen Spiegel) mit Positionssensoren und wissen, wohin Sie das Gerät richten möchten, aber Sie wissen nicht, wie sich die Sensorausgabe auf die reale Welt bezieht. Sie müssen also wirklich nur das Gerät kalibrieren - finden Sie die richtige Position, damit Sie bestimmen können, wie sich die Sensorwerte auf die tatsächliche Position beziehen. Nach der Kalibrierung können Sie sich darauf verlassen, dass die Sensoren das Gerät positionieren.

Vor diesem Hintergrund sollten Sie wahrscheinlich jedes Gerät einzeln kalibrieren . Sie können dies automatisch mithilfe eines Suchalgorithmus tun. Gilbert Le Blanc beschreibt eine, die funktionieren sollte. Eine andere Möglichkeit wäre, anzunehmen, dass die Sensordaten korrekt sind, und sie zu verwenden, um den Spiegel ungefähr in die richtige Position zu richten. Bewegen Sie dann den Spiegel in einem Muster, das sich nach außen dreht, bis Sie das Ziel treffen.

Wenn Sie wirklich alle Spiegel gleichzeitig anpassen möchten, ist möglicherweise ein genetischer Algorithmus erforderlich:

  • Wählen Sie eine zufällige Einstellung für jeden Spiegel und speichern Sie sie in einem Array. Wiederholen Sie diesen Vorgang, damit Sie einige Spiegelfeldkonfigurationen haben.
  • Führen Sie als Nächstes die Spiegelfeldkonfigurationen durch, stellen Sie alle Spiegel für jeden ein und messen Sie dann die erzeugte Wärme.
  • Entfernen Sie die Spiegelfeldkonfigurationen, die die geringste Wärme erzeugen, aus der Liste.
  • Generieren Sie einige neue Konfigurationen, indem Sie Teile der Konfigurationen, die in der Liste verbleiben, neu kombinieren.
  • Wiederholen Sie diesen Vorgang, bis die Konfigurationen zu einer einzelnen Lösung konvergieren oder die Verbesserung bei jeder Iteration unter einen bestimmten Schwellenwert fällt (dh Sie haben "gut genug" erreicht).

Ich möchte auch darauf hinweisen, dass Sie, wenn Sie die oben beschriebene Methode ausprobieren, die Kalibrierung des Spiegelsensors und nicht die Position optimieren möchten. Jeder Schritt dauert einige Zeit, daher müssen Sie die Bewegung der Sonne im Verlauf des Prozesses berücksichtigen. Die "Einstellung" für jeden Spiegel ist nicht die Position, sondern der Sensorfehler, dh der Unterschied zwischen dem Sensorwert und dem idealen Wert.

Caleb
quelle
1

Ich hasse es fast, das zu schreiben.

  • Bestimmen Sie anhand einer Solarzelle, ob die Sonne scheint oder nicht.
  • Wenn die Sonne scheint, beginnen Sie mit dem Spiegel bei (0, 0).
  • Drehen Sie den Spiegel auf der x-Achse auf 0.
  • Drehen Sie den Spiegel entlang der gesamten Y-Achse. Messen Sie bei jedem Schritt, ob die Wärmeabgabe Ihres Solarkollektors zunimmt. Wenn ja, stoppen Sie und gehen Sie zum nächsten Spiegel im Array.
  • Drehen Sie den Spiegel einen Schritt entlang der X-Achse. Wiederholen Sie den vorherigen Schritt.
  • Wenn der Spiegel entlang der gesamten x- und y-Achse gedreht wurde, ohne die Wärmeabgabe zu erhöhen, markieren Sie den Spiegel als wartungsbedürftig und gehen Sie zu x = 0 und y = 0.
  • Wiederholen Sie alle Schritte mit jedem Spiegel im Spiegelarray.
  • Warten Sie eine Stunde und wiederholen Sie alle Schritte.
Gilbert Le Blanc
quelle
Einfach, aber dieser Ansatz ist
alles andere als
Das ist allerdings nicht publikationswürdig.
Job
3
@Job Oh, tut mir leid, wollten Sie, dass SE.Programmers Ihnen bei Ihrer Abschlussarbeit hilft? Ich wusste, dass das Problem der Hausaufgaben ein Problem war, aber jetzt haben wir Studenten, die wollen, dass wir ihre Arbeit machen?
Philip
@mikera: Stimmt, das ist eine Brute-Force-Lösung. Da jedoch eine der Klarstellungsänderungen lautete: "Zusätzlich befinden sich möglicherweise zwei Spiegel an Position (4, 42), zeigen jedoch in der realen Welt in entgegengesetzte Richtungen.", Sehe ich keine Verknüpfungen.
Gilbert Le Blanc
@ Gilbert - Sie müssen die Informationen aus früheren Messungen verwenden. Zum Beispiel reichen zwei Messungen aus, um eine partielle Gradientenschätzung zu erhalten. Anschließend können Sie Methoden wie den Gradientenabstieg verwenden, um die optimale Position zu finden. Viel besser als Brute Force, zumal das Optimierungsproblem in diesem Fall wahrscheinlich konvex ist!
Mikera