% soustava close all clear all cit = [10]; jme = [1 -1 -1 1]; %cit=[1]; %jme=poly([1 1 1]); [A,B,C,D] = tf2ss(cit,jme); % diskretizace Ts = 0.1; [Ad, Bd, Cd, Dd] = ssdata(c2d(ss(A,B,C,D),Ts)); figure(1); hold on; grid on; figure(3); hold on; grid on; Tp = 10; col = 'r'; umin=-10; umax=10; Q = 100*eye(Tp); R = 1*eye(Tp); N = 300; ref = zeros(1,N+Tp); for i=N/3:N ref(i)=1; end [uh1, xh1, yh1] = PR_omezeni(Tp, R, Q, ref, N, umin, umax, Ad, Bd, Cd, Dd); %%%%%%%%%%%%%%%%%%%%%%%%%% Tp = 20; col = 'g'; Q = 100*eye(Tp); R = 1*eye(Tp); N = 300; ref = zeros(1,N+Tp); for i=N/3:N ref(i)=1; end [uh2, xh2, yh2] = PR_omezeni(Tp, R, Q, ref, N, umin, umax, Ad, Bd, Cd, Dd); %%%%%%%%%%%%%%%%%%%%%%%%%%%5 Tp = 100; col = 'c'; Q = 100*eye(Tp); R = 1*eye(Tp); N = 300; ref = zeros(1,N+Tp); for i=N/3:N ref(i)=1; end [uh3, xh3, yh3] = PR_omezeni(Tp, R, Q, ref, N, umin, umax, Ad, Bd, Cd, Dd); figure(1); subplot(2,1,1),plot(1:N,yh1,'b',1:N,yh2,'g',1:N,yh3,'m',1:N,ref(1:N),'r'); title('Regulovana velicina'); legend('omezeni=+/-10, Q=100, Tp=10','Tp=50','Tp=100'); figure(1); subplot(2,1,2),plot(1:N,uh1,'b',1:N,uh2,'g',1:N,uh3,'m'), hold on; title('Ridici velicina');