fzero error using a root
Ältere Kommentare anzeigen
Q_i = S*tau*e_paint*A_pt;
Q_rad = @(T_pt)(e_paint*sigma*A_pt*(T_pt^4 - T_sun^4));
Q_conv = @(T_pt, T_air)((1.68*(T_pt-T_air)^(1/2))*A_pt*(T_pt-T_air));
Q_heat_plate = @(T_pt, T_pt_LAST)((m_p*c_a+m_t*c_c)*(T_pt -T_pt_LAST));
Q_water = @(T_w,T_pt)(h_w*A_inside*(T_pt - T_w));
solver_T_pt = @(T_pt)(Q_rad(T_pt) + Q_conv(T_pt, T_air) + Q_heat_plate(T_pt, T_pt_LAST) + Q_water(T_water_average, T_pt) - Q_i);
T_pt_num = fzero(solver_T_pt, 293); %[K] temperature aluminiumplate and tube
q_heat_air = Q_conv(T_pt_num, T_air); %Determining the energy to the air through convection
T_air_num = (q_heat_air)/(m_air*c_air_p) + T_air; %[K] New Temperature of air
I am using a fzero function here to solve this problem, however in line 3 an error eccors when using ^1/2. When I use ^2 for example the function works fine so the fzero probably goes bad on the root but how do I fix this?
Antworten (1)
madhan ravi
am 4 Jun. 2020
0 Stimmen
.* .^
5 Kommentare
Tim Pijnacker
am 4 Jun. 2020
Bearbeitet: Tim Pijnacker
am 4 Jun. 2020
madhan ravi
am 4 Jun. 2020
Bearbeitet: madhan ravi
am 4 Jun. 2020
Did you say what error occurred? Did you define the variables? Did you think others could run the code without providing the datas? fzero(...) expects numeric input and not symbolic.
doc fzero
Tim Pijnacker
am 4 Jun. 2020
Steven Lord
am 4 Jun. 2020
That doesn't look like the whole error message. Can you show us all the text displayed in red when you run your code? There should be something displayed before the "Error in plate_v2" line.
Tim Pijnacker
am 4 Jun. 2020
Kategorien
Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
