RLC         = [0.1, 0.5, 10, 5, 10, 1];  
PhaseTimes  = [0, 500, 1000, 2000, 3000, 4000, 5000]; 
[Kf_LMax]   = Kf_Cal(Kf_Max, RLC, TauKf_ON, TauKf_OFF, PhaseTimes, t);
plot(t, Kf_LMax, '.--', 'LineWidth', 1.5); ylim([0 110])
title('Kf_LMax over Time');
function [Kf_LMax] = Kf_Cal(Kf_Max, RLC, TauKf_ON, TauKf_OFF, PhaseTimes, t)
Kf_LMax = zeros(size(t));
    Kf_LMax(i) = calculate_kf(t(i), PhaseTimes, Kf_Max, RLC, TauKf_ON, TauKf_OFF);
    function Kf_L = calculate_kf(t_current, PhaseTimes, Kf_Max, RLC, TauKf_ON, TauKf_OFF)
        Kf_LMax_values = Kf_Max * (RLC ./ (1 + RLC));
        Kf_L = Kf_LMax_values(1);
                T_end = PhaseTimes(j + 1); 
            if t_current >= T_start && t_current < T_end
                    Kf_L = Kf_LMax_values(j);
                        if  RLC(j - 1) < RLC(j) && RLC(j) > RLC(j + 1)
                            Kf_endA = Kf_LMax_values(j) - (Kf_LMax_values(j) - Kf_LMax_values(j - 1))*exp(TauKf_ON * (t_current - T_start));
                            Kf_L    = Kf_LMax_values(j) + (Kf_endA - Kf_LMax_values(j - 1))*exp(TauKf_OFF*(t_current - T_start));
                        elseif  RLC(j - 1) < RLC(j) && RLC(j) < RLC(j + 1)
                            Kf_endB = Kf_LMax_values(j) - (Kf_LMax_values(j) - Kf_LMax_values(j - 1))*exp(TauKf_ON * (t_current - T_start));
                            Kf_L    = Kf_LMax_values(j) + (Kf_endB - Kf_LMax_values(j - 1))*exp(TauKf_OFF*(t_current - T_start));
                        elseif  RLC(j - 1) > RLC(j) && RLC(j) < RLC(j + 1)
                            Kf_endC = Kf_LMax_values(j) - (Kf_LMax_values(j) - Kf_LMax_values(j - 1))*exp(TauKf_ON * (t_current - T_start));
                            Kf_L    = Kf_LMax_values(j) + (Kf_endC - Kf_LMax_values(j - 1))*exp(TauKf_OFF*(t_current - T_start ));                           
                        elseif  RLC(j - 1) > RLC(j) && RLC(j) >= RLC(j + 1)
                            Kf_endD = Kf_LMax_values(j) - (Kf_LMax_values(j) - Kf_LMax_values(j - 1))*exp(TauKf_ON * (t_current - T_start));
                            Kf_L    = Kf_LMax_values(j) + (Kf_endD - Kf_LMax_values(j - 1))*exp(TauKf_OFF*(t_current - T_start ));        
                            Kf_end1 = Kf_LMax_values(j) - (Kf_LMax_values(j) - Kf_LMax_values(j - 1)) * exp(TauKf_ON * (t_current - T_start)); 
                            Kf_L    = Kf_LMax_values(j) + (Kf_end1 - Kf_LMax_values(j - 1)) * exp(TauKf_OFF * (t_current - T_start));
                        elseif RLC(j - 1) > RLC(j)
                            Kf_end2 = Kf_LMax_values(j) - (Kf_LMax_values(j) - Kf_LMax_values(j - 1)) * exp(TauKf_ON * (t_current - T_start));
                            Kf_L    = Kf_LMax_values(j) + (Kf_end2 - Kf_LMax_values(j - 1)) * exp(TauKf_OFF * (t_current - T_start));  
                Kf_L    = min(Kf_L, Kf_Max);