%   Script Geraden.m
%
%  Geradenapproximation von Bodediagrammen
%
% J. Lunze
% für 3. Auflage: 13.2.2001
% für 4. Auflage: 15.9.2003
% für 5. Auflage: 14.5.2005
% für 9. Auflage: 13.2.2012
% für 10. Auflage: 27.1.2014
% für 12. Auflage: 05.08.2019
%
%   
clear
close all

%%   System dritter Ordnung
%
%   
figure(1)
subplot(2,1,1)
z=poly([5]);
n=poly([-1, -20, -80]);
sys=tf(z, n)
amplappr(sys);
rotateY;
axis([0.5 400 -70 10]);
xticks([1 10 100]);
yticks([-60 -40 -20 0]);
latexxlabel('$$\omega$$ in rad/s');
 

%%    Hydraulischer Servoantrieb aus Aufgabe 10.6 (2. Aufl.)
%
%   
figure(2)
subplot(2,1,1);
z=1;
n=[1 0.6 1 0];
Hydraulik=tf(z, n);
[Betrag, Phase, Omega]=bode(Hydraulik, {0.01, 10});
semilogx(Omega, 20*log10(Betrag(:)),'b');
latextitle('Hydraulischer Antrieb');
latexylabel('$$|G|$$ in dB');
rotateY;
yticks([-60 -40 -20  0  20 40]);
latexxlabel('$$\omega$$ in rad/s');
axis([0.01, 10, -60, 40]);
grid('on');
 

%% ... mit Geradenapproximation
%  
figure(3)
subplot(2,1,1);
semilogx(Omega, 20*log10(Betrag(:)), 'b')
hold on
amplappr(Hydraulik)
latextitle('Hydraulischer Antrieb');
latexylabel('$$|G|$$ in dB');
rotateY;
xleer;
axis([0.01, 10, -60, 40]);
yticks([-40 0 40]);
grid('on');
%
subplot(2,1,2)
semilogx(Omega, Phase(:), 'b');
latexylabel('$$\phi$$ in Grad');
rotateY;
latexxlabel('$$\omega$$ in rad/s');
xticks([0.01 0.1 1 10]);
yticks([-270 -180 -90 0]);
axis([0.01, 10, -270, 0]);
grid('on');


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