Comment utiliser .step param avec plus de deux paramètres dans LTSpiceIV

12

J'ai besoin de faire trois simulations transitoires avec des valeurs différentes de certaines résistances (appelées commodément R1 et R2) dans chacune. Ce que je veux faire exactement, c'est ceci:

  • Sim. 1: R1 = 1 k , R2 = 10 kΩΩΩ
  • Sim. 2: R1 = 1 M , R2 = 10 MΩΩΩ
  • Sim. 3: R1 = 1 k , R2 = 1 MΩΩΩ

S'il n'y avait qu'une seule résistance dont la résistance varie, alors je définirais simplement sa résistance sur "{r1}" (j'utilise des lettres minuscules pour en faire une variable / paramètre différent de R1) et utiliser une commande telle que:

.step param r1 list 1k 1meg 1k

Cependant, comme je dois changer deux paramètres (ensemble) deux fois chacun, j'ai lu ici que (au moins sur LTSpiceIV) qu'une solution de contournement à mon problème pourrait utiliser quelque chose comme ceci:

.step param X list 1 2 3

.param r1 = table(X, 1k, 1meg, 1k)

.param r2 = table(X, 10k, 1meg, 10meg)

En faisant la simulation, j'obtiens les avertissements suivants:

WARNING: Can´t resolve .param r2 = table(X, 10k, 1meg, 10meg)
Select OK to continue the simulation with the default model or Cancel to quit now.

Il en va de même pour r1.

Pour une raison quelconque, la simulation ne "casse" pas si j'ajoute un élément supplémentaire à la table. Dans ce cas, la simulation prend trop de temps, progressant plus lentement à chaque fois, car elle ne se terminerait jamais. J'ai essayé de régler X sur 0 1 2 au lieu de 1 2 3, mais cela ne fonctionne pas non plus.

Voici quelques images:

Circuit + commandes

Message d'erreur

Votre aide serait très appréciée.

sebascarra
la source
Je suis confus, voulez-vous simuler 3 situations ou plus? Si vous voulez simplement simuler les 3 scénarios, je ne prendrais pas la peine de le faire avec du piquant.
ACD
Et que voulez-vous que l'axe X soit?
ACD
Je voudrais simuler ces trois situations et les représenter ensemble. Je sais que je pourrais simplement exporter un fichier CSV et les tracer avec Octave ou Excel, mais il serait tellement plus utile de le faire directement sur LTSpice. Dans cet article ( electronics.stackexchange.com/questions/20811/… ), quelqu'un a dit comment le faire, mais cela ne fonctionne pas pour moi. Dans cet exemple, j'ai mis trois scénarios, mais je pourrais avoir besoin d'en mettre plus.
sebascarra
En ce qui concerne votre deuxième question, X serait les différents index qui me permettraient d'accéder aux valeurs de la table. Puisque (apparemment) LT ne me permettra de parcourir qu'une variable à la fois, je balaye X puis j'essaie d'accéder aux valeurs de la table en fonction de la valeur que X a prise à cette étape. J'espère être clair. Je vous remercie.
sebascarra
Eh bien pour l'un, la commande table veut un index, qui est X, puis un ensemble de paires xy. Chaque paramètre doit contenir 3 paires, pas trois valeurs.
ACD

Réponses:

17

Dans LTSpice, la commande table crée vraiment une sorte de dictionnaire où vous devez spécifier des paires de valeurs clés. La directive appropriée pour votre cas serait alors:

.step param Rx list 1 2 3
.param R1 table(Rx,1,1k,2,1Meg,3,1k)
.param R2 table(Rx,1,10k,2,1Meg,3,10Meg)

et régler la valeur des résistances sur {R1}et {R2}respectivement.

Si vous souhaitez avoir les valeurs d'une résistance à proximité, vous pouvez également entrer (au lieu de la valeur, lorsque vous cliquez dessus avec le bouton droit)

R=table(Rx,1,10k,2,1Meg,3,10Meg)

dans le champ de valeur de résistance. Cela fonctionne de la même manière pour tous les types de composants et avec un script externe pour créer des fichiers .asc, il peut être utilisé comme une béquille pour LTspices manquant de la fonctionnalité de monte carlo.

PlasmaHH
la source
4

Un balayage / étape de paramètre peut contrôler plusieurs valeurs de composant via des expressions.

Votre variable de contrôle que vous effectuez peut être un angle de phase ou un retard ou similaire que vous saisissez dans une ou plusieurs formules / expressions pour obtenir les valeurs de composants ou les paramètres résultants à appliquer dans la conception en tant que {paramètre}

Cela est utile si vous souhaitez conserver une relation ou contrôler une propriété physique indirecte de la conception, comme une propriété actuelle ou de filtre.

Dans l'éditeur de commandes "op", vous pouvez saisir quelque chose comme ceci:

.STEP param Imax 0.1 0.3 0.1 
.PARAM Uin= 5
.PARAM R = (Uin-0.84954605)/Imax

Il fait passer Imax de 0,1 à 0,3 par pas de 0,1 et calcule une valeur de résistance R en utilisant le paramètre Imax, Uin, une chute de tension supposée de 0,85 .. d'une diode.

Le PARAM R peut être référencé dans une notation de valeur usng {R} de composant. Remarque Uin pourrait être utilisé comme {Uin} dans une source de tension ou similaire et ainsi de suite.

Pour plusieurs lignes dans la fenêtre de l'éditeur "op", utilisez CTRL + M pour conserver tous les paramètres dans la même zone de texte.

tofo
la source