function varargout = Thermik(varargin)
evalin('base','parameter=[];');

%% LAYOUT und Platzierung der Steuerelemente. 
% Gestaltung der GUI durch Definition der Elemente.

% Bildschirmgröße abfragen
scrsz = get(0,'ScreenSize');

% Main figure der GUI
fh = figure('Name','Thermische Getriebeauslegung',...
            'NumberTitle', 'off',...
            'Position',[scrsz(3)/2-.45*scrsz(3) scrsz(4)/2-.472*scrsz(4) .9*scrsz(3) .9*scrsz(4)],...
            'Resize', 'on',...
            'Units', 'normalized',...
            'MenuBar', 'none',...
            'Toolbar', 'none',...
            'Visible','off');
        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%      
% Menuü
% Erstellung und Initialisierung des Menüs

% File
m1h = uimenu(fh,'Label','File');
    uimenu(m1h,'Label','Simulationsstartdrehzahl',...
            'Callback',@hnstartButtonCallback);
    uimenu(m1h,'Label','Momentenbegrenzung',...
            'Callback',@hMomentenbegrenzungButtonCallback);    
    uimenu(m1h,'Label','Exit',...
            'Callback',@hExitButtonCallback);
        
        
% GUI        
m2h = uimenu(fh,'Label','Getriebe','Enable','on');
    uimenu(m2h,'Label','(1) NAG-2',...
                'Callback',@hNag2Callback);
    uimenu(m2h,'Label','(2) NAG-3',...
                'Callback',@hNag3Callback);
            
            
% Toolbar
m3h = uimenu(fh,'Label','Tools');
     uimenu(m3h,'Label','Diagrammtools',...
             'Callback',@hToolbarCallback);
     
         
% ?
m4h = uimenu(fh,'Label','?');
     uimenu(m4h,'Label','Info',...
             'Callback',@hHelpInfoButtonCallback);


% Nach der Menüerstellung werden die handles unsichtbar gesetzt
menuhandles = findall(fh,'type','uimenu');
set(menuhandles,'HandleVisibility','off')


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Panel für NAG-2

pnag2h = uipanel('Parent',fh,'Title','NAG-2',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.004 0.004 0.992 0.992]);

        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Panel für NAG-3

pnag3h = uipanel('Parent',fh,'Title','NAG-3',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','off',...
            'Position',[0.004 0.004 0.992 0.992]);

        
%% Layouten der Nag2-GUI
% Erstellen der panels, text-boxes, axes usw.

% Panel für die Eingabeparameter
p1h = uipanel('Parent',pnag2h,'Title','Eingabeparameter',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.67 0.35 0.326 0.646]);

                    
       % Eingabefeld für die "Überschneidungszeit [s]"
       et1h = uicontrol(p1h,'Style','edit',...
            'String','0.3',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.713 0.1 0.059]);
       
         % statisches Textfeld 
         uicontrol(p1h,'Style','text',...
            'String','Überschneidungszeit [s]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.698 0.811 0.059]);
      
        
       % Eingabefeld für die "Rampenzeit der Überhöhung [s]"
       et2h = uicontrol(p1h,'Style','edit',...
            'String','0.1',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.635 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Rampenzeit Überhöhung [s]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.62 0.811 0.059]);
            
       
       % Eingabefeld für das "Überhöhungsmoment[Nm]"
       et3h = uicontrol(p1h,'Style','edit',...
            'String','300',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.557 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Überhöhungsmoment [Nm]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.542 0.811 0.059]);
      
            
       % Eingabefeld für die "Rampenzeit des Motoreingriffes [s]"
       et4h = uicontrol(p1h,'Style','edit',...
            'String','0.01',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.479 0.1 0.059]);
       
         % statisches Textfeld 
         uicontrol(p1h,'Style','text',...
            'String','Rampenzeit Motoreingriff [s]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.464 0.811 0.059]);
            
            
       % Eingabefeld für das "Motoreingriffsmoment [Nm]"
       et5h = uicontrol(p1h,'Style','edit',...
            'String','-100',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.401 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Motoreingriffsmoment [Nm]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.386 0.811 0.059]);
            
     
      % Eingabefeld für die "Schaltdrehzahl [1/min]"
       et6h = uicontrol(p1h,'Style','edit',...
            'String','6000',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.323 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Schaltdrehzahl [1/min]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.302 0.811 0.059]);

        
       % Eingabefeld für die "Übersetzung des Differentials"
       et7h = uicontrol(p1h,'Style','edit',...
            'String','2.65',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.181 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Übersetzung des Differentials',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.166 0.811 0.059]);        

        
       % Eingabefeld für die "Massenträgheit des Anfahrelementes (antriebsseitig) [kgm²]"
       et8h = uicontrol(p1h,'Style','edit',...
            'String','0.05',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.103 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Massenträgheit des Anfahrelementes (antriebsseitig) [kgm²]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.088 0.811 0.059]); 
 
        
       % Eingabefeld für die "Massenträgheit des Anfahrelementes
       % (abtriebsseitig) [kgm²]"
       et9h = uicontrol(p1h,'Style','edit',...
            'String','0.03',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.025 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Massenträgheit des Anfahrelementes (abtriebsseitig) [kgm²]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.012 0.811 0.059]);         
        

       % Popup-Menü zur Wahl des Motorvolllastkennlinie
       pm1h = uicontrol(p1h,'Style','popupmenu',...
            'String',{''},...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Value',1,'Position',[0.025 0.924 0.482 0.04]);
        
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Motorvolllastkennlinien');
       d = dir('*.xls');
       c = struct2cell(d);
       motoren = c(1,:);
       motorenneu = strrep(motoren, '.xls', '');
       set(pm1h, 'String', motorenneu);      
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe');
                
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Motorvolllastkennlinie',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.52 0.896 0.431 0.059]);
            
            
       % Popup-Menü zur Wahl des Fahrzeugmodelles
       pm2h = uicontrol(p1h,'Style','popupmenu',...
            'String',{''},...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Value',1,'Position',[0.025 0.86 0.482 0.04]);
        
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Fahrzeugmodelle');
       h = dir('*.xls');
       g = struct2cell(h);
       modell = g(1,:);
       modellneu = strrep(modell, '.xls', '');
       set(pm2h, 'String', modellneu);     
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe');
       
         % statisches Textfeld 
         uicontrol(p1h,'Style','text',...
            'String','Fahrzeugmodell',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.52 0.832 0.431 0.059]);
       
            
       % Popup-Menü zur Wahl der Variante
       pm3h = uicontrol(p1h,'Style','popupmenu',...
            'String',{''},...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Callback', @hpopupcallbackvariante,...
            'Value',1,'Position',[0.025 0.796 0.482 0.04]);
        
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten');
       o = dir('*.xls');
       p = struct2cell(o);
       var = p(1,:);
       varneu = strrep(var, '.xls', '');
       set(pm3h, 'String', varneu);       
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe');        
        
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Lamellenvariante',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.52 0.768 0.431 0.059]);
        
        
       % Popup-Menü zur Wahl der Schaltung
       pm4h = uicontrol(p1h,'Style','popupmenu',...
            'String',{'1-2','2-3','3-4','4-5','5-6','6-7'},...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Callback', @hpopupcallbackschaltung,...
            'Value',1,'Position',[0.025 0.264 0.482 0.04]);
        
         % statisches Textfeld
         uicontrol(p1h,'Style','text',...
            'String','Schaltung',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.52 0.236 0.431 0.059]);     
       
            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                        
% Pushbuttons für die Adaption und die Simulation

pb1h = uicontrol(pnag2h,'Style','pushbutton','String','Adaption',...
            'Units','normalized',...
            'Position',[0.71 0.27 0.082 0.0488],...
            'Visible','on',...
            'Callback',@hAdaptionCallback);            
            
pb2h = uicontrol(fh,'Style','pushbutton','String','Simulation',...
            'Units','normalized',...
            'Position',[0.86 0.27 0.082 0.0488],...
            'Visible','off',...
            'Callback',@hSimulationCallback); 

            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Panels für die Diagrammdarstellung
p2h = uipanel('Parent',pnag2h,'Title','Diagramme',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.004 0.146 0.66 0.85]);
                        
    p21h = uipanel(p2h,'Title','Drehzahlen',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.006 0.67 0.988 0.325]);
   
        a1h = axes('Parent',p21h,'Position',[.05 .10 .94 .85]);
        set(a1h, 'Visible', 'off');
                        
    p22h = uipanel(p2h,'Title','Drehmomente',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.006 0.338 0.988 0.325]);
        
        a2h = axes('Parent',p22h,'Position',[.05 .10 .94 .85]);
        set(a2h, 'Visible', 'off');
        
    p23h = uipanel(p2h,'Title','spez. Reibleistung und spez. Wärme',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.006 0.007 0.988 0.325]);
         
        a3h = axes('Parent',p23h,'Position',[.05 .10 .94 .85]);
        set(a3h, 'Visible', 'off');        
                                        
       
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% Panel für die Ergebnisse
  p3h = uipanel('Parent',pnag2h,'Title','Berechnungsergebnisse',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.004 0.004 0.66 0.132]);
        
        
       % Ergebnisausgabe
       % Ausgabefeld für die "spezifische Reibleistung [W/mm²]"
       etr1h = uicontrol(p3h,'Style','edit',...
            'String',' ',...
            'Units','normalized',...
            'Visible','off',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.019 0.16 0.1 0.37]);
       
         % statisches Textfeld
         str1h = uicontrol(p3h,'Style','text',...
            'String','spezifische Reibleistung [W/mm²]:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.019 0.596 0.225 0.186]);
         
       % Ausgabefeld für die "Reserve an spezifischer Reibleistung [%]"     
       etr11h = uicontrol(p3h,'Style','edit',...
            'String',' ',...
            'Units','normalized',...
            'Visible','off',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.269 0.16 0.1 0.37]);
       
         % statisches Textfeld
         str11h = uicontrol(p3h,'Style','text',...
            'String','Reserve [%]:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.269 0.596 0.1 0.186]);
        
         % statisches Textfeld; Ampelanzeige
         str12h = uicontrol(p3h,'Style','text',...
            'String','',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.351 0.61 0.019 0.155]);
            
       % Ausgabefeld für die "spezifische Wärme [J/mm²]"     
       etr2h = uicontrol(p3h,'Style','edit',...
            'String',' ',...
            'Units','normalized',...
            'Visible','off',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.576 0.16 0.1 0.37]);
       
         % statisches Textfeld
         str2h = uicontrol(p3h,'Style','text',...
            'String','spezifische Wärme [J/mm²]:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.576 0.596 0.188 0.186]);
            
       % Ausgabefeld für die "Reserve an spezifischer Wärme [%]" 
       etr21h = uicontrol(p3h,'Style','edit',...
            'String',' ',...
            'Units','normalized',...
            'Visible','off',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.826 0.16 0.1 0.37]);
       
         % statisches Textfeld
         str21h = uicontrol(p3h,'Style','text',...
            'String','Reserve [%]:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.826 0.596 0.1 0.186]);
        
         % statisches Textfeld; Ampelanzeige
         str22h = uicontrol(p3h,'Style','text',...
            'String','',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.908 0.61 0.019 0.155]);
 
        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% Panel für die Informationen
  p4h = uipanel('Parent',pnag2h,'Title','Informationen',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.67 0.004 0.326 0.132]);       
        
       % Ausgabefeld zur Darstellung des zuschaltenden Elementes      
       eti1h = uicontrol(p4h,'Style','edit',...
            'String','B1',...
            'Units','normalized',...
            'Visible','on',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.16 0.203 0.37]);
       
         % statisches Textfeld
         uicontrol(p4h,'Style','text',...
            'String','zuschaltendes Element:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','on',...
            'Position',[0.025 0.596 0.456 0.186]);
        
        
       % Ausgabefeld für Anzahl der Reibflächen am zuschaltenden Element      
       eti2h = uicontrol(p4h,'Style','edit',...
            'String','',...
            'Units','normalized',...
            'Visible','on',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.456 0.16 0.203 0.37]);
             
       value = get(pm4h, 'Value');
            switch value
                case 1
                    ancestor(pm3h, 'figure');
                    variante1 = get(pm3h, 'String');
                    Value1 = get (pm3h, 'Value');
                    File1 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante1{Value1}];
                    data1 = xlsread(File1, 1, 'B2');
                    set(eti2h,'String', data1);
                case 2
                    ancestor(pm3h, 'figure');
                    variante2 = get(pm3h, 'String');
                    Value2 = get (pm3h, 'Value');
                    File2 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante2{Value2}];
                    data2 = xlsread(File2, 1, 'B6');
                    set(eti2h,'String', data2);
                case 3
                    ancestor(pm3h, 'figure');
                    variante3 = get(pm3h, 'String');
                    Value3 = get (pm3h, 'Value');
                    File3 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante3{Value3}];
                    data3 = xlsread(File3, 1, 'B7');
                    set(eti2h,'String', data3);
                case 4
                    ancestor(pm3h, 'figure');
                    variante4 = get(pm3h, 'String');
                    Value4 = get (pm3h, 'Value');
                    File4 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante4{Value4}];
                    data4 = xlsread(File4, 1, 'B8');
                    set(eti2h,'String', data4);
                case 5
                    ancestor(pm3h, 'figure');
                    variante5 = get(pm3h, 'String');
                    Value5 = get (pm3h, 'Value');
                    File5 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante5{Value5}];
                    data5 = xlsread(File5, 1, 'B2');
                    set(eti2h,'String', data5);
                case 6
                    ancestor(pm3h, 'figure');
                    variante6 = get(pm3h, 'String');
                    Value6 = get (pm3h, 'Value');
                    File6 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante6{Value6}];
                    data6 = xlsread(File6, 1, 'B4');
                    set(eti2h,'String', data6);
                otherwise
                    % error handling
            end
       
         % statisches Textfeld
         uicontrol(p4h,'Style','text',...
            'String','Anzahl der Reibflächen:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','on',...
            'Position',[0.456 0.596 0.456 0.186]);
            
        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% Panel für die Simulationsstartdrehzahländerung
 
  p5h = uipanel('Parent',pnag2h,'Title','Ändern der Simulationsstartdrehzahl',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','off',...
            'Position',[0.67 0.146 0.326 0.103]); 
                    
       % Eingabefeld für die "nstart-Parameter für Schaltung 1-2"
       ep1h = uicontrol(p5h,'Style','edit',...
            'String','0.85',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.031 0.152 0.12 0.5]);
        
         % statisches Textfeld
         uicontrol(p5h,'Style','text',...
            'String','1-2:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.031 0.71 0.12 0.224]);
        
       % Eingabefeld für die "nstart-Parameter für Schaltung 2-3"
       ep2h = uicontrol(p5h,'Style','edit',...
            'String','0.94',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.191 0.152 0.12 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h,'Style','text',...
            'String','2-3:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.191 0.71 0.12 0.224]);
        
      % Eingabefeld für die "nstart-Parameter für Schaltung 3-4"
       ep3h = uicontrol(p5h,'Style','edit',...
            'String','0.975',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.351 0.152 0.12 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h,'Style','text',...
            'String','3-4:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.351 0.71 0.12 0.224]);
        
      % Eingabefeld für die "nstart-Parameter für Schaltung 4-5"
       ep4h = uicontrol(p5h,'Style','edit',...
            'String','0.99',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.511 0.152 0.12 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h,'Style','text',...
            'String','4-5:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.511 0.71 0.12 0.224]);
        
       % Eingabefeld für die "nstart-Parameter für Schaltung 5-6"
       ep5h = uicontrol(p5h,'Style','edit',...
            'String','0.996',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.671 0.152 0.12 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h,'Style','text',...
            'String','5-6:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.671 0.71 0.12 0.224]); 
        
      % Eingabefeld für die "nstart-Parameter für Schaltung 6-7"
       ep6h = uicontrol(p5h,'Style','edit',...
            'String','0.998',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.831 0.152 0.12 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h,'Style','text',...
            'String','6-7:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.831 0.71 0.12 0.224]);   
        

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% Panel für die Momentenbegrenzung
 
  p6h = uipanel('Parent',pnag2h,'Title','Momentenbegrenzung',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','off',...
            'Position',[0.67 0.146 0.326 0.103]); 
                    
       % Eingabefeld für die "Momentenbegrenzung"
       em1h = uicontrol(p6h,'Style','edit',...
            'String','2000',...
             'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.152 0.1 0.5]);
        
        % statisches Textfeld
          uicontrol(p6h,'Style','text',...
            'String','[Nm]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','on',...
            'Position',[0.14 0.292 0.12 0.224]);
        
        
%% Layouten der NAG-3GUI
% Erstellen der panels, text-boxes, axes usw.

% Panel für die Eingabeparameter
p1h3 = uipanel('Parent',pnag3h,'Title','Eingabeparameter',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.67 0.35 0.326 0.646]);

                    
       % Eingabefeld für die "Überschneidungszeit [s]"
       et1h3 = uicontrol(p1h3,'Style','edit',...
            'String','0.3',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.713 0.1 0.059]);
       
         % statisches Textfeld 
         uicontrol(p1h3,'Style','text',...
            'String','Überschneidungszeit [s]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.698 0.811 0.059]);
      
        
       % Eingabefeld für die "Rampenzeit der Überhöhung [s]"
       et2h3 = uicontrol(p1h3,'Style','edit',...
            'String','0.1',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.635 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Rampenzeit Überhöhung [s]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.62 0.811 0.059]);
            
       
       % Eingabefeld für das "Überhöhungsmoment[Nm]"
       et3h3 = uicontrol(p1h3,'Style','edit',...
            'String','300',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.557 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Überhöhungsmoment [Nm]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.542 0.811 0.059]);
      
            
       % Eingabefeld für die "Rampenzeit des Motoreingriffes [s]"
       et4h3 = uicontrol(p1h3,'Style','edit',...
            'String','0.01',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.479 0.1 0.059]);
       
         % statisches Textfeld 
         uicontrol(p1h3,'Style','text',...
            'String','Rampenzeit Motoreingriff [s]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.464 0.811 0.059]);
            
            
       % Eingabefeld für das "Motoreingriffsmoment [Nm]"
       et5h3 = uicontrol(p1h3,'Style','edit',...
            'String','-100',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.401 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Motoreingriffsmoment [Nm]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.386 0.811 0.059]);
            
     
      % Eingabefeld für die "Schaltdrehzahl [1/min]"
       et6h3 = uicontrol(p1h3,'Style','edit',...
            'String','6000',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.323 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Schaltdrehzahl [1/min]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.302 0.811 0.059]);

        
       % Eingabefeld für die "Übersetzung des Differentials"
       et7h3 = uicontrol(p1h3,'Style','edit',...
            'String','2.65',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.181 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Übersetzung des Differentials',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.166 0.811 0.059]);        

        
       % Eingabefeld für die "Massenträgheit des Anfahrelementes (antriebsseitig) [kgm²]"
       et8h3 = uicontrol(p1h3,'Style','edit',...
            'String','0.05',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.103 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Massenträgheit des Anfahrelementes (antriebsseitig) [kgm²]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.088 0.811 0.059]); 
 
        
       % Eingabefeld für die "Massenträgheit des Anfahrelementes
       % (abtriebsseitig) [kgm²]"
       et9h3 = uicontrol(p1h3,'Style','edit',...
            'String','0.03',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.025 0.1 0.059]);
       
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Massenträgheit des Anfahrelementes (abtriebsseitig) [kgm²]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.14 0.012 0.811 0.059]);         
        

       % Popup-Menü zur Wahl des Motorvolllastkennlinie
       pm1h3 = uicontrol(p1h3,'Style','popupmenu',...
            'String',{''},...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Value',1,'Position',[0.025 0.924 0.482 0.04]);
        
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Motorvolllastkennlinien');
       d = dir('*.xls');
       c = struct2cell(d);
       motoren = c(1,:);
       motorenneu = strrep(motoren, '.xls', '');
       set(pm1h3, 'String', motorenneu);      
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Nag3');
                
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Motorvolllastkennlinie',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.52 0.896 0.431 0.059]);
            
            
       % Popup-Menü zur Wahl des Fahrzeugmodelles
       pm2h3 = uicontrol(p1h3,'Style','popupmenu',...
            'String',{''},...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Value',1,'Position',[0.025 0.86 0.482 0.04]);
        
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Fahrzeugmodelle');
       h = dir('*.xls');
       g = struct2cell(h);
       modell = g(1,:);
       modellneu = strrep(modell, '.xls', '');
       set(pm2h3, 'String', modellneu);     
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Nag3');
       
         % statisches Textfeld 
         uicontrol(p1h3,'Style','text',...
            'String','Fahrzeugmodell',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.52 0.832 0.431 0.059]);
       
            
       % Popup-Menü zur Wahl der Variante
       pm3h3 = uicontrol(p1h3,'Style','popupmenu',...
            'String',{''},...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Callback', @hpopupcallbackvariante3,...
            'Value',1,'Position',[0.025 0.796 0.482 0.04]);
        
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3');
       o = dir('*.xls');
       p = struct2cell(o);
       var = p(1,:);
       varneu = strrep(var, '.xls', '');
       set(pm3h3, 'String', varneu);       
       cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Nag3');        
        
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Lamellenvariante',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.52 0.768 0.431 0.059]);
        
        
       % Popup-Menü zur Wahl der Schaltung
       pm4h3 = uicontrol(p1h3,'Style','popupmenu',...
            'String',{'1-2','2-3','3-4','4-5','5-6','6-7','7-8','8-9'},...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Callback', @hpopupcallbackschaltung3,...
            'Value',1,'Position',[0.025 0.264 0.482 0.04]);
        
         % statisches Textfeld
         uicontrol(p1h3,'Style','text',...
            'String','Schaltung',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Position',[0.52 0.236 0.431 0.059]);     
       
            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                      
% Pushbuttons für die Adaption und die Simulation

pb1h3 = uicontrol(pnag3h,'Style','pushbutton','String','Adaption',...
            'Units','normalized',...
            'Position',[0.71 0.27 0.082 0.0488],...
            'Visible','on',...
            'Callback',@hAdaptionCallback3);            
            
pb2h3 = uicontrol(pnag3h,'Style','pushbutton','String','Simulation',...
            'Units','normalized',...
            'Position',[0.86 0.27 0.082 0.0488],...
            'Visible','off',...
            'Callback',@hSimulationCallback3); 

            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Panels für die Diagrammdarstellung
p2h3 = uipanel('Parent',pnag3h,'Title','Diagramme',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.004 0.146 0.66 0.85]);
                        
    p21h3 = uipanel(p2h3,'Title','Drehzahlen',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.006 0.67 0.988 0.325]);
   
        a1h3 = axes('Parent',p21h3,'Position',[.05 .10 .94 .85]);
        set(a1h3, 'Visible', 'off');
                        
    p22h3 = uipanel(p2h3,'Title','Drehmomente',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.006 0.338 0.988 0.325]);
        
        a2h3 = axes('Parent',p22h3,'Position',[.05 .10 .94 .85]);
        set(a2h3, 'Visible', 'off');
        
    p23h3 = uipanel(p2h3,'Title','spez. Reibleistung und spez. Wärme',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.006 0.007 0.988 0.325]);
         
        a3h3 = axes('Parent',p23h3,'Position',[.05 .10 .94 .85]);
        set(a3h3, 'Visible', 'off');        
                                        
       
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% Panel für die Ergebnisse
  p3h3 = uipanel('Parent',pnag3h,'Title','Berechnungsergebnisse',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.004 0.004 0.66 0.132]);
        
        
       % Ergebnisausgabe
       % Ausgabefeld für die "spezifische Reibleistung [W/mm²]"
       etr1h3 = uicontrol(p3h3,'Style','edit',...
            'String',' ',...
            'Units','normalized',...
            'Visible','off',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.019 0.16 0.1 0.37]);
       
         % statisches Textfeld
         str1h3 = uicontrol(p3h3,'Style','text',...
            'String','spezifische Reibleistung [W/mm²]:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.019 0.596 0.225 0.186]);
         
       % Ausgabefeld für die "Reserve an spezifischer Reibleistung [%]"     
       etr11h3 = uicontrol(p3h3,'Style','edit',...
            'String',' ',...
            'Units','normalized',...
            'Visible','off',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.269 0.16 0.1 0.37]);
       
         % statisches Textfeld
         str11h3 = uicontrol(p3h3,'Style','text',...
            'String','Reserve [%]:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.269 0.596 0.1 0.186]);
        
         % statisches Textfeld; Ampelanzeige
         str12h3 = uicontrol(p3h3,'Style','text',...
            'String','',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.351 0.61 0.019 0.155]);
            
       % Ausgabefeld für die "spezifische Wärme [J/mm²]"     
       etr2h3 = uicontrol(p3h3,'Style','edit',...
            'String',' ',...
            'Units','normalized',...
            'Visible','off',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.576 0.16 0.1 0.37]);
       
         % statisches Textfeld
         str2h3 = uicontrol(p3h3,'Style','text',...
            'String','spezifische Wärme [J/mm²]:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.576 0.596 0.188 0.186]);
            
       % Ausgabefeld für die "Reserve an spezifischer Wärme [%]" 
       etr21h3 = uicontrol(p3h3,'Style','edit',...
            'String',' ',...
            'Units','normalized',...
            'Visible','off',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.826 0.16 0.1 0.37]);
       
         % statisches Textfeld
         str21h3 = uicontrol(p3h3,'Style','text',...
            'String','Reserve [%]:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.826 0.596 0.1 0.186]);
        
         % statisches Textfeld; Ampelanzeige
         str22h3 = uicontrol(p3h3,'Style','text',...
            'String','',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','off',...
            'Position',[0.908 0.61 0.019 0.155]);
 
        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% Panel für die Informationen
  p4h3 = uipanel('Parent',pnag3h,'Title','Informationen',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','on',...
            'Position',[0.67 0.004 0.326 0.132]);       
        
       % Ausgabefeld zur Darstellung des zuschaltenden Elementes      
       eti1h3 = uicontrol(p4h3,'Style','edit',...
            'String','K81',...
            'Units','normalized',...
            'Visible','on',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.16 0.203 0.37]);
       
         % statisches Textfeld
         uicontrol(p4h3,'Style','text',...
            'String','zuschaltendes Element:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','on',...
            'Position',[0.025 0.596 0.456 0.186]);
        
        
       % Ausgabefeld für Anzahl der Reibflächen am zuschaltenden Element      
       eti2h3 = uicontrol(p4h3,'Style','edit',...
            'String','',...
            'Units','normalized',...
            'Visible','on',...
            'Enable', 'inactive',...
            'Backgroundcolor', 'white',...
            'Position',[0.456 0.16 0.203 0.37]);
             
       value = get(pm4h3, 'Value');
            switch value
                case 1
                    ancestor(pm3h3, 'figure');
                    variante1 = get(pm3h3, 'String');
                    Value1 = get (pm3h3, 'Value');
                    File1 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante1{Value1}];
                    data1 = xlsread(File1, 1, 'B7');
                    set(eti2h3,'String', data1);
                case 2
                    ancestor(pm3h3, 'figure');
                    variante2 = get(pm3h3, 'String');
                    Value2 = get (pm3h3, 'Value');
                    File2 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante2{Value2}];
                    data2 = xlsread(File2, 1, 'B2');
                    set(eti2h3,'String', data2);
                case 3
                    ancestor(pm3h3, 'figure');
                    variante3 = get(pm3h3, 'String');
                    Value3 = get (pm3h3, 'Value');
                    File3 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante3{Value3}];
                    data3 = xlsread(File3, 1, 'B5');
                    set(eti2h3,'String', data3);
                case 4
                    ancestor(pm3h3, 'figure');
                    variante4 = get(pm3h3, 'String');
                    Value4 = get (pm3h3, 'Value');
                    File4 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante4{Value4}];
                    data4 = xlsread(File4, 1, 'B7');
                    set(eti2h3,'String', data4);
                case 5
                    ancestor(pm3h3, 'figure');
                    variante5 = get(pm3h3, 'String');
                    Value5 = get (pm3h3, 'Value');
                    File5 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante5{Value5}];
                    data5 = xlsread(File5, 1, 'B6');
                    set(eti2h3,'String', data5);
                case 6
                    ancestor(pm3h3, 'figure');
                    variante6 = get(pm3h3, 'String');
                    Value6 = get (pm3h3, 'Value');
                    File6 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante6{Value6}];
                    data6 = xlsread(File6, 1, 'B2');
                    set(eti2h3,'String', data6);
                case 7
                    ancestor(pm3h3, 'figure');
                    variante7 = get(pm3h3, 'String');
                    Value7 = get (pm3h3, 'Value');
                    File7 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante7{Value7}];
                    data7 = xlsread(File7, 1, 'B4');
                    set(eti2h3,'String', data7);   
                case 8
                    ancestor(pm3h3, 'figure');
                    variante8 = get(pm3h3, 'String');
                    Value8 = get (pm3h3, 'Value');
                    File8 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante8{Value8}];
                    data8 = xlsread(File8, 1, 'B2');
                    set(eti2h3,'String', data8);    
                otherwise
                    % error handling
            end
       
         % statisches Textfeld
         uicontrol(p4h3,'Style','text',...
            'String','Anzahl der Reibflächen:',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','on',...
            'Position',[0.456 0.596 0.456 0.186]);
            
        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% Panel für die Simulationsstartdrehzahländerung
 
  p5h3 = uipanel('Parent',pnag3h,'Title','Ändern der Simulationsstartdrehzahl',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','off',...
            'Position',[0.67 0.146 0.326 0.103]); 
                    
       % Eingabefeld für die "nstart-Parameter für Schaltung 1-2"
       ep1h3 = uicontrol(p5h3,'Style','edit',...
            'String','0.75',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.021 0.152 0.095 0.5]);
        
         % statisches Textfeld
         uicontrol(p5h3,'Style','text',...
            'String','1-2:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.021 0.71 0.095 0.224]);
        
       % Eingabefeld für die "nstart-Parameter für Schaltung 2-3"
       ep2h3 = uicontrol(p5h3,'Style','edit',...
            'String','0.90',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position', [0.143 0.152 0.095 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h3,'Style','text',...
            'String','2-3:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.143 0.71 0.095 0.224]);
        
      % Eingabefeld für die "nstart-Parameter für Schaltung 3-4"
       ep3h3 = uicontrol(p5h3,'Style','edit',...
            'String','0.96',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.265 0.152 0.095 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h3,'Style','text',...
            'String','3-4:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.265 0.71 0.095 0.224]);
        
      % Eingabefeld für die "nstart-Parameter für Schaltung 4-5"
       ep4h3 = uicontrol(p5h3,'Style','edit',...
            'String','0.975',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.387 0.152 0.095 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h3,'Style','text',...
            'String','4-5:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.387 0.71 0.095 0.224]);
        
       % Eingabefeld für die "nstart-Parameter für Schaltung 5-6"
       ep5h3 = uicontrol(p5h3,'Style','edit',...
            'String','0.985',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.509 0.152 0.095 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h3,'Style','text',...
            'String','5-6:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.509 0.71 0.095 0.224]); 
        
      % Eingabefeld für die "nstart-Parameter für Schaltung 6-7"
       ep6h3 = uicontrol(p5h3,'Style','edit',...
            'String','0.99',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.631 0.152 0.095 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h3,'Style','text',...
            'String','6-7:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.631 0.71 0.095 0.224]); 
        
      % Eingabefeld für die "nstart-Parameter für Schaltung 7-8"
       ep7h3 = uicontrol(p5h3,'Style','edit',...
            'String','0.996',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.753 0.152 0.095 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h3,'Style','text',...
            'String','7-8:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.753 0.71 0.095 0.224]);
        
      % Eingabefeld für die "nstart-Parameter für Schaltung 8-9"
       ep8h3 = uicontrol(p5h3,'Style','edit',...
            'String','0.996',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.875 0.152 0.095 0.5]); 
       
          % statisches Textfeld
          uicontrol(p5h3,'Style','text',...
            'String','8-9:',...
            'Units','normalized',...
            'HorizontalAlignment','center',...
            'Visible','on',...
            'Position',[0.875 0.71 0.095 0.224]);
        

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
% Panel für die Momentenbegrenzung
 
  p6h3 = uipanel('Parent',pnag3h,'Title','Momentenbegrenzung',...
            'TitlePosition','lefttop',...
            'Units','normalized',...
            'Visible','off',...
            'Position',[0.67 0.146 0.326 0.103]); 
                    
       % Eingabefeld für die "Momentenbegrenzung"
       em1h3 = uicontrol(p6h3,'Style','edit',...
            'String','2000',...
            'Units','normalized',...
            'Backgroundcolor', 'white',...
            'Position',[0.025 0.152 0.1 0.5]);
        
        % statisches Textfeld
          uicontrol(p6h3,'Style','text',...
            'String','[Nm]',...
            'Units','normalized',...
            'HorizontalAlignment','left',...
            'Visible','on',...
            'Position',[0.14 0.292 0.12 0.224]);
        
        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%            
% Main figure der GUI wird für den Benutzer sichtbar gemacht.
set(fh,'Visible','on')
cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\');


%%  FUNKTIONALITÄT durch Callbackfunktionen  
% Programmierung der Funktionen bei Betätigung der Steuerelemente.   


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Wahl der NAG-2 Auslegung
    function hNag2Callback (~, ~)
        
        set(pnag3h,'Visible','off')
        set(pnag2h,'Visible','on')
        cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\');
        
    end  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Wahl der NAG-3 Auslegung
    function hNag3Callback (~, ~)
        
        set(pnag2h,'Visible','off')
        set(pnag3h,'Visible','on')
        cd('C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Nag3');
        
    end 


%% NAG-2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%NAG-2 Schaltungsauswahl
 function hpopupcallbackschaltung(hObject, ~)
     
     value = get(hObject, 'Value');
     switch value
          case 1
               set(eti1h,'String','B1');
               ancestor(pm3h, 'figure');
               variante1 = get(pm3h, 'String');
               Value1 = get (pm3h, 'Value');
               File1 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante1{Value1}];
               data1 = xlsread(File1, 1, 'B2');
               set(eti2h,'String', data1);
          case 2
               set(eti1h,'String','K1');
               ancestor(pm3h, 'figure');
               variante2 = get(pm3h, 'String');
               Value2 = get (pm3h, 'Value');
               File2 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante2{Value2}];
               data2 = xlsread(File2, 1, 'B6');
               set(eti2h,'String', data2);
          case 3
               set(eti1h,'String','K2');
               ancestor(pm3h, 'figure');
               variante3 = get(pm3h, 'String');
               Value3 = get (pm3h, 'Value');
               File3 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante3{Value3}];
               data3 = xlsread(File3, 1, 'B7');
               set(eti2h,'String', data3);
          case 4
               set(eti1h,'String','K3');
               ancestor(pm3h, 'figure');
               variante4 = get(pm3h, 'String');
               Value4 = get (pm3h, 'Value');
               File4 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante4{Value4}];
               data4 = xlsread(File4, 1, 'B8');
               set(eti2h,'String', data4);
          case 5
               set(eti1h,'String','B1');
               ancestor(pm3h, 'figure');
               variante5 = get(pm3h, 'String');
               Value5 = get (pm3h, 'Value');
               File5 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante5{Value5}];
               data5 = xlsread(File5, 1, 'B2');
               set(eti2h,'String', data5);
          case 6
               set(eti1h,'String','B3');
               ancestor(pm3h, 'figure');
               variante6 = get(pm3h, 'String');
               Value6 = get (pm3h, 'Value');
               File6 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante6{Value6}];
               data6 = xlsread(File6, 1, 'B4');
               set(eti2h,'String', data6);
          otherwise
               % error handling
     end
 end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%NAG-2 Lamellenvariantenauswahl
 function hpopupcallbackvariante(~, ~)
     
     value = get(pm4h, 'Value');
     switch value
          case 1
               ancestor(pm3h, 'figure');
               variante1 = get(pm3h, 'String');
               Value1 = get (pm3h, 'Value');
               File1 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante1{Value1}];
               data1 = xlsread(File1, 1, 'B2');
               set(eti2h,'String', data1);
          case 2
               ancestor(pm3h, 'figure');
               variante2 = get(pm3h, 'String');
               Value2 = get (pm3h, 'Value');
               File2 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante2{Value2}];
               data2 = xlsread(File2, 1, 'B6');
               set(eti2h,'String', data2);
          case 3
               ancestor(pm3h, 'figure');
               variante3 = get(pm3h, 'String');
               Value3 = get (pm3h, 'Value');
               File3 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante3{Value3}];
               data3 = xlsread(File3, 1, 'B7');
               set(eti2h,'String', data3);
          case 4
               ancestor(pm3h, 'figure');
               variante4 = get(pm3h, 'String');
               Value4 = get (pm3h, 'Value');
               File4 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante4{Value4}];
               data4 = xlsread(File4, 1, 'B8');
               set(eti2h,'String', data4);
          case 5
               ancestor(pm3h, 'figure');
               variante5 = get(pm3h, 'String');
               Value5 = get (pm3h, 'Value');
               File5 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante5{Value5}];
               data5 = xlsread(File5, 1, 'B2');
               set(eti2h,'String', data5);
          case 6
               ancestor(pm3h, 'figure');
               variante6 = get(pm3h, 'String');
               Value6 = get (pm3h, 'Value');
               File6 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten\', variante6{Value6}];
               data6 = xlsread(File6, 1, 'B4');
               set(eti2h,'String', data6);
          otherwise
               % error handling
     end
 end
            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%NAG-2 Callback durch Drücken des Adaptionsbuttons
    function hAdaptionCallback(~, ~)      
       
        % Zuweisung der Parameter zu Variablen
        tstart = 10;                   % Startzeit der Schaltung
        nzu = get(eti2h,'String');     % Reibflächenanzahl des zuschaltenden Elementes
        tues = get(et1h,'String');     % Überschneidungszeit
        tramue = get(et2h,'String');   % Rampenzeit Überhöhung
        Mue = get(et3h,'String');      % Überhöhungsmoment
        tfalling = get(et4h,'String'); % Rampenzeit Motoreingriff
        Mampl = get(et5h,'String');    % Motoreingriffsmoment
        nmax = get(et6h,'String');     % Schaltdrehzahl
        idiff = get(et7h, 'String');   % Übersetzung Differential
        Jan = get(et8h, 'String');     % Massenträgheit Anfahrelement antriebsseitig
        Jab = get(et9h, 'String');     % Massenträgheit Anfahrelement abtriebsseitig
        ns12 = get(ep1h, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 1-2 
        ns23 = get(ep2h, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 2-3
        ns34 = get(ep3h, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 3-4
        ns45 = get(ep4h, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 4-5
        ns56 = get(ep5h, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 5-6
        ns67 = get(ep6h, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 6-7
        mombegr = get(em1h, 'String'); % Motormomentenbegrenzung
        
        
        % Laden der Anfangsbedingungen
        [startwerte,initnames] = initload;

        
        % Laden der Parameter
        [parameter,parnames] = parload; %dsin.txt wird geladen und ausgelesen
     
     
        % Übergabe der Parameter
        
        % Übergabe der schaltungsabhängigen Parameter
        parameter(1) = double(get(pm4h,'Value'));
        value1 = get(pm4h, 'Value');
            switch value1
                case 1
                    parameter(60) = 4.3771607722;
                    parameter(302) = str2double(ns12) * str2double(nmax);
                case 2
                    parameter(60) = 2.8585539737;
                    parameter(302) = str2double(ns23) * str2double(nmax);
                case 3
                    parameter(60) = 1.9205909511;
                    parameter(302) = str2double(ns34) * str2double(nmax);
                case 4
                    parameter(60) = 1.3684210526;
                    parameter(302) = str2double(ns45) * str2double(nmax);
                case 5
                    parameter(60) = 1.000;
                    parameter(302) = str2double(ns56) * str2double(nmax);
                case 6
                   parameter(60) = 0.8203897023;
                   parameter(302) = str2double(ns67) * str2double(nmax);
                otherwise
                    % error handling
            end
        
        % Übergabe der motorvolllastkennlinienabhängigen Parameter
        ancestor(pm1h, 'figure');
        motoren = get(pm1h, 'String');
        Value = get (pm1h, 'Value');
        File = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Motorvolllastkennlinien\', motoren{Value}];
        data = xlsread(File, 1, 'A1:B20');       
        parameter(19:58) = reshape(data', 1, []);
        data1 = xlsread(File, 1, 'E2');       
        Jmot = reshape(data1, 1, []);
        
        % Begrenzung des Motormomentes
        begr = str2double(mombegr);
        for i = 20: 2: 58
            if parameter(i) > begr
                parameter(i) = begr;
            else
            end
        end
        
        % Übergabe der fahrzeugmodellabhängigen Parameter
        ancestor(pm2h, 'figure');
        modell = get(pm2h, 'String');
        Value2 = get (pm2h, 'Value');
        File2 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Fahrzeugmodelle\', modell{Value2}];
        data2 = xlsread(File2, 1, 'B4:B7');         %Masse,cW,Stirnfläche,Luftdichte 
        parameter(261:264) = reshape(data2, 1, []); 
        data3 = xlsread(File2, 1, 'B11:C28');       %Rollwiderstandsbeiwert
        parameter(265:300) = reshape(data3', 1, []);
        data4 = xlsread(File2, 1, 'B2');            %Radhalbmesser
        parameter(65) = reshape(data4, 1, []);
        data4 = xlsread(File2, 1, 'B3');            %Massenträgheit der vier Räder
        parameter(66) = reshape(data4, 1, []);
        data6 = xlsread(File2, 1, 'B8');            %Steigung
        parameter(67) = reshape(data6, 1, []);
        
        %Übergabe der übrigen Parameter
        parameter(13) = tstart;                     %Startzeit der Schaltung
        parameter(127) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(131) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(135) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(139) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(143) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(147) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(151) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(14) = str2double(tues);           %Überschneidungszeit
        parameter(15) = str2double(tramue);         %Rampenzeit der Überhöhungsphase
        parameter(97) = str2double(Mue);            %Überhöhungsmoment
        parameter(114) = str2double(tfalling);      %Rampenzeit des Motoreingriffes
        parameter(113) = str2double(Mampl);         %Motoreingriffsmoment
        parameter(61) = str2double(nmax);           %Maximaldrehzahl
        parameter(63) = str2double(idiff);          %Übersetzung des Differentials
        Masstr = str2double(Jan) + str2double(Jab) + Jmot;           %Berechnung der Massenträgheit
        parameter(303) = Masstr;                    %Massenträgheit
        
        parameter(99) = 0.10;                       %Summenträgheit reduziert auf Eingangswelle
        parameter(101) = 0.07;                      %Summenträgheit reduziert auf Eingangswelle
        parameter(103) = 0.1145;                    %Summenträgheit reduziert auf Eingangswelle
        parameter(105) = 0.142;                     %Summenträgheit reduziert auf Eingangswelle
        parameter(107) = 0.255;                     %Summenträgheit reduziert auf Eingangswelle
        parameter(109) = 0.755;                     %Summenträgheit reduziert auf Eingangswelle
        
        
        % Simulieren von 0-1s, Ausgabe 1ms, Genauigkeit 1e-4
        [simresult,ergnamen] = dymosim([0,1,1e-3,0,1.e-4,8],startwerte,parameter,0);
        
        
        % Ergebnis laden und Signale zuweisen (bessere Lesbarkeit)
        ergebnis = dymload('dsres');
        tstartneu = min(dymget(ergebnis,'lossTimer_n.lossDuration'));
        
        assignin('base','parameter',parameter);
        assignin('base','startwerte',startwerte);
        assignin('base','tstartneu',tstartneu);
        assignin('base','nzu',nzu);
        
        
        % Schutz vor Parameteränderung zwischen Adaptions- und Simulationsvorgang
        set(et1h, 'enable', 'inactive');
        set(et2h, 'enable', 'inactive');
        set(et3h, 'enable', 'inactive');
        set(et4h, 'enable', 'inactive');
        set(et5h, 'enable', 'inactive');
        set(et6h, 'enable', 'inactive');
        set(et7h, 'enable', 'inactive');
        set(et8h, 'enable', 'inactive');
        set(et9h, 'enable', 'inactive');
        set(pm1h, 'enable', 'inactive');
        set(pm2h, 'enable', 'inactive');
        set(pm3h, 'enable', 'inactive');
        set(pm4h, 'enable', 'inactive');
        set(ep1h, 'enable', 'inactive');
        set(ep2h, 'enable', 'inactive');
        set(ep3h, 'enable', 'inactive');
        set(ep4h, 'enable', 'inactive');
        set(ep5h, 'enable', 'inactive');
        set(ep6h, 'enable', 'inactive');
        set(em1h, 'enable', 'inactive');
        
        
        % Simulationsbutton sichtbar machen
        set(pb2h, 'Visible', 'on');      
        
        
        % Adaptionsbutton unsichtbar machen
        set(pb1h, 'Visible', 'off');   
         
    end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%NAG-2 Callback durch Drücken des Simulationsbuttons
    function hSimulationCallback(~, ~)
        
        % Simulationsbutton unsichtbar machen
        set(pb2h, 'Visible', 'off'); 
             
        
        % Sichtbarmachen und Ausgeben der Berechnungsergebnisse
        set(etr1h,'Visible','on');
        set(str1h,'Visible','on');
        set(etr11h,'Visible','on');
        set(str11h,'Visible','on');
        set(str12h,'Visible','on');
        set(etr2h,'Visible','on');
        set(str2h,'Visible','on');
        set(etr21h,'Visible','on');
        set(str21h,'Visible','on');
        set(str22h,'Visible','on');
               
        
        % Ablesen aus dem base-Ws
        parameter = evalin('base','parameter');
        startwerte = evalin('base','startwerte');
        tstartneu = evalin('base','tstartneu');
        nzu = evalin('base','nzu');

        
        % Übergabe der Parameter
        parameter(13) = tstartneu;

           
        % Simulieren von 0-1s, Ausgabe 1ms, Genauigkeit 1e-4
        [simresult,ergnamen] = dymosim([0,1,1e-3,0,1.e-4,8],startwerte,parameter,0);
        
        
        % Ergebnis laden und Signale zuweisen (bessere Lesbarkeit)
        ergebnis = dymload('dsres');
        
                
        value = get(pm4h, 'Value');
            switch value
                case 1
                    spezW1 = max(dymget(ergebnis,'mechanicsSimple6_1.b1.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimple6_1.b1.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimple6_1.b1.diskArea'));
                case 2
                    spezW1 = max(dymget(ergebnis,'mechanicsSimple6_1.k1.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimple6_1.k1.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimple6_1.k1.diskArea'));
                case 3
                    spezW1 = max(dymget(ergebnis,'mechanicsSimple6_1.k2.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimple6_1.k2.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimple6_1.k2.diskArea'));
                case 4
                    spezW1 = max(dymget(ergebnis,'mechanicsSimple6_1.k3.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimple6_1.k3.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimple6_1.k3.diskArea'));
                case 5
                    spezW1 = max(dymget(ergebnis,'mechanicsSimple6_1.b1.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimple6_1.b1.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimple6_1.b1.diskArea'));
                case 6
                    spezW1 = max(dymget(ergebnis,'mechanicsSimple6_1.b3.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimple6_1.b3.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimple6_1.b3.diskArea'));
                otherwise
                    % error handling
            end
        
            spezR1 = R/(str2double(nzu)*100*dA);
            spezR2 = round(spezR1 * 100)/100;
            spezR = max(spezR2);
            spezW = round(spezW1 * 1000)/1000;
                    
        set(etr1h,'String',num2str(spezR));
        set(etr2h,'String',num2str(spezW));
                
            switch value
                case 1
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                case 2
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K39');
                    Wres1 = xlsread('Reserven.xls', 1, 'K45');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L39');
                    Pres1 = xlsread('Reserven.xls', 1, 'L45');
                    Pres = round(Pres1 * 100)/100;
                case 3
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                case 4
                    if nzu <= 10
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                    else 
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K39');
                    Wres1 = xlsread('Reserven.xls', 1, 'K45');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L39');
                    Pres1 = xlsread('Reserven.xls', 1, 'L45');
                    Pres = round(Pres1 * 100)/100;
                    end                                       
                case 5
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                case 6
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                otherwise
                    % error handling
            end
               
        set(etr11h,'String', num2str(Pres));
        set(etr21h,'String', num2str(Wres));
        
        if Pres >= 0
            set(str12h, 'Backgroundcolor', 'green');
        else
            set(str12h, 'Backgroundcolor', 'red');
        end
        
        if Wres >= 0
            set(str22h, 'Backgroundcolor', 'green');
        else
            set(str22h, 'Backgroundcolor', 'red');
        end
        
       % Axes
       % Erstellung der Diagrammme

       set(a1h, 'Visible', 'on');
       t=dymget(ergebnis,'Time');
       motordre = dymget(ergebnis,'shaftIN.w') * 9.55;
       hold(a1h, 'off');
       p1h = plot(a1h, t, motordre);
            switch value
                case 1
                    drezu = abs(dymget(ergebnis,'mechanicsSimple6_1.b1.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimple6_1.b3.der(phi_rel)') * 9.55);
                case 2
                    drezu = abs(dymget(ergebnis,'mechanicsSimple6_1.k1.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimple6_1.b1.der(phi_rel)') * 9.55);
                case 3
                    drezu = abs(dymget(ergebnis,'mechanicsSimple6_1.k2.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimple6_1.k3.der(phi_rel)') * 9.55);
                case 4
                    drezu = abs(dymget(ergebnis,'mechanicsSimple6_1.k3.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimple6_1.b2.der(phi_rel)') * 9.55);
                case 5
                    drezu = abs(dymget(ergebnis,'mechanicsSimple6_1.b1.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimple6_1.k1.der(phi_rel)') * 9.55);
                case 6
                    drezu = abs(dymget(ergebnis,'mechanicsSimple6_1.b3.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimple6_1.b1.der(phi_rel)') * 9.55);
                otherwise
                    % error handling
            end
       hold(a1h, 'on');     
       p1h = plot(a1h, t, drezu, 'r');
       p1h = plot(a1h, t, dreab, 'g');
       ylimit = get(a1h, 'ylim');
       set(a1h, 'ylim', [max(-9999, ylimit(1)), min(9999, ylimit(2))]);
              
       set(a2h, 'Visible', 'on');
       motormom = dymget(ergebnis,'shaftIN.flange_a.tau');
       hold(a2h, 'off');
       p2h = plot(a2h, t, motormom);
            switch value
                case 1
                    momzu = abs(dymget(ergebnis,'mechanicsSimple6_1.b1.tau')) * (1/parameter(69));
                    momab = abs(dymget(ergebnis,'mechanicsSimple6_1.b3.tau')) * (1/parameter(82));
                case 2
                    momzu = abs(dymget(ergebnis,'mechanicsSimple6_1.k1.tau')) * (1/parameter(71));
                    momab = abs(dymget(ergebnis,'mechanicsSimple6_1.b1.tau')) * (1/parameter(84));
                case 3
                    momzu = abs(dymget(ergebnis,'mechanicsSimple6_1.k2.tau')) * (1/parameter(73));
                    momab = abs(dymget(ergebnis,'mechanicsSimple6_1.k3.tau')) * (1/parameter(86));
                case 4
                    momzu = abs(dymget(ergebnis,'mechanicsSimple6_1.k3.tau')) * (1/parameter(75));
                    momab = abs(dymget(ergebnis,'mechanicsSimple6_1.b2.tau')) * (1/parameter(88));
                case 5
                    momzu = abs(dymget(ergebnis,'mechanicsSimple6_1.b1.tau')) * (1/parameter(77));
                    momab = abs(dymget(ergebnis,'mechanicsSimple6_1.k1.tau')) * (1/parameter(90));
                case 6
                    momzu = abs(dymget(ergebnis,'mechanicsSimple6_1.b3.tau')) * (1/parameter(79));
                    momab = abs(dymget(ergebnis,'mechanicsSimple6_1.b1.tau')) * (1/parameter(92));
                otherwise
                    % error handling
            end
       hold(a2h, 'on');     
       p2h = plot(a2h, t, momzu, 'r');
       p2h = plot(a2h, t, momab, 'g');
       ymax = max(momzu)+ 100;
       ymin = -100;
       ylim(a2h, [ymin ymax]);
   
       set(a3h, 'Visible', 'on');
            switch value
                case 1
                    W = dymget(ergebnis,'mechanicsSimple6_1.b1.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimple6_1.b1.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimple6_1.b1.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 2
                    W = dymget(ergebnis,'mechanicsSimple6_1.k1.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimple6_1.k1.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimple6_1.k1.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 3
                    W = dymget(ergebnis,'mechanicsSimple6_1.k2.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimple6_1.k2.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimple6_1.k2.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 4
                    W = dymget(ergebnis,'mechanicsSimple6_1.k3.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimple6_1.k3.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimple6_1.k3.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 5
                    W = dymget(ergebnis,'mechanicsSimple6_1.b1.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimple6_1.b1.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimple6_1.b1.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 6
                    W = dymget(ergebnis,'mechanicsSimple6_1.b3.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimple6_1.b3.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimple6_1.b3.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                otherwise
                    % error handling
            end
       hold(a3h, 'off');     
       p3h = plot(a3h, t, W, 'r');
       hold(a3h, 'on');
       p3h = plot(a3h, t, P);
       
       
       % Schutz vor Parameteränderung aufheben um neue Berechnung zu ermöglichen
       set(et1h, 'enable', 'on');
       set(et2h, 'enable', 'on');
       set(et3h, 'enable', 'on');
       set(et4h, 'enable', 'on');
       set(et5h, 'enable', 'on');
       set(et6h, 'enable', 'on');
       set(et7h, 'enable', 'on');
       set(et8h, 'enable', 'on');
       set(et9h, 'enable', 'on');
       set(pm1h, 'enable', 'on');
       set(pm2h, 'enable', 'on');
       set(pm3h, 'enable', 'on');
       set(pm4h, 'enable', 'on');
       set(ep1h, 'enable', 'on');
       set(ep2h, 'enable', 'on');
       set(ep3h, 'enable', 'on');
       set(ep4h, 'enable', 'on');
       set(ep5h, 'enable', 'on');
       set(ep6h, 'enable', 'on');
       set(em1h, 'enable', 'on');
              
       
       % Adaptionsbutton sichtbar machen
       set(pb1h, 'Visible', 'on'); 
     
    end


%% NAG-3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%NAG-3 Schaltungsauswahl
 function hpopupcallbackschaltung3(hObject, ~)
    
     value = get(hObject, 'Value');
     switch value
          case 1
               set(eti1h3,'String','K81');
               ancestor(pm3h3, 'figure');
               variante1 = get(pm3h3, 'String');
               Value1 = get (pm3h3, 'Value');
               File1 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante1{Value1}];
               data1 = xlsread(File1, 1, 'B7');
               set(eti2h3,'String', data1);
          case 2
               set(eti1h3,'String','B05');
               ancestor(pm3h3, 'figure');
               variante2 = get(pm3h3, 'String');
               Value2 = get (pm3h3, 'Value');
               File2 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante2{Value2}];
               data2 = xlsread(File2, 1, 'B2');
               set(eti2h3,'String', data2);
          case 3
               set(eti1h3,'String','K27');
               ancestor(pm3h3, 'figure');
               variante3 = get(pm3h3, 'String');
               Value3 = get (pm3h3, 'Value');
               File3 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante3{Value3}];
               data3 = xlsread(File3, 1, 'B5');
               set(eti2h3,'String', data3);
          case 4
               set(eti1h3,'String','K81');
               ancestor(pm3h3, 'figure');
               variante4 = get(pm3h3, 'String');
               Value4 = get (pm3h3, 'Value');
               File4 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante4{Value4}];
               data4 = xlsread(File4, 1, 'B7');
               set(eti2h3,'String', data4);
          case 5
               set(eti1h3,'String','K38');
               ancestor(pm3h3, 'figure');
               variante5 = get(pm3h3, 'String');
               Value5 = get (pm3h3, 'Value');
               File5 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante5{Value5}];
               data5 = xlsread(File5, 1, 'B6');
               set(eti2h3,'String', data5);
          case 6
               set(eti1h3,'String','B05');
               ancestor(pm3h3, 'figure');
               variante6 = get(pm3h3, 'String');
               Value6 = get (pm3h3, 'Value');
               File6 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante6{Value6}];
               data6 = xlsread(File6, 1, 'B2');
               set(eti2h3,'String', data6);
          case 7
               set(eti1h3,'String','B08');
               ancestor(pm3h3, 'figure');
               variante7 = get(pm3h3, 'String');
               Value7 = get (pm3h3, 'Value');
               File7 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante7{Value7}];
               data7 = xlsread(File7, 1, 'B4');
               set(eti2h3,'String', data7);   
          case 8
               set(eti1h3,'String','B05');
               ancestor(pm3h3, 'figure');
               variante8 = get(pm3h3, 'String');
               Value8 = get (pm3h3, 'Value');
               File8 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante8{Value8}];
               data8 = xlsread(File8, 1, 'B2');
               set(eti2h3,'String', data8);     
          otherwise
               % error handling
     end
 end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%NAG-3 Lamellenvariantenauswahl
 function hpopupcallbackvariante3(~, ~)
     
     value = get(pm4h3, 'Value');
     switch value
          case 1
               ancestor(pm3h3, 'figure');
               variante1 = get(pm3h3, 'String');
               Value1 = get (pm3h3, 'Value');
               File1 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante1{Value1}];
               data1 = xlsread(File1, 1, 'B7');
               set(eti2h3,'String', data1);
          case 2
               ancestor(pm3h3, 'figure');
               variante2 = get(pm3h3, 'String');
               Value2 = get (pm3h3, 'Value');
               File2 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante2{Value2}];
               data2 = xlsread(File2, 1, 'B2');
               set(eti2h3,'String', data2);
          case 3
               ancestor(pm3h3, 'figure');
               variante3 = get(pm3h3, 'String');
               Value3 = get (pm3h3, 'Value');
               File3 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante3{Value3}];
               data3 = xlsread(File3, 1, 'B5');
               set(eti2h3,'String', data3);
          case 4
               ancestor(pm3h3, 'figure');
               variante4 = get(pm3h3, 'String');
               Value4 = get (pm3h3, 'Value');
               File4 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante4{Value4}];
               data4 = xlsread(File4, 1, 'B7');
               set(eti2h3,'String', data4);
          case 5
               ancestor(pm3h3, 'figure');
               variante5 = get(pm3h3, 'String');
               Value5 = get (pm3h3, 'Value');
               File5 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante5{Value5}];
               data5 = xlsread(File5, 1, 'B6');
               set(eti2h3,'String', data5);
          case 6
               ancestor(pm3h3, 'figure');
               variante6 = get(pm3h3, 'String');
               Value6 = get (pm3h3, 'Value');
               File6 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante6{Value6}];
               data6 = xlsread(File6, 1, 'B2');
               set(eti2h3,'String', data6);
          case 7
               ancestor(pm3h3, 'figure');
               variante7 = get(pm3h3, 'String');
               Value7 = get (pm3h3, 'Value');
               File7 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante7{Value7}];
               data7 = xlsread(File7, 1, 'B4');
               set(eti2h3,'String', data7);   
          case 8
               ancestor(pm3h3, 'figure');
               variante8 = get(pm3h3, 'String');
               Value8 = get (pm3h3, 'Value');
               File8 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Lamellenvarianten_Nag3\', variante8{Value8}];
               data8 = xlsread(File8, 1, 'B2');
               set(eti2h3,'String', data8);
          otherwise
               % error handling
     end
 end
            
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%NAG-3 Callback durch Drücken des Adaptionsbuttons
    function hAdaptionCallback3(~, ~)      
       
        % Zuweisung der Parameter zu Variablen
        tstart = 10;                    % Startzeit der Schaltung
        nzu = get(eti2h3,'String');     % Reibflächenanzahl des zuschaltenden Elementes
        tues = get(et1h3,'String');     % Überschneidungszeit
        tramue = get(et2h3,'String');   % Rampenzeit Überhöhung
        Mue = get(et3h3,'String');      % Überhöhungsmoment
        tfalling = get(et4h3,'String'); % Rampenzeit Motoreingriff
        Mampl = get(et5h3,'String');    % Motoreingriffsmoment
        nmax = get(et6h3,'String');     % Schaltdrehzahl
        idiff = get(et7h3, 'String');   % Übersetzung Differential
        Jan = get(et8h3, 'String');     % Massenträgheit Anfahrelement antriebsseitig
        Jab = get(et9h3, 'String');     % Massenträgheit Anfahrelement abtriebsseitig
        ns12 = get(ep1h3, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 1-2 
        ns23 = get(ep2h3, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 2-3
        ns34 = get(ep3h3, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 3-4
        ns45 = get(ep4h3, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 4-5
        ns56 = get(ep5h3, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 5-6
        ns67 = get(ep6h3, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 6-7
        ns78 = get(ep7h3, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 7-8
        ns89 = get(ep8h3, 'String');    % Faktor zur Berechnung der Simulationsstartdrehzahl bei Schaltung 8-9
        mombegr = get(em1h3, 'String'); % Motormomentenbegrenzung
        
        
        % Laden der Anfangsbedingungen
        [startwerte,initnames] = initload;

        
        % Laden der Parameter
        [parameter,parnames] = parload; % dsin.txt wird geladen und ausgelesen
     
     
        % Übergabe der Parameter
        
        % Übergabe der schaltungsabhängigen Parameter
        parameter(1) = double(get(pm4h3,'Value'));
        value1 = get(pm4h3, 'Value');
            switch value1
                case 1
                    parameter(62) = 5.503;
                    parameter(297) = str2double(ns12) * str2double(nmax);
                case 2
                    parameter(62) = 3.333;
                    parameter(297) = str2double(ns23) * str2double(nmax);
                case 3
                    parameter(62) = 2.315;
                    parameter(297) = str2double(ns34) * str2double(nmax);
                case 4
                    parameter(62) = 1.661;
                    parameter(297) = str2double(ns45) * str2double(nmax);
                case 5
                    parameter(62) = 1.211;
                    parameter(297) = str2double(ns56) * str2double(nmax);
                case 6
                    parameter(62) = 1.000;
                    parameter(297) = str2double(ns67) * str2double(nmax);
                case 7
                    parameter(62) = 0.865;
                    parameter(297) = str2double(ns78) * str2double(nmax);
                case 8
                    parameter(62) = 0.717;
                    parameter(297) = str2double(ns89) * str2double(nmax);
                otherwise
                    % error handling
            end
        
        % Übergabe der motorvolllastkennlinienabhängigen Parameter
        ancestor(pm1h3, 'figure');
        motoren = get(pm1h3, 'String');
        Value = get (pm1h3, 'Value');
        File = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Motorvolllastkennlinien\', motoren{Value}];
        data = xlsread(File, 1, 'A1:B20');       
        parameter(21:60) = reshape(data', 1, []);
        data1 = xlsread(File, 1, 'E2');       
        Jmot = reshape(data1, 1, []);
        
        % Begrenzung des Motormomentes
        begr = str2double(mombegr);
        for i = 22: 2: 60
            if parameter(i) > begr
                parameter(i) = begr;
            else
            end
        end
        
        % Übergabe der fahrzeugmodellabhängigen Parameter
        ancestor(pm2h3, 'figure');
        modell = get(pm2h3, 'String');
        Value2 = get (pm2h3, 'Value');
        File2 = ['C:\Dokumente und Einstellungen\THHANDL\Eigene Dateien\MATLAB\Getriebe\Fahrzeugmodelle\', modell{Value2}];
        data2 = xlsread(File2, 1, 'B4:B7');         %Masse,cW,Stirnfläche,Luftdichte 
        parameter(69:72) = reshape(data2, 1, []); 
        data3 = xlsread(File2, 1, 'B11:C28');       %Rollwiderstandsbeiwert
        parameter(73:108) = reshape(data3', 1, []);
        data4 = xlsread(File2, 1, 'B2');            %Radhalbmesser
        parameter(67) = reshape(data4, 1, []);
        data5 = xlsread(File2, 1, 'B3');            %Massenträgheit der vier Räder
        parameter(68) = reshape(data5, 1, []);
        data6 = xlsread(File2, 1, 'B8');            %Steigung
        parameter(110) = reshape(data6, 1, []);
        
        %Übergabe der übrigen Parameter
        parameter(15) = tstart;                     %Startzeit der Schaltung
        parameter(183) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(187) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(192) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(196) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(200) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(204) = str2double(nzu);           %Anzahl der Reibflächen
        parameter(16) = str2double(tues);           %Überschneidungszeit
        parameter(17) = str2double(tramue);         %Rampenzeit der Überhöhungsphase
        parameter(148) = str2double(Mue);           %Überhöhungsmoment
        parameter(169) = str2double(tfalling);      %Rampenzeit des Motoreingriffes
        parameter(168) = str2double(Mampl);         %Motoreingriffsmoment
        parameter(63) = str2double(nmax);           %Maximaldrehzahl
        parameter(65) = str2double(idiff);          %Übersetzung Differential
        Masstr = str2double(Jan) + str2double(Jab) + Jmot;      %Berechnung der Massenträgheit
        parameter(298) = Masstr;                    %Massenträgheit
        
        parameter(150) = 0.01839;                    %Summenträgheit reduziert auf Eingangswelle
        parameter(152) = 0.07395;                    %Summenträgheit reduziert auf Eingangswelle
        parameter(154) = 0.0111;                     %Summenträgheit reduziert auf Eingangswelle
        parameter(156) = 0.2702;                     %Summenträgheit reduziert auf Eingangswelle
        parameter(158) = 0.2124;                     %Summenträgheit reduziert auf Eingangswelle
        parameter(160) = 0.4022;                     %Summenträgheit reduziert auf Eingangswelle
        parameter(162) = 0.4022;                     %Summenträgheit reduziert auf Eingangswelle
        parameter(164) = 0.4569;                     %Summenträgheit reduziert auf Eingangswelle
       
        
        % Simulieren von 0-1s, Ausgabe 1ms, Genauigkeit 1e-4
        [simresult,ergnamen] = dymosim([0,1,1e-3,0,1.e-4,8],startwerte,parameter,0);
        
        
        % Ergebnis laden und Signale zuweisen (bessere Lesbarkeit)
        ergebnis = dymload('dsres');
        tstartneu = min(dymget(ergebnis,'lossTimer_n.lossDuration'));
        
        assignin('base','parameter',parameter);
        assignin('base','startwerte',startwerte);
        assignin('base','tstartneu',tstartneu);
        assignin('base','nzu',nzu);
        
        
        % Schutz vor Parameteränderung zwischen Adaptions- und Simulationsvorgang
        set(et1h3, 'enable', 'inactive');
        set(et2h3, 'enable', 'inactive');
        set(et3h3, 'enable', 'inactive');
        set(et4h3, 'enable', 'inactive');
        set(et5h3, 'enable', 'inactive');
        set(et6h3, 'enable', 'inactive');
        set(et7h3, 'enable', 'inactive');
        set(et8h3, 'enable', 'inactive');
        set(et9h3, 'enable', 'inactive');
        set(pm1h3, 'enable', 'inactive');
        set(pm2h3, 'enable', 'inactive');
        set(pm3h3, 'enable', 'inactive');
        set(pm4h3, 'enable', 'inactive');
        set(ep1h3, 'enable', 'inactive');
        set(ep2h3, 'enable', 'inactive');
        set(ep3h3, 'enable', 'inactive');
        set(ep4h3, 'enable', 'inactive');
        set(ep5h3, 'enable', 'inactive');
        set(ep6h3, 'enable', 'inactive');
        set(ep7h3, 'enable', 'inactive');
        set(ep8h3, 'enable', 'inactive');
        set(em1h3, 'enable', 'inactive');
        
        
        % Simulationsbutton sichtbar machen
        set(pb2h3, 'Visible', 'on');      
        
        
        % Adaptionsbutton unsichtbar machen
        set(pb1h3, 'Visible', 'off');   
         
    end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%NAG-3 Callback durch Drücken des Simulationsbuttons
    function hSimulationCallback3(~, ~)
        
        % Simulationsbutton unsichtbar machen
        set(pb2h3, 'Visible', 'off');
       
        
        % Sichtbarmachen und Ausgeben der Berechnungsergebnisse
        set(etr1h3,'Visible','on');
        set(str1h3,'Visible','on');
        set(etr11h3,'Visible','on');
        set(str11h3,'Visible','on');
        set(str12h3,'Visible','on');
        set(etr2h3,'Visible','on');
        set(str2h3,'Visible','on');
        set(etr21h3,'Visible','on');
        set(str21h3,'Visible','on');
        set(str22h3,'Visible','on');
               
        
        % Ablesen aus dem base-Ws
        parameter = evalin('base','parameter');
        startwerte = evalin('base','startwerte');
        tstartneu = evalin('base','tstartneu');
        nzu = evalin('base','nzu');

        
        % Übergabe der Parameter
        parameter(15) = tstartneu;

           
        % Simulieren von 0-1s, Ausgabe 1ms, Genauigkeit 1e-4
        [simresult,ergnamen] = dymosim([0,1,1e-3,0,1.e-4,8],startwerte,parameter,0);
        
        
        % Ergebnis laden und Signale zuweisen (bessere Lesbarkeit)
        ergebnis = dymload('dsres');
        
                
        value = get(pm4h3, 'Value');
            switch value
                case 1
                    spezW1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.k18.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimpleV1_1.k18.Reibleistung'));
                    dA = dymget(ergebnis,'mechanicsSimpleV1_1.k18.diskArea');
                case 2
                    spezW1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.diskArea'));
                case 3
                    spezW1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.k27.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimpleV1_1.k27.Reibleistung'));
                    dA = dymget(ergebnis,'mechanicsSimpleV1_1.k27.diskArea');
                case 4
                    spezW1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.k18.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimpleV1_1.k18.Reibleistung'));
                    dA = dymget(ergebnis,'mechanicsSimpleV1_1.k18.diskArea');
                case 5
                    spezW1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.k38.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimpleV1_1.k38.Reibleistung'));
                    dA = dymget(ergebnis,'mechanicsSimpleV1_1.k38.diskArea');
                case 6
                    spezW1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.diskArea'));
                case 7
                    spezW1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.b08.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimpleV1_1.b08.Reibleistung'));
                    dA = dymget(ergebnis,'mechanicsSimpleV1_1.b08.diskArea');
                case 8
                    spezW1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.spezifische_Waerme'));
                    R = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.Reibleistung'));
                    dA = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.diskArea'));
                otherwise
                    % error handling
            end
        
            spezR1 = R/(str2double(nzu)*100*dA);
            spezR2 = round(spezR1 * 100)/100;
            spezR = max(spezR2);
            spezW = round(spezW1 * 1000)/1000;
                    
        set(etr1h3,'String',num2str(spezR));
        set(etr2h3,'String',num2str(spezW));
                
            switch value
                case 1
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                case 2
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K45');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L45');
                    Pres = round(Pres1 * 100)/100;
                case 3
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                case 4
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;                                 
                case 5
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                case 6
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                case 7
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                case 8
                    xlswrite('Reserven.xls', spezW, 'Reserve', 'K51');
                    Wres1 = xlsread('Reserven.xls', 1, 'K57');
                    Wres = round(Wres1 * 100)/100;
                    xlswrite('Reserven.xls', spezR, 'Reserve', 'L51');
                    Pres1 = xlsread('Reserven.xls', 1, 'L57');
                    Pres = round(Pres1 * 100)/100;
                otherwise
                    % error handling
            end
               
        set(etr11h3,'String', num2str(Pres));
        set(etr21h3,'String', num2str(Wres));
        
        if Pres >= 0
            set(str12h3, 'Backgroundcolor', 'green');
        else
            set(str12h3, 'Backgroundcolor', 'red');
        end
        
        if Wres >= 0
            set(str22h3, 'Backgroundcolor', 'green');
        else
            set(str22h3, 'Backgroundcolor', 'red');
        end
        
       % Axes
       % Erstellung der Diagrammme

       set(a1h3, 'Visible', 'on');
       t=dymget(ergebnis,'Time');
       motordre = dymget(ergebnis,'shaftIN.w') * 9.55;
       hold(a1h3, 'off');
       p1h = plot(a1h3, t, motordre);
            switch value
                case 1
                    drezu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k18.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.der(phi_rel)') * 9.55);
                case 2
                    drezu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k38.der(phi_rel)') * 9.55);
                case 3
                    drezu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k27.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k18.der(phi_rel)') * 9.55);
                case 4
                    drezu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k18.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b06.der(phi_rel)') * 9.55);
                case 5
                    drezu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k38.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.der(phi_rel)') * 9.55);
                case 6
                    drezu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k18.der(phi_rel)') * 9.55);
                case 7
                    drezu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b08.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.der(phi_rel)') * 9.55);
                case 8
                    drezu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.der(phi_rel)') * 9.55);
                    dreab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k38.der(phi_rel)') * 9.55);
                otherwise
                    % error handling
            end
       hold(a1h3, 'on');     
       p1h = plot(a1h3, t, drezu, 'r');
       p1h = plot(a1h3, t, dreab, 'g');
       ylimit = get(a1h3, 'ylim');
       set(a1h3, 'ylim', [max(-9999, ylimit(1)), min(9999, ylimit(2))]);
              
       set(a2h3, 'Visible', 'on');
       motormom = dymget(ergebnis,'shaftIN.flange_a.tau');
       hold(a2h3, 'off');
       p2h = plot(a2h3, t, motormom);
            switch value
                case 1
                    momzu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k18.tau')) * (1/parameter(112));
                    momab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.tau')) * (1/parameter(129));
                case 2
                    momzu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.tau')) * (1/parameter(114));
                    momab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k38.tau')) * (1/parameter(131));
                case 3
                    momzu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k27.tau')) * (1/parameter(116));
                    momab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k18.tau')) * (1/parameter(133));
                case 4
                    momzu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k18.tau')) * (1/parameter(118));
                    momab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b06.tau')) * (1/parameter(135));
                case 5
                    momzu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k38.tau')) * (1/parameter(120));
                    momab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.tau')) * (1/parameter(137));
                case 6
                    momzu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.tau')) * (1/parameter(122));
                    momab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k18.tau')) * (1/parameter(139));
                case 7
                    momzu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b08.tau')) * (1/parameter(124));
                    momab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.tau')) * (1/parameter(141));
                case 8
                    momzu = abs(dymget(ergebnis,'mechanicsSimpleV1_1.b05.tau')) * (1/parameter(126));
                    momab = abs(dymget(ergebnis,'mechanicsSimpleV1_1.k38.tau')) * (1/parameter(143));
                otherwise
                    % error handling
            end
       hold(a2h3, 'on');     
       p2h = plot(a2h3, t, momzu, 'r');
       p2h = plot(a2h3, t, momab, 'g');
       ymax = max(momzu)+ 100;
       ymin = -100;
       ylim(a2h3, [ymin ymax]);
   
       set(a3h3, 'Visible', 'on');
            switch value
                case 1
                    W = dymget(ergebnis,'mechanicsSimpleV1_1.k18.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimpleV1_1.k18.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.k18.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 2
                    W = dymget(ergebnis,'mechanicsSimpleV1_1.b05.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimpleV1_1.b05.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 3
                    W = dymget(ergebnis,'mechanicsSimpleV1_1.k27.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimpleV1_1.k27.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.k27.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 4
                    W = dymget(ergebnis,'mechanicsSimpleV1_1.k18.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimpleV1_1.k18.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.k18.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 5
                    W = dymget(ergebnis,'mechanicsSimpleV1_1.k38.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimpleV1_1.k38.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.k38.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 6
                    W = dymget(ergebnis,'mechanicsSimpleV1_1.b05.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimpleV1_1.b05.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 7
                    W = dymget(ergebnis,'mechanicsSimpleV1_1.b08.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimpleV1_1.b08.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.b08.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                case 8
                    W = dymget(ergebnis,'mechanicsSimpleV1_1.b05.spezifische_Waerme');
                    R1 = dymget(ergebnis,'mechanicsSimpleV1_1.b05.Reibleistung');
                    dA1 = max(dymget(ergebnis,'mechanicsSimpleV1_1.b05.diskArea'));
                    P = R1/(str2double(nzu)*100*dA1);
                otherwise
                    % error handling
            end
       hold(a3h3, 'off');     
       p3h = plot(a3h3, t, W, 'r');
       hold(a3h3, 'on');
       p3h = plot(a3h3, t, P);
       
       
       % Schutz vor Parameteränderung aufheben um neue Berechnung zu ermöglichen
       set(et1h3, 'enable', 'on');
       set(et2h3, 'enable', 'on');
       set(et3h3, 'enable', 'on');
       set(et4h3, 'enable', 'on');
       set(et5h3, 'enable', 'on');
       set(et6h3, 'enable', 'on');
       set(et7h3, 'enable', 'on');
       set(et8h3, 'enable', 'on');
       set(et9h3, 'enable', 'on');
       set(pm1h3, 'enable', 'on');
       set(pm2h3, 'enable', 'on');
       set(pm3h3, 'enable', 'on');
       set(pm4h3, 'enable', 'on');
       set(ep1h3, 'enable', 'on');
       set(ep2h3, 'enable', 'on');
       set(ep3h3, 'enable', 'on');
       set(ep4h3, 'enable', 'on');
       set(ep5h3, 'enable', 'on');
       set(ep6h3, 'enable', 'on');
       set(ep7h3, 'enable', 'on');
       set(ep8h3, 'enable', 'on');
       set(em1h3, 'enable', 'on');
                         
       
       % Adaptionsbutton sichtbar machen
       set(pb1h3, 'Visible', 'on'); 
     
    end


%% Menüfunktionen 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Callback durch Drücken des ?-Buttons    
    function hHelpInfoButtonCallback(~, ~)
       
        mainFigurePos = get(fh, 'Position');
        infoFigurePos = [mainFigurePos(1)+mainFigurePos(3)/2-0.125, mainFigurePos(2)+mainFigurePos(4)/2-0.125, 0.25, 0.25];
        aboutTextString = sprintf(strcat('\n\nErstellt von\n\nThomas Handl\n\n thomashandl@freenet.de\n\nVersion 1.0 (2011)'));
        infoFigure = figure(...
                        'MenuBar', 'none', ...
                        'ToolBar', 'none', ...
                        'name', mfilename, ...
                        'Units', 'normalized', ...
                        'Position', infoFigurePos);
        aboutPanel = uipanel(infoFigure, ...
                        'Title', 'About', ...
                        'TitlePosition', 'rightbottom', ...
                        'Units', 'normalized', ...
                        'Position', [0.02 0 0.96 0.96]);
        uicontrol(aboutPanel, ...
                        'Units', 'normalized', ...
                        'Style', 'text', ...
                        'String', aboutTextString, ...
                        'HorizontalAlign', 'center', ...
                        'FontSize', 11, ...
                        'Position', [0 0 1 1]);
    end

    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Callback durch Drücken des Toolbarbuttons
    function hToolbarCallback(~, ~)
        
        if strcmp(get(fh, 'toolbar'), 'figure') == 1
            set(fh, 'toolbar', 'none');
        else
            set(fh, 'toolbar', 'figure');
            newfig = findall(fh,'Type','uipushtool', 'TooltipString','New Figure'); 
            delete(newfig);
            openfile = findall(fh,'Type','uipushtool', 'TooltipString','Open File'); 
            delete(openfile);
            savefig = findall(fh,'Type','uipushtool', 'TooltipString','Save Figure'); 
            delete(savefig);
            printfig = findall(fh,'Type','uipushtool', 'TooltipString','Print Figure'); 
            delete(printfig);
            rot3d = findall(fh,'Type','uitoggletool', 'TooltipString','Rotate 3D'); 
            delete(rot3d);
            legend = findall(fh,'Type','uitoggletool', 'TooltipString','Insert Legend'); 
            delete(legend);
            linkplot = findall(fh,'Type','uitoggletool', 'TooltipString','Link Plot'); 
            delete(linkplot);
            editplot = findall(fh,'Type','uitoggletool', 'TooltipString','Edit Plot'); 
            delete(editplot);
            inscol = findall(fh,'Type','uitoggletool', 'TooltipString','Insert Colorbar'); 
            delete(inscol);
            hideplot = findall(fh,'Type','uipushtool', 'TooltipString','Hide Plot Tools'); 
            delete(hideplot);
            showplot = findall(fh,'Type','uipushtool', 'TooltipString','Show Plot Tools and Dock Figure'); 
            delete(showplot);
        end  
                
    end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Callback durch Drücken des Exit-Buttons
    function hExitButtonCallback(~, ~)
        
        % Really Exit?
        str_exit = questdlg('Wollen sie die Getriebeauslegung wirklich beenden?','Getriebeauslegung','Ja','Nein','Ja');
        if strcmp('Ja',str_exit)
            close all force;
        end
        
    end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Callback durch Drücken des Simulationsstartdrehzahlbuttons
    function hnstartButtonCallback(~, ~)
        
     if strcmp(get(pnag3h,'Visible'),'on') == 1 
        if strcmp(get(p5h3, 'visible'), 'on') == 1
            set(p5h3, 'visible', 'off');
        elseif strcmp(get(p6h3, 'visible'), 'on') == 1
            set(p6h3, 'visible', 'off');
            set(p5h3, 'visible', 'on');
        else
            set(p5h3, 'visible', 'on');   
        end
     else
        if strcmp(get(p5h, 'visible'), 'on') == 1
            set(p5h, 'visible', 'off');
        elseif strcmp(get(p6h, 'visible'), 'on') == 1
            set(p6h, 'visible', 'off');
            set(p5h, 'visible', 'on');
        else
            set(p5h, 'visible', 'on');   
        end
     end
                
    end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Callback durch Drücken des Momentenbegrenzung-Buttons
    function hMomentenbegrenzungButtonCallback(~, ~)
        
     if strcmp(get(pnag3h,'Visible'),'on') == 1 
        if strcmp(get(p6h3, 'visible'), 'on') == 1
            set(p6h3, 'visible', 'off');
        elseif strcmp(get(p5h3, 'visible'), 'on') == 1
            set(p5h3, 'visible', 'off');
            set(p6h3, 'visible', 'on');
        else
            set(p6h3, 'visible', 'on');   
        end
     else
        if strcmp(get(p6h, 'visible'), 'on') == 1
            set(p6h, 'visible', 'off');
        elseif strcmp(get(p5h, 'visible'), 'on') == 1
            set(p5h, 'visible', 'off');
            set(p6h, 'visible', 'on');
        else
            set(p6h, 'visible', 'on');   
        end
     end
   
        
    end

end