0
Every time I try to run my code I keep making this mistake:
error: projetofinaltry: =: nonconformant arguments (op1 is 1x1, op2 is 1x46801)
error: called from
projetofinaltry at line 108 column 14
Line 108 is highlighted
I don’t know how to correct because in my head all arguments would be 1x1 because they are part of a vector in position i
clear
clc
%Dados INMET
Tamb = [21 22.4 24.7 27 28.6 29.8 32 33.1 32.4 33.6 33.2 33 29.9 25.5]; %Dados de temperatura instantanea entre 9 e 22 UTC (Celsius)
Tamb = Tamb + 273.15; %Convertendo valores para Kelvin
Rinci = [2.10 364.29 1253.72 2131.47 2845.62 3362.76 3575.38 3428 3248.82 2949.38 2075.68 1253.73 379.05 0.67]; %Dados de radiação no mesmo período
Rinci = (Rinci * 1000) / 3600; %Convertendo para W
%Tempo
tempo_h = 6:1:19;
tempo = min(tempo_h):1/3600:max(tempo_h);
%Interpolação por spline
spline_Tamb = spline(tempo_h,Tamb);
spline_Rinci = spline(tempo_h,Rinci);
%Substituição de pontos na spline
Tamb_refinado = ppval(spline_Tamb,tempo);
Rinci_refinado = ppval(spline_Rinci,tempo);
%Inputs
ro_w = 998;
cpw = 4190;
Vpool = 17.65;
Kcapa = 0.05;
delta_x = 0.00326;
Apool = 18.4;
FR = 0.6;
UL = 11.45;
alfa_c = 0.8;
Acs = 20;
Vwc = 0.1;
vb = 0.75;
Eb = 0.95;
delta_Ton = 8;
delta_Toff = 4;
m = (ro_w * vb)/3600;
bomba = 0;
tempobomb = (ro_w * Vwc)/m;
%Inputs EDO1
Tpool(1) = 297.15; %Temperatura inicial da piscina em K
Taq(1) = 293.15; %Temperatura inicial no coletor em K
%tempo0 = 6;
%tempof = 19;
h = 1; %De um em um segundo
duracao = length(tempo);
contbomba = zeros(1,duracao);%contagem do tempo da bomba até desligar
tempolig = 0; %contagem do tempo total da bomba ligada
%Função Tpool
function Tpool_linha = piscina(Tpool,Tamb_refinado,Qaq,Qcd_capa)
Kcapa = 0.05;
delta_x = 0.00326;
Apool = 18.4;
Tcapa = (Tpool + Tamb_refinado)/2;
ro_w = 998;
cpw = 4190;
Vpool = 17.65;
Qcd_capa = ((Kcapa/delta_x)* Apool * (Tcapa - Tpool));
Tpool_linha = (Qaq + Qcd_capa)/(ro_w * cpw * Vpool);
endfunction
%Função Taq
function Taq_linha = coletor(Rinci_refinado,Taq,Tamb_refinado)
tempo_h = 6:1:19;
tempo = min(tempo_h):1/3600:max(tempo_h);
Tamb = [21 22.4 24.7 27 28.6 29.8 32 33.1 32.4 33.6 33.2 33 29.9 25.5]; %Dados de temperatura instantanea entre 9 e 22 UTC (Celsius)
Tamb = Tamb + 273.15;
Tamb_refinado = spline(tempo_h,Tamb,tempo);
Rinci = [2.10 364.29 1253.72 2131.47 2845.62 3362.76 3575.38 3428 3248.82 2949.38 2075.68 1253.73 379.05 0.67]; %Dados de radiação no mesmo período
Rinci = (Rinci * 1000) / 3600; %Convertendo para W
Rinci_refinado = spline(tempo_h,Rinci,tempo);
alfa_c = 0.8;
Acs = 20;
FR = 0.6;
UL = 11.45;
ro_w = 998;
cpw = 4190;
Vwc = 0.1;
Rabs = alfa_c * Rinci_refinado;
Qcs = Acs * FR * (Rabs - UL * (Taq - Tamb_refinado));
Taq_linha = Qcs/(ro_w * cpw * Vwc);
endfunction
for i = 1:1:duracao-1 %anotar contas
tempo(i+1) = tempo(i) + h;
%Bomba
if (Taq(i) - Tpool(i)) > delta_Ton
bomba(i) = 1;
elseif (Taq(i) - Tpool(i)) < delta_Toff
bomba(i) = 0;
contbomba(i) = 0;
else
bomba(i) = bomba(i-1);
endif
%Cálculo da temperatura da água no coletor
if (bomba(i) == 0)
Qaq(i) = 0; %Transferência de calor é 0
Tcapa(i) = (Tpool(i) + Tamb_refinado(i))/2;
Qcd_capa(i) = ((Kcapa/delta_x)* Apool * (Tcapa(i) - Tpool(i)));
Taq(i+1) = Taq(i) + hcoletor(Rinci_refinado(i), Taq(i), Tamb_refinado(i));
Tpool(i+1) = Tpool(i) + hpiscina(Tpool(i), Tamb_refinado(i), Qaq(i), Qcd_capa(i));
else
contbomba(i) = contbomba(i) + 1;
tempolig = tempolig + 1;
if(contbomba(i) < tempobomb)
Tcapa(i) = (Tpool(i) + Tamb_refinado(i))/2;
Qcd_capa(i) = ((Kcapa/delta_x)* Apool * (Tcapa(i) - Tpool(i)));
Qcs(i) = Acs * FR * (Rabs(i) - UL * (Taq(i) - Tamb_refinado(i)));
Taq(i+1) = Taq(i) + hcoletor(Rinci_refinado(i), Qcs(i), Taq(i), Tamb_refinado(i));
Qaq(i) = m * cpw * (Taq(i)-Tpool(i));
Tpool(i+1) = Tpool(i) + hpiscina(Tpool(i), Tamb_refinado(i), Qaq(i), Qcd_capa(i));
else
Tcapa(i) = (Tpool(i) + Tamb_refinado(i))/2;
Qcd_capa(i) = ((Kcapa/delta_x)* Apool * (Tcapa(i) - Tpool(i)));
Qcs(i) = Acs * FR * (Rabs(i) - UL * (Taq(i) - Tamb_refinado(i)));
Taq(i+1) = (Qcs/(mcpw)) + Tpool(i);
Qaq(i) = m * cpw * (Taq(i)-Tpool(i));
Tpool(i+1) = Tpool(i) + hpiscina(Tpool(i), Tamb_refinado(i), Qaq(i), Qcd_capa(i));
endif
endif
endfor
%Custo benefício
Eb_total = Eb * (tempolig/3600); %Eb em kWh
Eb_total = Eb_total * 3.6e6; %converter o valor para Joule
tempo_v = duracao - 1;
Qaq = m * cpw * (Taq(tempo_v) - Tpool(tempo_v)); %função que deseja-se integrar
%Teste do passo h
vet_h = x(2:1:end) - x(1:1:end-1);
if all(vet_h>h-1e-15 & vet_h<h+1e-15)==false
disp('Passo h não uniforme ao longo de x!')
disp('EXECUÇÃO ABORTADA')
return
endif
%Regra dos trapézios repetida
Itr = h/2*(Qaq(1) + 2*sum(Qaq(2:1:end-1)) + Qaq(end));
COP = Itr/Eb_total;
disp('O valor do coeficiente de desempenho é: ')
disp(COP)
plot(tempo_h, Tpool, 'o')
hold
plot(tempo_h, Taq, 'x')
figure %cria outro gráfico
plot(tempo_h, Qaq, 'o')
hold
plot(tempo_h, Qcd_capa,'x')