ronyfonseca Posted May 5, 2012 Report Share Posted May 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... Quote Link to comment Share on other sites More sharing options...
Question
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 to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.