%   Script Hydraul.m
%
%   Lageregelung eines Hydraulikantriebs
%
% J. Lunze
% 25.1.2000
% für 4. Auflage: 18.9.2003
% für 5. Auflage: 11.6.2005
% für 7. Auflage: 28.4.2008
% für 8. Auflage: 2.2.2010
% für 9. Auflage: 10.2.2012
% für 10. Auflage: 27.1.2014
% für 12. Auflage: 5.08.2019
%
%   
clear
close all

%%                  
%
%  Hydraulikantrieb
%  Eingang: Ventilöffnung  -->  Ausgang: Kolbenlage
%
%   
figure(1)
subplot(4,4,[1 2 5 6])
z=1;
n=[1 0.6 1 0];
Antrieb=tf(z, n);
[P, Z]=pzmap(Antrieb);
for i=1:length(P)
    plot(real(P(:)), imag(P(:)), 'bx');
    hold on
end
for i=1:length(Z)
    plot(real(Z(:)), imag(Z(:)), 'bo');
end
plot([-3 3],[0 0],'k:', [0 0],[1 2],'k:', [0 0],[-1 -2],'k:');
K=0:0.001:2;
rlocprintblue(Antrieb);
%rlocus(z, n, [0.6])  % kritische Verstärkung 0.6
%  Eintragen der Asymptoten
Nullst=roots(n);
sAsympt=sum(Nullst)/3;
plot([sAsympt 10+sAsympt],[0 10*sin(pi/3)],'k:', [sAsympt 10+sAsympt],[0 -10*sin(pi/3)],'k:');
latextitle('Hydraulischer Antrieb');
axis([-1.3 1.3 -1.3 1.3]);
xticks([-1 1]);
yticks([-1 1]);
rotateY;
hold off;


%%                  
%
%  PT1-Regler
%
%   
subplot(4,4,[3 4 7 8]);
zr=1;
nr=[1.5 1];
Regler=tf(zr, nr);
OffeneKette=series(Antrieb, Regler);
[P, Z]=pzmap(OffeneKette);
for i=1:length(P)
    plot(real(P(:)), imag(P(:)), 'bx');
    hold on
end
for i=1:length(Z)
    plot(real(Z(:)), imag(Z(:)), 'bo');
end
plot([-3 3],[0 0],'k:', [0 0],[1 2],'k:', [0 0],[-1 -2],'k:');
rlocprintblue(OffeneKette);
%  Eintragen der Asymptoten
[z0, n0]=tfdata(OffeneKette,'v');
Nullst=roots(n0);
sAsympt=sum(Nullst)/4;
plot([-10+sAsympt 10+sAsympt],[-10*sin(pi/4) 10*sin(pi/4)],'k:', [-10+sAsympt 10+sAsympt],[10*sin(pi/4) -10*sin(pi/4)],'k:');
axis([-1.3 1.3 -1.3 1.3]);
xticks([-1 1]);
yticks([-1 1]);
ylabel('');
rotateY;
hold off;


%%%%%%%%%%%%%%%%%%%%%%
%
%   Herstellung von .ps und .eps-Bildern
%
Epsbildc15('hydraul');
