Formule de colonne personnaliséeJe voudrais ajouter une nouvelle colonne 'Vth' dans mon tableau avec le calcul suivant :-
Je dois d'abord trouver l'index i de la colonne 'IDS' où 'IDS' est le plus proche de 1e-9 (ou Log10[IDS] = -9) ; et alors Vth = VGS(i). Il doit également être regroupé par colonnes Site, Mesure, SWP et Wafer. Autrement dit, chaque combinaison unique de Site, Mesure, SWP, Wafer aura une Vième valeur.
Si l'IDS n'est pas exactement 1e-9. Veuillez interpoler de cette façon. C'est-à-dire; Log10[IDS] contre VGS.
VTH exact = Interpoler (Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );
Notez que la colonne SWP est un balayage de VGS dans le sens avant (0) et arrière (1) ; par conséquent, la direction de l'interpolation doit être prise en compte de manière appropriée.
Mélange et nettoyage des donnéesRe : Formule de colonne personnaliséej'ai fait quelques fautes de frappe dans l'e-mail ci-dessous. Ci-dessous devrait être correct
Trouvez VGS, logIDS, qui est juste au-dessus de -9..-- Appelez-le VGS_u, log(IDS)_u
Trouvez VGS, logIDS, qui est juste en dessous de -9..-- Appelez-le VGS_i, log(IDS)_i
calculer la pente, m = abs(log(IDS)_u-log(IDS)_i)./abs( abs(VGS_u-VGS_i))
VTH exact = VGS_i + 1/m*(9-abs(log(IDS)_i)))
Re : Formule de colonne personnaliséeSalut Kevin!
Je pensais que vous pouvez adopter cette approche.
Trouvez VGS, logIDS, qui est juste au-dessus de -9..-- Appelez-le VGS_u, log(IDS)_u
Trouvez VGS, logIDS, qui est légèrement inférieur à -9..-- Appelez-le VGS_i, log(IDS)_i
calculer la pente, m = abs(log(IDS)_u-log(IDS)_i)./abs( log(IDS)_u- log(IDS)_i)
VTH exact = m*(abs(VGS_u-VGS_i)) + min(abs( log(IDS)_u), abs( log(IDS)_i) )
Je voulais vraiment une formule personnalisée, même si cela peut être fait via des formules dans plusieurs colonnes.
Salutations,
Pankaj
Re : Formule de colonne personnaliséeS'il est possible de l'avoir sous forme de formule de colonne, ce serait assez difficile.Le meilleur choix pour vous serait probablement un script de table ou simplement un script ordinaire.Ce qui suit semble bien fonctionner.
dt = Current Data Table();
summarized table = dt << Summary( Group( :Site, :Measurement, :SWP, :Device, :Wafer ) );
lookup = [=> ];
For Each Row(
summarized table,
If( !(lookup << Contains( :Site, Empty() )),
lookup[:Site] = [=> ]
);
If( !(lookup[:Site] << Contains( :Measurement, Empty() )),
lookup[:Site][:Measurement] = [=> ]
);
If( !(lookup[:Site][:Measurement] << Contains( :SWP, Empty() )),
lookup[:Site][:Measurement][:SWP] = [=> ]
);
If( !(lookup[:Site][:Measurement][:SWP] << Contains( :Device, Empty() )),
lookup[:Site][:Measurement][:SWP][:Device] = [=> ]
);
If( !(lookup[:Site][:Measurement][:SWP][:Device] << Contains( :Wafer, Empty() )),
lookup[:Site][:Measurement][:SWP][:Device][:Wafer] = [=> ]
);
summarized table << Clear Select;
summarized table << Select Rows( Row() );
rows = dt << Get Selected Rows;
vals = Column( dt, "Log10[IDS]" )[rows];
test = {};
For( i = 1, i <= N Items( rows ), i++,
test[i] = Eval List( {Abs( 9 + vals[i] ), rows[i]} )
);
Sort List Into( test );
lookup[:Site][:Measurement][:SWP][:Device][:Wafer] = Column( dt, "VGS" )[test[1][2]];
);
Close( summarized table, No Save );
Eval( Eval Expr(
dt << New Column( "LOOKUP_RESULT", "Numeric", Formula( lookup = Expr( lookup ); lookup[:site][:measurement][:swp][:device][:wafer] ) )
) )Re : Formule de colonne personnaliséeSalut Pankajsync !
Oui, j'ai pu le regarder.
Trouver la valeur VGS relative à la valeur IDS la plus proche de 1e-9 est assez trivial.Configurez une colonne de fonction de perte qui prend la valeur absolue de log10(IDS)+9, puis identifiez le Col Minimum de cette valeur par Site, mesure, SWP, appareil, plaquette.Le VGS correspondant à ces minimums de valeur de perte sera votre Vth inexact.
Mais aucune des valeurs IDS n'est exactement 1e-9, et certaines des valeurs IDS "les plus proches" sont assez éloignées de 1e-9, veuillez donc expliquer plus en détail quelle procédure et quel résultat vous comptez obtenir lorsque vous utilisez le mot "interpoler". ".Voulez-vous dire une prédiction de Vth si l'IDS serait exactement 1e-9 ?Utiliser un modèle linéaire ?Chaque combinaison unique de site, mesure, SWP, dispositif, plaquette nécessite-t-elle cette procédure, quelle que soit la distance entre la valeur IDS et 1e-9 ?
Peut-être, en plus de répondre à ces questions, pourriez-vous partager les approches que vous avez déjà essayées sans succès ?Personnellement, j'envisagerais d'écrire un script JSL pour ce faire, car il semble que votre application puisse bénéficier d'une vérification des erreurs et des conditions limites initiales des données, mais certains des habitants de ce site de discussion sont des Formula Jedi qui m'impressionnent sérieusement par leurs compétences. , et ils pourraient avoir une solution si vous devez avoir une formule.Si j'anticipe correctement vos réponses, je ne pense pas que je le ferai cependant.
Acclamations,
Kévin
Re : Formule de colonne personnaliséeSalut,
Voici jusqu'où je suis allé : je peux trouver l'ID de l'IDS le plus proche de 1e-9 par Wafer, Site, Measurement, Device et Wafer, puis renvoyer le VGS correspondant, sinon il renvoie 0. Cependant, l’interpolation est, comme je l’ai mentionné plus tôt, plus difficile.
If(
Abs( :Name( "Log10[IDS]" ) + 9 ) == Col Minimum(
Abs( :Name( "Log10[IDS]" ) + 9 ),
:Site,
:Measurement,
:Device,
:Wafer
),
:VGS,
0
);
Meilleur,
TS
Re : Formule de colonne personnaliséeSalut,
Il s'avère qu'il est un peu plus difficile que prévu d'obtenir qu'une formule de colonne fasse ce que vous demandez.
J'espère que d'autres auront plus de chance que moi jusqu'à présent.
Meilleur,
TSRe : Formule de colonne personnaliséeEst-ce que quelqu'un a pu le regarder ?Re : Formule de colonne personnaliséeveuillez utiliser ce fichier JMP. Ignorez l'Excel ci-dessus.
Description mise à jour ci-dessous : -
Je voudrais ajouter une nouvelle colonne 'Vth' dans mon tableau avec le calcul suivant :-
Je dois d'abord trouver l'index i de la colonne 'IDS' où 'IDS' est le plus proche de 1e-9 (ou Log10[IDS] = -9) ; et alors Vth = VGS(i). Il doit également être regroupé par colonnes Site, Mesure, SWP, Appareil et Wafer. Autrement dit, chaque combinaison unique de site, mesure, SWP, plaquette et périphérique aura une valeur Vth.
Si l'IDS n'est pas exactement 1e-9. Veuillez interpoler de cette façon. C'est-à-dire; Log10[IDS] contre VGS.
VTH exact = Interpoler (Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );
Notez que la colonne SWP est un balayage de VGS dans le sens avant (0) et arrière (1) ; par conséquent, la direction de l'interpolation doit être prise en compte de manière appropriée.