ronyfonseca Postado Maio 5, 2012 Denunciar Share Postado Maio 5, 2012 Ola galera, estou desenvolvendo uma função que chama outras para efetuar os cálculos e retornar a resposta. Porem quando rodo a função que criei, ela me da a resposta final porem logo após isso ela apresenta o seguinte erro:>> Propppc(0.7 , 'gu' , 0.0 , 0.0 ,0.1, 'wagc' )Ppcc = 689.4415Tpcc = 367.8363Error in ==> Proppcgcwa at 24dg = (dm - 0.967 * yN2 - 1.52*yCO2-1.18*yH2S)/ (1- yN2 -yCO2 - yH2S);??? Output argument "Proppcgcwa" (and maybe others) not assigned during call to"C:\Users\Rony\Documents\Conhecimentos\Lenep\Monografia\codigos Matlab\Proppcgcwa.m>Proppcgcwa".Error in ==> Propppc at 105 Proppc = Proppcgcwa (dm ,tipodegas, yN2,yH2S,yCO2); %Wichert & AzizO código da função que chama as outras para realizar os cálculos é esse:%Proppc = propriedadespseudocriticas (dg, tipodegas, yN2,yH2S, yCO2,%metodo)%%Proppc é a função que retorna:%1- os valores de pseudopressão(Ppc) e pseudotemperatura(Tpc)%para gases naturais puro%%2- os valores de pseudopressão(Ppcc) e pseudotemperatura(Tpcc)%para gases naturais contaminados%%Instruções:%%1-Para gases naturais sem contaminantes entre com:%Proppc = (dg, tipodegas)%% dg - densidade do gás (0.55 < dg < 2)%% tipodegas - tipo de gás:% 'gu' = gás natural úmido% 'gs' = gás natural seco%%%2-Para gases naturais contaminados com N2, H2s e/ou CO2, entre com:%Proppc = (dm, tipodegas, yN2,yH2S, yCO2, metodo)%% yN2 = porcentagem de N2% yH2S = porcentagem de H2S% yCO2 = pocentagem de CO2% dm = densidade da mistura(hidrocarbonetos gasosos e contaminates)% (0.55 < dm < 2)%% tipodegas - tipo de gás:% 'gu' = gás natural úmido% 'gs' = gás natural seco%% metodo = método:% 'wagc' = Wichert & Aziz;% 'ckbgc' = Carr-Kobayashi-Burrows;% %function Proppc = propriedadespseudocriticas (dg, tipodegas, yN2,yH2S, yCO2, metodo)if nargin < 2, error('Proppc:NotEnoughInputs',... 'propriedadespseudocriticas requere pelo menos dois argumentos'); end% inicializaçãoif (nargin > 1) && (nargin <3), metodo = 'sgn'; yN2=2.32; yH2S=0; yCO2=0; end% Checagem de entrada errada de argumentos não doubleif (~isa(dg,'double')) error('Proppc:NonDoubleImputs', ... 'propriedadespseudocriticas somente aceita', ... 'aceita entrada de dados do tipo double para as variáveis',... 'dg, yN2,yH2S, yCO2') end%checagem da densidadeif any( dg < 0.55|| dg>2); error ('dg:paramOutOfRange',... 'valor fora do intervalo mínimo dg=0,55 para um gás de composto somente com metano, dg=2 valor máximo')end%checagem de dados corretosif (nargin >= 3) && (nargin <6), error ('Proppc:NotEnoughInputs',... 'propriedadescriticas requer 5 argumentos para cálculos com gases naturais contaminados')end switch metodo case 'sgn' Proppc = Proppcgn(dg, tipodegas); % standing case 'ckbgc' dm = dg; if (~isa(dg,'double') || ~isa(yN2,'double') || ~isa(yH2S,'double') ... || ~isa(yCO2,'double')) error('Proppc:NonDoubleImputs', ... 'propriedadespseudocriticas somente aceita entrada de dados do tipo double para as variáveis dg, yN2,yH2S, yCO2') end Proppc = Proppcgcckb (dg ,tipodegas, yN2,yH2S,yCO2);%Carr-Kobayashi-Burrows case 'wagc' dm = dg; Proppc = Proppcgcwa (dm ,tipodegas, yN2,yH2S,yCO2); %Wichert & Aziz if (~isa(dg,'double') || ~isa(yN2,'double') || ~isa(yH2S,'double') ... || ~isa(yCO2,'double')) error('Proppc:NonDoubleImputs', ... 'propriedadespseudocriticas somente aceita entrada de dados do tipo double para as variáveis dg, yN2,yH2S, yCO2') end otherwise Proppc = Proppcgn(dg, tipodegas); % standing end return;e uma das funções que realizam os cálculos é essa:%Proppcgcwa(Tpcc, Ppcc)=Propriedadespseudocriticadegasescontminadoswa%(dg, tipodegas)(yN2,yH2S, yCO2,dg, tipodegas)% yN2 = porcentagem de N2% yH2S = porcentagem de H2S% yCO2 = pocentagem de CO2% dm = densidade da mistura(hidrocarbonetos gasosos e contaminates);%% tipodegas - tipo de gás:% 'gu' = gás natural úmido% 'gs' = gás natural seco%retorna:%Ppcc= pressão pseudo-crítica com correção de contaminates (psia)%Tpcc= temperatura pseudo-crítica com correção de contaminates ®function Proppcgcwa = Propriedadespseudocriticadegasescontminadoswa(dm, tipodegas, yN2,yH2S, yCO2)%densidade de hidrocarbonetosdg = (dm - 0.967 * yN2 - 1.52*yCO2-1.18*yH2S)/ (1- yN2 -yCO2 - yH2S);%propriedades dos hidrocarbonetosswitch tipodegas case 'gu' Ppc = 677 + 15*dg - 37.5*dg^2; % gás úmido Tpc = 168 + 325*dg - 12.5*dg^2; % gás úmido case 'gs' Ppc = 706 - 51.7*dg - 11.1* dg^2 ; %gás seco Tpc = 187 + 330 * dg - 71.5 * dg^2 ; %gás seco otherwise Ppc = 677 + 15*dg - 37.5*dg^2 ; %gás úmido Tpc = 168 + 325*dg - 12.5*dg^2 ; % gás úmidoend%propriedades da misturaPpcm = (1- yN2 -yCO2 - yH2S)*Ppc + 493*yN2 + 1071*yCO2 + 1306* yH2S; Tpcm = (1- yN2 -yCO2 - yH2S)*Tpc + 227*yN2 + 548*yCO2 + 672* yH2S;%ajustese = 120* (((yCO2+yH2S)^0.9) - ((yCO2 + yH2S)^1.6)) + 15*((yH2S^0.5) -(yH2S^4)); Ppcc = (Ppcm*( Tpcm - e))/(Tpcm + yH2S*(1-yH2S)* e)Tpcc = (Tpcm - e)return;se alguém puder me ajudar ficarei muito grato... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ronyfonseca
Ola galera,
estou desenvolvendo uma função que chama outras para efetuar os cálculos e retornar a resposta. Porem quando rodo a função que criei, ela me da a resposta final porem logo após isso ela apresenta o seguinte erro:
>> Propppc(0.7 , 'gu' , 0.0 , 0.0 ,0.1, 'wagc' )
Ppcc =
689.4415
Tpcc =
367.8363
Error in ==> Proppcgcwa at 24
dg = (dm - 0.967 * yN2 - 1.52*yCO2-1.18*yH2S)/ (1- yN2 -yCO2 - yH2S);
??? Output argument "Proppcgcwa" (and maybe others) not assigned during call to
"C:\Users\Rony\Documents\Conhecimentos\Lenep\Monografia\codigos Matlab\Proppcgcwa.m>Proppcgcwa".
Error in ==> Propppc at 105
Proppc = Proppcgcwa (dm ,tipodegas, yN2,yH2S,yCO2); %Wichert & Aziz
O código da função que chama as outras para realizar os cálculos é esse:
%Proppc = propriedadespseudocriticas (dg, tipodegas, yN2,yH2S, yCO2,
%metodo)
%
%Proppc é a função que retorna:
%1- os valores de pseudopressão(Ppc) e pseudotemperatura(Tpc)
%para gases naturais puro
%
%2- os valores de pseudopressão(Ppcc) e pseudotemperatura(Tpcc)
%para gases naturais contaminados
%
%Instruções:
%
%1-Para gases naturais sem contaminantes entre com:
%Proppc = (dg, tipodegas)
%
% dg - densidade do gás (0.55 < dg < 2)
%
% tipodegas - tipo de gás:
% 'gu' = gás natural úmido
% 'gs' = gás natural seco
%
%
%2-Para gases naturais contaminados com N2, H2s e/ou CO2, entre com:
%Proppc = (dm, tipodegas, yN2,yH2S, yCO2, metodo)
%
% yN2 = porcentagem de N2
% yH2S = porcentagem de H2S
% yCO2 = pocentagem de CO2
% dm = densidade da mistura(hidrocarbonetos gasosos e contaminates)
% (0.55 < dm < 2)
%
% tipodegas - tipo de gás:
% 'gu' = gás natural úmido
% 'gs' = gás natural seco
%
% metodo = método:
% 'wagc' = Wichert & Aziz;
% 'ckbgc' = Carr-Kobayashi-Burrows;
%
%
function Proppc = propriedadespseudocriticas (dg, tipodegas, yN2,yH2S, yCO2, metodo)
if nargin < 2,
error('Proppc:NotEnoughInputs',...
'propriedadespseudocriticas requere pelo menos dois argumentos');
end
% inicialização
if (nargin > 1) && (nargin <3),
metodo = 'sgn';
yN2=2.32;
yH2S=0;
yCO2=0;
end
% Checagem de entrada errada de argumentos não double
if (~isa(dg,'double'))
error('Proppc:NonDoubleImputs', ...
'propriedadespseudocriticas somente aceita', ...
'aceita entrada de dados do tipo double para as variáveis',...
'dg, yN2,yH2S, yCO2')
end
%checagem da densidade
if any( dg < 0.55|| dg>2);
error ('dg:paramOutOfRange',...
'valor fora do intervalo mínimo dg=0,55 para um gás de composto somente com metano, dg=2 valor máximo')
end
%checagem de dados corretos
if (nargin >= 3) && (nargin <6),
error ('Proppc:NotEnoughInputs',...
'propriedadescriticas requer 5 argumentos para cálculos com gases naturais contaminados')
end
switch metodo
case 'sgn'
Proppc = Proppcgn(dg, tipodegas); % standing
case 'ckbgc'
dm = dg;
if (~isa(dg,'double') || ~isa(yN2,'double') || ~isa(yH2S,'double') ...
|| ~isa(yCO2,'double'))
error('Proppc:NonDoubleImputs', ...
'propriedadespseudocriticas somente aceita entrada de dados do tipo double para as variáveis dg, yN2,yH2S, yCO2')
end
Proppc = Proppcgcckb (dg ,tipodegas, yN2,yH2S,yCO2);%Carr-Kobayashi-Burrows
case 'wagc'
dm = dg;
Proppc = Proppcgcwa (dm ,tipodegas, yN2,yH2S,yCO2); %Wichert & Aziz
if (~isa(dg,'double') || ~isa(yN2,'double') || ~isa(yH2S,'double') ...
|| ~isa(yCO2,'double'))
error('Proppc:NonDoubleImputs', ...
'propriedadespseudocriticas somente aceita entrada de dados do tipo double para as variáveis dg, yN2,yH2S, yCO2')
end
otherwise
Proppc = Proppcgn(dg, tipodegas); % standing
end
return;
e uma das funções que realizam os cálculos é essa:
%Proppcgcwa(Tpcc, Ppcc)=Propriedadespseudocriticadegasescontminadoswa
%(dg, tipodegas)(yN2,yH2S, yCO2,dg, tipodegas)
% yN2 = porcentagem de N2
% yH2S = porcentagem de H2S
% yCO2 = pocentagem de CO2
% dm = densidade da mistura(hidrocarbonetos gasosos e contaminates);
%
% tipodegas - tipo de gás:
% 'gu' = gás natural úmido
% 'gs' = gás natural seco
%retorna:
%Ppcc= pressão pseudo-crítica com correção de contaminates (psia)
%Tpcc= temperatura pseudo-crítica com correção de contaminates ®
function Proppcgcwa = Propriedadespseudocriticadegasescontminadoswa(dm, tipodegas, yN2,yH2S, yCO2)
%densidade de hidrocarbonetos
dg = (dm - 0.967 * yN2 - 1.52*yCO2-1.18*yH2S)/ (1- yN2 -yCO2 - yH2S);
%propriedades dos hidrocarbonetos
switch tipodegas
case 'gu'
Ppc = 677 + 15*dg - 37.5*dg^2; % gás úmido
Tpc = 168 + 325*dg - 12.5*dg^2; % gás úmido
case 'gs'
Ppc = 706 - 51.7*dg - 11.1* dg^2 ; %gás seco
Tpc = 187 + 330 * dg - 71.5 * dg^2 ; %gás seco
otherwise
Ppc = 677 + 15*dg - 37.5*dg^2 ; %gás úmido
Tpc = 168 + 325*dg - 12.5*dg^2 ; % gás úmido
end
%propriedades da mistura
Ppcm = (1- yN2 -yCO2 - yH2S)*Ppc + 493*yN2 + 1071*yCO2 + 1306* yH2S;
Tpcm = (1- yN2 -yCO2 - yH2S)*Tpc + 227*yN2 + 548*yCO2 + 672* yH2S;
%ajustes
e = 120* (((yCO2+yH2S)^0.9) - ((yCO2 + yH2S)^1.6)) + 15*((yH2S^0.5) -(yH2S^4));
Ppcc = (Ppcm*( Tpcm - e))/(Tpcm + yH2S*(1-yH2S)* e)
Tpcc = (Tpcm - e)
return;
se alguém puder me ajudar ficarei muito grato...
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.