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 次查看(过去 30 天)
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 个)

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by