📄 u_estimateint.pas
字号:
unit u_EstimateInt;
{可靠性参数估计接口}
interface
type
TSample=record
Time:Double;
Failed:Boolean;//失效为True
end;
TTimeList=Array of TSample;
TSampleR=record
Time:Double;
R:Double;
end;
TSampleRList=Array of TSampleR;
TPoint=record
X:Double;
Y:Double;
end;
TPointList=Array of TPoint;
{指数分布密度函数}
function ExpDistf(lambda,t:Double):Double;StdCall;
{指数分布累计函数}
function ExpDistFT(lambda,t:Double):Double;StdCall;
{指数分布点估计}
function ExpDistPointEsti(WorkTime:TTimeList):Double;StdCall;
{威布尔分布密度函数}
function WeibullDistf(beta,eta,gamma,t:Double):Double;StdCall;
{威布尔分布累计函数}
function WeibullDistFT(beta,eta,gamma,t:Double):Double;StdCall;
{威布尔分布累计函数反函数}
function WeibullDistFA(beta,eta,gamma,F:Double):Double;StdCall;
{截尾数据可靠度计算}
function TruncationR(var WorkTime:TTimeList;CalResult:TSampleRList):integer;StdCall;
{最小二乘法直线拟合y=a+bx}
function LeastSquaresFit(PointList:TPointList;var a,b:Double):Double;StdCall;
{二参数威布尔分布点估计-最小二乘估计}
function Weibull2PointEstiLeast(WorkTime:TTimeList;var beta, eta:Double):Boolean;StdCall;
implementation
function ExpDistf; external 'Estimate.dll' name 'ExpDistf';
function ExpDistFT; external 'Estimate.dll' name 'ExpDistFT';
function ExpDistPointEsti; external 'Estimate.dll' name 'ExpDistPointEsti';
function WeibullDistf; external 'Estimate.dll' name 'WeibullDistf';
function WeibullDistFT; external 'Estimate.dll' name 'WeibullDistFT';
function WeibullDistFA; external 'Estimate.dll' name 'WeibullDistFA';
function Weibull2PointEstiLeast; external 'Estimate.dll' name 'Weibull2PointEstiLeast';
function TruncationR; external 'Estimate.dll' name 'TruncationR';
function LeastSquaresFit; external 'Estimate.dll' name 'LeastSquaresFit';
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -