Wie modelliere ich ein Widerstandsarray in SPICE?

Ich baue derzeit eine Bibliothek von SPICE-Simulationsmodellen auf, die Widerstandsarrays enthalten wird.

Diese Arrays weisen sowohl absolute Toleranzen als auch relative Toleranzen auf. Normalerweise sind die relativen Eigenschaften besser als die absoluten Eigenschaften. Beispielsweise haben die 4 Widerstände des LT5400 von Linear eine absolute Toleranz von +/-7,5% und eine relative Toleranz von +/-0,010%. Dasselbe gilt für die Temperaturdrift: Sie haben eine absolute Drift von 25 ppm/K und eine relative Temperaturdrift von 0,2 ppm/K.

Ich möchte diese Arrays modellieren, um die Auswirkungen von Temperaturdrift und Komponententoleranzen auf meine Signalerfassungskette abzuschätzen. Dazu habe ich bereits die beiden Links gefunden, die für diskrete Bauelemente hilfreich sind : Simulation von Bauteiltoleranzen und Abschätzung von Temperaturdrifteffekten . Sie helfen mir jedoch nicht dabei, relative Toleranzen und relative Abweichungen zu modellieren.

  • Wie kann ich in meinem SPICE-Modell sowohl absolute Toleranzen als auch relative Toleranzen von Widerstandsarrays berücksichtigen?

PS: Es gibt ein Modell des LT5400 in LTSpice, aber ich habe keine Möglichkeit gefunden, auf das Quellmodell zuzugreifen. Daher habe ich keine Ahnung, wie man es in Monte-Carlo-Analysen oder Temperaturschritten verwendet.

Warum haben Sie diese Bedenken nur bei Array-Widerständen und nicht bei jedem anderen Widerstand in Ihrem Design?
Tatsächlich verwendet meine Signalerfassungskette nur Widerstandsarrays für thermische Stabilität und Wiederholbarkeit. Ich möchte diese Leistungen jedoch quantifizieren und Stabilität gegenüber der Qualitätsstufe meiner Arrays gewinnen.

Antworten (1)

Wenn ich Ihre Frage nicht falsch verstanden habe, haben Sie die Antworten in den von Ihnen angegebenen Links: Erstellen Sie einfach Ihre Widerstände, jeden einzelnen, mit Parametern in geschweiften Klammern, {mc(1,0.1)}falsches Beispiel. Fügen Sie für die Temperatur einfach nach dem Wert hinzu:

R1 pin1 pin2 {mc(1,0.1)} temp={mc(25,0.2)}

Vergessen Sie nicht, dass die Temperatur nicht dynamisch ist, sie ist keine Funktion der Zeit. Ihr Array würde also ungefähr so ​​​​aussehen:

R1 pin1 pin2 {mc(1,0.1)} temp={mc(25,0.1)}
R2 pin3 pin4 {mc(10k,0.001)} temp={mc(27,0.2)}
R3 pin5 pin6 {mc(2.7k,0.05)} temp={mc(-100,0.001)}
...

Oder machen Sie einfach die Temperaturen gleich, {temp}, und fügen Sie .param temp=mc(27,0.1)zum Beispiel hinzu. Das würde sie alle von der gleichen Temperatur abhängig machen.

Danke für die Eingabe. Dies modelliert jedoch nicht die relativen Schwankungen der Widerstandswerte innerhalb des Arrays. Jeder einzelne Widerstand hat einen "zufälligen" Wert, der vom Wert des anderen Widerstands abhängt. Nach zweimaligem Nachdenken wäre es, als hätte man korrelierte Zufallsvariablen. Aber ich mag Ihre Idee, einen "Monte-Carlo-Parameter" zu haben. Ich denke, es lohnt sich, diese Idee zu untersuchen, um meine Arbeit zu erledigen.