Reliability-Based Design (RBD)
A cantilever beam is subjected to two random forces lb and N at the tip as shown. The yield stress is psi, the Young’s Modulus is psi, and the allowable deflection is in. The length of the beam is a random variable with in. Given the minimum probabilities of for failure modes of excessive normal stress and excessive deflection, find the optimal solution so that the volume of the beam is minimized. The ranges of the beam size are given by and .
Solution
The design variable are and ; the objective function is . The random parameters are . There are two failure modes. For the failure mode of excessive stress, the limit-state function is given by
For the failure mode of excessive deflection, the limit-state function is given by
All the information we know are listed below.
lb
lb
psi
in
in
,,
= 0.999, or
In order to find the optimal solution, we minimize with two reliability constraints. The optimization model is given by
The First Order Second Moment method (FOSM) is used for reliability analysis, and Matlab is used to solve the optimization model. The optimal solution is as follows:
Design variables:
Objective function:
Probability of failure for failure mode 1:
Probability of failure for failure mode 2:
The compare RBD with deterministic optimization (only mean values are used), we give the results from both methods in the following table.
The Matlab codes are given below.
1) Main function
% Main program of RDB for a cantilever beam
% Xiaoping Du, Missouri S&T, 04/10/2017
clear all; warning off;
%----------------------- Reliability-Based Design---------------
dv0 = [2.0,3.0,40.0]; % dvs=[b,h,uL]
dvl = [1.0,1.0,50.0]; % lower bounds of dvs
dvu = [20.0,20.0,100.0]; % upper bounds of dvs
required_pf(1:2) = 0.001; % Required probabilities of failure
options = optimset('Display','iter','MaxFunEvals',1000); % Display convergence history
dv = fmincon('rbd_obj_fun',dv0,[],[],[],[],dvl,dvu,'rbd_con_fun',options,required_pf);
%obj_fun: function for objective
%con_fun: function for constraints
%Posterior analysis
obj = rbd_obj_fun(dv);
[g,ceq] = rbd_con_fun(dv,required_pf); %g=pf-required_pf
pf = g+required_pf;
%Display the results
disp('------------------RBD Results-------------------');
disp(['The optimal point = ',num2str(dv)]);
disp (['The objective function = ',num2str(obj)]);
for i = 1:2
disp(['Probability of failure mode ',num2str(i),' = ',...
num2str(pf(i))]);
end
2) Objective function
%Objective function
function f = rbd_obj_fun(dv,required_pf)
%dvs=[b,h,uL]
f = dv(1)*dv(2)*dv(3); %Volume
3) Constraint function
% Constraint functions
% FOSM is used to calculate the probability of failure
function [g,ceq] = rbd_con_fun(dv,required_pf)
ceq = []; %No equality constraints
%d=(b,h), X=(L), P=(Px,Py,S,E)
%dv=[b,h,uL];
b = dv(1); h = dv(2); L = dv(3);
Px = 500; Py = 1000; S = 4.0e4; E = 29.0e6; %Mean
sL = 0.1; sPx = 100; sPy = 100; sS = 2.0e3; sE = 3.0e6; %Std
%Calculate mean of g
ug1 = S-6*L/b/h*(Px/b+Py/h);
ug2 = 2.5-4*L^3/E*((Px/b^3/h)^2+(Py/b/h^3)^2)^0.5;
%Calculate std of g
dg1dL = 6/b/h*(Px/b+Py/h);
dg1dPx = 6*L/b/h/b;
dg1dPy = 6*L/b/h/h;
dg1dE = 0;
dg1dS = 1;
dg2dL = -12*L^2/E*(Px^2/b^6/h^2+Py^2/b^2/h^6)^(1/2);
dg2dPx = -4*L^3/E/(Px^2/b^6/h^2+Py^2/b^2/h^6)^(1/2)*Px/b^6/h^2;
dg2dPy = -4*L^3/E/(Px^2/b^6/h^2+Py^2/b^2/h^6)^(1/2)*Py/b^2/h^6;
dg2dE = 4*L^3/E^2*(Px^2/b^6/h^2+Py^2/b^2/h^6)^(1/2);
dg2dS = 0;
stdg1 = ((dg1dL*sL)^2+(dg1dPx*sPx)^2+(dg1dPy*sPy)^2+(dg1dE*sE)^2+(dg1dS*sS)^2)^0.5;
stdg2 = ((dg2dL*sL)^2+(dg2dPx*sPx)^2+(dg2dPy*sPy)^2+(dg2dE*sE)^2+(dg2dS*sS)^2)^0.5;
%Calculate reliability
pf(1) = normcdf(-ug1/stdg1);
pf(2) = normcdf(-ug2/stdg2);
%Constraints
g(1) = pf(1)-required_pf(1); %Matlab uses g<=0
g(2) = pf(2)-required_pf(2);