Software: FEM - Tutorial - Magnetfeld - Kennfeld-Nutzung zur System-Simulation: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
 
(44 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Software:_FEM_-_Tutorial_-_Magnetfeld|&uarr;]] <div align="center"> [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Probabilistik_-_Kennfeld-Identifikation|&larr;]] [[Software:_FEM_-_Tutorial_-_Magnetfeld|&rarr;]] </div>
[[Software:_FEM_-_Tutorial_-_Magnetfeld|&uarr;]] <div align="center"> [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_C-Kennfeld_Differentierbarkeit|&larr;]] [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Kennfeld-Export_als_Modelica-Code|&rarr;]] </div>
<div align="center">''' Kennfeld-Nutzung zur System-Simulation '''</div>
<div align="center">''' Kennfeld-Nutzung zur System-Simulation '''</div>
<div align="center">''''' (Kein Bestandteil der Lehrveranstaltung [http://www.ifte.de/lehre/fem/index.html FEM] ) '''''</div>


== Elektromagneto-mechanischer Wandler (C-Code) ==


== Verwendete Software ==
Beide Kennfelder dienen zusammen zur Nachbildung des mittels FE-Modell simulierten konkreten Elektro-Magneten in einem dynamischen Systemmodell des kompletten elektromagnetischen Antriebs. Zur Demonstration wird dafür im Folgenden das Beispiel des Blindenschrift-Prägers aus dem [[Software:_System-Simulation_-_SimulationX|'''Tutorial zur System-Simulation''']] verwendet.


Es soll am Beispiel des Programms '''SimulationX''' gezeigt werden, wie der exportierte C-Code mit geringem Aufwand zur System-Simulation eines Magnet-Antriebs genutzt werden kann. Dank gebührt Herrn [http://www.tn-home.de/Tobias/home.html Tobias Nähring] (Mitarbeiter der Firma [http://www.iti.de ITI GmbH]) für seine wertvollen Tipps zum Einbinden externer Funktionen in SimulationX-Modelle.
'''''Hinweis:'''''<br>Wer nicht über dieses '''SimulationX-Modell''' verfügt, kann es (mit bereits gelöschten Magnetkreis-Elementen) als [http://www.optiyummy.de/images/Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfelder_-_magnet_xx.zip '''ZIP-Archiv'''] laden. Den RSM_Wandler als neuen lokalen Element-Typ definiert man dann wie im Folgenden beschrieben.


Wir verwenden den freien ''Gnu-C-Compiler'' '''gcc''', der Bestandteil der [http://de.wikipedia.org/wiki/GNU_Compiler_Collection GNU-Compiler Collection] ist. Eine Portierung dieser Compiler Collection für Windows läuft unter [http://de.wikipedia.org/wiki/Cygwin Cygwin]. Von '''http://www.cygwin.com/''' kann man eine aktuelle '''setup.exe''' für die Cygwin-Installation kostenlos herunterladen.
* Wir öffnen das verifizierte SimulationX-Modells der Etappe3(''mit Wirbelstrom und Magnet-Hysterese'') und speichern es unter dem neuen Bezeichner '''''Magnet_xx.ism''''':
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_basis-netzmodell.gif| ]] </div>
* Der markierte farbige Bereich entspricht dem elektromagneto-mechanischem Wandler (E-Magnet ohne Ankermasse).
* Nachdem wir für den elektromagneto-mechanischen Wandler einen neuen lokalen Element-Type '''''RSM_Wandler''''' definiert haben, können wir die beiden externen Funktionen mittels ''Drag&Drop'' in diesen lokalen Type hinein kopieren (mit gedrückter Strg-Taste):
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_copy_ext-fkt.gif| ]] </div> [[Bild:Software_SimX_-_Nadelantrieb_-_Wirkprinzip_-_rsm-magnet_symbol.gif|right]]
* Als Symbol für den RSM_Wandler kann man nebenstehendes Bild verwenden.
* Alle Netzwerk-Elemente innerhalb des farbig markierten Wandler-Bereiches können gelöscht werden.
* An Stelle der Magnetkreis-Elemente platzieren wir in der Modellstruktur den ''RSM_Wandler'' als ''Magnet_RSM'':
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_magnet_rsm0.gif| ]] </div>
Nun bleibt uns nur noch die Aufgabe diesen Element-Typ zum richtigen Verhalten zu führen. Die mechanische Seite des Wandlers realisiert man durch die Definition zweier mechanisch-translatorischer Anschlüsse (''ctr1'' und ''ctr2''):
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_wandler_mech.gif| ]] </div>
* Da am mechanischen Anschluss die Potentialgrößen der Bewegung (x, v, a) als Werte eingespeist werden, können wir in einem Algorithmus den Luftspalt '''s''' als Differenz der Anschluss-Positionen berechnen.
* Die aus der externen Funktion berechnete Kraft '''F'''=f(s,i) muss als Wert an beide Anschlüsse übergeben werden.
* Der Wert des Stromes '''i''' entstammt der elektrischen Seite des Wandlers.


Ausführliche Hinweise zur Installation enthält die [http://www.hs-owl.de/fb5/person/hoffmann/Installation_Cygwin.pdf '''Installation_Cygwin.pdf'''] von Herrn [http://www.hs-owl.de/fb5/person/hoffmann/ Sönke Hoffmann] (Hochschule Ostwestfalen-Lippe). Von den darin angegebenen Komponenten der Development-Umgebung genügt für unsere Zwecke:
Die elektrische Seite des Wandlers realisiert man durch die Definition zweier elektrischer Anschlüsse. Diese erhielten standardmäßig die Bezeichnung ''ctr3'' und ''ctr4'':
* ''gcc-core'', der C- Compiler,
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_wandler_elektr.gif| ]] </div>
* ''make'', ein Hilfsprogramm (dass man sicher benötigt)
* Der Spannungsabfall '''u''' zwischen den beiden Anschlüssen ergibt sich aus der Summe von Induktionsspannung '''u_ind''' und dem Spannungsabfall '''uR''' über dem ohmschen Widerstand '''R_Spule''' des Spulendrahtes. Das kann man nur durch eine Gleichung erzwingen.
'''''Hinweis:''''' Im Beispiel konnte bei der Benutzung der Download-Seite der TU-Dresden die Installation nicht vollendet werden, weil etwas fehlte. Ein Wechsel auf die Ruhr-Uni-Bochum führte zum Erfolg!
* Der Strom '''i''' ist ebenfalls innerhalb des Element-Typs algorithmisch nicht berechenbar. Auch dafür benötigen wir eine Gleichung.
* Deshalb wurde wegen der Übersichtlichkeit der komplette elektrische Teil des Wandlers in einem Gleichungsabschnitt definiert. Der Wert des Luftspalts '''s''' entstammt dem mechanischen Teil des Wandlers.


Die Windows-Systemvariable PATH wird, wie in der Anleitung beschrieben, durch den Verweis auf den ''cygwin\bin''-Ordner erweitert. Damit ist gewährleistet, dass man den C-Compiler im Konsolen-Fenster von Windows direkt aufrufen kann.
'''''Achtung:'''''<br>
Hier soll auf eine Schwachstelle unseres Demo-Beispiels hingewiesen werden:
# Die identifizierten Kennfelder sind nur für eine konkrete Geometrie und Windungszahl ('''wSpule=400''') gültig.
# Der im Wandlermodell benötigte Wert des Spulenwiderstandes muss aus den konkreten Werten von Geometrie und Windungszahl berechnet werden. Deshalb muss man im SimulationX-Modell die gleichen Geometriebeziehungen und -werte verwenden wie im FE-Modell ('''Magnet_RSM.R_Spule=Geometrie.R_Spule''').
# Damit hat man innerhalb des SimulationX.Modells leider keine Freiheitsgrade zur Optimierung der Wicklungsdaten für einen konkreten Eisenkreis! Die Optimierungsschleife müsste sich immer über die Kennfeld-Identifikation erstrecken, was zurzeit nicht praktikabel ist!


'''''Hinweis:''''' Man muss in diesem Verzeichnis nachschauen, welche Version des Compilers installiert ist. In der Beispiel-Installation war es '''gcc-3.exe''', deshalb ist dann der Compiler in der Konsole mit '''gcc-3''' aufzurufen!


== Erzeugen einer Windows-DLL ==
'''''Hinweis:'''''<br>
Wahrscheinlich hat der Solver numerische Probleme, den Abschaltvorgang zu berechnen. Dieses Problem lösen wir pragmatisch, indem wir die Diode in der Schutzbeschaltung entfernen und durch einen Leiter ersetzen.


SimulationX bietet die Möglichkeit, externe Funktionen einzubinden, welche sich in einer [http://de.wikipedia.org/wiki/Dynamic_Link_Library Windwos-DLL] befinden. Deshalb erzeugen wir aus dem vorliegenden c-Quelltext durch Compilieren mit dem ''gcc'' eine solche DLL-Datei:
<div align="center"> [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_C-Kennfeld_Differentierbarkeit|&larr;]] [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Kennfeld-Export_als_Modelica-Code|&rarr;]] </div>
* Der exportierte c-Quelltext der aktuellen OptiY-Version ist noch nicht vollständig kompatibel mit den Anforderungen des ''gcc'' und der Schnittstelle zum SimulationX. Das soll sich mit der nächsten OptiY-Version ändern. Bis dahin sind noch folgende Änderungen im Quelltext vorzunehmen:
* Das den Kennfeld-Variablen vorangestellte Zeichen '''#''' muss entfernt werden (im Beispiel '''#i''' und '''#s''' durch '''i''' und '''s''' ersetzen). Ansonsten kommt es zu einem Syntax-Fehler im gcc-Compiler!
* Der Datentyp '''float''' muss überall durch '''double''' ersetzt werden (Kompatibilitaetsforderung zu SimulationX).
* Danach hat die Datei '''Magnet_RSM.c''' die folgende Form (gekürzt):
double Covariance(double x1[],double x2[],double p[])
{
    double Co, W;
    W = 0;
    for(int i = 0; i<2; i++) {
      W = W + (x1[i]-x2[i])*(x1[i]-x2[i])*p[i]*p[i];
    }
    Co = exp(-W);
    return Co;
}
 
double F(double i, float s)
{
    double p[2];
    double x1[2];
    double x2[2];
    double y = -46.7372056;
    y = y+10.5264863*pow(i,1);
    y = y+4.62081477*pow(s,1);
    p[0] = 0.161298213;
    p[1] = 0.928373134;
    x1[0] = i;
    x1[1] = s;
    x2[0] = 5.01;
    x2[1] = 2.02;
    y = y-183.986679*Covariance(x1,x2,p);
    x2[0] = 0.01;
    x2[1] = 0.02;
    y = y-8624.5598*Covariance(x1,x2,p);
    x2[0] = 2.01;
    x2[1] = 0.02;
    y = y+27677.7263*Covariance(x1,x2,p);
    :
    :
    x2[0] = 10.01;
    x2[1] = 4.02;
    y = y-1042.30105*Covariance(x1,x2,p);
    return y;
}
 
double Psi(double i, double s)
{
    double p[2];
    double x1[2];
    double x2[2];
    double y = 0.0189621757;
    y = y+0.00649675907*pow(i,1);
    y = y-0.00349272992*pow(s,1);
    p[0] = 0.590637256;
    p[1] = 0.777378104;
    x1[0] = i;
    x1[1] = s;
    x2[0] = 5.01;
    x2[1] = 2.02;
    y = y-0.000721074847*Covariance(x1,x2,p);
    x2[0] = 0.01;
    x2[1] = 0.02;
    y = y-0.0269366063*Covariance(x1,x2,p);
    x2[0] = 2.01;
    x2[1] = 0.02;
    y = y+0.0298939078*Covariance(x1,x2,p);
    :
    :
    x2[0] = 10.01;
    x2[1] = 4.02;
    y = y-0.00522234634*Covariance(x1,x2,p);
    return y;
}
* Man startet die Windows-Konsole ('''''Start - Ausführen - cmd''''') und wählt als aktuelles Verzeichnis das, worin sich die c-Quelltext-Datei (hier ''Magnet_RSM.c'') befindet.
* Mittels der Kommandozeile (im Beispiel für die Compiler-Version ''gcc-3''):
gcc-3 -mno-cygwin -shared -o Magnet_RSM.dll Magnet_RSM.c
: sollte ohne Fehlermeldung die Datei '''Magnet_RSM.dll''' im gleichen Verzeichnis erzeugt werden.
Das Verzeichnis, in dem Magnet_RSM.dll abgelegt wird, muss in die Liste der Verzeichnisse fuer die externen Funktionen von SimulationX eingetragen werden:
* Diese Liste findet man in SimulationX unter '''''Extras'''''->'''''Optionen'''''->'''''Verzeichnisse'''''->'''''Externe Funktionen'''''.
* Entweder man kopiert die .dll-Datei in eines der Standard-Verzeichnisse oder man ergänzt die Liste dieser Verzeichnisse um den aktuell genutzten Ordner.
* Im Prinzip könnte man in der obigen Kommadozeile die .dll-Datei in eines der Standard-Verzeichnisse von SimulationX lenken.
 
 
== Kennfeld-Testmodell ==
 
Bevor man die Kennfelder in ein kompliziertes Antriebsmodell einbindet, sollte man unbedingt ein Testmodell aufbauen, um das richtige Funktionieren zu überprüfen:
* Wir beginnen im SimulationX mit einer neuen Datei, welche wir als '''Test_Kennfeld.ism''' speichern.
* Es werden zwei lokale Element-Typen im Modell definiert, welche jeweils eine der Kennfeld-Funktionen bereitstellen. Der Test erfolgt dann durch eine Rastersuche in einem OptiY-Experiment.
* Wir beginnen im SimX-Modell mit dem Elementtyp '''F_RSM''' für das Kraft-Kennfeld:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_neuer_elementtyp.gif| ]] </div>
* Als Symbol wird ein 61x61-Pixel-Bild [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_f-symbol_61x61.gif|baseline]] verwendet, welches eine modifizierte Kopie des 2D-Kennfeld-Symbols aus der SimX-Bibliothek darstellt:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_f-type_allgemein.gif| ]] </div>
* Zum Testen speisen wir die Funktionsvariablen Strom '''i''' und Luftspalt '''s''' als Parameter in das Element ein und führen den Funktionswert der Kraft '''F''' als Variable nach außen:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_anschluesse_f-test.gif| ]] </div>
* '''''Achtung:''''' Für diese Komponenten muss man die gleiche Einheit für die physikalischen Größen wählen, wie sie im FE-Modell verwendet wurden. Das bedeutet, die Luftspalt-Werte sind in '''mm''' einzuspeisen!
* Das F-Kennfeld wird im Element-Typ unter ''Lokale Typen'' als externe Funktion definiert:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_external_f-fct.gif| ]] </div>
Durch '''Bearbeiten''' der Funktionseigenschaften definiert man die Schnittstelle zwischen dem SimX-Modell und der externen Function innerhalb der .dll-Datei:
* Für die allgemeinen Einträge genügen die Standard-Vorgaben.
* Als Argumente der Funktion definieren wir zwei Eingabe- und einen Ausgabeparameter:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_ext_f-fct-argumente.gif| ]] </div> 
* Dabei berücksichtigen wir ebenfalls die Maßeinheiten der Funktionsargumente (z.B. Luftspalt in mm).
* Die '''Atrribute''' der Argumente belassen wir auf den Standard-Einträgen.
* Unter den Aufrufkonventionen ist die Liste der Argumente bereits eingetragen. Wir definieren noch den Namen der benutzten .dll-Datei und den Typ der Schnittstelle:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_ext_f-fct-aufruf.gif| ]] </div>
* Beim '''Fertigstellen''' der Funktionsdefinition erfolgt eine Warnung, dass keine grafische Darstellung definiert wurde. Diese Warnung können wir ignorieren.
* Für das Verhalten des Element-Typs definieren wir abschließend den Funktionsaufruf unter Berücksichtigung der physikalischen Einheiten (Luftspalt in mm):
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_verhalten_f-test.gif| ]] </div>
* Der lokale Element-Typ '''F_RSM''' wird als Element '''F_Kennfeld''' innerhalb des SimX-Modells verwendet.
* Für einen ersten Test wurde der Stromeingang i mit der Simulationszeit t belegt, die von 0 bis 10&nbsp;s läuft.
* Sowohl für den Luftspalt s=0&nbsp;mm, als auch für s=4&nbsp;mm ergeben sich korrekte Funktionsverläufe:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_verlaeufe.gif| ]] </div>
* Die Rastersuche nach Einbindung des Modells in ein OptiY-Experiment zeigt die komplette Funktionsfläche:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_rastersuche.gif| ]] [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_rasterfunktion.gif| ]]</div>
.
.
.
* Für das Psi-Kennfeld wurde folgendes Symbol verwendet:
<div align="center"> [[Bild:Software_FEM_-_Tutorial_-_Magnetfeld_-_SimX-Kennfeld_-_psi-symbol_61x61.gif| ]] </div>
 
'''''===>>> Hier geht es bald weiter!!!'''''
 
 
<div align="center"> [[Software:_FEM_-_Tutorial_-_Magnetfeld_-_Probabilistik_-_Kennfeld-Identifikation|&larr;]] [[Software:_FEM_-_Tutorial_-_Magnetfeld|&rarr;]] </div>

Aktuelle Version vom 21. Januar 2015, 15:19 Uhr

Kennfeld-Nutzung zur System-Simulation
(Kein Bestandteil der Lehrveranstaltung FEM )

Elektromagneto-mechanischer Wandler (C-Code)

Beide Kennfelder dienen zusammen zur Nachbildung des mittels FE-Modell simulierten konkreten Elektro-Magneten in einem dynamischen Systemmodell des kompletten elektromagnetischen Antriebs. Zur Demonstration wird dafür im Folgenden das Beispiel des Blindenschrift-Prägers aus dem Tutorial zur System-Simulation verwendet.

Hinweis:
Wer nicht über dieses SimulationX-Modell verfügt, kann es (mit bereits gelöschten Magnetkreis-Elementen) als ZIP-Archiv laden. Den RSM_Wandler als neuen lokalen Element-Typ definiert man dann wie im Folgenden beschrieben.

  • Wir öffnen das verifizierte SimulationX-Modells der Etappe3(mit Wirbelstrom und Magnet-Hysterese) und speichern es unter dem neuen Bezeichner Magnet_xx.ism:
Software FEM - Tutorial - Magnetfeld - SimX-Kennfeld - basis-netzmodell.gif
  • Der markierte farbige Bereich entspricht dem elektromagneto-mechanischem Wandler (E-Magnet ohne Ankermasse).
  • Nachdem wir für den elektromagneto-mechanischen Wandler einen neuen lokalen Element-Type RSM_Wandler definiert haben, können wir die beiden externen Funktionen mittels Drag&Drop in diesen lokalen Type hinein kopieren (mit gedrückter Strg-Taste):
Software FEM - Tutorial - Magnetfeld - SimX-Kennfeld - copy ext-fkt.gif
Software SimX - Nadelantrieb - Wirkprinzip - rsm-magnet symbol.gif
  • Als Symbol für den RSM_Wandler kann man nebenstehendes Bild verwenden.
  • Alle Netzwerk-Elemente innerhalb des farbig markierten Wandler-Bereiches können gelöscht werden.
  • An Stelle der Magnetkreis-Elemente platzieren wir in der Modellstruktur den RSM_Wandler als Magnet_RSM:
Software FEM - Tutorial - Magnetfeld - SimX-Kennfeld - magnet rsm0.gif

Nun bleibt uns nur noch die Aufgabe diesen Element-Typ zum richtigen Verhalten zu führen. Die mechanische Seite des Wandlers realisiert man durch die Definition zweier mechanisch-translatorischer Anschlüsse (ctr1 und ctr2):

Software FEM - Tutorial - Magnetfeld - SimX-Kennfeld - wandler mech.gif
  • Da am mechanischen Anschluss die Potentialgrößen der Bewegung (x, v, a) als Werte eingespeist werden, können wir in einem Algorithmus den Luftspalt s als Differenz der Anschluss-Positionen berechnen.
  • Die aus der externen Funktion berechnete Kraft F=f(s,i) muss als Wert an beide Anschlüsse übergeben werden.
  • Der Wert des Stromes i entstammt der elektrischen Seite des Wandlers.

Die elektrische Seite des Wandlers realisiert man durch die Definition zweier elektrischer Anschlüsse. Diese erhielten standardmäßig die Bezeichnung ctr3 und ctr4:

Software FEM - Tutorial - Magnetfeld - SimX-Kennfeld - wandler elektr.gif
  • Der Spannungsabfall u zwischen den beiden Anschlüssen ergibt sich aus der Summe von Induktionsspannung u_ind und dem Spannungsabfall uR über dem ohmschen Widerstand R_Spule des Spulendrahtes. Das kann man nur durch eine Gleichung erzwingen.
  • Der Strom i ist ebenfalls innerhalb des Element-Typs algorithmisch nicht berechenbar. Auch dafür benötigen wir eine Gleichung.
  • Deshalb wurde wegen der Übersichtlichkeit der komplette elektrische Teil des Wandlers in einem Gleichungsabschnitt definiert. Der Wert des Luftspalts s entstammt dem mechanischen Teil des Wandlers.

Achtung:
Hier soll auf eine Schwachstelle unseres Demo-Beispiels hingewiesen werden:

  1. Die identifizierten Kennfelder sind nur für eine konkrete Geometrie und Windungszahl (wSpule=400) gültig.
  2. Der im Wandlermodell benötigte Wert des Spulenwiderstandes muss aus den konkreten Werten von Geometrie und Windungszahl berechnet werden. Deshalb muss man im SimulationX-Modell die gleichen Geometriebeziehungen und -werte verwenden wie im FE-Modell (Magnet_RSM.R_Spule=Geometrie.R_Spule).
  3. Damit hat man innerhalb des SimulationX.Modells leider keine Freiheitsgrade zur Optimierung der Wicklungsdaten für einen konkreten Eisenkreis! Die Optimierungsschleife müsste sich immer über die Kennfeld-Identifikation erstrecken, was zurzeit nicht praktikabel ist!


Hinweis:
Wahrscheinlich hat der Solver numerische Probleme, den Abschaltvorgang zu berechnen. Dieses Problem lösen wir pragmatisch, indem wir die Diode in der Schutzbeschaltung entfernen und durch einen Leiter ersetzen.