VB Progr. in Excel fuer RC FS Tests

  • Hallo beisammen,


    Dies ist ein Spin-Off des Threads von Donald zu sienem Cassegrain Projekt.


    Siehe: http://www.astrotreff.de/topic.asp?TOPIC_ID=29974


    Zum Test des Fangspiegels mit sphaerischer Testplatte habe ich fuer meinen 10zoll RC eine Exceltabelle benutzt. Darin ist ein Fit von Radius (R) und Korrektur (CC) einer Hyperbel an die Messpunkte noetig. Bisher habe ich das mit viel Getippe und Probieren per Hand gemacht. Falls nun weitere ATMs das benutzen wollen, waere eine Automatisierung des Fits sehr erstrebenswert. Ich selber kann kein Visual Basic unter Excel, aber ich denke, dass die Programmierung so eines Fits doch schon irgendwo einmal von jemandem gemacht wurde. Vielleicht findet sich ein Freiwilliger, der uns da weiterhilft??


    Also hier die Details.


    So sieht das Prinzip der Messung aus:



    Links oben ein Foto der Interferenzringe wenn man FS und Testplatte aufeinanderlegt.


    Darunter eine Grafik, wie man sich in etwa den 'Luftspalt' zwischen den Flaechen vorzustellen hat. Hier sieht man auch, dass z.B. der 'Radius' der Hyperbel, den man sich in der Mitte angeschmiegt vorzustellen hat, nicht gleich dem Radius der Testsphaere ist. Das ist wichtig!!


    Jeder radialen Position eines Interferenzringes entspricht eine Strecke, die ein ganzzahliges Vielfaches von Lambda ist.


    Rechts Oben ist ein Schnitt durch das Bild gemacht und die Intensitaet dargestellt. Das habe ich z.B. in AstroArt gemacht. Da kann man schoen die Radien der Ringe ablesen. Auch sowas mal zu automatisieren ware toll.


    Darunter die Auswertung mit der Exceltabelle. Die ist hier auf unserem Vereinsserver:
    http://www.trivalleystargazers…nload/RC10_M2_040619a.xls


    Ich beschreibe jetzt die Exceltabelle. Sorry, wird etwas trocken!


    Oben erstmal die ermittelte Anzahl von Pixeln im Foto von der Mitte bis zum Spiegelrand. Dann die Wellenlaenge und die Zahl mit der man L/2 multipliziert um einen Streifenabstand zu bekommen. Hier gleich 2, denn bei der Reflektion zwischen den Platten faellt die Wegstrecke fuer das Licht 2x an.


    Rechts daneben Durchmesser und Radius der Sphaere, damit die Tabelle weiss, wieviel mm einem Pixel auf dem Foto entsprechen. Zum Spass noch die CC der SPhaere (0).


    Daneben dann der Fit-Wert der Hyperbel. Diese beiden Werte sollen spaeter automatisch berechnet werden. Im Moment gebe ich sie per Hand ein. Daneben die Zielwerte.


    Die Spalten der Tabelle.
    A: Radius des Ringes auf dem Foto in Pixeln
    B: Radius des Ringes in mm auf dem Spiegel
    C: Radius des Ringes als % des Gesamtspiegels. Hilft, wenn man z.B. ueber 70%-Zonen diskutiert.
    D: Numerierung der Ringe. WICHTIG: Von Innen nach Aussen nimmt der Luftspalt erstmal zu. Die Zahlen werden groesser. Dann wird ein Maximum erreicht und dann wird es wieder kleiner. Die Stelle sieht man auch in den Bildern gut. Bei den Ringen mittlerer Nummer gibt es jeden Ring also zweimal!
    E: Ringnr. * Wellenlaenge ergibt Dicke des Luftspaltes.
    F: Hoehe der Sphaere bei diesem Radius in micro-Metern. [um]
    G: Zur Spaehre addierter Luftspalt. Das ist die Oberflaeche des FS!
    H: Wunschziel. Die Hoehe der Hyperbel bei diesem Radius ausgerechnet unter Benutzung des Radius und CC (Fit-Wert).
    I: Differenz von Wunschziel und FS Flaeche in [um]
    J: Das selbe in Lambda
    K: Die Lambda Differenz so umgerechnet dass sie in der Mitte bei Null anfaengt.
    L: Differenz zum Quadrat
    M: Quadrate mit Gewichtungsfaktor (N) multipliziert (damit man z.B. den letzten Messwerte am Rand weglassen kann)


    Sie Summe der Spalte M ist der Gesamtfehler.


    Nun kommt's!!!


    Es ist Radius und CC der Hyperbelberechnung so zu waehlen (optimieren) dass der Gesamtfehler minimal wird!!!


    Dann kann man den gefitteten Radius und CC mit dem Wunschziel vergleichen und weiss wie nahe man dran ist.


    Die Restfehler kann man dann Plotten und sieht wo noch die schlimmsten Abweichungen sind.


    Man kann auch einen zweiten Plot machen, der die Abweichungen vom Wunschziel zeigt.


    Hier mag man kritisieren, dass am Ende das ideale Ergebnis ja sein sollte R und CC genau zu treffen. Das ist sicher der Wunsch. Meine Arbeit zeigt mir aber wie sehr schwierig das ist. Ausserdem: MUSS das wirklich sein?? Was, wenn R stimmt, aber CC um 2% zu hoch/tief ist?? Da muss man dann mal solche Abweichungen in z.B. OSLO eintippen und sehen, ob man mit Nachstellen des HS-FS Abstandes die Abbildung noch optimieren kann. Da hat mir der Test in autokollimation dann sehr geholfen. Ich habe z.B. festgestellt dass 1mm bis 2mm Verstellung der FS Position schon eine Aenderung von Ueberkorrektur nach Unterkorrektur ergibt. (Leichte Beugung von Ronchilinien in AK!)


    Uff. So, nun die Bitte an die Visual Basic Profis. Kann jemand helfen und den Fit in die Exceltabelle einbauen? Ich stelle mir vor, dass man einen Startwert fuer R und CC eingibt. Das koennte z.B. auch der Wunschert sein. Dann drueck man einen Knopf und ein Minimierungsalgorithmus fummelt solange an R und CC rum, bis der Fehler am kleinsten ist.


    Kann da einer der Experten bitte helfen??


    Ich stehe gerne fuer Fragen zur Verfuegung, um noch Details zu erklaeren.


    Clear Skies,


    Gert

  • Hallo Gert,


    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote">Nun kommt's!!!


    Es ist Radius und CC der Hyperbelberechnung so zu waehlen (optimieren) dass der Gesamtfehler minimal wird!!!


    Dann kann man den gefitteten Radius und CC mit dem Wunschziel vergleichen und weiss wie nahe man dran ist. <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Die von dir geforderte Logik wird von den meisten Foucault-Test-Programmen (Sixtest, FigureXP, Foucault Test Analysis) verwendet:


    - Es wird der für eine bestimmte konische Konstante beste Radius angegeben.
    - Zusätzlich besteht die Möglichkeit, die beste konische Konstante zu ermitteln und für diese den optimalen Kurvenradius anzeigen zu lassen.


    Ich guck' mir die Tabelle an. Vielleicht schaff' ich's ja, meine Logik in die Excel-Tabelle zu übernehmen.
    Versprechen möcht' ich aber an der Stelle nichts. Ich hab' leider kein Excel, sondern "nur" Open-Office. Ich weiß also nicht, ob die Tabelle nach Modifikation von Excel lesbar ist.


    Aber ich versuch's mal. Klingt auf alle Fälle interessant :)

  • hallo gert,


    fitten kann man in excel mit dem "Solver" "Add In".
    den Solver muss man allerdings erst aktivieren in dem man in Excel unter "Extras" "Ad Ins Manager" "Solver" aktiviert.
    sobald man das getan hat man unter "Extras" den Punkt "Solver" zur verfügung.


    so nun kann man also "Extras" "Solver" wählen es erscheint ein fenster hier ist einzugeben: als "Zielzelle" jene zelle die deinen errechneten Gesamtfehler enthält, als "Veränderbare Zellen" jene beiden zellen die deine CC und deinen Radius enthalten, bei "Zielwert" ist "Min" zu wählen, jetzt noch auf "Lösen" klicken und dein glück sollte vollkommen sein.


    ach ja, und wenn du deinen Gesamtfehler noch durch die anzahl der datenpunkte dividierst und dann daraus die wurzel ziehst dann erhälts du den RMS wert, welcher sich durch eine einfache formel in strehl weiter umrechnen lässt.


    l.g. robert

  • Hallo Robert,


    Das hat prima geklappt!! Vielen Dank. Noch eine Frage. Kann ich die Schritte im Solver auf irgendeinen 'Knopf' legen, den ich mir neben den Fit-Zellen definiere? Das geht sicher. Kannst Du mir da noch Tipps geben?


    Viele Dank,


    Gert

  • hi gert,
    sorry bin auch nicht so fit in excel.
    aber mit VBA für exclel kann man mittels basic programmierung so gut wie alles. (falls man weiss wie)
    l.g. robert

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!