Создание обучающей системы автоматизированного проектирования маломощных электромеханических следящих систем, страница 55

  // ПФ исходной системы

  MmPf.Lines.Add('Передаточная функция разомкнутой исходной системы:');

  MmPf.Lines.Add('');

  MmPf.Lines.Add('                                        '+FloatToStrF(KwUp, ffFixed, 5, 2));

MmPf.Lines.Add('W(p) = ---------------------------------------------------------');

  MmPf.Lines.Add('                p*('+FloatToStr(tau1)+'*p+1)*('

    +FloatToStrF(tau2, ffFixed, 6,3)+'*p+1)*('+FloatToStrF(Ts, ffFixed, 6,3)+'*p+1)');

  MmPf.Lines.Add('');

  // ПФ желаемой системы

case vibor of

    1 : begin

      ftau1 := tau1;

      ftau2 := tau2;

    end;

    2 : begin

      ftau1 := T3;

      ftau2 := tau2;

    end;

    3,4 : begin

      ftau1 := T3;

      ftau2 := T3;

    end;

  end;

  MmPf.Lines.Add('Передаточная функция желаемой системы:');

  MmPf.Lines.Add('');

  MmPf.Lines.Add('                                      '+FloatToStrF(Kw, ffFixed, 6, 3)+'*('

+FloatToStrF(T2, ffFixed, 6, 3)+'*p+1)');

  MmPf.Lines.Add('W(p) = -----------------------------------------------------------------------');

  MmPf.Lines.Add('              p*('+FloatToStrF(T1, ffFixed, 6, 3)

    +'*p+1)*('+FloatToStrF(ftau1, ffFixed, 6, 3)+'*p+1)*('+FloatToStrF(ftau2, ffFixed, 6, 3)

    +'*p+1)*('+FloatToStrF(T3, ffFixed, 6, 3)+'*p+1)');

  MmPf.Lines.Add('');

  // ПФ корректирующего устройства

  MmPf.Lines.Add('Передаточная функция корректирующего устройства:');

MmPf.Lines.Add('');

  st1 := '               '+FloatToStrF(Kw/KwUp, ffFixed, 4, 1)+'*('

    +FloatToStrF(T2, ffFixed, 6, 3)+'*p+1)*('+FloatToStrF(Ts, ffFixed, 6, 3)+'*p+1)';

  st2 := st1 + '*('+FloatToStrF(tau1, ffFixed, 6, 3)+'*p+1)';

  st3 := st2 + '*('+FloatToStrF(tau2, ffFixed, 6, 3)+'*p+1)';

  stdown := '('+FloatToStrF(T1, ffFixed, 6, 3)+'*p+1)*('+FloatToStrF(T3, ffFixed, 6, 3)+'*p+1)';

  case vibor of

    1 : begin

      MmPf.Lines.Add(st1);

      MmPf.Lines.Add('W(p) = -----------------------------------------');

      MmPf.Lines.Add('                  '+stdown);

    end;

    2,3 : begin

      MmPf.Lines.Add(st2);

      MmPf.Lines.Add('W(p) = ----------------------------------------------------------------');

      MmPf.Lines.Add('                           '+stdown+'^2');

    end;

    4 : begin

      MmPf.Lines.Add(st3);

      MmPf.Lines.Add('W(p) = ---------------------------------------------------------------------------');

      MmPf.Lines.Add('                                 '+stdown+'^3');

    end;

  end;

end;

procedure TForm1.DrawGraphics();

var

  W0 : real;

begin

  //Очищаемм все графики.

  LAX.Series[0].Clear;

  LAX.Series[1].Clear;

  LAX.Series[2].Clear;

  LAX.Series[3].Clear;

  LAX.Series[4].Clear;

  LAX.Series[5].Clear;

  LAX.Series[6].Clear;

  LAX.Series[7].Clear;

  LAX.Series[8].Clear;

  LAX.Series[9].Clear;

  LAX.Series[10].Clear;

  LAX.Series[11].Clear;

  LAX.Series[12].Clear;

  LAX.Series[13].Clear;

  LAX.Series[14].Clear;

  KULAX.Series[0].Clear;

  KULAX.Series[1].Clear;

  KULAX.Series[2].Clear;

  KULAX.Series[3].Clear;

  KULAX.Series[4].Clear;

  KULAX.Series[5].Clear;

  KULAX.Series[6].Clear;

  KULAX.Series[7].Clear;

  KULAX.Series[8].Clear;

  KULAX.Series[9].Clear;

  KULAX.Series[10].Clear;

  // Рассчитываем недостающие величины

  W0 := sqrt(Kw/T1);    //!!! Вместо T1 было Ts ошибка в курсовых

T2 := sqrt(vars[7]/(vars[7]-1))/W0;

  // Выводим посчитанные величины

  Label21.Caption:='Ts = '+FloatToStrF(Ts,ffFixed,10,5)+' сек';

  Label23.Caption:='Kw = '+FloatToStrF(Kw,ffFixed,10,5);

  Label37.Caption:='Ke = '+FloatToStrF(Kw/T1,ffFixed,10,5);

  Label38.Caption:='W0 = '+FloatToStrF(W0,ffFixed,10,5)+' 1/сек';

  Label39.Caption:='Wsr = '+FloatToStrF(sqr(W0)*T2,ffFixed,10,5)+' 1/сек';

  Label41.Caption:='T1 = '+FloatToStrF(T1,ffFixed,10,5)+' сек';

  Label42.Caption:='T2 = '+FloatToStrF(T2,ffFixed,10,5)+' сек';