Benutzerdefinierte SpaltenformelIch möchte meiner Tabelle eine neue Spalte „Vth“ mit der folgenden Berechnung hinzufügen:-
Zuerst muss ich den Index i der Spalte „IDS“ finden, wobei „IDS“ 1e-9 (oder Log10[IDS] = -9) am nächsten kommt; und dann Vth = VGS(i). Es sollte auch nach den Spalten „Standort“, „Messung“, „SWP“ und „Wafer“ gruppiert sein. Das heißt, jede eindeutige Kombination aus Standort, Messung, SWP und Wafer hat einen Vth-Wert.
Wenn das IDS nicht genau 1e-9 ist. Bitte interpolieren Sie auf diese Weise. Das ist; Log10[IDS] vs. VGS.
Exaktes VTH = Interpolate( Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );
Beachten Sie, dass die SWP-Spalte ein Durchlauf von VGS in Vorwärtsrichtung (0) und Rückwärtsrichtung (1) ist. Daher muss die Interpolationsrichtung ordnungsgemäß berücksichtigt werden.
Datenmischung und -bereinigungBetreff: Benutzerdefinierte SpaltenformelIch habe in der folgenden E-Mail einige Tippfehler gemacht. Das Folgende sollte korrekt sein
Finden Sie VGS, logIDS, das knapp über -9 liegt. Nennen Sie es VGS_u, log(IDS)_u
Finden Sie VGS, logIDS, das knapp unter -9..-- liegt. Nennen Sie es VGS_i, log(IDS)_i
Steigung berechnen, m = abs(log(IDS)_u-log(IDS)_i)./abs( abs(VGS_u-VGS_i))
Exaktes VTH = VGS_i + 1/m*(9-abs(log(IDS)_i)))
Betreff: Benutzerdefinierte SpaltenformelHallo Kevin!
Ich dachte, Sie können diesen Ansatz wählen.
Finden Sie VGS, logIDS, das knapp über -9 liegt. Nennen Sie es VGS_u, log(IDS)_u
Finden Sie VGS, logIDS, etwas unter -9..-- Nennen Sie es VGS_i, log(IDS)_i
Steigung berechnen, m = abs(log(IDS)_u-log(IDS)_i)./abs( log(IDS)_u- log(IDS)_i)
Exakte VTH = m*(abs(VGS_u-VGS_i)) + min(abs( log(IDS)_u), abs( log(IDS)_i) )
Ich wollte unbedingt eine benutzerdefinierte Formel dafür, auch wenn dies über Formeln in mehreren Spalten möglich ist.
Grüße,
Pankaj
Betreff: Benutzerdefinierte SpaltenformelWenn es möglich wäre, es als Spaltenformel zu haben, wäre es ziemlich schwierig.Die beste Wahl für Sie wäre wahrscheinlich ein Tabellenskript oder einfach ein normales Skript.Folgendes scheint gut zu funktionieren.
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] ) )
) )Betreff: Benutzerdefinierte SpaltenformelHallo, Pankajsync!
Ja, ich konnte es mir ansehen.
Es ist ziemlich trivial, den VGS-Wert zu finden, der sich auf den IDS-Wert bezieht, der 1e-9 am nächsten kommt.Richten Sie eine Verlustfunktionsspalte ein, die den absoluten Wert von log10(IDS)+9 annimmt, und identifizieren Sie dann das Spaltenminimum dieses Werts durch Standort, Messung, SWP, Gerät, Wafer.Der diesen Verlustwertmindestwerten entsprechende VGS ist Ihr ungenauer Vth.
Aber keiner der IDS-Werte liegt genau bei 1e-9, und einige der „nächsten“ IDS-Werte liegen ziemlich weit von 1e-9 entfernt. Erklären Sie daher bitte ausführlicher, welches Verfahren und Ergebnis Sie mit der Verwendung des Wortes „interpolieren“ beabsichtigen ".Meinen Sie eine Vorhersage von Vth, wenn das IDS genau 1e-9 wäre?Verwenden Sie ein lineares Modell?Erfordert jede einzelne Kombination aus Standort, Messung, SWP, Gerät und Wafer dieses Verfahren, unabhängig davon, wie weit der IDS-Wert von 1e-9 entfernt ist?
Vielleicht könnten Sie neben der Beantwortung dieser Fragen auch mitteilen, welche Ansätze Sie bereits erfolglos ausprobiert haben?Persönlich würde ich in Betracht ziehen, hierfür ein JSL-Skript zu schreiben, da es so aussieht, als ob Ihre Anwendung von einigen Fehlerprüfungen und der Verifizierung anfänglicher Datenrandbedingungen profitieren könnte, aber einige der Bewohner dieser Diskussionsseite sind Formel-Jedi, die mich mit ihren Fähigkeiten ernsthaft beeindrucken , und sie könnten eine Lösung haben, wenn Sie eine Formel benötigen.Wenn ich Ihre Antworten richtig erwarte, glaube ich jedoch nicht, dass ich das tun werde.
Prost,
Kevin
Betreff: Benutzerdefinierte SpaltenformelHallo,
So weit bin ich gegangen: Ich kann die ID des IDS, der 1e-9 am nächsten kommt, nach Wafer, Standort, Messung, Gerät und Wafer ermitteln und dann den entsprechenden VGS zurückgeben, andernfalls wird 0 zurückgegeben. Allerdings ist die Interpolation, wie ich bereits erwähnt habe, anspruchsvoller.
If(
Abs( :Name( "Log10[IDS]" ) + 9 ) == Col Minimum(
Abs( :Name( "Log10[IDS]" ) + 9 ),
:Site,
:Measurement,
:Device,
:Wafer
),
:VGS,
0
);
Am besten,
TS
Betreff: Benutzerdefinierte SpaltenformelHallo,
Es stellt sich heraus, dass es etwas schwieriger als erwartet ist, eine Spaltenformel zu finden, die Ihren Anforderungen entspricht.
Ich hoffe, dass andere mehr Glück haben als ich bisher.
Am besten,
TSBetreff: Benutzerdefinierte SpaltenformelKonnte es sich jemand ansehen?Betreff: Benutzerdefinierte SpaltenformelBitte verwenden Sie diese JMP-Datei. Ignorieren Sie das Excel oben.
Aktualisierte Beschreibung unten: –
Ich möchte meiner Tabelle eine neue Spalte „Vth“ mit der folgenden Berechnung hinzufügen:-
Zuerst muss ich den Index i der Spalte „IDS“ finden, wobei „IDS“ 1e-9 (oder Log10[IDS] = -9) am nächsten kommt; und dann Vth = VGS(i). Es sollte auch nach den Spalten „Standort“, „Messung“, „SWP“, „Gerät“ und „Wafer“ gruppiert sein. Das heißt, jede eindeutige Kombination aus Standort, Messung, SWP, Wafer und Gerät hat einen Vth-Wert.
Wenn das IDS nicht genau 1e-9 ist. Bitte interpolieren Sie auf diese Weise. Das ist; Log10[IDS] vs. VGS.
Exaktes VTH = Interpolate( Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );
Beachten Sie, dass die SWP-Spalte ein Durchlauf von VGS in Vorwärtsrichtung (0) und Rückwärtsrichtung (1) ist. Daher muss die Interpolationsrichtung ordnungsgemäß berücksichtigt werden.