133
    Usa1,Utra,Uka,Usb1,Utrb,Ukb, 
    Lr,Ls,Pra,Prb,Pid: extended{real}; 
    N_str: string; 
 
BEGIN  ClrScr; 
j:=1; 
while x0<=xk do begin 
 
    Runge(x0); 
    for i:=1 to n do yz[i]:=y[i]; 
    h:=h/2; 
    Runge(x0); 
    for i:=1 to n do y0[i]:=y[i]; x0:=x0+h; 
    Runge(x0); 
    l := 0; 
    for i:=1 to n do begin 
          if abs(yz[i]-y[i]) < eps*abs(y[i])  then l:=l + 1; 
    end; 
    if L = n then                   { Точность достигнута  } 
            if abs(x0+h-Xp) < abs(Xp)*0.0000001 then begin 
 
                       xx0 := x0 + h; 
                       gotoXY(1,1); 
                       Writeln('t=',xx0:8:5,'  W1=',y[5]:7:2,' 1/с'); 
                       writeln('M=',M:12:2,'    Lk=',Lkab:5:2); 
{ Формирование очередных значений производных потокосцеплений  } 
                       DFsa[3]:=F[1]; DFsb[3]:=F[2]; 
{ Формирование начальных значений производных потокосцеплений  } 
                       if j<=3 then begin 
                                      DFsa[j]:=F[1];  
                                      DFsb[j]:=F[2]; 
                                      j:=j+1; 
                                    end 
                               else begin 
{ Вычисление значений потокосцеплений статора                   } 
Fsa[1]:=Fsa[0]+DLXp*(9*DFsa[0]+19*DFsa[1]-5*DFsa[2]+DFsa[3])/24; 
Fsb[1]:=Fsb[0]+DLXp*(9*DFsb[0]+19*DFsb[1]-5*DFsb[2]+DFsb[3])/24; 
{ Переопределение начальных значений потокосцеплений и их производных  } 
  Fsa[0]:=Fsa[1]; Fsb[0]:=Fsb[1]; 
  DFsa[0]:=DFsa[1]; DFsa[1]:=DFsa[2]; DFsa[2]:=DFsa[3]; 
  DFsb[0]:=DFsb[1]; DFsb[1]:=DFsb[2]; DFsb[2]:=DFsb[3]; 
                                     end; 
{ Электромагнитный момент как функция потокосцепления и тока статора   } 
  Mp:=3*p*(Fsa[1]*Isb-Fsb[1]*Isa)/2; 
  Lr:=L1+Lm; Ls:=L2+Lm; 
{  
Вычисление потокосцепления ротора. 
Здесь есть маленькая неточность. Определите какая? 
} 
Pra:=Lm*Isa+Lr/Lm*(Fsa[1]-Ls*Isa); 
Prb:=Lm*Isb+Lr/Lm*(Fsb[1]-Ls*Isb); 
Pr2:=sqr(Pra)+sqr(Prb);