% Simulate a digital controller % Plant = Gs % Controller = K % Sampling Rate = T Gs = zpk([],[-1,-5,-10],200); T = 0.5; dt = T/100 Gs_ABCD = ss(Gs); K = 0.7; A = Gs_ABCD.A; B = Gs_ABCD.B; C = Gs_ABCD.C; D = Gs_ABCD.D; A = expm(A*dt); B = B*dt; N = length(B); Data = []; X = zeros(N,1); Y = 0; R = 1; t = 0; while(t < 9.9) if(mod(t,T) < dt) U = K*(R - Y); end X = A*X + B*U; Y = C*X + D*U; t = t + dt; Data = [Data ; [Y, U, R]]; end t = [0:length(Data)-1]' * dt; plot(t, Data) xlabel('Time (seconds)')