Herzlich willkommen zur Wiki-Seite über Solarzellen!



Visionen:

  • Möglichst umfassende Informationen über Solarzellen werden in einer einheitlichen und übersichtlichen Form gesammelt.
  • Neuen und werdenden Ingenieuren wird der Einstieg in die Photovoltaik erleichtert.
  • Wissenschaftliches Nachschlagewerk in verständlicher Sprache.
  • Didaktisch sinnvolle Darstellungen und Merkhilfen; leicht nachvollziehbare Texte.
  • Verknüpfung mit ähnlichen Projekten (z.B. hier, hier, hier, hier, hier, hier, hier, hier, oder hier ) und Hinweise auf weitere Quellen & Literatur.
  • weiter link: http://www.ee.byu.edu/cleanroom/chemical.phtml?flag=topic_index
  • Interaktive Inhalte: Durch Applets und editierbare Tabellen sollen funktionale Zusammenhänge erlebbar werden.
  • Tutorials & Vorlesungen.
  • Jeder der möchte kann zur Entwicklung der zukünftigen Energieversorgung einen klitzekleinen Teil beitragen, z.B. die Korrektur von Fipptehlern. ;-)

Du bist herzlich eingeladen, hier mitzuwirken!


Inhalt:


Siehe Navigation links.


Hinweise zu Syntax & Erscheinungsbild:


x Formelsatz & Text
x Abbildungen & Tabellen
x Tutorials
x Tooltips
x Applets


Formelsatz & Text

  • Jeder spezielle Wert einer physikalischen Größe (Größenwert, Messwert) kann als Produkt aus Zahlenwert und Einheit ausgedrückt werden:

  • Das Produktsymbol wird dabei durch ein Leerzeichen ersetzt, z.B.

  • Einheiten, die einer " 1" entsprechen, und Einheiten, die zu einem absoluten Zahlenwert 0 gehören, können (oft, aber nicht immer) weggelassen werden (z.B. α = 5 rad = 5, T = 0 K = 0, aber: T = 0 °C ≠ 0 )
  • Mit den geschweiften Klammern kann auf den Zahlenwert, mit den eckigen Klammern auf die Einheit einer Größe zugegriffen werden, z.B.

  • Um Zahlenwerte für die Verwendung in Diagrammen und Tabellen zu erhalten, können die Größenwerte durch ihre Einheit oder durch einen Größenwert mit der gleichen Einheit geteilt werden, z.B.

  • In der Literatur werden die eckigen Klammern (abweichend von der DIN-Norm) häufig um die Einheit herum gesetzt. Die Klammern sind dann nicht als Operator zu betrachten, sondern als eine Art Lesevorschrift "Gemessen in...".
  • Hier wird für die Beschriftung der Achsen durch die Einheit geteilt, da dies den "Produktcharakter der Größenwerte hervorhebt" und in sich konsistent ist.
  • Mit eckigen Klammern werden auch Hinweise auf das Literaturverzeichnis gegeben. Ihre Bedeutung ist also doppelt belegt.
  • Bei den Formelzeichen gibt es mehrfache Belegungen."I" kann zum Beispiel für eine Intensität oder für einen Strom stehen.
  • Zwischen Einheitenzeichen, die miteinander multipliziert werden, steht ein Leerzeichen, z.B.

  • Variable Größen, variable Indizes, allgemeine Funktionen und Naturkonstanten werden kursiv geschrieben. Zahlen, Einheiten, und mathematische Operatoren werden senkrecht gedruckt. Vektoren werden fett gedruckt. So stehen z.B. m für den komplexen Brechungsindex, m für die Einheit Meter, E für das elektrische Feld, e für die Elementarladung, e für die Eulersche Zahl und eV für die Einheit Elektronenvolt.
  • Diese Richtlinien orientieren sich weitgehend an den Normen DIN 1313, DIN 1338 und DIN 461.
  • Formeln mit Exponenten usw. können bei wikispaces.com direkt leider nur als frei stehender Block dargestellt werden. Für Formeln innerhalb des Textes wird auf Symbole wie "_" , "^", "/", "sqrt", "exp" ausgewichen.
  • Für Inline-Formeln können Symbole wie "α" aus Texteditoren wie Writer oder Word kopiert werden (Dort: Einfügen=>Sonderzeichen bzw. Symbol).
  • Für das komfortable Einfügen von griechischen und einigen mathematischen Symbolen in Writer bzw. Word gibt es hier Symbolleisten:



  • Latex-Formeln können z.B. im Formeleditor Texaide erstellt und danach hier eingefügt werden.

  • Hinweise und Ergänzungen, die beim ersten Durchlesen überflogen werden können, werden mit der Farbe "sienna" (#A0522D) geschrieben.


Abbildungen & Tabellen

  • Für Abbildungen wird das png-Format bevorzugt.
  • Jede Bild- oder Tabellenbezeichnung wird fett gedruckt und endet mit einem Punkt. Ergänzende Informationen können der Beschriftung nach einem "-" hinzugefügt werden (siehe z.B. Abb. 1).
  • Bevorzugte Farben (hier noch mehr):

firebrick.PNG wheat.PNG yellowgreen.PNG blue.PNG grey.PNG
lightcoral.PNG cornsilk.PNG darkblue.PNG purple.PNG darkgrey.PNG
sienna.PNG darkkhaki.PNG steelblue.PNG thistle.PNG lightgrey.PNG
darkorange.PNG darkgreen.PNG cornflowerblue.PNG lightsteelblue.PNG
lightorange.PNG darkseegreen.PNG heavenblue.PNG lavender.PNG
color.PNG
Abb. 1: Bevorzugte Farben.- Diese Farben sollten möglichst für Bilder und Diagramme verwendet werden.

Tabelle 1: Bevorzugte Farben.




  • Vor jedem Objekt (Abbildung, Tabelle, usw.) wird ein Textanker eingefügt, auf den durch Links im Text oder in den Verzeichnissen verwiesen werden kann. (Dazu evtl. in den Textmodus des Editors wechseln.)
  • Tabellen werden bevorzugt über die Funktion "Embed Widget" als online editierbare EditGrid-Objekte eingefügt (www.editgrid.com).
  • Die Daten in der Tabelle lassen sich dann direkt kopieren und editieren (gilt leider nicht für Bilder).
  • Über das Menü "Datei" kann die Tabelle ins gewünschte Format (Calc, Excel, ...) exportiert und gespeichert werden.
  • Zellen für Eingaben bei EditGrid-Tabellen werden "heavenblue", geschützte Felder werden "lightorange" hinterlegt.
  • Zum Erstellen von Bildern werden Programme empfohlen, die auf Vektorgrafik basierten.
  • Frei verfügbare Programme sind z.B. Inkscape (www.inkscape.org) und Draw (www.openoffice.org).


Tutorials

  • Tutorials können z.B. mit dem Freeware-Programm wink erstellt werden.


Tooltips

<script type="text/javascript" src="http://pvcell.wikispaces.com/space/showimage/overlib.js"></script>
<a href="javascript:void(0);" onmouseover="return overlib('Dies ist ein Beispiel-Tooltip.',
FGCOLOR, '#E6E6FA',BGCOLOR,'#00008B');" onmouseout="return nd();">Hover me</a>
  • Das entsprechende Ergebnis sieht dann so aus: Hover me
  • Anstatt von "javascript:void(0)" kann auch ein entsprechender Link ("http://...") eingefügt werden, der dann bei Mausklick aufgerufen wird. Mit Hilfe des Schlüsselworts CAPTION wird die Überschrift des Tooltips definiert. Beispiel: *pvcell*


Applets

  • Der erste Gedanke war, für Applets auch JavaScript zu verwenden. Der Quelltext könnte dann online editiert werden. Da die Grafikprogrammierung mit JavaScript aber nicht so toll zu sein scheint, fiel die Wahl auf ActionScript 2.
  • Der Quellcode wird in eine Textdatei mit der Endung ".as" gespeichert und mit dem frei verfügbaren Programm mtasc in eine Flashdatei (*.swf) compiliert.
  • Die erzeugte *.swf - Datei kann dann wie ein Bild mit dem Editor eingefügt werden.
  • Bitte unter einem Applet auch immer den Quelltext als zip-Datei (www.7zip.org) einfügen.
  • Um ActionScripte etwas komfortabler zu editieren, können z.B. JEdit, FlashDevelop oder Eclipse verwendet werden.
  • Eine Referenz zu ActionScript-Befehlen gibt es hier.
  • Neben den pvcell-Komponenten in den zip-Dateien gibt es z.B. auf http://mathdl.maa.org weitere frei verfügbare ActionScript-Bausteine.
  • Den Entwicklern Barbara Kaskosz und Douglas E. Ensleysie sei herzlich gedankt, da einige ihrer Klassen hier in etwas abgewandelter Form verwendet werden.
  • Die Klassen werden in einem Ordner "pvcell" abgelegt und mit import-Befehlen ins Hauptdokument eingebunden.
  • Der Pfad zum Ordner "pvcell" muss fürs Compilieren ans Programm mtasc mit der Option -cp übergeben werden.
  • Beispiel für ein Applet, das mit ActionScript 2 und mtasc erstellt wurde:
  • Alle Dateien dazu gibts hier:
  • Die Hauptdatei des Applets sieht so aus:
    //******************************************************************************
    //This pvcell applet includes Components from edu.uriship.math.fungraph
    //Thanks a lot to the developers!
    //
    //Die Datei kann mit mtasc (www.mtasc.org) compiliert werden
    //Beispiel für einen Kommandozeilen-Befehl fürs Compilieren:
    //
    //mtasc -swf FermiDirac.swf -cp "C:\FlashClasses" -main -header 500:500:20 FermiDirac.as
    //
    // In C:\FlashClasses sollte dann der Ordner "pvcell" sein, der die Dateien mit
    //den Klassen enthält, die über import eingebunden werden, also "Button.as" usw.
    //
    //******************************************************************************
    import pvcell.Button;
    import pvcell.CompiledObject;
    import pvcell.GraphingBoard;
    import pvcell.Graph;
    import pvcell.MathParser;
    import pvcell.RangeObject;
    import pvcell.RangeParser;
    import pvcell.Slider;
    import pvcell.TextField;
    class FermiDirac{
    static function main() {
    //Hauptfilm*********************************************************************
    _root.createEmptyMovieClip("movie", _root.getNextHighestDepth());
    //Textfelder für Achsenskalierung***********************************************
    var xlabel = "<i>E</i> / eV";
    var xmin = "-0.1";
    var xmax = "0.2";
    var ylabel = "<i>f</i>";
    var ymin = "-0.1";
    var ymax = "2";
    var oben = new TextField("oben","_root.movie",21,0,90,40,20,ymax,"center");
    var unten = new TextField("unten","_root.movie",22,0,420,40,20,ymin,"center");
    var links = new TextField("links","_root.movie",23,42,442,40,20,xmin,"center");
    var rechts = new TextField("rechts","_root.movie",24,352,442,40,20,xmax,"center");
    //Slider für Temperatur  {name,parent,ebene,x,y,width,height,min,max}***********
           var width = 200;
        var min = 0.01;
        var max = 400;
        var height =20;
        var t = new Slider("Slider1","_root.movie",1,"<i>T</i> / K",102,10,width,height,min,max);
    //Slider für µ {name,parent,ebene,x,y,width,height,min,max}*********************
        var min2 = -0.2;
        var max2 = 0.2;  //(width und height wie bei Slider1)
        var mu = new Slider("Slider2","_root.movie",2,"<i>µ</i> / eV",102,50,width,height,min2,max2);
    //GraphBoard erstellen**********************************************************
    //{parent,ebene,x,y,width,points,xlabel,xmin,xmax,ylabel,ymin,ymax}
        var graph:Graph=new Graph("_root.movie",3,42,90,350,150,xlabel,xmin,xmax,ylabel,ymin,ymax);
    //Kennlinien einzeichnen - Anfangszustand***************************************
        var formula_1="1/(e^((x)/(0.0000862*"+200+"))+1)";
        var formula_2="1/(e^((x)/(0.0000862*"+200+"))-1)";
        var formula_3="1/(e^((x)/(0.0000862*"+200+")))";
        graph.draw(formula_1,0xB22222,formula_2,0x006400,formula_3,0x00008B,xmin,xmax,ymin,ymax);
    //Aktionsüberwachung************************************************************
        //Funktion zur Aktualisierung der Kennlinien****************************
        var updateGraph=function(prop, oldVal, newVal, userData){
             var xmin_s=_root.movie.links.text;
             var xmax_s=_root.movie.rechts.text;
             var ymin_s=_root.movie.unten.text;
             var ymax_s=_root.movie.oben.text;
             var _value1=_root.movie.Slider1.SlideTextField.text;
             //Button._x*(max-min)/width;
             var _value2=_root.movie.Slider2.SlideTextField.text;
             //SlideButton._x*(max2-min2)/width;
             var formula1="1/(e^((x-"+_value2+")/(0.0000862*"+_value1+"))+1)";
             var formula2="1/(e^((x-"+_value2+")/(0.0000862*"+_value1+"))-1)";
             var formula3="1/(e^((x-"+_value2+")/(0.0000862*"+_value1+")))";
             graph.draw(formula1,0xB22222,formula2,0x006400,formula3,0x00008B,xmin_s,xmax_s,ymin_s,ymax_s);
             return "";   //return newVal; würde alten Wert erhalen
        }
        //Änderungen von Slider1 überwachen*************************************
            _root.movie.Slider1.action.watch("text",updateGraph);
        //Änderungen von Slider2 überwachen*************************************
        _root.movie.Slider2.action.watch("text",updateGraph);
        //Änderungen von Skalierungsfeldern überwachen**************************
        _root.movie.obenaction.watch("text",updateGraph);
        _root.movie.untenaction.watch("text",updateGraph);
        _root.movie.linksaction.watch("text",updateGraph);
        _root.movie.rechtsaction.watch("text",updateGraph);
    //Label ************************************************************************
    _root.createEmptyMovieClip("Label",30);
    _root.Label._x=202;
    _root.Label._y=100;
        //Textformate***********************************************************
        var grey:TextFormat = new TextFormat();
        grey.align = "left";
        grey.font = "Tahoma";
        grey.size = 10;
        grey.color = 0x808080;
        var darkblue:TextFormat = new TextFormat();
        darkblue.align = "left";
        darkblue.font = "Tahoma";
        darkblue.size = 10;
        darkblue.color = 0x00008B;
        var firebrick:TextFormat = new TextFormat();
        firebrick.align = "left";
        firebrick.font = "Tahoma";
        firebrick.size = 10;
        firebrick.color = 0xB22222 ;
        var darkgreen:TextFormat = new TextFormat();
        darkgreen.align = "left";
        darkgreen.font = "Tahoma";
        darkgreen.size = 10;
        darkgreen.color = 0x006400;
        //Linien einzeichnen****************************************************
        _root.Label.lineStyle(0, 0xA9A9A9, 60, true, "none", "square", "round");
        _root.Label.moveTo(0,40);
        _root.Label.lineTo(50,40);
        _root.Label.moveTo(10,55);
        _root.Label.lineTo(35,55);
        //Labeltext*************************************************************
        _root.Label.createTextField("t_1",1,16,25,40,20);
        _root.Label.t_1.html=true;
        _root.Label.t_1.htmlText = "1";
        _root.Label.t_1.setTextFormat(grey);
        _root.Label.createTextField("t_2",2,0,57,80,20);
        _root.Label.t_2.html=true;
        _root.Label.t_2.htmlText = "e         + <i>s</i>";
        _root.Label.t_2.setTextFormat(grey);
        _root.Label.createTextField("t_3",3,10,40,40,20);
        _root.Label.t_3.html=true;
        _root.Label.t_3.htmlText = "<i>E</i> - <i>µ</i>";
        _root.Label.t_3.setTextFormat(grey);
        _root.Label.createTextField("t_4",4,12,53,40,20);
        _root.Label.t_4.html=true;
        _root.Label.t_4.htmlText = "<i>k T</i>";
        _root.Label.t_4.setTextFormat(grey);
        _root.Label.createTextField("t_5",5,60,20,150,20);
        _root.Label.t_5.html=true;
        _root.Label.t_5.htmlText = "<i>s</i> = 0   Maxwell-Boltzmann";
        _root.Label.t_5.setTextFormat(darkblue);
        _root.Label.createTextField("t_6",6,60,40,100,20);
        _root.Label.t_6.html=true;
        _root.Label.t_6.htmlText = "<i>s</i> = 1   Fermi-Dirac ";
        _root.Label.t_6.setTextFormat(firebrick);
        _root.Label.createTextField("t_7",7,60,60,100,20);
        _root.Label.t_7.html=true;
        _root.Label.t_7.htmlText = "<i>s</i> = -1  Bose-Einstein";
        _root.Label.t_7.setTextFormat(darkgreen);
        _root.Label.createTextField("t_8",8,-20,31,100,20);
        _root.Label.t_8.html=true;
        _root.Label.t_8.htmlText = "<i>f</i> = ";
        _root.Label.t_8.setTextFormat(grey);
    //Achsenbeschriftung************************************************************
        //Format
        var achs:TextFormat = new TextFormat();
        achs.align = "center";
        achs.font = "Tahoma";
        achs.size = 14;
        achs.color = 0x808080;
        //Achsentext************************************************************
        _root.movie.createTextField("x_label",50,250,440,40,20);
        _root.movie.x_label.html=true;
        _root.movie.x_label.htmlText = xlabel;
        _root.movie.x_label.setTextFormat(achs);
        _root.movie.x_label.border = false;
        _root.movie.createTextField("y_label",51,-44,140,40,20);
        _root.movie.y_label.html=true;
        _root.movie.y_label.htmlText = ylabel;
        _root.movie.y_label.setTextFormat(achs);
        _root.movie.y_label.border = false;
    //******************************************************************************
    }
    }



    ----
Hier ist Raum für konstruktive Kritik/Verbesserungsvorschläge/Hinweise...free_commander.png