LAX.Series[1].AddXY(lgw60,y);
// правее 1/tau2
lgw80 := 5;
y := -80*lgw80 + y + 80*lgw60;
LAX.Series[1].AddXY(lgw80,y);
end;
3 : begin // случай tau2 := T3
// правее 1/T3
lgw80 := 5;
y := -80*lgw80 + y + 80*lgw20;
LAX.Series[1].AddXY(lgw80,y);
end;
4 : begin // случай T3 правее tau2
// правее 1/T3
lgw80 := 5;
y := -80*lgw80 + y + 80*lgw20;
LAX.Series[1].AddXY(lgw80,y);
end;
end;
end;
// Вычисление Ts и выбор вычисления Kw
procedure TForm1.CalcForDraw();
const st = 'Первая постоянная времени T1 меньше постоянной времени системы менее , чем на 10 с. '+
'Можно выбрать постоянную времени T1 равную tau системы, тем самым упростив вид корретирующего устройства. '+
'Благоприятным условием будет так же, то что добротность по скорости будет иметь минимальную величину, '+
'однако добротность по ускорению будет больше минимального возможного значения и вся ЛАХ будет сдвигаться '+
'в область более высоких частот, что затрудняет демпфирование.';
var Tdv, Jred, Jdv, Wk, WTs: real;
var betha, Nxx, Mp: real;
begin
//Рассчёт.
Tdv := StrToFloat(EngineGrid.Cells[10,selected])*0.001;
Jred := StrToFloat(Edit19.Text);
Jdv := StrToFloat(EngineGrid.Cells[11,selected])*0.000000001;
//Постоянная времени двигателя с учётом нагрузки на валу
Ts := Tdv*( 1 + Jred/Jdv + vars[2]/(Jdv*pch()*pch()) );
Nxx := StrToFloat(EngineGrid.Cells[9,selected]);
Mp := StrToFloat(EngineGrid.Cells[7,selected])*0.00001;
betha := (2*pi*Nxx)/(60*vars[10]*Mp*pch()*pch());
Wk := vars[4]/vars[3]; // Частота качки
WTs := 1/Ts; // Частота для tao системы
T1 := 1 / Wk; // Первая постоянная времени для построения ЖЛАХ
Kw := sqrt(2)*(sqrt(2)*vars[3]+betha*vars[1])/(pi*vars[5]/180.0/60.0);
// Вывод численных значений
Label22.Caption:='b = '+FloatToStrF(betha,ffFixed,10,5)+' рад/(сек*кг*м)'; // Вывод значения betha
Label71.Caption:='Wk = '+FloatToStrF(Wk,ffFixed,10,5)+' 1/сек';
Label72.Caption:='L(Wk) = '+FloatToStrF(20*log10(Kw/Wk),ffFixed,10,5); // Вывод значения betha
// Случай если Wk больше WTs
if WTs < Wk then
begin
MmEvent.Lines.Add('Частота системы (1/taus) меньше, чем частота качки Wk,'+
'для увеличения точности исходной системы необходимо увеличить добротность системы, иначе точность');
MmEvent.Lines.Add(' будет достигнута только с помощью корректирующего устройства.');
Form1.Enabled := False;
FmChoose.Caption := 'Выбор первой постоянной времени для построения желаемой ЛАХ';
fmChoose.Show; // выбираем Kw
end
else // WTs > Wk
begin
{ //!!! Случай если WTs близко и больше к Wk
if Ts-T1 < 10 then
if Application.MessageBox(st,'Выбор постоянной времени T1',MB_YESNO or MB_ICONASTERISK)=mrYes then
begin
T1 := Ts; // этим мы избегаем коррекции
MmEvent.Lines.Add('Постоянная времени T1 была изменена, для упрощения вида ЛАХ корректирующего устройства, '+
'T1 равна постоянной времени системы.');
end; }
// Стандартный вариант
KwUp := Kw; // Расчёт KwUp
TestT3; // Выбор T3
end;
end;
// Вывод передаточных функций
procedure TForm1.WritePf(Kw, KwUp, Ts, tau1, tau2, T1, T2, T3: real; vibor: byte);
var
ftau1,ftau2 :real;
st1,st2,st3,stdown : string;
begin
MmPf.Font.Size := 10; // Размер шрифта
MmPf.Clear;
// ПФ двигателя
MmPf.Lines.Add('Передаточная функция двигателя:');
MmPf.Lines.Add('');
MmPf.Lines.Add(' '+FloatToStrF(Kdvi, ffFixed, 5, 2));
MmPf.Lines.Add('W(p) = -----------------------');
MmPf.Lines.Add(' p*('+FloatToStr(StrToFloat(EngineGrid.Cells[10,selected])*0.001)+'*p+1)');
MmPf.Lines.Add('');
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.