Está en la página 1de 10

Carlos Alberto Nunes da S. Jr.

PROJETO E OTIMIZAÇÃO MULTIDISCIPLINAR

TRABALHO 02

Prof. Bento Silva de Matos

São José dos Campos


08 de Outubro de 2018
Sumário

1 DESCRIÇÃO DO PROBLEMA ..................................................................................... 3

2 ESTRUTURAÇÃO DO ALGORITMO ......................................................................... 3


2.1 Parâmetros de Entrada ............................................................................................ 3
2.2 Verificação da falha .................................................................................................. 4
2.3 Cálculo da tolerância ................................................................................................ 5

3 RESULTADOS ................................................................................................................. 5
3.1 Probabilidade de Falha ............................................................................................ 5
3.2 Histograma e CDF (Cumulative Distribution Functions) .................................... 6
3.3 Matlab Scripts ........................................................................................................... 7
3

1 Descrição do Problema

Neste trabalho será estimada a probabilidade de falha da pá de uma turbina utilizando o método
de Monte Carlo. Para isso utiliza-se uma rotina implementada em Matlab que calcula a
temperatura e o gradiente de temperatura para uma dada combinação de variáveis de entrada
do algoritmo. Cada uma dessas variáveis pode assumir valores segundo uma distribuição
triangular, variando entre um valor mínimo, o mais provável e o valor máximo. A combinação
de vários valores aleatórios, que respeitem essa distribuição, para cada variável de entrada irá
resultar em diferentes distribuições de temperatura ao longo da pá. Após gerar várias
combinações dos parâmetros de entrada e avaliar as situações onde ocorrem falhas, será
possível estimar qual a probabilidade de ocorrer falhas na pá analisa.

2 Estruturação do Algoritmo
Na Figura 1 está mostrado o fluxograma do algoritmo implementado para determinar a chance
de falha da pá da turbina, com uma margem de erro de ±0,01 e intervalo de confiança de 99%.

Figura 1 – Fluxograma do algoritmo implementado

2.1 Parâmetros de Entrada


O algoritmo para cálculo da distribuição de temperatura tem como entradas os seguintes
parâmetros:
 Condutividade térmica da pá:
Valor mínimo = 28.5 W/(m K)
Valor mais provável = 30 W/(m K)
Valor máximo = 30 W/(m K)
4

 Temperatura externa do gás:


Valor mínimo = 1400 K
Valor mais provável = 1500 K
Valor máximo = 1600 K
 Coeficiente de transferência de calor do bordo de ataque:
Valor mínimo = 15500 W/(m² K)
Valor mais provável = 16000 W/(m² K)
Valor máximo = 18000 W/(m² K)
 Coeficiente de transferência de calor do bordo de fuga:
Valor mínimo = 3500 W/(m² K)
Valor mais provável = 4000 W/(m² K)
Valor máximo = 4500 W/(m² K)
 Temperatura do líquido de refrigeração:
Valor mínimo = 550 K
Valor mais provável = 600 K
Valor máximo = 650 K
 Coeficiente de transferência de calor da região de passagem do líquido de refrigeração:
Valor mínimo = 1400 W/(m² K)
Valor mais provável = 1500 W/(m² K)
Valor máximo = 1600 W/(m² K)

Os valores da distribuição triangular podem ser gerados da seguinte maneira:

ca
F (c ) 
ba
 a  U (b  a )(c  a ) for 0  U  F (c )
X 
b  (1  U )(b  a )(b  c) for F (c)  U  1
Onde:
a = valor mínimo
b = valor mais provável
c = valor máximo
U = valor aleatório entre 0 e 1

2.2 Verificação da falha


A falha irá ocorrer quando a equação abaixo se torna maior do que 1:
5

T  T des T max  T max


des

D  max max  (1)


Tlim it  Tmax
des
T lim it  T max
des

Onde:

Tlimit  1500K T lim it


 11000 K

T  97670 K / m
des
des
Tmax  1430K max

2.3 Cálculo da margem de erro


A margem de erro para um intervalo de confiança de 99% é dada por:

pˆ 1  pˆ 
EM  2,58 (2)
n

Onde:
EM = margem de erro
p̂ = porcentagem de falha
n = número de amostras

Para utilizar a equação 2 duas condições devem ser satisfeitas:

npˆ  10
(3)
n 1  pˆ   10

Pede-se determinar o número de amostras necessárias para que EM fique menor que 0,01, o
qual será igual ao número de iterações do algoritmo cujo fluxograma está mostrado na Figura
1.

3 Resultados
3.1 Probabilidade de Falha
6

Probabilidade de falha é de 0,1629±0.01, sendo necessárias 9052 amostras para atingir a


confiabilidade de 99%. Além disso, as duas condições necessárias para utilização da equação
2 são satisfeitas, conforme mostrado abaixo:

9052  0,1629  1474.57  10


(4)
9052 1  0,1629   7577, 42  10

3.2 Histograma e CDF (Cumulative Distribution Functions)

Na Figura 2 abaixo estão mostrados a CFD e os histogramas da temperatura e do grandiente


de temperatura:

Figura 2 – CFD (Cumulative Distribution Function) e histogramas da temperatura e gradiente


de temperatura
7

3.3 Matlab Scripts

function main2

%==========================================================================
% Defining the input ranges of the triangular prob. distribution
%==========================================================================
input_range = zeros(6,3);
input_range(1,:) = [ 28.5, 30, 31.5 ]; % kblade
input_range(2,:) = [ 1400, 1500, 1600 ]; % t gas
input_range(3,:) = [15500, 16000, 18000 ]; % gas heat transfer coefficiente
input_range(4,:) = [ 3500, 4000, 4500 ]; % The trailing-edge, external gas
heat transfer
input_range(5,:) = [ 550, 600, 650 ]; % cooling passage temperature
input_range(6,:) = [ 1400, 1500, 1600 ]; % cooling passage heat transfer
coefficient

%==========================================================================
% Design Requirements
%==========================================================================

T_desired = 1430; % Desired temperature


T_limit = 1500; % Limit value for temperature

T_grad_desired = 97670; %Temperature gradient desired


T_grad_limit = 110000; %Temperature gradient limit

%==========================================================================
% Load blade geometry and mesh
%==========================================================================
chord = 0.04;
[tri2nod, xy, bedge] = loadblade('hpblade_fine', chord);

%==========================================================================
% Defining the confidence level: for 99% confidence z = 2.576
%==========================================================================

%--------------------------------------------------------------------------
% confidence interval = x_mean +/- z * sigma_x_mean
% margin_value = z * sigma_x_mean
%--------------------------------------------------------------------------
conf = 2.576; % Confidence level of 99%
margin_value = 0.01; % Error level

%==========================================================================
% Defining the simulations stop parameters
%==========================================================================
Niter_min = 10;
Niter_max = 10000;
T_max = zeros(Niter_max,1);
T_gradmax = zeros(Niter_max,1);
D = zeros(Niter_max,1);
param = zeros(Niter_max,6);
8

%==========================================================================
% Saving the probability function
%==========================================================================
criteria = zeros(Niter_max,6);

% criteria(i,1) = 0 - design passed or 1 - design failed


% criteria(i,2) = percent of design that failed
% criteria(i,3) = standard deviation of the designs
% criteria(i,4) = tolerance
% criteria(i,5) = T_max(i)
% criteria(i,6) = T_gradmax(i)

%==========================================================================
% temp_variables
%==========================================================================

percent_fail = 0;
mean_var = 0;
count_fail = sum(criteria(:,1)); %number of design that failde

for i = 1:Niter_max
for kk = 1:size(input_range,1)
param(i,kk) = triang_distribution(input_range(kk,:));
end

%Calculate temperature and gradient magnitude in blade (FEM analysis)


[T, Tgrad] = calcblade( param(i,:), chord, tri2nod, xy, bedge);

T_max(i) = max(T);
T_gradmax(i) = max(Tgrad);

% If D> 1 blade fails


D(i) = (T_max(i)-T_desired)/(T_limit-T_desired) + (T_gradmax(i)-
T_grad_desired)/(T_grad_limit-T_grad_desired);

count_fail = (D(i)>1)+count_fail;
percent_fail = count_fail/i;
%==========================================================================
% Calculating the standard deviation
%==========================================================================

criteria(i,1) = (D(i)>1);
criteria(i,2) = percent_fail;
criteria(i,3) = std(criteria(1:i,2));
criteria(i,4) = conf*sqrt(percent_fail*(1-percent_fail)/i);
criteria(i,5) = T_max(i);
criteria(i,6) = T_gradmax(i);
9

%--------------------------------------------------------------------------
% Os valores de 'criteria(i,1)' = 1 representam os designs reprovados
%--------------------------------------------------------------------------

fprintf('i = %i: P = %0.6f +/- %0.6f STD = %0.6f


\n',i,criteria(i,2),criteria(i,4),criteria(i,3));

% fprintf('i = %i: P = %f +/- %f %% at 99%%


confidence\n',i,criteria(i,2)*100,0.01);
if criteria(i,4)<margin_value&&i>Niter_min
criteria = criteria(1:i,:);
break
end

end

save output_fine;
close all;
% hist(D,100);

End

function [x] = triang_distribution(X)


%==========================================================================
% inputs
%==========================================================================
% X(1) = min
% X(2) = mpp
% X(3) = max

%==========================================================================
% Percentile
%==========================================================================
U = rand;
F = (X(2)-X(1))/(X(3)-X(1));

% Check is u < Fmpp, and find x = F(u)


if (U < F)
x = sqrt(U*(X(3)-X(1))*(X(2)-X(1))) + X(1);
else
x = X(3) - sqrt((1-U)*(X(3)-X(1))*(X(3)-X(2)));
end
end
10

function plot_results
load output_fine;

max_i = 9052;

T_max = criteria(1:max_i,5);
T_gradmax = criteria(1:max_i,6);

close all;
n_l = 2;count = 1;

subplot(n_l,2,count);count = count+1;
cdfplot(T_max);
xlabel('T_{max} [K]');

subplot(n_l,2,count);count = count+1;
hist(T_max,10);
xlabel('T_{max} [K]');

subplot(n_l,2,count);count = count+1;
cdfplot(T_gradmax);
xlabel('\nabla T_{max}[K/m]');

subplot(n_l,2,count);count = count+1;
hist(T_gradmax,10);
xlabel('\nabla T_{max}[K/m]');

end