// Сюда идём со случая 2 если при пепесчёте 1/T3 стало правее 1/tau2
else MmEvent.Lines.Add(s5);
end;
// T3 правее tau2
if (1/T3) >= (1/(vars[9]*0.001)) then
begin
T3 := sqrt(vars[7]*(vars[7]-1))/(3*W0*(vars[7]+1)); // Пересчитываем T3
MmEvent.Lines.Add(s3);
MmEvent.Lines.Add('(1/T3) = '+FloatToStrF((1/T3), ffFixed, 6,3)+'.');
MmEvent.Lines.Add(s4);
Form1.Enabled := False;
FmChooseT3.Show;
State := 3;
end
else DrawGraphics(); // Начинаем рисовать графики
end;
procedure TForm1.SensorGridClick(Sender: TObject);
begin
bbTestCh.Enabled := True;
end;
procedure TForm1.Button7Click(Sender: TObject);
var
Mnom,Wdvn,Mp,Uupr: real;
begin
if Button7.Caption = 'Полный расчёт' then
begin
CopyAppropriate(); // Копируем подходящие по перегрузке и перегреву двигатели
Button7.Caption := 'Расчёт ПФ';
Button1.Enabled := False; // Чтобы не вызвало исключение
MmBase.Lines.Add('Расчитаем передаточную функцию выбранного двигателя, для этого'
+' воспользуемся формулами №1. Для расчёта нажмите кнопку "Расчёт ПФ."');
end
else if Button7.Caption = 'Расчёт ПФ' then
begin
// !!! <тест 5>
if test_res[5].right<5 then
begin
Form1.Enabled:=false;
Form2.SetTest(5);
Form2.Show;
end
else begin
// Временное выключение кнопок
Button1.Enabled := False; // Чтобы не вызвало исключение
Button5.Enabled := False; // Так же с редуктором
// Для построения ПФ двигателя
Mnom:=StrToFloat(EngineGrid.Cells[6,selected])*0.00001;
Wdvn:=2*pi*StrToFloat(EngineGrid.Cells[8,selected])/60;
Mp:=StrToFloat(EngineGrid.Cells[7,selected])*0.00001; // пусковой момент
Uupr:=StrToFloat(EngineGrid.Cells[12,selected]); // Напряжение управления
Kdvi:=Mnom*Wdvn/((Mp-Mnom)*Uupr); // Коэффициент усиления двигателя
// Построение ПФ двигателя
MmBase.Lines.Add('Передаточная функция выбранного двигателя, '+EngineGrid.Cells[1,selected]+':');
MmBase.Lines.Add('');
MmBase.Lines.Add(' '+FloatToStrF(Kdvi, ffFixed, 5, 2));
MmBase.Lines.Add(' W(p) = -----------------------');
MmBase.Lines.Add(' p*('+FloatToStr(StrToFloat(EngineGrid.Cells[10,selected])*0.001)+'*p+1)');
MmBase.Lines.Add('');
MmBase.Lines.Add('Для продолжения нажмите кнопку "Дальше >>".');
{// Ставим курсор в начало MmRedu !!!
MmBase.SetFocus;
MmBase.SelStart := Memo1.Perform(EM_LINEINDEX, 0, 0); // Даёт 0 строку
MmBase.Perform(EM_SCROLLCARET, 0, 0);}
Button7.Caption := 'Дальше >>';
end; //else begin
end // else if Button7.Caption = 'Расчёт ПФ' then
else if Button7.Caption = 'Дальше >>' then
begin
// !!! <тест 2>
if test_res[2].right<5 then
begin
Form1.Enabled:=false;
Form2.SetTest(2);
Form2.Show;
end
else begin
// Очистка полей ввода данных редуктора
Edit19.Clear;
Edit11.Clear;
Edit12.Clear;
PageControl1.ActivePageIndex:=2;
// !!! <тест 2>
// Вывод информации о расчёте редуктора
mmRedu.Clear;
mmRedu.Lines.Add('Подходящий двигатель выбран, теперь необходимо выбрать редуктор и пересчитать двигатель с учётом редуктора.');
mmRedu.Lines.Add('Выбирите число ступеней редуктора. С точки зрения уменьшения габаритов и люфтов редуктора число ступеней'+
' желательно брать наименьшим. Для определения передаточного числа каждой ступени редуктора пользуйтесь номограммой №1.'+
' Диаметры нечётных шестерён редуктора примем равными 10 мм, тогда для расчёта диаметров чётных шестерён'+
' редуктора используйте "Рассчётные формулы №2"');
mmRedu.Lines.Add('По номоргамме №2 определяют отношение момента инерции редуктора к моменту инерции первой ступени.'+
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.