UQWorld

Reliability analysis with AKMCS+experimental data

Hello everyone,

I try to use reliability analysis by using PCK model. 200 experimental data is availabe and there is no explicit function. I write the code as follows:

clearvars
rng(100,‘twister’)
uqlab
FILELOCATION = fullfile(…
uq_rootPath, ‘Examples’, ‘SimpleDataSets’, ‘Truss_Matlab_FEM’);

load(fullfile(FILELOCATION,‘data.mat’), ‘X’, ‘Y’);

for i=1:2
InputOpts.Marginals(i).Name = sprintf(‘E%d’,i);
InputOpts.Marginals(i).Type = ‘Gaussian’;
InputOpts.Marginals(i).Moments = [0.25 1];
end

APCKMCSOpts.Type = ‘Reliability’;
APCKMCSOpts.Method = ‘AKMCS’;
AKOpts.AKMCS.MaxAddedED = 200;
AKOpts.AKMCS.IExpDesign.X = X;
AKOpts.AKMCS.IExpDesign.Y = Y;
APCKMCSOpts.AKMCS.MetaModel = ‘PCK’;
APCKMCSOpts.AKMCS.PCK.Kriging.Corr.Family = ‘Gaussian’;
APCKMCSOpts.AKMCS.IExpDesign.N = 5;
APCKMCSOpts.Simulation.MaxSampleSize = 1e6;
myAPCKMCSAnalysis = uq_createAnalysis(APCKMCSOpts);

I get this error:

No model defined!
Error in uq_evalLimitState (line 67)
M_X = uq_evalModel(FullModel,X);

Could you help me to find my mistake?
In fact, I decide to predict the response of generated random variables and then estimate the failure probability. I didn’t find any example which has such process. If there is any example in UQLab examples, please let me know. It could help me to get idea for improving aformentioned code.

Thanks

Hi @Abdollahi,

If you only have 200 experimental data available and no explicit function to generate more data, I’m not sure that AKMCS is suitable for your problem. It is an adaptive method, which means that more data is generated at locations that are suited for improving the accuracy of the prediction. See Reliability Analysis user manual, section 1.6.1.

In the code that you posted, you add some fields to AKOpts instead of APCKMCSOpts, that’s probably a typo. If you specify your initial experimental design, the line APCKMCSOpts.AKMCS.IExpDesign.N = 5; is unnecessary. But in my understanding, AKMCS will still try to sample 200 additional points (since you specify APCKMCSOpts.AKMCS.MaxAddedED = 200;) and for this, a model is needed. Normally, UQLab automatically uses the last model you defined. But since you don’t define any model, it does not know which model to evaluate to get the additional points.

I hope this helps, good luck! :slight_smile: