%%##### Parâmetros a Alterar: #############################################
% ________________________________________________________________________#
% ---EMBRAIAGEM:----------------------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
% Tempo que a embraiagem demora a ser actuada:                            #
time_clutch=1;%       [s]                                                 #
% ________________________________________________________________________#
% ---DECLIVE:-------------------------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
% Ângulo máximo (em módulo) da descida:                                   #
max_ang=19;%          [deg]                                               #
% ________________________________________________________________________#
% ---DECLIVE:-------------------------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
% Massa do carro:                                                         #
car_mass=1000;%       [kg]                                                #
% ________________________________________________________________________#
% ---ACELERAÇÃO DA GRAVIDADE:---------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
g=9.8;%               [m/s²]                                              #
% ________________________________________________________________________#
% ---FORÇA MÁXIMA DO TRAVÃO:----------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
brake_max_force=5000;%[N]                                                 #
% ________________________________________________________________________#
% ---PRESSÃO DOS PNEUS:---------------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
tire_pressure=2.2;%   [bar]                                               #
% ________________________________________________________________________#
% ---DENSIDADE DO AR:-----------------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
rho_air=1.29;%        [kg/m³]                                             #
% ________________________________________________________________________#
% ---AREA FRONTAL DO VEICULO:---------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
Frontal_area=2;%      [m²]                                                #
% ________________________________________________________________________#
% ---COEFICIENTE DE ARRASTO:----------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
Cd=0.3;%                                                                  #
% ________________________________________________________________________#
% ---VECTOR RPM (PARA A CURVA BINÁRIO-RPM):-------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
rpms=[500,...                                                             #
      1800,...                                                            #
      2000,...                                                            #
      2200,...                                                            #
      2400,...                                                            #
      2600,...                                                            #
      2800,...                                                            #
      3000,...                                                            #
      3200,...                                                            #
      3400,...                                                            #
      3600,...                                                            #
      3800,...                                                            #
      4000,...                                                            #
      4200,...                                                            #
      4400,...                                                            #
      4600,...                                                            #
      4800,...                                                            #
      5000,...                                                            #
      5200,...                                                            #
      5400,...                                                            #
      5600,...                                                            #
      5800];%         [RPM]                                               #
% ________________________________________________________________________#
% ---VECTOR DE BINÁRIOS@RPM (PARA A CURVA BINÁRIO-RPM):-------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
torques_engine=1.35582.*[320,...                                          #
                         325,...                                          #
                         330,...                                          #
                         340,...                                          #
                         350,...                                          #      
                         355,...                                          #
                         357,...                                          #
                         359,...                                          #
                         360,...                                          #
                         360,...                                          #
                         362,...                                          #
                         363,...                                          #
                         363,...                                          #
                         362,...                                          #
                         360,...                                          #
                         355,...                                          #
                         350,...                                          #
                         345,...                                          #
                         340,...                                          #
                         327,...                                          #
                         320,...                                          #
                         310];% [N*m]                                     #
% ________________________________________________________________________#
% ---EFICIENCIA DA TRANSMISSÃO:-------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
transmission_efficiency=0.75;%                                            #
% ________________________________________________________________________#
% ---RAIO DA RODA:--------------------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
wheel_radius=0.34;  %[m]                                                  #
% ________________________________________________________________________#
% ---RELACÃO DA TRANSMISSÃO DO DIFERENCIAL:-------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
differential_ratio=3.42;%                                                 #
% ________________________________________________________________________#
% ---RELAÇÕES DE TRANSMISSÃO:---------------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
gear_ratios=[2.9,0,2.66,1.78,1.3,1,0.74];%                                #
% ________________________________________________________________________#
% ---VELOCIDADE INICIAL DO VEÍCULO:---------------------------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
curr_speed=15;%       [km/h]                                             #
% ________________________________________________________________________#
% ---PERCENTAGEM DE ACELERAÇÃO PARA CONSIDERAR ARRANQUE:------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
minimum_start_percent=20;% percentagem                                    #
% ________________________________________________________________________#
% ---LIMITES DE FUNCIONAMENTO DEFAULT DE CADA MUDANÇA:--------------------#
% ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯#
% RPM's:                                                                  #
rpm_n=870;%           [RPM]                                               #
rpm_min_r=750;%       [RPM]                                               #
rpm_max_r=5490;%      [RPM]                                               #
rpm_min_1=750;%       [RPM]                                               #
rpm_max_1=5490;%      [RPM]                                               #
rpm_min_2=750;%       [RPM]                                               #
rpm_max_2=5490;%      [RPM]                                               #
rpm_min_3=750;%       [RPM]                                               #
rpm_max_3=5490;%      [RPM]                                               #
rpm_min_4=750;%       [RPM]                                               #
rpm_max_4=5490;%      [RPM]                                               #
rpm_min_5=750;%       [RPM]                                               #
rpm_max_5=5490;%      [RPM]                                               #
% Velocidades:                                                            #
vel_min_r=-45;%       [Km/h]                                              #
vel_max_r=0;%         [Km/h]                                              #
vel_min_n=-9999;%     [Km/h]   (valor infinito)                           # 
vel_max_n=9999;%      [Km/h]   (valor infinito)                           # 
vel_min_1=0;%         [Km/h]                                              #
vel_max_1=45;%        [Km/h]                                              #
vel_min_2=20;%        [Km/h]                                              #
vel_max_2=79;%        [Km/h]                                              #
vel_min_3=30;%        [Km/h]                                              #
vel_max_3=122;%       [Km/h]                                              #
vel_min_4=42;%        [Km/h]                                              #
vel_max_4=158;%       [Km/h]                                              #
vel_min_5=53;%        [Km/h]                                              #
vel_max_5=143;%       [Km/h]                                              #
%##########################################################################
close all
% Variavel indicadora do estado do botão:
button=0;
% Geração desta figura:
h_fig_1=figure('NumberTitle','off','Name','Parameters Window');
% Set á variavel de controlo da figura:
set(h_fig_1,'position',[400,400,550,600],'units','pixel','resize','off','DockControls','off','menubar','none');

% Geração do botão:
uicontrol('style','pushbutton','String','Continue','Fontsize',15,'Position',[220,10,110,30],'Callback','button=1;');
% Separador das caracteristicas físicas:
uicontrol('Style','text','Fontsize',10,'String','______________________________________________________','HorizontalAlignment','left','Position',[0,550,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
uicontrol('Style','text','Fontsize',10,'String','  PHYSICAL CHARACTERISTICS:','HorizontalAlignment','left','Position',[0,555,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
uicontrol('Style','text','Fontsize',10,'String','______________________________________________________','HorizontalAlignment','left','Position',[0,570,400,13],'Backgroundcolor',[204/255,204/255,204/255]);

% Handle do titulo do angulo da estrada:
uicontrol('Style','text','Fontsize',11,'String','Maximum road angle:','HorizontalAlignment','left','Position',[5,520,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da aceleração da gravidade:
uicontrol('Style','text','Fontsize',11,'String','Gravity acceleration:','HorizontalAlignment','left','Position',[5,490,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da densidade do ar:
uicontrol('Style','text','Fontsize',11,'String','Air density:','HorizontalAlignment','left','Position',[5,460,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo do coeficiente de arrasto:
uicontrol('Style','text','Fontsize',11,'String','Drag Coefficient:','HorizontalAlignment','left','Position',[5,430,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da velocidade inicial:
uicontrol('Style','text','Fontsize',11,'String','Initial speed:','HorizontalAlignment','left','Position',[5,400,200,25],'Backgroundcolor',[204/255,204/255,204/255]);

% Handle para o angulo da estrada:
h_max_ang=uicontrol('Style','edit','Fontsize',13,'String',num2str(max_ang),'Position',[160,525,70,20]);
% Handle para a aceleração da gravidade:
h_g=uicontrol('Style','edit','Fontsize',13,'String',num2str(g),'Position',[160,495,70,20]);
% Handle para a densidade do ar:
h_rho_air=uicontrol('Style','edit','Fontsize',13,'String',num2str(rho_air),'Position',[160,465,70,20]);
% Handle para o coeficiente de arrasto:
h_Cd=uicontrol('Style','edit','Fontsize',13,'String',num2str(Cd),'Position',[160,435,70,20]);
% Handle para a velocidade inicial:
h_curr_speed=uicontrol('Style','edit','Fontsize',13,'String',num2str(curr_speed),'Position',[160,405,70,20]);

% Handle das unidades do angulo da estrada:
uicontrol('Style','text','Fontsize',11,'String','[deg]','HorizontalAlignment','left','Position',[235,520,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da aceleração da gravidade:
uicontrol('Style','text','Fontsize',11,'String','[m/s²]','HorizontalAlignment','left','Position',[235,490,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da densidade do ar:
uicontrol('Style','text','Fontsize',11,'String','[kg/m³]','HorizontalAlignment','left','Position',[235,460,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades do coeficiente de arrasto:
uicontrol('Style','text','Fontsize',11,'String','[ - ]','HorizontalAlignment','left','Position',[235,430,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da velocidade inicial:
uicontrol('Style','text','Fontsize',11,'String','[km/h]','HorizontalAlignment','left','Position',[235,400,200,25],'Backgroundcolor',[204/255,204/255,204/255]);

% Separador do tempo de actuação da embraiagem:
uicontrol('Style','text','Fontsize',10,'String','______________________________________________________','HorizontalAlignment','left','Position',[0,370,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
uicontrol('Style','text','Fontsize',10,'String','  CAR CHARACTERISTICS:','HorizontalAlignment','left','Position',[0,375,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
uicontrol('Style','text','Fontsize',10,'String','______________________________________________________','HorizontalAlignment','left','Position',[0,390,400,13],'Backgroundcolor',[204/255,204/255,204/255]);

% Handle do titulo do tempo de embraiagem:
uicontrol('Style','text','Fontsize',11,'String','Clutching time:','HorizontalAlignment','left','Position',[5,340,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da massa do carro:
uicontrol('Style','text','Fontsize',11,'String','Car mass:','HorizontalAlignment','left','Position',[5,310,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da força máxima do travão:
uicontrol('Style','text','Fontsize',11,'String','Maximum brake force:','HorizontalAlignment','left','Position',[5,280,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da pressão dos pneus:
uicontrol('Style','text','Fontsize',11,'String','Tire Pressure:','HorizontalAlignment','left','Position',[5,250,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da Área frontal do veículo:
uicontrol('Style','text','Fontsize',11,'String','Vehicle frontal Area:','HorizontalAlignment','left','Position',[5,220,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da eficiencia da transmissão:
uicontrol('Style','text','Fontsize',11,'String','Transmission efficiency:','HorizontalAlignment','left','Position',[5,190,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo do raio da roda:
uicontrol('Style','text','Fontsize',11,'String','Wheel radius:','HorizontalAlignment','left','Position',[5,160,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo da relação do diferencial:
uicontrol('Style','text','Fontsize',11,'String','Differential ratio:','HorizontalAlignment','left','Position',[5,130,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle do titulo das relações de transmissão:
uicontrol('Style','text','Fontsize',11,'String','Gear Ratios:','HorizontalAlignment','left','Position',[5,100,200,25],'Backgroundcolor',[204/255,204/255,204/255]);

% Handle para o tempo de embraiagem:
h_time_clutch=uicontrol('Style','edit','Fontsize',13,'String',num2str(time_clutch),'Position',[175,345,70,20]);
% Handle para a massa do carro:
h_car_mass=uicontrol('Style','edit','Fontsize',13,'String',num2str(car_mass),'Position',[175,315,70,20]);
% Handle para a força máxima do travão:
h_brake_max_force=uicontrol('Style','edit','Fontsize',13,'String',num2str(brake_max_force),'Position',[175,285,70,20]);
% Handle para a pressão dos pneus:
h_tire_pressure=uicontrol('Style','edit','Fontsize',13,'String',num2str(tire_pressure),'Position',[175,255,70,20]);
% Handle para a Área frontal do veículo:
h_Frontal_area=uicontrol('Style','edit','Fontsize',13,'String',num2str(Frontal_area),'Position',[175,225,70,20]);
% Handle para a eficiencia da transmissão:
h_transmission_efficiency=uicontrol('Style','edit','Fontsize',13,'String',num2str(transmission_efficiency),'Position',[175,195,70,20]);
% Handle para o raio da roda:
h_wheel_radius=uicontrol('Style','edit','Fontsize',13,'String',num2str(wheel_radius),'Position',[175,165,70,20]);
% Handle para a relação do diferencial:
h_differential_ratio=uicontrol('Style','edit','Fontsize',13,'String',num2str(differential_ratio),'Position',[175,135,70,20]);

% Handle das unidades do tempo de embraiagem:
uicontrol('Style','text','Fontsize',11,'String','[s]','HorizontalAlignment','left','Position',[250,340,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da massa do carro:
uicontrol('Style','text','Fontsize',11,'String','[kg]','HorizontalAlignment','left','Position',[250,310,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da força máxima do travão:
uicontrol('Style','text','Fontsize',11,'String','[N]','HorizontalAlignment','left','Position',[250,280,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da pressão dos pneus:
uicontrol('Style','text','Fontsize',11,'String','[bar]','HorizontalAlignment','left','Position',[250,250,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da Área frontal do veículo:
uicontrol('Style','text','Fontsize',11,'String','[m²]','HorizontalAlignment','left','Position',[250,220,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da eficiencia da transmissão:
uicontrol('Style','text','Fontsize',11,'String','[ - ]','HorizontalAlignment','left','Position',[250,190,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades do raio da roda:
uicontrol('Style','text','Fontsize',11,'String','[m]','HorizontalAlignment','left','Position',[250,160,200,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle das unidades da relação do diferencial:
uicontrol('Style','text','Fontsize',11,'String','[ - ]','HorizontalAlignment','left','Position',[250,130,200,25],'Backgroundcolor',[204/255,204/255,204/255]);

% Handle do titulo da relação de transmissão da primeira:
uicontrol('Style','text','Fontsize',11,'String','1st:','HorizontalAlignment','left','Position',[5,70,25,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle para a relação de transmissão da primeira:
h_first_ratio=uicontrol('Style','edit','Fontsize',13,'String',num2str(gear_ratios(3)),'Position',[35,75,50,20]);
% Handle do titulo da relação de transmissão da segunda:
uicontrol('Style','text','Fontsize',11,'String','2nd:','HorizontalAlignment','left','Position',[90,70,35,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle Handle para a relação de transmissão da segunda:
h_second_ratio=uicontrol('Style','edit','Fontsize',13,'String',num2str(gear_ratios(4)),'Position',[125,75,50,20]);
% Handle do titulo da relação de transmissão da terceira:
uicontrol('Style','text','Fontsize',11,'String','3rd:','HorizontalAlignment','left','Position',[180,70,30,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle para a relação de transmissão da terceira:
h_third_ratio=uicontrol('Style','edit','Fontsize',13,'String',num2str(gear_ratios(5)),'Position',[210,75,50,20]);
% Handle do titulo da relação de transmissão da quarta:
uicontrol('Style','text','Fontsize',11,'String','4th:','HorizontalAlignment','left','Position',[265,70,30,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle para a relação de transmissão da quarta:
h_fourth_ratio=uicontrol('Style','edit','Fontsize',13,'String',num2str(gear_ratios(6)),'Position',[295,75,50,20]);
% Handle do titulo da relação de transmissão da quinta:
uicontrol('Style','text','Fontsize',11,'String','5th:','HorizontalAlignment','left','Position',[345,70,30,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle para a relação de transmissão da quinta:
h_fifth_ratio=uicontrol('Style','edit','Fontsize',13,'String',num2str(gear_ratios(7)),'Position',[375,75,50,20]);
% Handle do titulo da relação de transmissão da marcha atrás::
uicontrol('Style','text','Fontsize',11,'String','Rev:','HorizontalAlignment','left','Position',[430,70,30,25],'Backgroundcolor',[204/255,204/255,204/255]);
% Handle para a relação de transmissão da marcha-atrás:
h_reverse_ratio=uicontrol('Style','edit','Fontsize',13,'String',num2str(gear_ratios(1)),'Position',[460,75,50,20]);





















% Separador dos limites de funcionamento de cada mudança:
% uicontrol('Style','text','Fontsize',10,'String','______________________________________________________','HorizontalAlignment','left','Position',[0,290,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
% uicontrol('Style','text','Fontsize',10,'String','  LIMITES DE FUNCIONAMENTO DE CADA MUDANÇA:','HorizontalAlignment','left','Position',[0,295,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
% uicontrol('Style','text','Fontsize',10,'String','______________________________________________________','HorizontalAlignment','left','Position',[0,310,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título do tempo de actuação da embraiagem:
% uicontrol('Style','text','Fontsize',15,'String','Tempo de Embraiagem:','Position',[10,315,230,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle para o valor do tempo de actuação da embraiagem:
% h_time_clutch=uicontrol('Style','edit','Fontsize',15,'String',num2str(time_clutch),'Position',[250,315,70,25]);
% % Unidades para o valor do tempo de actuação da embraiagem:
% uicontrol('Style','text','Fontsize',15,'String','[s]','Position',[330,315,30,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Separador do tempo de actuação da embraiagem:
% uicontrol('Style','text','Fontsize',10,'String','______________________________________________________','HorizontalAlignment','left','Position',[0,345,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
% uicontrol('Style','text','Fontsize',10,'String','  TEMPO DE ACTUAÇÃO DA EMBRAIAGEM:','HorizontalAlignment','left','Position',[0,350,400,13],'Backgroundcolor',[204/255,204/255,204/255]);
% uicontrol('Style','text','Fontsize',10,'String','______________________________________________________','HorizontalAlignment','left','Position',[0,365,400,13],'Backgroundcolor',[204/255,204/255,204/255]);







% % Handle do título de quinta velocidade:
% uicontrol('Style','text','Fontsize',15,'String','5ª','Position',[10,50,25,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título de quarta velocidade:
% uicontrol('Style','text','Fontsize',15,'String','4ª','Position',[10,80,25,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título de terceira velocidade:
% uicontrol('Style','text','Fontsize',15,'String','3ª','Position',[10,110,25,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título de segunda velocidade:
% uicontrol('Style','text','Fontsize',15,'String','2ª','Position',[10,140,25,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título de primeira velocidade:
% uicontrol('Style','text','Fontsize',15,'String','1ª','Position',[10,170,25,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título de ponto morto:
% uicontrol('Style','text','Fontsize',15,'String','N','Position',[10,200,25,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título de marcha-atrás:
% uicontrol('Style','text','Fontsize',15,'String','R','Position',[10,230,25,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título da RPM minima:
% uicontrol('Style','text','Fontsize',10,'String','RPM min','Position',[50,255,70,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título da RPM maxima:
% uicontrol('Style','text','Fontsize',10,'String','RPM max','Position',[135,255,70,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título da velocidade minima:
% uicontrol('Style','text','Fontsize',10,'String','vel min','Position',[220,255,70,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle do título da velocidade maxima:
% uicontrol('Style','text','Fontsize',10,'String','vel_max','Position',[305,255,70,25],'Backgroundcolor',[204/255,204/255,204/255]);
% % Handle para as RPM minimas da quinta velocidade:
% h_rpm_min_5=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_min_5),'Position',[50,50,70,25]);
% % Handle para as RPM máximas da quinta velocidade:
% h_rpm_max_5=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_max_5),'Position',[135,50,70,25]);
% % Handle para a velocidade minima da quinta velocidade:
% h_vel_min_5=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_min_5),'Position',[220,50,70,25]);
% % Handle para a velocidade máxima da quinta velocidade:
% h_vel_max_5=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_max_5),'Position',[305,50,70,25]);
% % Handle para as RPM minimas da quarta velocidade:
% h_rpm_min_4=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_min_4),'Position',[50,80,70,25]);
% % Handle para as RPM maximas da quarta velocidade:
% h_rpm_max_4=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_max_4),'Position',[135,80,70,25]);
% % Handle para a velocidade minima da quarta velocidade:
% h_vel_min_4=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_min_4),'Position',[220,80,70,25]);
% % Handle para a velocidade máxima da quarta velocidade:
% h_vel_max_4=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_max_4),'Position',[305,80,70,25]);
% % Handle para as RPM minimas da terceira velocidade:
% h_rpm_min_3=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_min_3),'Position',[50,110,70,25]);
% % Handle para as RPM máximas da terceira velocidade:
% h_rpm_max_3=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_max_3),'Position',[135,110,70,25]);
% % Handle para a velocidade minima da terceira velocidade:
% h_vel_min_3=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_min_3),'Position',[220,110,70,25]);
% % Handle para a velocidade máxima da terceira velocidade:
% h_vel_max_3=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_max_3),'Position',[305,110,70,25]);
% % Handle para as RPM minimas da segunda velocidade:
% h_rpm_min_2=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_min_2),'Position',[50,140,70,25]);
% % Handle para as RPM máximas da segunda velocidade:
% h_rpm_max_2=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_max_2),'Position',[135,140,70,25]);
% % Handle para a velocidade minima da segunda velocidade:
% h_vel_min_2=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_min_2),'Position',[220,140,70,25]);
% % Handle para a velocidade máxima da segunda velocidade:
% h_vel_max_2=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_max_2),'Position',[305,140,70,25]);
% % Handle para as RPM minimas da primeira velocidade:
% h_rpm_min_1=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_min_1),'Position',[50,170,70,25]);
% % Handle para as RPM maximas da primeira velocidade:
% h_rpm_max_1=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_max_1),'Position',[135,170,70,25]);
% % Handle para a velocidade minimas da primeira velocidade:
% h_vel_min_1=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_min_1),'Position',[220,170,70,25]);
% % Handle para a velocidade máxima da primeira velocidade:
% h_vel_max_1=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_max_1),'Position',[305,170,70,25]);
% % Handle para as RPM minimas do ponto morto:
% h_rpm_min_n=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_n),'Position',[50,200,70,25]);
% % Handle para as RPM maximas do ponto morto:
% h_rpm_max_n=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_n),'Position',[135,200,70,25]);
% % Handle para a velocidade minimas do ponto morto:
% h_vel_min_n=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_min_n),'Position',[220,200,70,25]);
% % Handle para a velocidade máxima do ponto morto:
% h_vel_max_n=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_max_n),'Position',[305,200,70,25]);
% % Handle para as RPM minimas da marcha_atrás:
% h_rpm_min_r=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_min_r),'Position',[50,230,70,25]);
% % Handle para as RPM maximas da marcha_atrás:
% h_rpm_max_r=uicontrol('Style','edit','Fontsize',15,'String',num2str(rpm_max_r),'Position',[135,230,70,25]);
% % Handle para a velocidade minimas da marcha_atrás:
% h_vel_min_r=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_min_r),'Position',[220,230,70,25]);
% % Handle para a velocidade máxima da marcha_atrás:
% h_vel_max_r=uicontrol('Style','edit','Fontsize',15,'String',num2str(vel_max_r),'Position',[305,230,70,25]);














% Inicia-se o ciclo de espera até o utilizador carregar no botão:
while(~button)
    pause(0.1)
end




% Quando o utilizador carrega finalmente no botão de Continuar:
% Faz-se o get ao valor da massa do carro e converte-se para numero:
car_mass=str2double(get(h_car_mass,'String'));
% Faz-se um get ao valor do angulo máximo da estrada e converte-se para numero:
max_ang=str2double(get(h_max_ang,'String'));
% Faz-se um get ao valor da aceleração da gravidade e converte-se para numero:
g=str2double(get(h_g,'String'));
% Faz-se um get ao valor da força máxima do travão e converte-se para numero:
brake_max_force=str2double(get(h_brake_max_force,'String'));
% Faz-se um get ao valor da pressão dos pneus e converte-se para numero:
tire_pressure=str2double(get(h_tire_pressure,'String'));
% Faz-se um get ao valor da densidade do ar e converte-se para numero:
rho_air=str2double(get(h_rho_air,'String'));
% Faz-se um get ao valor da área frontal do veículo e converte-se para numero:
Frontal_area=str2double(get(h_Frontal_area,'String'));
% Faz-se um get ao valor do coeficiente de arrasto e converte-se para numero:
Cd=str2double(get(h_Cd,'String'));
% Faz-se um get ao valor da eficiencia da transmissão e converte-se para numero:
transmission_efficiency=str2double(get(h_transmission_efficiency,'String'));
% Faz-se um get ao valor do raio do pneu e converte-se para numero:
wheel_radius=str2double(get(h_wheel_radius,'String'));
% Faz-se um get ao valor da relação de transmissão da primeira mudança e converte-se para numero:
gear_ratios(3)=str2double(get(h_first_ratio,'String'));
% Faz-se um get ao valor da relação de transmissão da segunda mudança e converte-se para numero:
gear_ratios(4)=str2double(get(h_second_ratio,'String'));
% Faz-se um get ao valor da relação de transmissão da terceira mudança e converte-se para numero:
gear_ratios(5)=str2double(get(h_third_ratio,'String'));
% Faz-se um get ao valor da relação de transmissão da quarta mudança e converte-se para numero:
gear_ratios(6)=str2double(get(h_fourth_ratio,'String'));
% Faz-se um get ao valor da relação de transmissão da quijnta mudança e converte-se para numero:
gear_ratios(7)=str2double(get(h_fifth_ratio,'String'));
% Faz-se um get ao valor da relação de transmissão da marcha-atrás e converte-se para numero:
gear_ratios(1)=str2double(get(h_reverse_ratio,'String'));
% Faz-se o get ao valor do tempo de embraiagem e converte-se para numero e converte-se para numero:
time_clutch=str2double(get(h_time_clutch,'String'));

curr_speed=str2double(get(h_curr_speed,'String'));
% % Faz-se o get ao valor das RPM minimas em ponto morto e converte-se para numero:
% rpm_n=str2double(get(h_rpm_min_n,'String'));
% % Faz-se o get ao valor das RPM minimas em marcha-atrás e converte-se para numero:
% rpm_min_r=str2double(get(h_rpm_min_r,'String'));
% % Faz-se o get ao valor das RPM maximas em marcha-atrás e converte-se para numero:
% rpm_max_r=str2double(get(h_rpm_max_r,'String'));
% % Faz-se o get ao valor das RPM minimas em primeira e converte-se para numero:
% rpm_min_1=str2double(get(h_rpm_min_1,'String'));
% % Faz-se o get ao valor das RPM maximas em primeira e converte-se para numero:
% rpm_max_1=str2double(get(h_rpm_max_1,'String'));
% % Faz-se o get ao valor das RPM minimas em segunda e converte-se para numero:
% rpm_min_2=str2double(get(h_rpm_min_2,'String'));
% % Faz-se o get ao valor das RPM maximas em segunda e converte-se para numero:
% rpm_max_2=str2double(get(h_rpm_max_2,'String'));
% % Faz-se o get ao valor das RPM minimas em terceira e converte-se para numero:
% rpm_min_3=str2double(get(h_rpm_min_3,'String'));
% % Faz-se o get ao valor das RPM maximas em terceira e converte-se para numero:
% rpm_max_3=str2double(get(h_rpm_max_3,'String'));
% % Faz-se o get ao valor das RPM minimas em quarta e converte-se para numero:
% rpm_min_4=str2double(get(h_rpm_min_4,'String'));
% % Faz-se o get ao valor das RPM maximas em quarta e converte-se para numero:
% rpm_max_4=str2double(get(h_rpm_max_4,'String'));
% % Faz-se o get ao valor das RPM minimas em quinta e converte-se para numero:
% rpm_min_5=str2double(get(h_rpm_min_5,'String'));
% % Faz-se o get ao valor das RPM maximas em quinta e converte-se para numero:
% rpm_max_5=str2double(get(h_rpm_max_5,'String'));
% % Faz-se o get ao valor da velocidade minima em marcha-atrás e converte-se para numero:
% vel_min_r=str2double(get(h_vel_min_r,'String'));
% % Faz-se o get ao valor da velocidade maxima em marcha-atrás e converte-se para numero:
% vel_max_r=str2double(get(h_vel_max_r,'String'));
% % Faz-se o get ao valor da velocidade minima em ponto morto e converte-se para numero:
% vel_min_n=str2double(get(h_vel_min_n,'String'));
% % Faz-se o get ao valor da velocidade maxima em ponto morto e converte-se para numero:
% vel_max_n=str2double(get(h_vel_max_n,'String'));
% % Faz-se o get ao valor da velocidade minima em primeira e converte-se para numero:
% vel_min_1=str2double(get(h_vel_min_1,'String'));
% % Faz-se o get ao valor da velocidade maxima em primeira e converte-se para numero:
% vel_max_1=str2double(get(h_vel_max_1,'String'));
% % Faz-se o get ao valor da velocidade minima em segunda e converte-se para numero:
% vel_min_2=str2double(get(h_vel_min_2,'String'));
% % Faz-se o get ao valor da velocidade maxima em segunda e converte-se para numero:
% vel_max_2=str2double(get(h_vel_max_2,'String'));
% % Faz-se o get ao valor da velocidade minima em terceira e converte-se para numero:
% vel_min_3=str2double(get(h_vel_min_3,'String'));
% % Faz-se o get ao valor da velocidade maxima em terceira e converte-se para numero:
% vel_max_3=str2double(get(h_vel_max_3,'String'));
% % Faz-se o get ao valor da velocidade minima em quarta e converte-se para numero:
% vel_min_4=str2double(get(h_vel_min_4,'String'));
% % Faz-se o get ao valor da velocidade maxima em quarta e converte-se para numero:
% vel_max_4=str2double(get(h_vel_max_4,'String'));
% % Faz-se o get ao valor da velocidade minima em quinta e converte-se para numero:
% vel_min_5=str2double(get(h_vel_min_5,'String'));
% % Faz-se o get ao valor da velocidade maxima em quinta e converte-se para numero:
% vel_max_5=str2double(get(h_vel_max_5,'String'));
% Constroi-se o vector de limites de RPM:
rpm_vector=[rpm_n,rpm_min_r,rpm_max_r,rpm_min_1,rpm_max_1,rpm_min_2,rpm_max_2,rpm_min_3,rpm_max_3,rpm_min_4,rpm_max_4,rpm_min_5,rpm_max_5];
% Constroi-se o vector de limites de velocidade:
vel_vector=[vel_min_r,vel_max_r,vel_min_n,vel_max_n,vel_min_1,vel_max_1,vel_min_2,vel_max_2,vel_min_3,vel_max_3,vel_min_4,vel_max_4,vel_min_5,vel_max_5];
% Fecha-se a janela:
close all
% Apaga os handles das rpm:
clear h_rpm_min_n h_rpm_max_n h_rpm_min_r h_rpm_max_r h_rpm_min_1 h_rpm_max_1 h_rpm_min_2 h_rpm_max_2 h_rpm_min_3 h_rpm_max_3 h_rpm_min_4 h_rpm_max_4 h_rpm_min_5 h_rpm_max_5
% Apaga os handles das velocidades:
clear h_vel_min_n h_vel_max_n h_vel_min_r h_vel_max_r h_vel_min_1 h_vel_max_1 h_vel_min_2 h_vel_max_2 h_vel_min_3 h_vel_max_3 h_vel_min_4 h_vel_max_4 h_vel_min_5 h_vel_max_5