Software: FEMM - Stromfluss - LUA-Script

Aus OptiYummy
Zur Navigation springenZur Suche springen

Simulation des ungetrimmten Widerstands - LUA-Script


In der Übung (elektrostatischen Feld) haben wir Erfahrung mit der Entwicklung von LUA-Scripten gewonnen. Die vollständige Parametrisierung mit allen konstruktiv und technologisch relevanten Parametern soll auch diesmal das Ziel für den Aufbau eines scriptbasierten FEM-Modells darstellen. Die Prozess-Schritte, welche wir soeben auf dem Niveau der grafischen Bedienoberfläche ausführten, werden wir unter diesem Aspekt als LUA-Script entwickeln.


Infolge der knappen Übungszeit beschränkt sich die Script-Entwicklung wieder auf das Nachvollziehen der vorgegebenen Script-Abschnitte (Copy & Paste). Dazu öffnen wir einen geeigneten Script-Editor (z.B. Crimson-Editor) und die LUA-Console des FEMM-Programms:

  • Teilnehmer der Lehrveranstaltung speichern die neue Textdatei als LaserTrimm_xx.LUA (mit xx=Teilnehmer-Nr.).


Script-Entwicklung

1. Parameter:

Wir werden weitestgehend die kompletten Dimensionierungsrechnungen in den Parameter-Abschnitt integrieren. Dabei berücksichtigen wir sofort die Abmessungen der Trimmkerbe, obwohl sie erst später im FEM-Modell benötigt werden.

Software FEMM - Stromfluss - L-Schnittt.gif

Man kann die "Parameter" in zwei Gruppen einteilen:

a) Funktionelle und technologische Parameter
Hier kann der Modell-Nutzer seine speziellen Anforderungen an den Widerstand und die technologischen Prozessgrößen in Form von Werten vorgeben:
-- Funktionelle und technologische Parameter
   xx=00;     -- Teilnehmer-Nr. 00 bis 30
   s=25;      -- Schnittbreite des Laser-Strahls [µm]
   Ls=500;    -- aktuelle Länge L-Schnitt [µm]
   bz=200;    -- Breite eines Zuschlags für Fertigung [µm]
   d=20;      -- Schichtdicke in µm = Dicke 2D-Elemente
   RF=100;    -- Nennwert Flächenwiderstand der Paste [Ohm/Quadrat]
   Pmax=6.2;  -- max. zul. Leistungsdichte in Paste [W/cm²]
   RN=240;    -- Nennwert nach Trimmen [Ohm]
   Szul=0.02; -- zulässige relative Toleranz von RN
   PV=0.2;    -- max. Verlustleistung im Betrieb [W]
   SF=0.3;    -- Fertigungsstreuung ungetrimmter Widerstand (rel.)
b) Berechnete Geometrie- und Material-Parameter
Im Unterschied zur manuellen Dimensionierung werden im Folgenden die berechneten geometrischen Größen nicht gerundet. Da dies für die Fertigung keine Bedeutung hat, werden die berechneten "krummen" Werte verwendet:
-- Berechnete Geometrie- und Material-Parameter
   Ru=RN*(1-SF)*(1+Szul);       -- notw. Nennwert ungetrimmter Widerstand [Ohm]
   PWCR=Pmax*0.5;               -- Leistungsdichte Worst-Case-Resistor [W/cm²]
   Bu= sqrt(PV*RF/(PWCR*Ru))*cm/um; -- Breite Widerstand [cm] -> [µm]
   L=Bu*Ru/RF;                  -- Länge des Widerstands [µm]
   BgetrWCR=0.5*Bu;             -- Breite des Reststegs bei max. Trimmkerbe
   R0=(1-xx/100)*Ru;            -- konkreter Wert ungetrimmter Widerstand [Ohm]
   bk=Bu*(0.05+1.05*(1-R0/RN))+bz; -- Breite der Trimmkerbe für P-Schnitt [µm]
                                -- mit 5% Druck- und Pos.-Toleranz und Zuschlag
   Kappa=1/((1-xx/100)*RF*d*um);-- spez. Leitfähigkeit (konkr.Teilnehmer) [S/m]
-- Kontrollausgabe auf die LUA-Console:
   showconsole(); -- LUA-Console öffnen, falls Script als Datei ausgeführt
   print ("Ru    =",Ru,"[Ohm]");
   print ("Bu    =",Bu,"[µm]");
   print ("L     =",L,"[µm]");
   print ("bk    =",bk,"[µm]");
   print ("Kappa =",Kappa,"[S/m]");
   print ("R0    =",R0,"[Ohm] -> 'Sollwert' vor dem Trimmen in FEM-Rechnung!");

2. Definition des Problem-Typs

-- Definition des Problem-Typs ================================================
   create(3);        -- 0=magnetic|1=electrostatic|2=heatflow|3=currentflow
   ci_probdef("micrometers","planar",0,1e-8,d,30);
                     -- 1e-8=Max.Fehler für Solver
                     -- 30° =Min.Winkel für Netz

3. Geometrie

Die markanten Punkte der Geometrie sind laut folgender Skizze durchnummeriert:

Software FEMM - Stromfluss - LUA-Script ungetrimmt nodes.gif
-- Geometrie (alle Abmessungen in µm!)=========================================
   ci_seteditmode ("nodes") -- ungetrimmtes Rechteck *************************
   x01= 0; y01= 0; ci_addnode (x01,y01);
   x02= 0; y02= Bu; ci_addnode (x02,y02);
   x03= L; y03= Bu; ci_addnode (x03,y03);
   x04= L; y04= 0; ci_addnode (x04,y04);
   ci_zoomnatural(); ci_zoomout(); -- Zoom einschließlich Kanten im Bild
   ci_seteditmode ("segments")
   ci_addsegment ( x01,y01 , x02,y02 );
   ci_addsegment ( x02,y02 , x03,y03 );
   ci_addsegment ( x03,y03 , x04,y04 );
   ci_addsegment ( x04,y04 , x01,y01 );