How can i use different initial values from my excel file when my load changes to different values? in this code how T_T_G can be initialized into different values from excel sheet
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
function [OBJ] = Main_Combined_optimization2(Opt_Param)
%% code Description: Main optimization Function
%%Run Model with optimization Parameters
Data = xlsread('Oilpocketall1.csv');
t = Data(:,1);
K = Data(:,2);
Top_Output = Data(:,3);
%% call the optimizer
[TopOilTemperture_Optimization] = Combined_Optimization2(K,Opt_Param,t);
error_HT = Top_Output - TopOilTemperture_Optimization;
OBJ_HT = sum( trapz(t, error_HT.^2));
OBJ = OBJ_HT;
%% Plot Functions
% figure
% plot(Top_Output);
% grid on
%
% hold all
% plot(TopOilTemperture_Optimization(:))
% ylabel('Temperature (T)')
% xlabel('Time (Min)')
% legend('Experimental result', 'Optimized Model')
% grid on
%%Calculate the RMSE
% RMSE = sqrt(sum((Top_Output(:) - TopOilTemperture_Optimization(:)).^2) / length(Top_Output));
% display(RMSE);
RMSE_1 = sqrt(sum((Top_Output(:)- TopOilTemperture_Optimization(:)).^2) / numel(Top_Output));
display(RMSE_1);
end
%%
function [TopOilTemperture_Optimization] = Combined_Optimization2(K,param,t)
%% Define combined Model Parameters (2)
B = param(1); % Oil exponent
k11 = param(2);
Data = xlsread('Oilpocketall1.csv');
u = Data(:,3);
%% Define Model Fixed/known parameters
T_T_G = 0.40; % Top_oil initial rise over ambient 0.7(17.5) 1(2.10) 1.25(15.95) 1.25(15.95)
T_G = 37.63; % 37.63 Top_oil temperature rise over ambient at steady state 0.7(25.83) 1(42.83) 1.25(58.2083)
To = 231.72; % 0.7(259.69) 1(297.7014) 1.25(296.3116)
R = 9.73;
%% start simulting the model
TopOilTemperture_Optimization = [];
%% combined Model Simulation
iK = length(K);
for j = 1:iK
%% Run updated Model
TopOil_Temperature = T_T_G + (T_G*((1+R*(K(j)).^2)/(1+R)).^B - T_T_G)*(1-exp(-t(j)/(k11*To)));
% TopOil_Temperature = T_G*((1+R*(K(j))^2)/(1+R))^B + (T_T_G - T_G*((1+R*(K(j))^2)/(1+R))^B)* exp(-t(j)/(k11*To));
if ~isnan( TopOil_Temperature) && isreal( TopOil_Temperature)
TopOilTemperture_Optimization = [TopOilTemperture_Optimization;TopOil_Temperature];
else
TopOilTemperture_Optimization = [TopOilTemperture_Optimization; 1000000000000000];
end
end
end
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Interactive Model Editing dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!