% 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 = 50; col = 'r'; umin=-100; umax=100; 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); %%%%%%%%%%%%%%%%%%%%%%%%%% umin=-5; umax=5; 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 umin=-1; umax=1; 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,'r',1:N,yh2,'g',1:N,yh3,'b',1:N,ref(1:N),'y'); title('Regulovana velicina'); legend('Q=100, Tp=50, omez=+/-100','omez=+/-10','omez=+/-1'); figure(1); subplot(2,1,2),plot(1:N,uh1,'r',1:N,uh2,'g',1:N,uh3,'b'), hold on; title('Ridici velicina');