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.
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.
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.