mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Integrator in LTSpice mit begrenzter Amplitude


Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte in LTSpice Signale integrieren. Das geht ja relativ einfach 
mit einer B-Source und V=idt(V(x)). Ich möchte aber den maximalen 
Ausgangswert begrenzen, ähnlich wie es ein realer Integrator mit 
endlichen Spannungsrails macht. Das ginge auch mit einer B-Source und 
V=limit(-15,15,idt(V(x)). Dadurch hab ich aber eine Art "Integrator 
windup", weil der Integrator intern deutlich höher als das Limit gehen 
kann und dann auch erst wieder intern bis auf die Railspannung herunter 
fahren muss, bevor eine Änderung im Ausgangssignal sichtbar wird.

Ich will also einen idealen Integrator, der aufhört weiter zu 
integrieren wenn er an festgelegte Grenzen kommt. Deswegen ideal, weil 
potentiell schneller ind er Simulation, übersichtlicher im Schaltplan 
und einfacher zu parametrieren.

Möglichkeit 1: der klassische RC-Integrator mit idealem Opamp. Nachteil: 
mehr Bauteile zum platzieren und Parameter nicht so bequem einstallbar.
optional: E-Source mit table(-1m -15 1m 15) als "idealer" Opamp

Möglichkeit 2: B-Source mit V=idt( if(V(integrator)<15, V(x), 0) ), oder 
"integriere solange du unter dem Rail bist". Problem: Sobald der 
Integrator auf 15V ist, kommt er auch nicht mehr runter.

Möglichkeit 3: idt(if(V(integrator)<15,V(x),min(0,V(x)))), oder 
"integriere solange du unterm Rail bist, sonst integriere nur negative 
Werte". Problem: wird langsam unübersichtlich und behandelt erst ein 
Rail.

Möglichkeit 4:
idt(
 if(V(integrator) > 15, min(0,V(x)),
 if(V(integrator) < -15, max(0,V(x),
 V(x)
))), oder "Wenn du über dem positiven Rail bist, integriere nur negative 
werte, wenn du unter dem negativen Wert bist, integriere nur positive 
Werte, sonst integriere einfach". Problem: noch unübersichtlicher 
(Schaltplan ist aber übersichtlicher).

Hat da jemand anders eine bessere Idee? Ich bin sicherlich nicht der 
einzige oder erste mit dem Problem.

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Möglichkeit für die B-Source ist mir noch gekommen:

V=idt(
   limit(
    if(V(integrator)>15,0,max(0,V(x))),
    V(in),
    if(V(integrator)<-15,0,min(0,V(x)))
   )
  )

oder "Integriere V(x), begrenzt auf maximal 0 wenn der Ausgang am oberen 
Rail ist und begrenzt auf minimal 0 wenn der Ausgang am unteren Ende 
ist". Ist aber immernoch unschön.

Autor: bla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mich jetzt mit

V=idt(V(x)*((V(x)>0&V(integrator)<15)|((V(x)<0)&V(integrator)>-15)))

zufrieden gegeben. Ist zwar Kauderwelch, aber kompakter Kauderwelsch.

Würde mich trotzdme interessieren, ob es noch andere Ansätze gibt.

Autor: Name H. (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bis jetzt ist ja noch keine Loesung da. Und ich denke analog wird's 
schwierig.

Ich mach's jeweils digital, da hat man solche Freiheiten.
Falls es um eine Regelung geht, muss man den Integrator stoppen wenn
das Stellglied in die Begrenzung geht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.