vorhergehende Seite nächste Seite Inhaltsangabe

43. Eigene Zielfunktionen erstellen

Ein astabiler Multivibrator dient als Versuchsschaltung
Eine eigene Zielfunktion schreiben und einsetzen
Ausführen der neuen Zielfunktion
Zielfunktion für das Pulspausenverhältnis erstellen
Suchfunktionen verwenden

Im Abschnitt "Eine parametrische Analyse mit Performance Analysis auswerten" konnten Sie erfahren, wie Sie mit Zielfunktionen (Goal Functions) Kurvenscharen auswerten können. Hier lernen Sie, wie Zielfunktionen aufgebaut sind und wie Sie mit Hilfe von Suchfunktionen eigene Zielfunktionen entwerfen können.

Ein astabiler Multivibrator dient als Versuchsschaltung

Als Versuchsbeispiel dient ein astabiler Multivibrator (Rechteckgenerator):


Der astabile Multivibrator (die vorbereite Simulation finden Sie unter asta bzw. in der asta.zip).

Damit die Schaltung anschwingt, müssen Sie in der Transientenanalyse eine besonders kleine Schrittweite wählen:


Wählen im Simulationsprofil der Transientenanalyse von 0,001 ms. SKIPBP muss nicht unbedingt aktiviert sein.

Mit einer parametrischen Simulation soll nun der Widerstand Rton schrittweise verändert werden, damit sich nur die Einschaltzeit ton verändert:


Simulationsprofil für die parametrische Simulation.

Das Ergebnis der parametrischen Simulation sieht dann leider recht unübersichtlich aus:


In Probe ist die Veränderung der Einschaltzeit leider kaum auszumachen. Mehr Aufschluss würde eine Zielfunktion liefern, welche die Einschaltzeiten darstellt.

Es wäre nun schön, wenn es für die Performance Analysis eine Zielfunktion gäbe, mit der Sie sich die Einschaltzeit anzeigen lassen könnten.

Eine eigene Zielfunktion schreiben

In der Datei pspice.prb, welche Sie z.B. im Unterordner Orcadlite\PSpice\Common finden, stehen bereits vorbereitete Zielfunktionen, die Sie zum Teil schon bei der Performance Analysis eingesetzt haben. Diese können Ihnen als Anregung für Ihre eigenen Zielfunktionen dienen.

Für das hier vorgestellte Beispiel soll eine Zielfunktion mit dem Namen Einschaltzeit entworfen werden, die die Zeitdifferenz zwischen 70 % des Maximalwertes auf der aufsteigenden Flanke (1. Suchfunktion) und 90 % des Maximalwertes auf der absteigenden Flanke (2. Suchfunktion) angibt:


Die Zielfunktion in unserem Beispiel misst die Zeitdifferenz zwischen den X-Werten P1 (x1) und P2 (x2).

Diese Zielfunktion  (siehe auch unter zielfunktion.txt) schreibt sich dann wie folgt. Die Kommentare sind wieder mit einem Sternchen (*) eingeleitet und sollen Ihnen die Syntax erklären.

Einschaltzeit(1)=x2-x1
* x2-x1 gibt die Differenz der beiden
* gesuchten Werte auf der X-Achse an.

{
1|search forward level (70%,p)!1

* Eine Suchfunktion, die auf der aufsteigenden  Flanke (p)
* den X-Wert x1 bei 70 % des Maximalwertes findet.

search forward level (90%,n)!2;

* Eine Suchfunktion, die auf der absteigenden  Flanke (n)
* den X-Wert x2 bei 90 % des Maximalwertes findet.

}

******************************************
*  Anmerkung: Aus didaktischen Gründen und zur
*  besseren Unterscheidung wurden die
*  unüblichen Werte 70% und 90% gewählt.
******************************************


Mehr über Zielfunktionen finden Sie in der der PSpice-Hilfe. Die praktische Eingabe dieser Zielfunktion erfolgt dann wie nachfolgend beschrieben. Nach erfolgter Performance Analysis klicken Sie in der Menüleiste von Probe auf  Trace - Goal Functions... .


Klicken Sie in Probe auf  Trace und dann auf Goal Functions... .

Danach öffnet sich das Fenster "Goal Functions", welches Ihnen eine Liste der bereits vorhandenen Zielfunktionen zeigt. Klicken Sie nun auf den Knopf  "New". Es öffnet sich das Fenster "New Goal Function". Tragen Sie dort unter "New Goal Function name" den Namen "Einschaltzeit" Ihrer neuen Zielfunktion ein. Klicken Sie zudem "use local file" an, damit diese neue Zielfunktion in der zum PSpice-Projekt gehörigen PRB-Datei abgespeichert wird. Dann bestätigen Sie alles mit "OK":


So legen Sie eine neue Zielfunktion an, die in der lokalen PRB-Datei abgespeichert wird.

Nun öffnet sich ein Fenster "Edit New Goal Function", in welchem Sie Ihre Zielfunktion editieren können:


Hier tippen Sie Ihre neue Zielfunktion ein.

Statt die Zielfunktion von Hand einzutippen, können Sie auch mit Copy und Paste die vorbereitete Zielfunktion aus der Datei zielfunktion.txt verwenden:


Nach erfolgter Eingabe müssen Sie nur noch auf OK klicken.

Dann erscheint noch ein weitere Fenster "Goal Functions", das Sie mit "Close" schließen:


Schließen Sie dieses Fenster, in welche nun Ihre neue Zielfunktion aufgelistet ist, mit "Close".

Ausführen der neuen Zielfunktion

Die neue Zielfunktion aktivieren Sie nach der gleichen Methode, welche bereits schon im Abschnitt "Eine parametrische Analyse mit Performance Analysis" beschrieben worden ist. Das Ergebnis sieht dann wie folgt aus:


Die Einschaltzeit in Abhängigkeit vom Widerstand Rton.

Zielfunktion für das Pulspausenverhältnis erstellen

Die beschriebene Zielfunktion können Sie erweitern, um sich das Pulspausenverhältnis (Einschaltzeit / Ausschaltzeit) (pulsdurchpause.txt) anzeigen zu lassen:

Pulsdurchpause(1)=(x2-x1)/(x4-x3)
{
1|search forward level (70%,p)!1
search forward level (90%,n)!2
search forward level (10%,n)!3
search forward level (20%,p)!4;
}

Achten Sie immer darauf, dass die Bezeichnungen der Zielfunktion mit einem Buchstaben beginnen und dass das Semikolon jetzt in der zweitletzten Zeile steht. Zur besseren Unterscheidung der Punkte wurden wieder verschiedene Prozentangaben gewählt:


Die vier Punkte, welche von den Suchfunktionen gefunden werden, um das Verhältnis Einschaltzeit / Ausschaltzeit zu bestimmen. Um das tatsächliche Pulspausenverhältnis zu erhalten, sollten für alle vier Punkte 50% wählen.

Nach einer Performance Analysis erhalten Sie dann folgendes Ergebnis:


Das Pulspausenverhältnis in Abhängigkeit vom Widerstand Rton.

Suchfunktionen verwenden

Die Suchfunktionen, welche in den Zielfunktionen vorkommen, können Sie auch isoliert verwenden, um im Probefenster für bestimmte Y-Werte die die dazugehörigen X-Werte zu finden. Das nachfolgende Bild zeigt Ihnen, wie Sie mit einer Suchfunktion den Probe-Cursor genau auf 7 Volt positionieren können.


So verwenden Sie Suchfunktionen im Probefenster.

Aktivieren Sie wie gewohnt  mit diesem Knopf   den Probe-Cursor und verschieben Sie das Fadenkreuz in Richtung der gesuchten Spannung von 7 Volt. Dann klicken Sie auf den Knopf mit dem Fernglas  und tragen in das neue Fenster "Search Command"

search forward level(7, p)

ein. Dieser Befehl findet in aufsteigender Richtung den nächsten Punkt, der auf einer aufsteigenden Flanke den Y-Wert 7 besitzt. Bestätigen Sie dann mit OK. Nun können Sie im Probefenster den dazugehörigen Y-Wert ablesen.

Weiter zum nächsten Abschnitt