Appearance
Appendix D: Available Formulas 可用公式
NOTE
原文出处:Sentaurus Visual User Guide, W-2024.09, PDF 第 424–432 页
创建新变量
NOTE
对于新变量,可以在函数表达式中使用现有数据集的变量,也可以使用值列表。
要创建新变量,请使用 create_variable 命令。例如,要在数据集 myDataset 中创建变量 Y 的常用对数作为新变量,可以使用以下命令:
tcl
create_variable -name commonLogY -dataset "myDataset" \
-function "log(<Y:myDataset>)"访问函数中的变量时,请使用格式 <VARIABLE:DATASET>。新变量将出现在创建它所在的数据集的变量列表中。
NOTE
也可以通过点击 Data Selection 面板的 Data 选项卡中的 New Variable 来创建变量。系统将打开一个对话框,您可以在其中交互式地添加函数、运算符和变量来创建新公式。
创建新曲线
NOTE
对于新曲线,可以在函数表达式中使用现有曲线。
要创建新曲线,请使用 create_curve 命令。例如,要创建 Curve_1 的导数并将其命名为 newCurve,可以使用以下命令:
tcl
create_curve -name newCurve -function diff(<Curve_1>)对曲线应用函数
要在公式中使用曲线,必须将曲线标识符写在尖括号中。例如,要对 Curve_1 上的数据使用微分函数,应写作 <Curve_1>。
NOTE
如果您想使用一个函数从多条曲线创建新曲线,例如:
tcl
create_curve -name newCurve_2 -function <Curve_1>*<Curve_2>曲线 Curve_1 和 Curve_2 必须共享相同的 x 轴,并且必须具有相同数量的有效数据。否则可能会导致意外结果。
您也可以通过点击 Data Selection 面板的 Curves 选项卡中的 New 按钮来创建曲线。系统将打开一个对话框,您可以在其中交互式地添加函数、运算符和曲线来基于公式创建新曲线。
对现有曲线应用函数
要对现有曲线应用函数,请使用 set_curve_prop 命令。例如,要对 Curve_1 应用绝对值函数,请使用命令:
tcl
set_curve_prop Curve_1 -function "abs"或者,您也可以使用 Curve Properties 面板:
- 选择曲线。
- 点击 Trans. 选项卡。
- 从 Function 列表中选择所需的函数。
NOTE
不能对现有曲线应用多个函数。如需多个函数,请创建新曲线。
此外,作为例外,您可以在其他函数的基础上额外应用积分、一阶导数或二阶导数函数,但需使用另一个参数(-integ 或 -deriv):
tcl
set_curve_prop Curve_1 -integ
set_curve_prop Curve_1 -deriv 2或者,您也可以使用 Curve Properties 面板:
- 选择曲线。
- 点击 Trans. 选项卡。
- 从 Deriv / Integ 列表中选择要应用的函数。
创建新场(Field)
NOTE
对于新场,可以在函数表达式中使用现有场。
要创建新场,请使用 create_field 命令。现有的场用于根据用户指定的函数和运算来创建新场。如果新场的名称已存在,则控制台会显示错误消息,除非指定了 -overwrite 选项。
以下示例中,假设有两个场分别名为 ElectricField-X 和 ElectricField-Y。您希望创建一个新场,其中包含两个场绝对值之和。这可以通过以下命令完成:
tcl
create_field -name AbsSumElectricField -dataset 2D \
-function "abs(<ElectricField-X>+<ElectricField-Y>)" -show如果选择了 Display 选项,新场将自动显示在绘图窗口中。如果新场名称已存在,则会打开一个对话框,您可以确认是否覆盖现有场,或在已选择 Overwrite 选项的情况下直接覆盖。
NOTE
可以使用 remove_fields 命令删除场(参见 remove_fields)。
可用函数
NOTE
对于那些仅返回 Double 值且仅作为公式最外层函数的函数,其结果仅显示在对话框中,无法在 Tcl 脚本中使用。
带有 * 返回类型的函数会创建多个场。
表 34:可用函数
| 函数 | 参数 | 返回值 | 描述 |
|---|---|---|---|
abs(x) | Double / Vector / Curve | Double / Vector / Curve | 绝对值 |
acos(x) | Double / Vector / Curve | Double / Vector / Curve | 反余弦(ArcCosine) |
acosh(x) | Double / Vector / Curve | Double / Vector / Curve | 双曲反余弦(Hyperbolic ArcCosine) |
asin(x) | Double / Vector / Curve | Double / Vector / Curve | 反正弦(ArcSine) |
asinh(x) | Double / Vector / Curve | Double / Vector / Curve | 双曲反正弦(Hyperbolic ArcSine) |
atan(x) | Double / Vector / Curve | Double / Vector / Curve | 反正切(ArcTangent) |
atanh(x) | Double / Vector / Curve | Double / Vector / Curve | 双曲反正切(Hyperbolic ArcTangent) |
bessel_j0(x) | Double / Vector / Curve | Double / Vector / Curve | 第一类贝塞尔函数,阶数为零 |
bessel_j1(x) | Double / Vector / Curve | Double / Vector / Curve | 第一类贝塞尔函数,一阶 |
bessel_y0(x) | Double / Vector / Curve | Double / Vector / Curve | 第二类贝塞尔函数,阶数为零 |
bessel_y1(x) | Double / Vector / Curve | Double / Vector / Curve | 第二类贝塞尔函数,一阶 |
cbrt(x) | Double / Vector / Curve | Double / Vector / Curve | 立方根 |
ceil(x) | Double / Vector / Curve | Double / Vector / Curve | 向上取整(不小于 x 的最小整数) |
cfftim(x, y) | x: Vector, Curve y: Vector, Curve | Vector / Curve | 快速傅里叶变换,虚部 |
cfftre(x, y) | x: Vector, Curve y: Vector, Curve | Vector / Curve | 快速傅里叶变换,实部 |
cifftim(x, y) | x: Vector, Curve y: Vector, Curve | Vector / Curve | 逆快速傅里叶变换,虚部 |
cifftre(x, y) | x: Vector, Curve y: Vector, Curve | Vector / Curve | 逆快速傅里叶变换,实部 |
cos(x) | Double / Vector / Curve | Double / Vector / Curve | 余弦 |
cosh(x) | Double / Vector / Curve | Double / Vector / Curve | 双曲余弦 |
crop(y, x, min, max) | x: Vector y: Vector min: Double max: Double | Vector | 根据 x 的最小值和最大值范围裁剪 y 的值 |
crop(c, min, max) | c: Curve min: Double max: Double | Curve | 根据最小值和最大值范围裁剪曲线的值 |
diff(c) | c: Curve | Curve | 一阶导数 |
diff(y, x) | x: Vector y: Vector | Vector | 一阶导数 |
erf(x) | Double / Vector / Curve | Double / Vector / Curve | 误差函数 |
erfc(x) | Double / Vector / Curve | Double / Vector / Curve | 余误差函数 |
exp(x) | Double / Vector / Curve | Double / Vector / Curve | 计算 |
fftabs(y, x) | x: Vector, Curve y: Vector, Curve | Vector / Curve | 快速傅里叶变换,绝对值 |
fftim(x) | x: Vector, Curve | Vector / Curve | 快速傅里叶变换,虚部 |
fftre(x) | x: Vector, Curve | Vector / Curve | 快速傅里叶变换,实部 |
floor(x) | Double / Vector / Curve | Double / Vector / Curve | 向下取整(不大于 x 的最大整数) |
gamma(x) | Double / Vector / Curve | Double / Vector / Curve | 伽马函数 |
gradient(x) | Double | Double* | 梯度函数,创建四个带后缀的场: • _mag:梯度幅值• _x:x 轴梯度• _y:y 轴梯度• _z:z 轴梯度 |
ifftim(x) | x: Vector, Curve | Vector / Curve | 逆傅里叶变换,虚部 |
ifftre(x) | x: Vector, Curve | Vector / Curve | 逆傅里叶变换,实部 |
integr(y, x) | y: Vector x: Vector | Vector | 对向量 y 在 x 指定的范围内积分 |
integr(c) | c: Curve | Curve | 对曲线 c 积分 |
inverse(x) | Double / Vector / Curve | Double / Vector / Curve | 倒数 |
lgamma(x) | Double / Vector / Curve | Double / Vector / Curve | 对数伽马函数 |
log(x) | Double / Vector / Curve | Double / Vector / Curve | 自然对数 |
log10(x) | Double / Vector / Curve | Double / Vector / Curve | 常用对数(以 10 为底) |
minmax(x, min, max) | x: Vector min: Double max: Double | Vector | 所有小于 min 的值替换为 min,所有大于 max 的值替换为 max |
pow(x, y) | x: Double / Vector / Curve y: Double | Double / Vector / Curve | 计算 ,其中 x 可以是 Double 值、向量值或曲线 |
rms(x, y) | x: Vector, Curve y: Vector, Curve | Double | 均方根值 |
sign(x) | Double / Vector / Curve | Double / Vector / Curve | 符号函数 |
sin(x) | Double / Vector / Curve | Double / Vector / Curve | 正弦 |
sinh(x) | Double / Vector / Curve | Double / Vector / Curve | 双曲正弦 |
sqrt(x) | Double / Vector / Curve | Double / Vector / Curve | 平方根 |
tan(x) | Double / Vector / Curve | Double / Vector / Curve | 正切 |
tangent(c, v) | c: Curve v: Double | Curve | 在曲线 c 的点 v 处创建切线 |
tangent(y, x, v) | x: Vector y: Vector v: Double | Vector | 在由向量 x 和 y 定义的曲线的点 v 处创建切线 |
tanh(x) | Double / Vector / Curve | Double / Vector / Curve | 双曲正切 |
vecmax(x) | x: Vector | Double | 返回向量的最大值 |
vecmax(c) | c: Curve | Double | 返回曲线的最大 y 值 |
vecmin(x) | x: Vector | Double | 返回向量的最小值 |
vecmin(c) | c: Curve | Double | 返回曲线的最小 y 值 |
vecvalx(y, x, v) | x: Vector y: Vector v: Double | Double | 返回曲线中 时对应的 x 值 |
vecvalx(c, v) | c: Curve v: Double | Double | 返回曲线中 时对应的 x 值 |
vecvaly(y, x, v) | x: Vector y: Vector v: Double | Double | 返回曲线中 时对应的 y 值 |
vecvaly(c, v) | c: Curve v: Double | Double | 返回曲线中 时对应的 y 值 |
veczero(y, x) | x: Vector y: Vector | Double | 返回曲线中 时对应的 x 值 |
veczero(c) | c: Curve | Double | 返回曲线中 时对应的 x 值 |
表 34:可用函数(续)