Use a Matlab script as limit-state function

In one of the previous posts, we showed you how to work with in-line Matlab functions directly in STRUREL. Did you know? You can also use a Matlab script as limit-state function in STRUREL.

Again, we use the example limit-state function RS that we already used in the past: Our stochastic model consists of the two random variables R and S, where R represents the resistance of a system of interest and S is the system load. The symbolic expression for the corresponding limit-state function in the native syntax of STRUREL would be:

FLIM(1) = R-S

However, if you have Matlab installed on your system and if the Matlab interface of STRUREL is configured correctly, you could also use the following expression:

FLIM(1) = matlabs("my_model")

where my_model.m is a Matlab script file located in the same directory as the iti-file of STRUREL.

For the example at hand, the Matlab script file should look as follows:

function [lsfval] = my_model(INPUT)

R = INPUT(1);
S = INPUT(2);

lsfval = R - S

end

The ordering of the random variables in the vector INPUT corresponds to the order in which they appear in the stochastic model of STRUREL.

Alternatively, the Matlab script file could look as follows:

function [lsfval] = my_model(INPUT)

global R;
global S;

lsfval = R - S

end

where the variable names R and S must match the names of the random variables of the stochastic model of STRUREL.

By means of the STRUREL command matlabs, you can integrate any limit-state function written in Matlab-Syntax directly in your reliability analysis performed with STRUREL.