对于特征线,可以从 EbsScript 中访问组件的插值函数,即确定特征线某一点的值。此外,可以查询插值的类型和属性。
对于特征,有一个 EbsScript 类型 "ebscharline",其属性如下:
例子:
begin
println ("Motor.CQ3NCV.interpolate(5000):",Motor.CQ3NCV.interpolate(5000));
println ("Motor.CQ3NCV.interpolationtype:",Motor.CQ3NCV.interpolationtype);
println ("Motor.CQ3NCV.interpolationorder:",Motor.CQ3NCV.interpolationorder);
println ("Motor.CQ3NCV.extrapolationorder:",Motor.CQ3NCV.extrapolationorder);
println ("Motor.CQ3NCV.splineborderstype:",Motor.CQ3NCV.splineborderstype);
println ("Motor.CQ3NCV.splineborderleft:",Motor.CQ3NCV.splineborderleft);
println ("Motor.CQ3NCV.splineborderright:",Motor.CQ3NCV.splineborderright);
end;
函数"interpolate"产生给定 x 值参数的特征线 y 值。插值类型是
0 用于线性内插
1 用于给定的阶数
2 用于样条插值
在 interpolationtype = 1 的情况下,interpolationorder 和 extrapolationorder 包含插值和外推的各自阶数。
在 interpolationtype = 1 的情况下,splineborderstype 指定了样条插值的边界条件的设置方式:
0 对于 f’’’=0
1 用于在两侧指定 f’
2 用于在两侧指定 f’’
对于 splineborderstype = 1 或 2,splineborderleft 和 splineborderright 包含适当的限制值。
也可以在 EbsScript 中改变这些属性。
函数"interpolate";也可用于特征域(矩阵)。
对于矩阵,有一个 EbsScript 类型"ebsmatrix",其属性如下:
例子:
begin
println ("Motor.MXT2.interpolate(10,6000):",Motor.MXT2.interpolate(10,6000));
println ("Motor.MXT2.sizex:",Motor.MXT2.sizex);
println ("Motor.MXT2.sizey:",Motor.MXT2.sizey);
println ("Motor.MXT2.data(1,3)",Motor.MXT2.data(1,3));
println ("Motor.MXT2.interpolation2dtype:",Motor.MXT2.interpolation2dtype);
end;
在这种情况下,"插值"需要两个参数(x-和 y-值),并产生各自位置上的特征域的值。第一个参数(x)是对行的插值,第二个参数(y)是对列的插值。
函数 sizex 产生行的数量(包括带有 y 值的标题行)。
函数 sizey 产生列的数量(包括带有 x 值的左列)。
函数 data(i,j) 产生第 i 行和第 j 列的值。
函数 interpolation2dtype 产生插值类型:
0 表示双线性插值
1 表示双三次插值插值
2 表示"最近邻"插值