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 *R*–*S* 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.

Pingback: Octave script as limit-state function – Strurel