Имитационное моделирование системы управления с учетом нелинейности «Зона нечувствительности с ограничениями», страница 4

Writeln(f);

Writeln(f,'   Передаточная функция звена по каналу возмущения:' );

Writeln(f);

Writeln(f,'                          K   ');

Writeln(f,'                 Wf1(p)=------');

Writeln(f,'                        (1+Tp)');

Writeln(f);

Writeln(f,'              где:');

Writeln(f,'               коэффициент передачи Кf1=',Edit10.text);

Writeln(f,'               постоянная времени   Тf1=',Edit11.text);

Writeln(f);

Writeln(f,'*********************************************************');

Writeln(f);

Writeln(f,'                Настройки ПИ-регулятора:');

Writeln(f,'                     К1=',Edit12.text);

Writeln(f,'                     К2=',Edit13.text);

Writeln(f);

Writeln(f,'*********************************************************');

Writeln(f);

Writeln(f,'   Ступенчатое задающее воздействие = ',edit5.text);

Writeln(f);

Writeln(f,'*********************************************************');

Writeln(f);

Writeln(f,'       Коэффициенты передачи элементов системы:');

Writeln(f,'         Регулирующий орган: Кро=',Edit16.text);

Writeln(f,'         Исполнительный механизм: Ким=',Edit14.text);

Writeln(f,'         Датчик: Кдат=',Edit15.text);

Writeln(f);

Writeln(f,'*********************************************************');

Writeln(f);

Writeln(f,'        Дискретность: Т0=',ComboBox1.text);

Writeln(f);

Writeln(f,'*********************************************************');

if RadioButton1.Checked=true then//если система линейная

begin

writeln(f,' Переходный процесс по задающему воздействию (линейная система)');

goto LSys;

end;

if RadioButton1.Checked=false then//если система нелинейная

begin

writeln(f,' Переходный процесс по задающему воздействию (нелинейная система)');

goto NelSys;

end;

//запись линейной системы

LSys:

Writeln(f);

Writeln(f,'           Такт           Задание            Система    ');

With StringGrid1 do

For I:=1 to N1 do

Writeln(f,'      ',cells[0,I],'   ',cells[1,I],'    ',cells[2,I]);

CloseFile(f);

MessageDlg('Расчет переходного процесса (лин. системы)'#13+

'     по задающему воздействию записан !',mtInformation,[mbOK],0);

exit;

//запись нелинейной системы

NelSys:

Writeln(f);

Writeln(f,'     Коэффициенты нелинейности регулирующего органа:');

Writeln(f,'                   B1=',Edit3.text);

Writeln(f,'                   B2=',Edit4.text);

Writeln(f,'                   C1=',Edit1.text);

Writeln(f,'                   C2=',Edit1.text);

Writeln(f);

Writeln(f,'        Время           Задание             Система    ');

With StringGrid1 do

For I:=1 to N1 do

Writeln(f,'      ',cells[0,I],'   ',cells[1,I],'    ',cells[2,I]);

CloseFile(f);

MessageDlg('Расчет переходного процесса (нелин. системы)'#13+

'   по задающему воздействию записан !',mtInformation,[mbOK],0);

exit;

end;//3

end;//1

//запись в файл переходных процессов по возмущающему воздействию f1

procedure TForm1.Button5Click(Sender: TObject);

label LSysF1,NelSysF1;//описание меток

Var

f:TextFile;

NameFile:string;

I,N2:Integer;

begin//1

//проверка существования расчета

if stringgrid2.Cells[1,1]=''then

begin//2

messagedlg('Нет расчета переходного процесса по возмущающему воздействию !',mtError,[mbOK],0);

exit;

end;//2

N2:=StrToInt(ComboBox4.text);

if OpenDialog2.execute then

begin//3

NameFile:=OpenDialog2.FileName;

AssignFile(f,NameFile);

Rewrite(f);

Writeln(f,' РЕЗУЛЬТАТЫ МОДЕЛИРОВАНИЯ ПЕРЕХОДНОГО ПРОЦЕССА');

if RadioButton3.Checked=true then//если система линейная

begin//lin

writeln(f,'               ПО ВОЗМУЩАЮЩЕМУ ВОЗДЕЙСТВИЮ');

writeln(f,'                    Линейная система');

end;//lin

if RadioButton3.Checked=false then//если система нелинейная

begin//nelin

writeln(f,'               ПО ВОЗМУЩАЮЩЕМУ ВОЗДЕЙСТВИЮ');

writeln(f,'                   Нелинейная система');

end;//nelin

Writeln(f);

Writeln(f,'            Передаточная функция объекта:');

Writeln(f);

Writeln(f,'                           -Tau*p');

Writeln(f,'                        K*e      ');

Writeln(f,'              Wo(p)=-------------');

Writeln(f,'                       (1+Tp)');

Writeln(f);

Writeln(f,'              где:');

Writeln(f,'               коэффициент передачи К=',Edit7.text);

Writeln(f,'               постоянная времени   Т=',Edit8.text);

Writeln(f,'                    запаздывание  Tau=',Edit9.text);

Writeln(f);