mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik LTSpice - Parameterübergabe


Autor: Herb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich befasse mich aktuell mit einer umfangreichen Simulation in LTSpice 
und brauche eure Hilfe.
Dieses Projekt soll hinterher weiterverwendet und deswegen weitestgehend 
hierarchisiert werden. Hierbei entstand jedoch ein Problem mit der 
Parameterübergabe an Subcircuits.

Das Projekt ist wie folgt aufgebaut:

Ebene -2:
- Subcircuit: stellt eine Spannungsgesteuerte Spannungsquelle dar.
Ebene -1:
- Sekundärschaltbild: Komposition aus verschiedenen Elementen, unter 
anderem mehrere Elemente der Ebene -2.
Hauptebene:
- Hauptschaltung: Komposition mehrerer Elemente der Ebene -1.

Nun soll die Spannungsgesteuerte Spannungsquelle parametriert werden. 
Das heißt ich will in der Hauptebene die Parameter der 
Spannungsgesteuerten Spannungsquellen einstellen - für jede einzelne von 
ihnen unterschiedliche Werte. Jedoch funktioniert dies nicht so, wie 
wenn man die Parameter an Sekundärschallbilder unterer Hierarchieebenen 
übergibt, da sich Subcircuits anscheinen anders verhalten.

Hat jemand von euch schon Mal Erfahrungen mit dieser Situation gemacht 
und kann mir weiterhelfen?

Liebe Grüße und vielen Dank schonmal im Voraus!

Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinst du jetzt hierarchische Schaltpläne oder meinst du Hierarchie 
basierend auf subcircuits mit reinem Text?

Autor: Max H. (herb17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beides!

Ebene -2 ist ein Subcircuit, also eine in Textform geschriebene 
Netzliste (<- so heißt es doch, nicht wahr?).
Und Ebene -1 ist ein hierarchischer Schaltplan, also mit diskreten 
Bauelementen in LTSpice aufgebaut.

Anders konnte ich es bisher leider nicht implementieren.

Autor: Helmut S. (helmuts)
Datum:
Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
Hier mal ein paar Beispiele die ich für die LTspice-Yahoo-group gemacht 
habe.

Keines der Beispiele beinhaltet exakt deine Konfiguration.

Zur Not musst du eines deiner Beispiele anhängen, wenn ich es 
"reparieren" soll.

: Bearbeitet durch User
Autor: Max H. (herb17)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Beispiele!
Wieder was gelernt was bestimmt später nochmal hilfreich sein wird.

Für mein spezielles Problem hier nochmal ein kleines Beispiel. Nicht so 
professionell und eingänglich wie deins, aber es beschreibt mein Problem 
ganz gut.

Und zwar haben wir in den Dateien "resistor.cir" und "block.asc" jeweils 
einen Widerstand. Jeweils ein Widerstand in Form einer Netzliste und 
eines hierarchischen Schaltplans sind in "doppelblock.asc" 
zusammengefasst.

In der Hauptebene haben wir nun zwei solcher Doppelblöcke mit jeweils 
zwei Widerständen drin, deren Parameter einzeln, von der Hauptebene aus 
eingestellt werden sollen.

Bei dem Widerstand in dem hierarchischen Schaltplan klappt dies, 
mithilfe der Übergabe des Parameters an den Unterschaltplan, ohne 
Probleme.

Das Gleiche klappt jedoch mit dem Widerstand in der Netzliste nicht.

Eine Möglichkeit, den Widerstandswert in der Netzliste zu parametrieren, 
ist in meinem Beispiel gegeben. Leider ist es jedoch hiermit nicht 
möglich, die beiden Werte der Netzlisten-Widerstände unabhängig 
voneinander festzulegen.

Vielen Dank für deine Mühen!

Autor: Helmut S. (helmuts)
Datum:
Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Hallo Max,

es ist gerichtet :-)
Schau bitte bei den Symbolen die Attribute an. Die blauen Kommentare 
kannst du auch weglassen.

Hruß
Helmut

Autor: Helmut S. (helmuts)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Nachtrag
Natürlich könnte man auch mehrere Parameter übergeben.
Statt
RA={RA1}
steht dann halt
RA={RA1} RX={RA2} ...

Autor: Max H. (herb17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Helmut,

Habe deine Lösung soeben in mein Projekt implementiert und es klappt 
wunderbar!

Vielen lieben Dank dir, hat mir wirklich geholfen. Wäre ich von selbst 
vermutlich nie drauf gekommen.

Autor: Max H. (herb17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Helmut,


ich glaube ich müsste dich nochmals um Hilfe bitten. Jetzt wo man gerade 
mal einen Experten gefunden hat, dachte ich mir, ich frage einfach 
nochmal ganz doof.

Und zwar wollte ich fragen ob es möglich ist, default-Parameter für die 
beiden Widerstände festzulegen?

Ich hatte versucht im ersten Unterschaltbild - also dem doppelblock - 
mittels der Spice-Direktive ".param RB={100} .param RI={100}" 
default-Werte festzulegen, wenn auf der Hauptebene keine Parameter 
angegeben werden. Dies führte jedoch nicht zum gewünschten Ergebnis.

Ein weiterer Versuch, die Widerstände in den "PARAMS" des Schaltbildes 
für den Doppelblock direkt zu definieren führte ebenfalls zu einer 
Fehlermeldung.


Viele Grüße,
Max

Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solange du in den Symbolen bereits Parameter übergibst, muss LTspice vor 
der eigentlichen Simulation in der Lage sein denen eine Zahl zu geben.

Ändere doch dein doppelblock.asy.
Schreib dort statt RB={RA} einfach RB=100.

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.