Surrogate-model based reliability

Hello everyone,
I used PCK to build a surrogate model for an expensive finite element model. i need to conduct reliability analysis based on the developed surrogate model. I am having troubles defining the limit state function in UQlab. my limit state functions is simply as follows:
LS= Y(pck)-X(:,7)
where Y(pck) is the surrogate model output
and X(:,7) is the 7th input parameters.
Thanks in advance

1 Like

Dear Ziead,
Did you solve this problem? I have met the same question as you.
Looking forward to your reply.

Best regard
yiqi Han

Dear all

Generally speaking you can reuse a surrogate model (polynomial chaos expansion, PC-Kriging, etc.) in any other function, especially to define a limit state function that is further used for reliability analysis.

I devised an application starting from one of the UQLab examples, namely uq_Example_PCK_04_TrussDataSet. You also need the attached m-file to define the limit-state function (uq_limit_state_involving_surrogate.m).

I hope it will solve your problem.
Best regards
Bruno

% This example builds up on the PC-Kriging Example #04
uq_Example_PCK_04_TrussDataSet
close all

%% Define an additional random variable for the threshold in the reliability analysis
%     Note that we extend the InputOpts variable (already defined in the script 'uq_Example_PCK_04_TrussDataSet')  to define a new INPUT
InputOpts.Marginals(11).Name = 'Threshold';    
InputOpts.Marginals(11).Type = 'Lognormal' ;
InputOpts.Marginals(11).Moments = [0.1 0.01];  % mean value of the selected threshold is 10 cm for the truss reliability analysis

myInputReliability = uq_createInput(InputOpts);
uq_print(myInputReliability)                   % check that there are now 11 variables in this INPUT object

%% Define the limit state function
GFunctionOpts.mFile = 'uq_limit_state_involving_surrogate';
GFunctionOpts.Parameters = myPCK;     % the name of the surrogate is passed as a parameter 
myLSF = uq_createModel(GFunctionOpts);

%% Reliability analysis
MCSOpts.Type = 'Reliability';
MCSOpts.Method = 'MCS';
MCSOpts.Model = myLSF;
MCSOpts.Simulation.MaxSampleSize = 100000;
MCSAnalysis = uq_createAnalysis(MCSOpts);
uq_print(MCSAnalysis)

File to download: uq_limit_state_involving_surrogate.m (1.1 KB)

Dear Bruno

Thanks for your replies, which is very helpful to me. In addition,this toolbox is a very, very nice tool, thanks for your team’ effort for the development.

Best regards

Yiqi