- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 38

Thema: Abhängigkeit von Reflexion und Abstand an einer optischen Messeinrichtung?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Strategie mit dem Verwerfen der 2 Extremwerte und dann mitteln der restlichen Werte ist schon sehr gut. Viel besser wird es an der Stelle nicht gehen. Der Kalmanfilter ist so wie man ihn findet vor allem kompliziert. Wenn man das dann auf ein konkretes Problem anwendet, kann man oft einen Teil der Rechnung (den mit den Covarianzen) vorab machen und bekommt dann auch nur eine einfache Rechenvorschrift heraus. Da das ganze linear und nicht robust ist, wird da in diesem Fall einfach der normale Mittelwert über die 10 Werte herauskommen.

    Um die Empfindlichkeit gegen Störlicht zu verbessern muss man also früher ansetzen. Das könnte die Messung der Frequenz sein, oder bei der Optik. Im einfachsten Fall einfach mehr Lichtleistung durch mehr LEDs oder ggf. mehr Empfänger. Ein Versuch wäre es ggf. auch wert jeweils versetzt mit und ohne Beleuchtung zu messen für eine Differenzbildung.

    Wie wird denn die Frequenz gemessen, und welcher Art sind die Störungen bei Tageslicht ?

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.11.2011
    Beiträge
    103
    Zur Umgebungslichtunterdrückung kann auch eine Sendelicht-Modulation sinnvoll sein. Im Empfänger muss dann ein entsprechendes Filter (elektronisch) eingefügt werden. Damit neben dem natürlichen Sonnenlich auch Kunstlicht (100Hz) unterdrückt wird, sollte eine Modulation oberhalb 1kHz erfolgen.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214

    Beitrag

    Ein Versuch wäre es ggf. auch wert jeweils versetzt mit und ohne Beleuchtung zu messen für eine Differenzbildung
    Die Werte werden sequenziell nacheinander ermittelt. Also alle Wellenlängen nacheinander Durch und diesen Durchlauf dann 10 mal.
    Die Sequenz ist keine Beleuchtung 525nm ohne Filter, 670nm ohne Filter, 670nm mit Rotfilter, 700nm mit Rotfilter, 740nm mit Rotfilter, 780 nm mit Rotfilter. Dann das Ganze fortlaufend, immer die letzten 10 Werte werden gespeichert und verarbeitet. Der älteste 11te Wert wird wieder verworfen.

    Die Frequenzmessung läuft über einen Timer, der auf externen Takt geschaltet ist. Die Torzeit wird über einen zweiten Timer bereitgestellt.

    welcher Art sind die Störungen bei Tageslicht
    Das Gerät wird über der zu messenden Fläche bewegt, deshalb ändert sich die Reflexion natürlich ständig.
    So lange die Werte mit "farbigen" Licht sich deutlich von denen ohne natürliche Beleuchtung abheben, funktioniert das Ganze auch.
    Nur wenn die Unterschiede zu klein werden - sprich das Tageslicht zu hell wird - können keine plausiblen Messwerte mehr ermittelt werden.

    Das ist eine Kette die klappt:
    leer o.F. 525nm o.F. 670nm o.F. 670nm m.RF. 700nm m.RF. 740nm m.RF. 780nm m.RF.
    5814 6303 6267 5915 6174 6713 7127

    Die Werte bei Sonneneinstrahlung liegen so um 40000 bis 50000 und da ist die Differenz zu den Werten mit Beleuchtung zu gering.

    Bei den LED's ist so ziemlich das Ende erreicht. 5W Led's mit den gewünschten Wellenlänge hab ich noch nicht finden können.
    Ob eine weiter 1W LED hier noch was bringt?
    Das Problem wird dabei auch, das ich platzmässig auch Probleme krieg und das Ganze sicherlich noch schwerer zu beherrschen wird, wenn die LED's weit auseinander stehen. Sind ja jetzt schon 5 Stück auf Star Platine.

    Anbei mal eine Messung die zumindest im Mittelteil brauchbar wäre:
    Klicke auf die Grafik für eine größere Ansicht

Name:	REIPII.jpg
Hits:	7
Größe:	38,3 KB
ID:	20954
    Der Reip Wert wurde *25 genommen, damit er in das Koordinatefeld passte!

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Zur Umgebungslichtunterdrückung kann auch eine Sendelicht-Modulation sinnvoll sein
    Im Prinzip eine gute Idee, aber ich benutz ja einen Licht/Frequenz Wandler und das wird mit moduliertem Licht nicht funktionieren.
    Eine normale Fotodiode zu verwenden wäre die Lösung, aber dann hab ich wieder das Rauschen und ich müsste den Pegel eines wellenförmigen Signals genau bestimmen.
    Dazu bräuchte ich dann einen guten A/D Wandler und vermutlich auch einen Signalprozessor um den Träger aus den Messwerten rauszufiltern, oder einen steilflankigen Bandpass, der mir nur die Modulationsfrequenz durchlässt.

    Zudem kann so eine Fotodiode in Sättigung gehen, dann ist gar nichts mehr zu messen.

    Eventuell ist hier meine Meinung auch falsch - Ich lass mich gern eines Besseren belehren!

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Zur Messung wird man vermutlich ein paar mehr Leermessungen gebrauchen können. Also eher schon abwechselnd ein Leermessung ein Messung mit LED - vielleicht noch 2 Messungen mit LED und dann wieder eine Leermessung. Ein Problem ist ja, das sich das Hintergrundlicht im Zeitbereich von Sekunden bis Minuten ändern kann. Mit den Sensoren mit Frequenzausgang kann man leider nicht gut schnell modulieren, weil die Frequenzmessung immer eine gewisse Zeit braucht. Die Frequenzmessung kann man aber vermutlich noch deutlich verbessern, indem man nicht klassisch zählt, sondern die Periodenlänge misst. Das geht mit dem µC mit der ICP-Funktion recht gut und gibt deutlich mehr Auflösung und ggf. eine schnellere Messung (z.B. 0,1 s). Höheren Frequenzen misst man dann über die Zeit für mehr als eine Periode oder wenn man einen genügend schnellen µC hat, auch über alle Zeiten der Flanken und macht dann eine lineare Interpolation. Durch ein kürzere Zeit für die Einzelmessung kann man mehr Werte Mitteln und so den Einfluss von Schwankungen der Hintergrundhelligkeit reduzieren. Mehr LEDs sind auch nicht ohne Problem. Mit anderen Sensoren (normale Fotodiode) könnte man ggf. schneller modulieren und dann die LEDs ggf. mit eher kleinem Tastverhältnis (z.B. 10%) und mehr Strom nutzen. Sonst ist ggf. ein Sonnenschirm keine schlechte Idee.

    Nachtrag:
    So schlecht sind Fotodioden nicht. Die Sättigung der Fotodiode erreicht man in aller Regel nicht - da braucht man mehr als direktes Sonnenlicht zu. Den Verstärker kann man auch so auslegen das man eigentlich kein Problem mit der Sättigung hat. Die Trennung von Hintergrund und Signal kann man halb analog und halb digital machen: Analog trennt auch ein grober Filter (z.B 500 Hz - 3 kHz) schon den Untergrund und das meiste Rauschen ab. Danach reicht dann auch der eher einfache AD Wandler im µC und ein kleiner µC zur Verarbeitung (abwechselnd addieren und abziehen). Vom Rauschen die Die Fotodioden auch nicht schlecher als die Licht Frequenzwandler. Man hat bei der Größe sogar mehr Auswahl und kann eher besser werden.
    Geändert von Besserwessi (27.12.2011 um 18:10 Uhr) Grund: Nachtrag

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Also eher schon abwechselnd ein Leermessung ein Messung mit LED
    Das ist eine gute Idee, das werd ich mal ausprobieren. Gespeichert werden dann nur die Differenzen der beiden Messungen, woduch sie kürzer aufeinander folgen und sich somit die Fortbewegung nicht so stark auswirkt.
    Allerdings dauert dadurch der komplette Messzyklus fast doppelt so lange.
    Mal gucken, was die besseren Ergebnisse bringt.

    Für die LED's hab ich integrierte LED Treiber benutzt ( CAT4201 ). Die lassen sich leider nicht beliebig schnell schalten.
    Zudem muss die Leuchtkraft der LED's ( = Strom ) ja auch einstellbar sein, damit ich einen vernünftigen Weissabgleich hinkrieg.
    Das hab ich über den Strom Einstellwiderstand 10k und einen 20k Spindeltrimmer für den CAT4201 realisiert.

    Von der Periodendauermessung halte ich nicht so viel, weil die Frequenz des Licht Frequenz Wandler bis auf 500kHz hoch gehen kann und dann ist eine Periodendauermessung mit einem AVR Controller nicht mehr sinnvoll bzw. die Frequenzmessung wesentlich genauer.
    Zudem sind Frequenzen unter 2kHz im Normalbetrieb nicht zu erwarten.
    Mit Assembler Routinen ( anderes Projekt ) hab ich schon Messungen bis zu 13kHz über Periodendauerbestimmung hingekriegt. Genauer gehts aber bei Frequenzen über 500Hz mit der Frequenzzählung mit Torzeit. Ist natürlich alles auch von den verwendeten Parametern abhängig.

    Die Fotodioden auch nicht schlecher als die Licht Frequenzwandler
    Im Prinzip wirst Du recht haben, allerdings sind bei mir auch ein paar Schaltnetzteile verbaut ( LED Treiber ), die auch noch ständig Aus- und Eingeschaltet werden.
    Alles Sachen, die für eine rein analoge Messung pures Gift sind.
    Zudem hab ich einen Licht Frequenz Wandler mit Filtern für verschiedene Wellenlängen. Auch das findet man bei den analogen Typen eher selten.

    Die Idee mit dem Sonnenschirm hatte ich auch schon. Ich dachte da aber eher an eine Metallplatte. Da das Ganze an einem Fahrzeug montiert werden soll dürfte das dann aber wieder problematisch werden. Zudem müsste auch seitliches eintreffendes fremd Licht abgeschattet werden. Und dann brauchst Du schon einen Großen Regenschirm .

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Frequenzmessung über die Periodendauer geht schon auch bei höherer Frequenz, sowahl mit einem 8 bit AVR als auch eine PIC. Wenn es sein muss, könnte es beim AVR (20 MHz) auch gerade so noch bis 500 kHz gehen. Bei meinem Frequenzzähler nutze ich es bis etwa 300 kHz ohne Probleme und die Auflösung / Genauigkeit ist immer besser als beim klassischen Zählen: nach 0,05 s Messzeit hab ich knapp 6 Stellen Auflösung und mit der Nutzung mehrerer Flanken auch noch mehr. Der Gewinn bei der Nutzung von mehr Flanken betrifft dabei nicht nur die Auflösung, sondern auch die Rauschunterdrückung, denn auch die Licht-Frequenzwandler haben rauschen. Für höhere Frequenzen kann man eine Teiler davor schalten (der PIC kann das sogar intern, der könnte aber ggf. nicht ausreichen) - hier sollte ein fester Teiler (z.B. :16) reichen. Bei viel Helligkeit hat man vermutlich eher höhere Frequenzen im 10-100 kHz Bereich - da wird die Begrenzte Auflösung (z.B. 1 Hz) bei der Zähllösung nicht so schlimm sein, aber das Problem das an sich nur 2 Flanken (die 1. und letzte) genutzt werden bleibt. Mit der Auswertung aller Flanken kann man da schon mit weniger (z.B. 1/10) Störungen rechnen.

    So empfindlich ist auch die klassiche Schaltung mit Fotodiode und Transimpedanzverstärker nicht gegen Störungen. Nach dem Verstärker ist das Signal recht robust und nicht mehr besonders empfindlich. Die erste Verstärkung wird daher schon oft direkt an die Fotodiode gebaut. Die Schaltnetzteile können auch für die Licht-Frequenzwandler ein Problem sein: auch da können Störungen über die Versorgung einkopplen, und ein ungewollte Modulation des Lichtes ist natürlich auch nicht gut.

    Die schon vorhanden Filter an den Empfängern sind natürlich ein Argument, denn gute optische Filter sind schon recht teuer - da gäbe es dann ggf. auch eine ganz andere Lösung, die das Fremdlicht nutzt: keine aktive Beleuchtung, und dann Eine Kamera auf Multisprektral umbauen, mit einem Filterrad das man vor der Kamera dreht.

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    keine aktive Beleuchtung, und dann Eine Kamera auf Multisprektral umbauen, mit einem Filterrad das man vor der Kamera dreht
    Im Prinzip ne gute Idee, funktioniert aber leider nicht, wenn ich richtig gelesen habe.

    Es gibt da ein Satelliten Fernverfahren, das auf dieser Basis arbeitet.
    Dabei muß dann der Fehler, der durch den Einfallswinkel der Sonne entsteht rausgerechnet werden.

    Bei bedektem Himmel stimmt aber auch das nicht. Da aber Satelliten nur an klaren Tagen messen können spielt das keine Rolle.

    Das von mir verwendete Messverfahren funktioniert ja eigentlich.
    Es geht ja nur noch darum die Funktion auch bei hellem Tageslicht in den Griff zu kriegen.

    aber das Problem das an sich nur 2 Flanken (die 1. und letzte) genutzt werden bleibt
    Eigentlich werden alle Flanken innerhalb der Torzeit gezählt.
    Wo du Recht hast sind die Zeitpunkte, wo das Tor geöffnet und wieder geschlossen wird. Die können einmal direkt vor einer Flanke, oder direkt danach sein.
    Das gleiche Problem hast Du aber auch bei der Periodendauermessung, da kann Dir das auch mit dem Timer passieren.


    Beim Messverfahren mit der Periodendauermessung muss ich Dir widersprechen.
    Nehmen wir mal an der Controller läuft mit 20MHz.
    Die zu messende Frequenz ist 500kHz.
    Da würde bedeuten das pro Periode der Messfrequenz 40 Counts beim Timer laufen würden.
    Durch Phasenfehler konnen daraus Problemlos 41 oder 39 werden.
    Das ist ein Fehler von 2,5%.
    Bei der Frequenzzählung hab ich aber einen max. Fehler von +/- 2 Digits.
    Das ist ein Fehler von unter 0,01%.
    Selbst bei 100ms Torzeit liege ich bei 0,1% Fehler.

    Selbstverständlich werden die Verhältnisse besser, wenn man mehrere Perioden zur Messung heranzieht.
    Ausserdem wird es genauer, wenn man niedrigere Frequenzen misst.
    Es gibt auch einen Punkt, an dem die Periodendauermessung genauer ist, als die Periodenanzahl messung.
    Wo dieser Punkt liegt ist von der Taktfrequenz des Timers, dem Prescaler und dem Vorteiler für das Eingangssignal abhängig.

    Zudem verursacht ein ICP Interrupt mit immer höher werdender Eingangsfrequenz eine immer höher werdende Prozessorlast, die bis zur völligen Blockade des Systems führen kann. Bei einem mit 16MHz getakteten ATMEGA 32 konnte ich das bei etwa 13kHz feststellen.
    Ausserdem muss bei der Periodendauermessung ein Überlauf des Timers sicher erkannt werden.

    Bei niedrigen Frequenzen ist die Periodendauer Messung eine sehr schnelle und genaue Methode die Frequenz zu bestimmen - Keine Frage.
    Bei höhren Frequenzen hat die Perioden Zähl Methode klare Vorteile.

    Ich sag mal, wenn Du deine Messchaltung auf eine dynamische Umschaltung der beiden Methoden trimmst, geht Deine Frequenzmessung künftig bis 5MHz. Wenn Du den optimalen Umschaltepunkt findest mit der grösstmöglichen Genauigkeit.

    Bei einem ATMEGA kann ich ohne Software und Interrupts nur durch 256teilen.
    Im Prinzip gehen auch andere Teilefaktoren, dann aber nur über die Comparematch Interrupt's.

    Ne abschließende Frage. Meinst Du,das sich das verwendete Frequenzmessverfahren tatsächlich so stark auf die Ergebnisse auswirkt?

    Das das hier nicht so rüberkommt, als würde ich an Eueren Lösungsvorschlägen nur rumunken.
    Ich find's Super wie Ihr euch reinkniet um gemeinsam das Problem zu lösen.
    Ein paar von der Vorschlägen hab ich ja schon ausprobiert, mit wechseldem Erfolg.

    Die nächsten beiden Sachen die ich ausprobieren werde ist die Nullicht Subtraktions Variante und dann die Lichtabschottung ( hab da noch ne alte Theater Flügelblende rumliegen ).
    Beides Ideen von Besserwessi!!!
    Geändert von wkrug (27.12.2011 um 22:38 Uhr)

  9. #9
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Bei der Messung über die Periodenlänge muss man bei höheren Frequenzen natürlich mehr als eine Periode messen. Man misst also die Zeit für den Start, das Ende und die Zahl der Perioden dazwischen. Die Messung der Zeiten ist in aller Regel genauer als der Zufällige Start und das Zufällige Ende einer fest vorgebenen Torzeit. Mein Zähler funktioniert, soweit ganz gut - bis etwa 300 kHz geht es ohne Vorteiler, darüber wird einfach ein Vorteiler (:256) dazugeschaltet - bei der Methode über die Zeitmessung gibt der Vorteiler fast keinen zusätzlichen Fehler, sondern einfach nur eine Erweiterung des Messbereichs auf dann etwa 50 MHz (Grenze der Triggerschaltung). Allerdings ist die Software auch ganz in ASM geschrieben und auf Geschwindigkeit optimiert (z.B. reservierte Register für den Interrupt) - für die Frequenzmessung wäre das nicht so wichtig, aber für andere Messungen wie PWM. Die Berücksichtigung von Überläufen funktioniert, ist aber gar nicht so einfach - einen entsprechender Beispielcode in C ist im RN-Wissen unter Timer.

    Wie viel die Umstellung auf die einfache Zeitmessung (Start, Periodenzahl + Stop) bringt kann man noch relativ einfach abschätzen, weil man da den Vorteil gut abschätzen kann. Bei z.B. 1 s Messzeit (würde ich mal aus den wenigen Daten oben schätzen) kann man mit rund 1 Hz weniger an Fehler rechnen - einfach weil der Quantisierungsfehler der Zählung durch den viel kleinen der Zeitmessung ersetzt wird. Ein passender Test wäre eine Messung um zu sehen wie viel der Sensor selber bzw. das Hintergrundlicht rauscht (z.B. 20 Werte messen bei nur Hintergrundlicht). Ich würde eher vermuten das da der Quatisierungsfehler noch nicht das Problem ist. Etwas anderes wird es ggf. wenn man die Messzeit kürzer (z.B. 0,1 s oder ggf. noch weniger) wählt um besser Schwankungen im Hintergrundlicht zu kompensieren. Wie weit sich eine kürzere Einzelmessung lohnt könnte man testen indem man mit eher kurzer Messzeit (z.B. 0,1 - 0,5 s) relativ viele Werte rein mit dem Hintergrundlicht aufnimmt und dann per FFT das Spektrum anschaut. Wenn man da ein stärkeres 1/f Rauschen hat, was ich durchaus für wahrscheinlich halte, wäre ein kürzere Zeit für die Einzelmessungen schon angebracht. Dann könnte sich ggf auch der Umstieg auf die Zeitmessung lohnen.

    Anders als ich zuerst dachte bringt die Messung aller Flanken hier wohl keinen weiteren Vorteil - denn als primäre, unabhängige Größen kann man die einzelnen Periodendauern sehen. Die Summe der Zeiten ist damit schon der richtige, optimale Weg und die Zeiten dazwischen helfen einem hier also nicht weiter gegen Rauschen vom Sensor. Die zusätzlichen Flanken helfen halt nur gegen Fehler der Triggerschaltung und für noch mehr theoretische Auflösung.

    Das es mit viel Hintergrundlicht schlecher wird, lässt sich übrigens nicht vermeiden. Je mehr Licht auf den Sensor fällt, desto mehr Quatisierungsrauschen durch die Lichtquantelung hat man. Bei Photodioden kommt man durchaus schon mal an diese Grenze.

    Bei den Schwankungen im Hintergrundlicht hätte man ggf. noch eine Chance, wenn man parallel 2 Sensoren auswerte, die bei verschiedenen Wellenlängen arbeiten. So könnte man ggf. den Hintergrund gleichzeitig, nur halt bei einer anderen Wellenlänge messen. Wie gut das geht, hängt auch davon ab wie genau die Sensoren den gleichen Bereich aufnehmen.

Ähnliche Themen

  1. SQL: Daten einer Tab. in Abhängigkeit einer weiteren wählen
    Von Jaecko im Forum Software, Algorithmen und KI
    Antworten: 10
    Letzter Beitrag: 27.07.2010, 00:13
  2. Sensor einer Optischen Maus zur Streckenmessung
    Von paunza im Forum Sensoren / Sensorik
    Antworten: 43
    Letzter Beitrag: 04.09.2009, 09:40
  3. Schnittstelle für PAN101(Sensor einer optischen Maus)
    Von Javik im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 18.09.2006, 20:55
  4. Brennweite der Linse einer optischen Maus
    Von Manf im Forum Kopfnüsse / Wissensquiz
    Antworten: 13
    Letzter Beitrag: 04.04.2005, 17:48
  5. Antworten: 6
    Letzter Beitrag: 09.03.2005, 09:03

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test