Hallo Liebes Forum,
Frage kurz formuliert:
Wie setzte ich 0.08/V(eingang) als einen Parameter in LT Spice um?
Lange Version:
Ich komme gerade bei einem Modell nicht mehr weiter.
Dabei möchte ich einen Operationsverstärker in einfachster weise als
Millerintegrator Simulieren.
Der Opamp besteht also aus einer Spannungsgesteuerten Stromquelle
(Kapazität und Widerstand Parallel) und und einer Spannungsgesteuerten
Spannungsquelle.
Ich bekomme es aber bei bestem Willen nicht hin, die Slew Rate sinnvoll
zu implementieren.
Die Slew Rate errechnet sich ja aus Slew=Imax/C
Wenn ich in LT Spice allerdings den Wert von G limitiere, dann limitiere
ich die Verstärkung. Im Beispiel oben wäre das dann die
Eingangspannung*0.08.
Das ist natürlich murks!
Ich muss ja den maximalen Ausgangsstrom von G limitieren, also das
Verhältnis durch Eingangspannung/limit. Nur wie formuliere ich das in
einen Parameter um?
Schon mal vielen Dank und ein gutes verlängertes Wochenende!
Das wäre natürlich auch eine Möglichkeit, dann ist der Lerneffekt aber
leider aber kleiner.
Es ist nicht so, als hätte ich nicht schon denkbare Variatonen von
"={LIMIT(1, V(in)*0.8, -V(in)*0.8}" ausprobiert.
Die Antworten haben sich gerade überschnitten:
Von dieser Seite komme ich eigentlich.
Dort wird allerdings die Spannungsgesteuerte Stromquelle "aus der Ferne"
gesteuert. Ich mag es aber lieber, wenn man direkt sieht von wo die
Ansteuerung kommt, daher hab ich das Symbol der spannungsgesteuerten
Quelle verwendet.
limit(V(in)*1, -1m, 1m)
Den Widerstand zu 100k wählen für Leerlaufverstärkung 100000.
C=1n für 1V/us.
Nachtrag
> limit(V(in)*1, -1m, 1m)
Ich glaube meine Werte waren noch keine gute Wahl. Vielleicht doch
besser mal nachlesen.
http://www.ecircuitcenter.com/OpModels/Ilimit_Slew/ILim_Slew.htm
Die Berechnung verstehe ich eigentlich.
Wenn ich folgendes Probiere einen fehler zurück:
Error on line 4 : g1 0 n004 in 0 =(limit(1,0.8/v(in),-0.8/v(in))
Unknown parameter "limit"
Fatal Error: Missing value of transconductance for "G1"
Sobald ich das /v(in) raus nehme läuft die Simulation. Da steckt doch
sicher irgendwie ein syntax Fehler.
Wenn du schon PSPICE-syntax verwendest, dann richtig.
Beispiel:
G1 0 10 VALUE={LIMIT( 2.5133e-2*V(1,2),0.01,-0.01)}
Beachte das VALUE= und die geschweiften Klammern {}
VALUE={LIMIT( 2.5133e-2*V(1,2),0.01,-0.01)}
Dein /V(in) ist zusätzlich noch falsch. Es muss * heißen.
Das / müsste an der Stelle richtig sein, wenn ich einen G Block
verwende.
(100V am Eingang würden 100A ergeben, limit ist dann 100/100 * 0.8 also
0.8A)
Ich trage als Bauteilwert (Value) ein:
{limit(1,0.8/v(in),-0.8*v(in)}
macht mir mein Spice dann das, was ich oben gepostet habe
Schon mal vielen Dank für eure Geduld!
Ich bin gestern wirklich noch verzweifelt.
Hat jemand eine gute Empfehlung für eine Einführung in die Spice
Programmiersprache (Die Auswahl ist ja groß)?
Hallo Stefan,
Ich habe dir mal ein Beispiel gemacht. Werde mir aber mal die Beispiele
von hier umsetzen und hier einstellen.
http://www.ecircuitcenter.com/OpModels/Ilimit_Slew/ILim_Slew.htm
Man muss ja nicht immer bei null anfangen.
Du hast PSPICE-spezifische Syntax verwendet. Das findest du im Manual
von PSPICE aber nicht in einem allgemeinen SPICE-Buch.
VALUE={1m*limit(V(in), -0.1, 0.1)}
LTspice versteht diese Syntax auch. Dafür nimmt man das Symbol gpoly in
LTspice. in nativem LTspice würde man eine Bi-Quelle nehmen.
Die Formel wäre damit
I=1m*limit(V(in), -0.1, 0.1)
Gruß
Helmut
Ich habe erstmal eine Notlösung verwendet um eine Begrenzung zu bauen.
Die Maximale Spannung wird mit Dioden begrenzt und dadurch dann nach
einem G-Block der maximale Strom.
Jetzt komme ich aber mit den Berechnungen aus dem Netz nicht wirklich
weiter:
Dort wird die Slew Rate als das dU/dt der Ausgangspannung bei offener
Schleife angesehen.
Im Datenblatt des Chips ist die Slew Rate aber in der geschlossenen
Schleife angegeben. Auf die Slew Rate der offenen Schleife kann ich
daher doch gar nicht schließen?
Die slewrate bei offener Schleife ist die gleiche. Der Opamp ist auch
bei Ggenkopplung schon außerhalb des linearen Bereichs, wenn er in die
slwerate-Begrenzung geht.
Hallo Helmut,
Ich bin gerade dabei deine Syntax einzubauen möchte aber kurz meine
Simulation zeigen. Bitte nicht über den Workaround lachen!
Die Slew Rate wird auf etwa 20V/us begrenzt, in der Simulation lässt
sich das sehr gut an der Gerade ablesen.
Ab 1.5us greift die Slew Rate nicht mehr und das IC verhält sich linear.
Im Datenblatt steht folgendes:
"The feedback compensation network limits the bandwidth of the
closed-loop response and so the slew rate will be reduced due to the
high frequency roll-off. Without feedback compensation, the slew rate is
typically larger."
Die Angabe von 20V/us wurde mit der Schaltung im Anhang (Quelle LM 3886
Datenblatt) gemessen. Wird die Slew Rate also wie die Anstiegszeit am
90% Punkt bestimmt?
So ganz weiß ich noch nichts mit der Datenblattangabe anzufangen.
Die slewrate ist immer am Punkt maximaler Steilheit. Es ist einfach die
obere Grenze der Anstiegsgeschwindigkeit.
Du hast ein Modell mit Übetragungsfunktion 1. Ordnung. Deshalb kriecht
das immer auf den Endwert.
Ein realer Opamp ist mindestens ein System 2. Ordnung, nomralerweise
sogar 3. Ordnung. Deshalb gibt es dort meistens auch Überschwinger.
Es gibt in LTspice universelle Modelle - opamp und UniversalOpamp2. Beim
UniversalOpamp2 kann man aus 4 Modellen wählen.
Ich habe mal ein Beispiel gemacht. Durch Rechtsklick auf das Symbol
kommt man in das Fenster um die Parameter zu setzen und um das Modell
auszuählen. Zum Modell wählen dort einen Doppelklick in das Feld mit
level.x machen.
Slew=10Meg bedeutet 10V/us
Beim LM 3886 habe ich die Datenblattkurve digitalisiert (und auch einen
Chip in der offenen Schleife vermessen um zu sehen ob die Angaben
hinhauen).
Eine gute Näherung war im Prinzip ein Tiefpass 1.Ordnung mit niedriger
Grenzfrequenz gefolgt von 5 Tiefpässen mit hoher Grenzfrequenz.
Wenn ich den Tiefpass 1 Ordnung von der Übertragungsfunktion "abziehe"
ist die Phasenverschiebung ist ab etwa 300KHz proportional zur Frequenz
die Amplitude fast linear. Also eigentlich einVerzögerungsglied, das ich
inLT Spice nicht gefunden habe. Die Approximation über 5 Tiefpässe fand
aber physikalischer.
Wenn ich durch bin, zeige ich mal die Simulation und den gemessenen
Wert. Schon ohne genaue Slew Rate limitierung war ich bereits zufrieden.
Das Limit führt leider bei einem etwas komplexeren Modell zu Problemen.
So ein Limit ist einfach zu unstetig. Die Simulation läuft mit dem
Limitieren durch Dioden wesentlich stabiler.
Stefan schrieb:> Wie heißt denn das Aquivalent von b1 für Spannungsquellen?> E-ploy scheint ja das Aquivalent für G-Poly zu sein.>> Beste Grüße, Stefan
Bi ist für die steuerbare Stromquelle
I=Formel
Bv ist für die steuerbare Spannungsquelle
V=Formel
bv, BV, Bv, bV ist für LTspice egal. Es wird nicht zwischen Groß- und
Kleinbuchstaben unterschieden.
Im klassischen SPICE gab es diese B-Quellen gar nicht. Da gibt es nur
E-POLY und G-POLY. Die konnten nur ein Polynom der Form k0 +k1*V +
k2*V^2 + k3*V^3 + .... OK es gibt POLY auch mit 2 Eingängen. Damit kann
man auch V1*V2 bilden. Allerdings sind die Formeln mit B-Quellen viel
übersichtlicher als die Verwemdung von POLY bei E und G Quellen. PSPICE
hat einfach diese klassichen E und G Quellen mit VALUE=Formel
aufgebohrt. Die sind im Prinzip das Gleiche wie die B-Quellen in LTspice
und eingen anderen SPICE Programmen.