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:

@nluethen. I have a set of data, which comes from a FEM. I want to use metal-model to establish implicit model, which can improve the efficiency. For computing reliability, I want to use ALR model to get the answer. But I meet the same problem as @Abdollahi. Can you offer a similar example to me using ALR method?

Dear @Mr121Tony

As @nluethen pointed out, it is necessary to provide the true model to be evaluated to enrich the experimental design. In your case with a FEM model, you need to take a look at the UQLink module:

Documentation: https://www.uqlab.com/uqlink-user-manual
Example usage: https://www.uqlab.com/uqlink-abaqus-ten-bar-truss

Best regards
Styfen

@styfen.schaer. Thank you, sir. I have tried to run uqlink-abaqus-ten-bar-truss in UQLink, but it can not call my Abaqus. Do you know how to connect my UQLink with my Abaqus?

Dear @Mr121Tony

There can be many reasons for this. Please provide as much information about the error/problem as possible, including the full error message.

Best regards
Styfen

@styfen.schaer Thank you, sir. I have solved this problem. And I want to ask whether there is an example of ABAQUS explicit used in conjunction with UQLink.

Dear @Mr121Tony

Indeed, there is an example of using ABAQUS with UQlink (which I liked a few posts above :wink:) :

You may also want to take a look at other examples. You can find many useful examples that cover all the functionalities of UQLab:

Best regards
Styfen

@styfen.schaer Thank you, Sir. I have solved the problem.