Software: SimX - Einfuehrung - Elektro-Chaos - Dioden-C mit Kennlinie

Aus OptiYummy
Zur Navigation springenZur Suche springen

Dioden-Kapazität mit Datenblatt-Kennlinie


Jede Halbleiterdiode besitzt eine Sperrschichtkapazität. Der Wert dieser Kapazität ist abhängig von der anliegenden Sperrspannung. Dies nutzt man bei der sogenannten Kapazitätsdiode gezielt aus, um z.B. die Resonanzfrequenz eines Schwingkreises mittels einer veränderlichen Spannung einzustellen.

Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Datenblatt-Kennlinie.gif

Die Hersteller der Kapazitätsdioden stellen für jeden Diodentyp Datenblätter mit den wichtigsten Parametern zur Verfügung. Wir beziehen uns im weiteren auf die Diode BB 512 von SIEMENS. Das zugehörige Datenblatt findet man z.B. auf http://www.datasheetcatalog.com als PDF-Datei zum Download:

  • Uns interessiert auf Seite 3 des Datenblatts díe Kennlinie für die Abhängigkeit der Kapazität von der Sperrspannung CT = f (VR) (Siehe: Bild rechts).
  • Diese Kennlinie werden wir anstatt eines konstanten C-Wertes in einem neu zu gestaltendem Kapazitätselement benutzen.

Die Benutzung einer spannungsabhängigen C-Kennlinie in einem Kondensator-Modell ist nicht trivial. Im Sinne der Fehler-Minimierung gehen wir hierbei behutsam und schrittweise vor:


Neuer Elementtyp

  • Wir beginnen mit einem neuen SimulationX-Modell, das wir unter dem Namen C-Kennlinie.ism speichern.
  • Darin definieren wir einen neuen lokalen Modell-Elementtyp (Name=VarCapacitor / Kommentar=C-Kennlinie) mit einem Symbol 61x31 Pixel, welches eine variable Kapazität andeutet.
  • Das Element erhält zwei elektrische Anschlüsse.
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Test Spannungsabfall.gif
  • Als Komponenten defineren wir den Spannungsabfall und den Strom.
  • Wir übernehmen im Verhaltensalgorithmus wie üblich die Spannungsdifferenz der Anschlüsse und speisen die Anschluss-Ströme mit dem Strom.
  • Den Strom durch das Element setzen wir vorläufig auf Null. D.h. es liegt eine Spannung am Element an, aber es fließt dabei kein Strom.
  • Zur Überprüfung dieses Verhaltens benutzen wir im Modell eine Spannungsquelle mit Signaleingang. Als Spannungswert v_scr verwenden wir die Simulationszeit t anstatt des Eingangs in1. Eine Simulation bis tStop=10 s sollte die Spannung an der Kapazität linear von 0...10 V ändern.

C-Kennlinie

Funktioniert die Spannungsänderung an der Kapazität, so implementieren wir als Nächstes die Werte der C-Kennlinie und lesen sie in Abhängigkeit von der anliegenden Spannung aus:

  • Dazu benötigen wir eine Kennlinien-Komponente:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinien-Komponente.gif
  • Im Datenblatt ist die Kennlinie zwischen 0.4 V und 10 V dargestellt. Für diesen Bereich muss man versuchen, die Werte möglichst exakt abzulesen. Das ist sehr subjektiv. Es wird später noch erläutert, wie man dabei zu den eigentlich nicht ablesbaren drei Zifferstellen kommt. Die C-Werte sind in der Basiseinheit F angegeben, um Umrechnungsfehler im Element-Algorithmus zu vermeiden:
x[V]	y[1][F]
0.4	6e-010
0.5	5.77e-010
0.6	5.53e-010
0.7	5.3e-010
0.8	5.08e-010
0.9	4.88e-010
1	4.69e-010
2	3.1e-010
3	2e-010
4	1.29e-010
5	8.37e-011
6	5.73e-011
7	3.9e-011
8	2.72e-011
9	2e-011
10	1.5e-011
  • Es wurden Werte oberhalb von 10 V so ergänzt, dass auch bei höherer Spannung keine extrapolierten negativen C-Werte entstehen:
11	1.2e-011
12	1.06e-011
13	1e-011
14	9.5e-012
15	9.395e-012

Achtung:
Im Rahmen der Übung werden die Werte in Form einer archivierten Textdatei bereitgestellt (C_Kennlinie.zip):

  • Nach dem Betätigen des Bearbeiten-Button für die Kennlinien-Komponente öffnet sich der Kennlinien-Editor. Darin beginnen wir mit "Kennlinie laden":
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie-Textdatei laden.gif
  • Nach Wahl der Text-Datei öffnet sich der Importassistent, in dem man die Struktur der Daten-Tabelle beschreiben kann. Im Beispiel wurde die Tabelle im vorgegebenen Default-Format gespeichert. Der Import muss jedoch mit Zeile 1 beginnen:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie-Textdatei Importassi 01.gif
  • Die Schritte 2 und 3 des Import-Assistenten kann man im Beispiel einfach Bestätigen:
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie-Textdatei Importassi 02.gif Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie-Textdatei Importassi 03.gif
  • Wir verwenden eine lineare Interpolation, benutzen keine Sonderbehandlung und lassen eine lineare Extrapolation zu.
  • Abgesehen von der linearen Teilung der X-Achse sollte die eingelesene Kennline den gleichen Verlauf besitzen, wie die Kennlinie des Datenblattes:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie-Textdatei eingelesen.gif

Bevor wir eine Variable für das Auslesen der C-Kennline definieren, noch einen Hinweis zur Bedeutung dieser Kennlinie:

  • Es handelt sich hierbei nicht um den absoluten Kapazitätswert, welcher definiert ist durch die Ladungsmenge, welche bei einer bestimmten Kondensatorspannung im Kondensator gespeichert ist:
[math]\displaystyle{ C = \frac{Q}{U} }[/math].
  • Solche Dioden benutzt man z.B. für die Abstimmung von Schwingkreisen. Deren Wechselspannung ist dann wesentlich kleiner als die Sperrschichtspannung! Es interessiert hier nur das Kleinsignalverhalten im aktuellen Arbeitspunkt. Die bereitgestellte Kennlinie beschreibt deshalb die sogenannte differentielle Kapazität:
[math]\displaystyle{ C_D = \frac{dQ}{dU} }[/math].
  • Die differentielle Kapazität CD entspricht der Tangente (=Anstieg) an der Q=f(U)-Kennlinie der Diode im aktuellen Arbeitspunkt (U,Q).
  • Wir definieren deshalb als Komponente eine Variable C_diff und weisen diese im Verhaltensalgorithmus den aktuellen Kennlinienwert zu. Dabei benutzen wir den Absolutwert der Spannung, um für den negativen Spannungsbereich numerische Probleme zu vermeiden:
C_diff:=C_Kennlinie(abs(v));
  • Eine Simulation bis tStop=20 s ergibt die folgende Kennlinie für die differentielle Kapazität, wobei 1 s = 1 V entspricht:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie-Cdiff bis 20V.gif
  • Die Abhängigkeit der Dioden-Kapazität von der anliegenden Spannung kann man durch geeignete Konfiguration eines y(x)-Signalfensters in der gleichen Form darstellen, wie im zugrunde gelegten Datenblatt:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie wie Datenblatt.gif
  • Wenn man genau hinschaut, sieht man in der Kennlinie einige kleine "Knicke".
  • Es kann zwar sein, dass dies auf die Genauigkeit des späteren Simulation keinen Einfluss hat. Aber natürlich sollte man versuchen, eine nichtlinieare Kennlinie möglichst gut nachzubilden.
  • Ein Hilfsmittel hierfür ist die Analyse der Ableitung der nachzubildenden Kennlinie. Dazu ergänzen wir im Modell einen Function-Block, um damit die zeitliche Ableitung des Kapazitätsverlaufes zu bilden:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie Function dC dt.gif
  • Die Ableitung ist stufenförmig (eingefrorene blasse Kurve). Dies ist richtig, denn wir benutzen für die Kennlinie bisher eine lineare Interpolation.
  • Über Eigenschaften > Bearbeiten des Elements CDiode können wir für die Kennlinie z.B. die Spline-Interpolation wählen, welche wesentlich stetigere Verläufe ergibt:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie Lin und Spline dC dt .gif
  • Andere mögliche Interpolationsarten ergeben schlechtere Approximationen der Kennlinie.
  • Die in der Text-Datei für diese Übung bereitgestellten Kennlinien-Punkte wurden mit der Spline-Interpolation gewonnen:
    • Die ursprünglich anhand des Datenblattes "geschätzten" Punkte ergaben eine sehr wellige Ableitung.
    • Diese ursprünglichen Y-Werte wurden solange iterativ um "winzige" Beträge verschoben, bis die resultierende Ableitung der Kennlinie den jetzigen "unwelligen" Verlauf erreichte.
    • Dieses Verfahren ist sehr aufwändig. Im Interesse einer hohen Modellqualität sollte man jedoch darauf achten, dass importierte Funktionsverläufe einschließlich ihrer Ableitungen möglichst stetig und ohne Welligkeit sind.

Modell der Dioden-Kapazitaet

Der resultierende Strom wurde bisher auf Null gesetzt. Um im Algorihmus das dynamische Verhalten der spannungsabhängigen differentiellen Kapazität abzubilden, müssen wir nun schrittweise von unten nach oben die Berechnung des Stroms vornehmen. Dazu sind einige Vorbetrachtungen erforderlich:

  • Die differentielle Kapazität ist laut Definition:
[math]\displaystyle{ C_D = \frac{dQ}{dU} }[/math].
  • Der Zusammenhang zwischen elektrischen Strom und Ladung ist:
[math]\displaystyle{ I = \frac{\mathrm{d}Q}{\mathrm{d}t}. }[/math]
  • Stellt man diese Gleichung nach dQ um und setzt diesen Ausdruck in die Definition der differentiellen Kapazität ein, so erhält man:
[math]\displaystyle{ C_D = \frac{I \cdot dt}{dU} }[/math].
  • D.h., wir können im Algorithmus den Strom sehr einfach berechnen mit:
vdot  := der(v);
i     := C_diff*vdot;
  • Die erforderliche Variable vdot für die zeitliche Ableitung der Spannung müssen wir als zusätzliche Komponente definieren.
  • Außerdem ist die Kondensator-Spannung eine Integralgröße und erfordert deshalb die Zuweisung eines Anfangswertes!

Nach diesen Ergänzungen sollte das Modell noch genauso rechnen, obwohl wir keinen Vorwiderstand verwenden, was physikalisch unmöglich ist. Das funktioniert nur, weil wir von Null beginnend die Spannung langsam erhöhen.

Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie Aufladung mit R.gif

Im nächsten Schritt wollen wir eine konstante Betriebsspannung von 10 V vorgeben und den Kondensator über einen Vorwiderstand R aufladen:

  • Da die maximale Kapazität ungefähr 1 nF beträgt, werden wir den Vorwiderstand so dimensionieren, dass wir damit eine Zeitkonstante von 1 ms erreichen. Die tatsächliche Zeitkonstante wird sich natürlich durch die sich verringernde Kapazität verändern.
  • Wir müssen in der Simulationsteuerung die Simulationszeit und die Schrittweiten anpassen.
  • Es ergeben sich folgende Strom- und Spannungsverläufe für den Aufladevorgang:
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie - C-Aufladevorgang.gif
  • Diese Verläufe unterscheiden sich wesentlich vom Aufladevorgang einer konstanten Kapazität von z.B. 100 pF, welche hier zum Vergleich dargestellt ist:
Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie - C 1e-10 Aufladung.gif

In unserem Elementtyp werden wir zusätzlich noch den Wert der absoluten Kapazität berechnen. Dies ist für die Simulation des Verhaltens nicht erforderlich, aber sicher von Interesse:

  • Die Kapazität C eines Kondensators ist definiert als
[math]\displaystyle{ C = \frac{Q}{U} }[/math].
  • Da die anliegende Spannung im Element bekannt ist, wird nur noch der Wert der aktuell im Kondensator gespeicherten Ladung benötigt. Der Wert der Ladung ergibt sich durch die zeitliche Integration des Kondensatorstroms:
[math]\displaystyle{ Q(t) = Q(t_0) + \int\limits_{t_0}^{t} I(t)\ \mathrm{d}t }[/math]
  • Nach Definition der erforderlichen Komponenten (Parameter, Variable) genügen zwei Anweisungen für die Berechnung der absoluten Kapazität:
q     := integral(i,q0);
C_abs := q/v;
  • Leider kommt es sofort nach dem Start der Simulation sofort zu einer Division durch Null. Das ist verständlich, weil die Kondensatorspannung v am Anfang Null ist.

Es lässt sich auch kaum vermeiden, dass während des Betriebs die Spannung am Kondensator auch mal den Wert Null annimmt. Wir müssen also eine Möglichkeit finden, dass dabei trotzdem ein sinnvoller Wert für C_abs berechnet wird:

  • Im Beispiel kommt uns zu Hilfe, dass für eine Spannung von Null die Tangente und die Sekante zum Nullpunkt an der Funktion Q=f(U) den gleichen Anstieg haben. D.h., absolute und differentielle Kapazität sind dann gleich.
  • Das muss man nur noch durch eine geeignete bedingte Anweisung formulieren. Wir ersetzen die bisherige Berechnung von C_abs durch:
C_abs := (if v==0 then C_diff else q/v);
  • Das wird für das konfigurierte Modell funktionieren:
    Software SimX - Einfuehrung - Elektro-Chaos - C-Diode - Kennlinie-Cdiff und Cabs.gif
  • Bei maximaler Spannung ist trotz kleiner wirksamer differentieller Kapazität der Absolutwert der Kapazität Cabs=Q/U wesentlich größer.

Leider ist die Programmierung von bedingten Anweisungen in den Elementtypen kein triviales Problem, weil dabei die sogenannte Ereignisbehandlung wirksam wird:

  • Die numerische Integration versucht, den Umschalt-Zeitpunkt der formulierten Bedingungen möglichst exakt zu treffen.
  • Es wird dabei einen Zeitpunkt angesteuert, der ganz dicht hinter dem tatsächlichen Ereigniszeitpunkt liegt. Das wird dann als Eintreten des Ereignisses interpretiert!
  • Erst wenn das Ereignis damit "eingetreten" ist, erfolgt ein Umschalten der Bedingung (TRUE/FALSE). Damit ist es möglich, dass der eigentlich verbotene Zweig der Bedingung beim Ansteuern des Ereigniszeitpunktes trotzdem abgearbeitet wird. Es kann mit obiger if-Anweisung also trotzdem zur Division durch Null kommen!
  • Abhilfe schafft hier der noEvent-Operator. Damit kann man die Ereignisbehandlung z.B. für die bedingte Anweisung abschalten:
C_abs := noEvent(if v==0 then C_diff else q/v);
  • Erst dann erfolgt die Auswertung des bedingten Ausdrucks direkt und es kann zu keiner Division durch Null kommen.

Wir haben damit einen eigenen Elementtyp für eine kennliniengesteuerte differentielle Kapazität erstellt. Im Prinzip funktioniert die Kapazität wie die einer C-Diode. Allerdings haben wir nur den Sperrbereich der Diode nachgebildet. Im Durchlassbereich benutzen wir die gleiche Funktion wie im Sperrbereich, was natürlich falsch ist!

Achtung: Speichern der Modelldatei C-Kennlinie.ism nicht vergessen!