
(*********************************************************************
 *
 *  :Program.    Regelstrecke.mod
 *  :Author.     Gary Struhlik
 *  :Address.    -
 *  :Address.    -
 *  :shortcut.   [gs]
 *  :Version.    1.0
 *  :Date.       01.02.89
 *  :Copyright.  PD
 *  :Language.   Modula-II
 *  :Translator. M2Amiga
 *  :Contents.   Testroutine für die Module "GraphicLib" und "ComplexLib"
 *
 *********************************************************************)

MODULE Regelstrecke;

FROM GraphicLib IMPORT InitVector, GraphOn, GraphOff, graph1, gmove, vector,
                       sy, graph2,logstep,sxlog,sylog,HardCopy,
                       RedPen;      

FROM ComplexLib IMPORT COMPLEX, crcp, cpol,compop; 

VAR
	Betrag, Winkel, wl : ARRAY [1..1500] OF REAL;
	w : REAL;
        Z1,Z2 : COMPLEX;
	i,j : CARDINAL;
BEGIN
       w:=1.0E-2; j:=0;
       WHILE w<=1.0E2 DO
         Z1.RE:=0.0; Z1.IM:=w;
         Z2.RE:=1.0; Z2.IM:=0.1*w;
         compop( Z1, Z1,'*',Z2); 
         crcp(Z1,Z1);
         cpol(Z1,Z1);
         INC(j);
         wl[j]:=w;
         Betrag[j]:=Z1.RE;
         Winkel[j]:=Z1.IM;
         w:=logstep(w,0.01)
       END;     
       GraphOn; InitVector; (* Grafik einschalten und initialisieren *)
       
       graph2(2, 1.0E-2, 1.0E2, -60.0, 40.0, 10, 0.17, 0.93, 0.18, 0.86
              ,'Go(s)=1/[ sT1 (1+sT2) ] ', '-> LG W',
              '-> |Go|/dB T1=1s,T2=0,1s');
       RedPen;
       gmove( sxlog(wl[1]), sylog(Betrag[1]) );
       FOR i:=2 TO j DO
         vector( sxlog(wl[i]), sylog(Betrag[i]) )
       END;
       (* HardCopy(13); *)
       
       GraphOff;

       GraphOn;
       graph2(2, 1.0E-2, 1.0E2, -200.0, 0.0, 10, 0.17, 0.93, 0.18, 0.86,
               'REGELSTRECKE: Go(s)=1/[ sT1 (1+sT2) ]', '->  LG W',
               '-> PHI/o T1=1s,T2=0,1s');
       RedPen;
       gmove( sxlog(wl[1]), sy(Winkel[1]) );
       FOR i:=2 TO j DO
         vector( sxlog(wl[i]), sy(Winkel[i]) )
       END;         
       
       GraphOff;

END Regelstrecke.
       

