自訂列公式我想在我的表中添加一個新列“Vth”,並進行以下計算:-
首先,我需要找到「IDS」欄位的索引 i,其中「IDS」最接近 1e-9(或 Log10[IDS] = -9);則 Vth = VGS(i)。 它還應按站點、測量、SWP、晶圓列進行分組。 也就是說,場地、測量、SWP、晶圓的每一種獨特組合都將具有一個 Vth 值。
如果 IDS 不完全是 1e-9。 請以這種方式進行插值。 那是; Log10[IDS] 與 VGS。
精確 VTH = 內插( Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );
請注意,SWP 欄位是 VGS 向前 (0) 和反向 (1) 方向的掃描;因此,需要以適當的方式處理插值方向。
資料混合與清理回覆:自訂列公式我在下面的電子郵件中犯了一些拼字錯誤。 下面應該是正確的
找到VGS,logIDS,就在-9之上..--稱為VGS_u,log(IDS)_u
找到VGS,logIDS,它就在-9下面..--稱之為VGS_i,log(IDS)_i
計算斜率,m = abs(log(IDS)_u-log(IDS)_i)./abs( abs(VGS_u-VGS_i))
精確的 VTH = VGS_i + 1/m*(9-abs(log(IDS)_i)))
回覆:自訂列公式嗨,凱文!
我想你可以採取這種方法。
找到VGS,logIDS,就在-9之上..--稱為VGS_u,log(IDS)_u
找到VGS,logIDS,略低於-9..--稱為VGS_i,log(IDS)_i
計算斜率,m = abs(log(IDS)_u-log(IDS)_i)./abs( log(IDS)_u- log(IDS)_i)
精確 VTH = m*(abs(VGS_u-VGS_i)) + min(abs( log(IDS)_u), abs( log(IDS)_i) )
我真的想要為其定制公式,即使它可以通過多列中的公式來完成。
問候,
潘卡伊
回覆:自訂列公式如果可以將其作為列公式,那將非常困難。對於您來說,最好的選擇可能是表格腳本或常規腳本。以下似乎效果很好。
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] ) )
) )回覆:自訂列公式你好,pankajsync!
是的,我能夠看到它。
尋找與最接近 1e-9 的 IDS 值相關的 VGS 值非常簡單。設定一個損失函數列,該列取 log10(IDS)+9 的絕對值,然後透過以下方式確定該值的 Col 最小值場地、測量、SWP、裝置、晶圓。與這些損失值最小值相對應的 VGS 將是您的不精確 Vth。
但是沒有一個 IDS 值完全是 1e-9,並且一些“最接近”的 IDS 值與 1e-9 相差很遠,因此請更詳細地解釋當您使用“插值”一詞時您打算發生什麼過程和結果」。您的意思是如果 IDS 恰好為 1e-9 則預測 Vth 嗎?使用線性模型?是否每個獨特的站點、測量、SWP、裝置、晶圓組合都需要此過程,無論 IDS 值與 1e-9 相差多遠?
也許,除了回答這些問題之外,您還可以分享您已經嘗試過哪些失敗的方法?就我個人而言,我會考慮編寫一個JSL 腳本來執行此操作,因為您的應用程式似乎可能會受益於一些錯誤檢查和驗證初始資料邊界條件,但此討論站點的一些居民是絕地方程序,他們的技能給我留下了深刻的印象,如果你必須有一個公式,他們可能有一個解決方案。如果我正確地預測了你的答案,我想我不會這麼做。
乾杯,
凱文
回覆:自訂列公式你好,
這是我已經走了多遠:我可以透過 Wafer、Site、Measurement、Device 和 Wafer 找到最接近 1e-9 的 IDS ID,然後返回相應的 VGS,否則返回 0。 然而,正如我之前提到的,插值更具挑戰性。
If(
Abs( :Name( "Log10[IDS]" ) + 9 ) == Col Minimum(
Abs( :Name( "Log10[IDS]" ) + 9 ),
:Site,
:Measurement,
:Device,
:Wafer
),
:VGS,
0
);
最好的,
TS
回覆:自訂列公式你好,
事實證明,讓列公式滿足您的要求比預期更具挑戰性。
我希望其他人能比我到目前為止擁有更多的運氣。
最好的,
TS回覆:自訂列公式有人能看一下嗎?回覆:自訂列公式請使用此 JMP 檔案。 忽略上面的Excel。
更新說明如下:-
我想在我的表中添加一個新列“Vth”,並進行以下計算:-
首先,我需要找到「IDS」欄位的索引 i,其中「IDS」最接近 1e-9(或 Log10[IDS] = -9);則 Vth = VGS(i)。 它還應按站點、測量、SWP、設備、晶圓列進行分組。 也就是說,站點、測量、SWP、晶圓、裝置的每種獨特組合都將具有一個 Vth 值。
如果 IDS 不完全是 1e-9。 請以這種方式進行插值。 那是; Log10[IDS] 與 VGS。
精確 VTH = 內插( Log10( 1e-9 ), [Log10[IDS](i)) Log10[IDS](i-1)] , [VGS (i) VGS (i-1) ] );
請注意,SWP 欄位是 VGS 向前 (0) 和反向 (1) 方向的掃描;因此,需要以適當的方式處理插值方向。