% DATA PENDULUM
g=10; % gravitasi
l=0.28; % panjang pendulum
M=0.11; % massa kereta
m=0.03; % massa pendulum
% Matrix A dan B
a1 = -(m*g)/M;
a2 = ((M+m)*g)/(M*l);
A = [0 1 0 0;0 0 a1 0;0 0 0 1;0 0 a2 0];
b1 = 1/M;
b2 = -1/(M*l);
B = [0;b1;0;b2];
% Melacak nilai K
K4 = 1; % Tentukan nilai K4 dulu
i=0;
for IK3 = 1:100
    K3 = 0.1*IK3; % Cari K3
    clc
    CTRL = IK3
        for IK2 = 1:10
        K2 = IK2; % Cari K2
            for IK1 = 1:10
            K1 = IK1; % Cari K1
            i=i+1;
            K = [K1 K2 K3 K4]; % Matrix K
            Abar = A + B*K; % Matrix Abar
            lamd = eig(Abar); % Cari Nilai Eigen matrix Abar
            lamda = sort(lamd); % Diurut supaya berdekatan
 % Untuk keperluan plotting:
            x(i,1)=lamda(1);
            x(i,2)=lamda(2);
            x(i,3)=lamda(3);
            x(i,4)=lamda(4);
 % Menentukan lokasi nilai-eigen
            R = real(lamda);
            Re = sort(R); % Diurut berdasarkan nilai Real-nya
            if Re(1) <-10 % Dibuang jauh-jauh salah satu nilai eigen
                if Re(2)<-5 % Satu lagi dibuang juga
                    if Re(3)<0
                        if Re(4)<0 % Asal sudah didapat stabil
                        OK = K
                        LAMDA = lamda
                        IK3=-1 % "Flag" untuk exit
                        break
                        end
                    end
                end
            end
        end
    end
    if IK3==-1
        break
    end
end
plot(x, '.'),grid on