Проектирование аксиально–поршневого насоса с наклонным диском
Автоматизация и механизация производства. Выполнение параметризированных 3D моделей сборочных единиц насоса в программе КОМПАС 3D. Разработка математического ядра в среде Delphi7 для выполнения расчетов параметров насоса, пользовательского интерфейса.
Рубрика | Производство и технологии |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 01.04.2016 |
Размер файла | 3,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
«Ковровская государственная технологическая академия имени В.А. Дегтярева»
Кафедра ПМ и САПР
Курсовая работа
по дисциплине «Разработка САПР»
на тему «Проектирование аксиально-поршневого насоса с наклонным диском»
Работу проверил Котов В.В.
Работу выполнили ст.гр. С-108
Суздалева Н.М.
Бондаренко А.О.
Юдин И.Д.
Ковров 2012
Введение
Автоматизация и механизация производства, создание транспортных средств, автоматических устройств часто невозможны без объемного гидропривода. Основой объемного гидропривода являются насосы и гидродвигатели - гидроцилиндры, поворотные двигатели, гидромоторы. Самыми распространенными из них являются роторные гидромашины: шестеренные, пластинчатые, аксиально-поршневые с наклонным диском, аксиально-поршневые с наклонным блоком. Эти гидромашины принципиально обратимы, т.е. могут работать в режиме насосов и гидромоторов. Конструктивные отличия деталей ходовой части гидромашин, работающих в режиме насоса или гидромотора, связаны с тем, что насосы могут работать как в режиме самовсасывания, так и с подпиткой, а гидромоторы - с переменным направлением вращения вала и со сменой полостей нагнетания и всасывания. В большей мере эти отличия проявляются у шестеренных и пластинчатых гидромашин.
Для ускорения и повышения качества конструкторских работ широкое применение в гидромашиностроении получили системы автоматизированного проектирования (САПР). САПР, выполняют расчет различных гидромашин; обеспечивают связь с различными системами CAD/CAE; управляют проектными данными, полученными в ходе проведенных расчетов.
В настоящее время на большинстве машиностроительных предприятий и предприятий строительной отрасли активно внедряются средства автоматизации процесса управления изготовлением и выпуском готовой продукции.
В современном мире невозможно представить себе автоматизацию какого-либо процесса без использования ЭВМ. Для разработки любых элементов в короткие сроки, с заданными показателями качества должны применяться современные информационные технологии.
Задание к курсовой работе
Спроектировать аксиально - поршневой насос с наклонным диском:
1. Выполнить параметризированные 3D модели сборочных единиц насоса в программе КОМПАС 3D.
2. Разработать математическое ядро в среде Delphi7 для выполнения расчетов основных параметров насоса.
3. Разработать пользовательский интерфейс в среде Delphi7.
4. Осуществить связь программы КОМПАС 3D и среды Delphi7.
delphi интерфейс модель сборочный
Теоретическая часть
Общая характеристика и принципиальная схема
Аксиально-плунжерные и аксиально-поршневые гидромашины отличаются тем, что в первых в качестве вытеснителей используются плунжеры, а во вторых -- поршни. Наибольшее распространение получили аксиально - плунжерные гидромашины.
Выпускают гидромашины с наклонным диском (шайбой) и с наклонным блоком цилиндров.
Рис. 1. Принцип устройства аксиально-плунжерной гидромашины с наклонным диском.
Одним из достоинств аксиально-плунжерных гидромашин является возможность регулирования рабочего объема. Изменение рабочего объёма осуществляется путём изменения угла наклона диска или угла наклона оси блока цилиндров. Максимальный угол наклона у машин с наклонным диском ограничен 15-18°. Это ограничение связано с ростом контактных нагрузок между деталями гидромашины. В то же время, в машинах с наклонным блоком рост угла наклона ограничен только конструктивными параметрами, и может достигать 40° (обычно до 25°).
Принцип работы
При вращении вала гидромашины (рис. 1) плунжер, находящийся внизу (в нижней мёртвой точке), перемещается наверх, и одновременно совершает движение вдоль оси насоса «от края» блока цилиндров -- происходит всасывание. Одновременно с этим тот плунжер, который находился вверху, перемещается вниз, и совершает движение «к краю» блока цилиндров -- происходит нагнетание. Плунжеры, осуществляющие в данный момент нагнетание, соединены вместе одной канавкой -- и образуют полость высокого давления; а те плунжеры, которые осуществляют в данный момент всасывание, соединены вместе другой канавкой -- и образуют полость низкого давления. Полости высокого и низкого давления отделены друг от друга. Точка, в которой плунжер переходит от полости высокого давления к полости низкого давления, называется верхней мёртвой точкой, а там где происходит обратный переход, расположена нижняя мёртвая точка. В момент перехода плунжера через одну из мёртвых точек образуются запертые объемы.
Классификация гидромашин
Рис. 2 Обобщенная классификация гидромашин
Практическая часть
Проектирование 3D моделей сборочных единиц насоса в КОМПАС 3D
1. Блока цилиндров.
Рис. 3. Блок цилиндров
2. Вала.
Рис. 4. Вал.
3. Гидростатической опоры.
Рис. 5. Гидростатическая опора
4. Корпуса.
Рис. 6. Корпус
5. Поршня.
Рис. 7. Поршень
Сепаратора.
Рис. 8. Сепаратор
6. Создание сборки.
Рис. 9. Сборка аксиально - поршневого насоса с наклонным диском
Рис. 10. Разрез сборки аксиально - поршневого насоса с наклонным диском
Разработка пользовательского интерфейса
Запуск программы производится командным файлом «Project1.exe». На экране появляется главное рабочее окно «Проектирование аксиально-поршневого насоса с наклонным диском»:
Рис. 11. Главное рабочее окно программы
Работа с программой сводится к работе главного рабочего окна.
Для открытия исходного варианта необходимо воспользоваться командой «Файл/»«Открыть»:
После чего в появившемся диалоговом окне выбирается необходимый файл:
Рис. 12. Выбор необходимого файла
В главном окне выводятся исходные данные:
Рис. 13. Главное окно с введенными исходными данными
Так же можно создать вариант исходных данных, для этого необходимо выбрать команду «Файл» /«Новый», после чего поля редактирования параметров очищаются и заполняются пользователем новыми данными.
При необходимости новые данные можно сохранить, нажав команду «Файл»/«Сохранить как…»:
При вводе имени файла новые исходные данные будут сохранены под этим именем.
После того, как исходные данные будут введены, нужно произвести расчеты: конструктивных параметров. Для этого необходимо воспользоваться командой «Расчет параметров».
После этого появляется окно «Параметризация», где выводятся расчетные данные:
Рис. 14. Окно «Параметризация» с рассчитанными конструктивными параметрами.
В этом окне при нажатии кнопки «Открыть сборку» осуществляется открытие окна КОМПАС 3D с необходимой сборкой. При нажатии на кнопку «Элементы сборки» появится перечень всех элементов сборки. При нажатии на кнопку «Переменные» появится перечень параметризированных переменных.
Рис. 15. Осуществление связи программы КОМПАС 3D и среды Delphi7
Рис. 16. Изменение параметров сборки в соответствии с рассчитанными в среде Delphi7
Заключение
В данной курсовой работе мы спроектировали аксиально - поршневой насос с наклонным диском.
Литература
1. Круглов, В.Ю. Расчет объемных гидромашин [Текст] / В.Ю. Круглов, Д.В. Багаев // Учеб. пособие - 2005г.
2. Учебное пособие « Азбука Компас».
Приложение №1
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Shellapi, ComObj, LDefin2D,ksTLB,LDefin3D,
ComCtrls, Unit2;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Memo1: TMemo;
Memo2: TMemo;
Memo4: TMemo;
Memo3: TMemo;
Label3: TLabel;
Label4: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TPartVar=RECORD
VarName:STRING; // имя переменной
VarValue:REAL; // значение переменной
VarNote:STRING; // комментарий к переменной
END;
TPartVars=ARRAY OF TPartVar;
var
Form1: TForm1;
Kompas :KompasObject;
doc : ksDocument3D;
kompasHandle:THandle;
Newpart: Integer;
iPart: ksPart;
iSketchEntity: ksEntity;
iSketchDef: ksSketchDefinition;
iPlaneEntity: ksEntity;
iSketchDocument2D: ksDocument2D;
iBaseExtrusionEntity: ksEntity;
iBaseExtrusionDef: ksBaseExtrusionDefinition;
iBaseRotatedEntity: ksEntity;
iBaseRotatedDef: ksBaseRotatedDefinition;
iRotatedProperty: ksRotatedParam;
iBossRotatedEntity: ksEntity;
iBossRotatedDef: ksBossRotatedDefinition;
pb,pd1,pd2,pl: real;
i:integer;
x1, x2, x3, x4, y1, y2, y3, y4, rx1,rx2,ry1,ry2:real;
x7, x8, x9, x10, x11, x12, x13, x14, y7, y8, y9, y10 ,y11 ,y12, y13, y14, oy:real;
c:TStringList;
implementation
{$R *.dfm}
function StartKompas(filename:string):boolean;
const ka='Kompas.Application.5';
begin
// подключение к КОМПАС 3D
if Kompas = nil then
begin
Kompas:= KompasObject( CreateOleObject('Kompas.Application.5') );
if Kompas <> nil then
Kompas.Visible := true;
end;
Doc:= ksDocument3D(Kompas.Document3D);
Doc.Open(Trim(filename), False);
kompas.ActivateControllerAPI;
end;
procedure ReadParts(s:TStringList);
var i,num:word;
parts:ksPartCollection;
part:ksPart;
begin
// получение ссылки на список деталей
parts:=ksPartCollection(doc.PartCollection(true));
// число деталей
num:=parts.GetCount;
s.Clear;
// деталь с номером -1 есть сама сборка
s.Add(ksPart(doc.GetPart(-1)).name);
// цикл по деталям
for i:=0 to num-1 do
begin
// получение ссылки на деталь номер i
part:=ksPart(parts.GetByIndex(i));
// помещаем имя детали в список
s.Add(part.name);
end
end;
function GetPartVars(partname:STRING):TPartVars;
var vr:ksVariableCollection;
parts:ksPartCollection;
part:ksPart;
univar:ksVariable;
top,cur,vrr:TTreeNode;
j, numpart:WORD;
begin
parts:=ksPartCollection(doc.PartCollection(true));
// ссылка на деталь с именем partname
part:=ksPart(parts.GetByName(partname,True,True));
// ссылка на список переменных детали
vr:=ksVariableCollection(part.VariableCollection);
// цикл по переменным детали
numpart:=vr.GetCount;
SetLength(result,numpart); //11
for j:=0 to numpart-1 do
begin
// ссылка на отдельную переменную
univar:=ksVariable(vr.GetByIndex(j));
with result[j] do
begin
VarName:=univar.name;
VarNote:=univar.note;
VarValue:=univar.value
end
end
end;
procedure ChangeVar(partname, varname: STRING; value_:REAL);
var vr:ksVariableCollection;
parts:ksPartCollection;
part:ksPart;
vvv:ksVariable;
begin
// Список деталей
parts:=ksPartCollection(doc.PartCollection(true));
// Ищем деталь по имени
part:=kspart(parts.GetByName(partname,true,true));
// Список переменных детали
vr:=ksVariableCollection(part.VariableCollection);
// Ищем переменную по имени
vvv:=ksVariable(vr.GetByName(varname,true,true));
// Начинаем редактировать деталь
part.BeginEdit;
// Меняем значение переменной
vvv.value:=value_;
// Обновляем модель
part.Update;
part.RebuildModel;
// Завершаем редактирование детали с сохранением изменений
part.EndEdit(true);
// Обновляем сборку
parts.refresh
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if kompas<>nil then kompas:=nil;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
//открытие компаса
if Kompas = nil then
begin
Kompas:= KompasObject( CreateOleObject('Kompas.Application.5') );
if Kompas <> nil then
Kompas.Visible := true;
end;
Doc:= ksDocument3D(Kompas.Document3D);
Doc.Create(false, true); //видимый режим, деталь
doc:= ksDocument3D(Kompas.ActiveDocument3D);
if doc <> nil then
begin //0
{x1:=strtoint(Edit1.Text);
x2:=strtoint(Edit2.Text);
x3:=strtoint(Edit3.Text);
x4:=strtoint(Edit4.Text);
y1:=strtoint(Edit5.Text);
y2:=strtoint(Edit6.Text);
y3:=strtoint(Edit7.Text);
y4:=strtoint(Edit8.Text);
rx1:=strtoint(Edit9.Text);
rx2:=strtoint(Edit11.Text);
ry1:=strtoint(Edit10.Text);
ry2:=strtoint(Edit12.Text); }
iPart := ksPart(Doc.GetPart(pTop_Part)); // новый компонент
iSketchEntity := ksEntity( iPart.NewEntity( o3d_sketch ));
// интерфейс свойств эскиза
iSketchDef := ksSketchDefinition(iSketchEntity.GetDefinition);
//интерфейс плоскости XOY
iPlaneEntity := ksEntity(iPart.GetDefaultEntity( o3d_planeXOY ));
iSketchDef.SetPlane( iPlaneEntity ); // установим плоскость XOY базовой для эскиза iSketchDef.Angle := 45; // угол поворота эскиза
iSketchEntity.Create;
// интерфейс редактора эскиза
iSketchDocument2D := ksDocument2D(iSketchDef.BeginEdit);
//ksLineSeg(координаты точек начала, конца, тип линии)
iSketchDocument2D.ksLineSeg( x1, y1, x2, y2, 1 );
iSketchDocument2D.ksLineSeg( x2, y2, x3, y3, 1 );
iSketchDocument2D.ksLineSeg( x3, y3, x4, y4, 1 );
iSketchDocument2D.ksLineSeg( x4, y4, x1, y1, 1 );
iSketchDocument2D.ksLineSeg( rx1, ry1, rx2, ry2, 3 ); //ось вращнеия
iSketchDef.EndEdit; // завершение редактирования эскиза
//вращение
iBaseRotatedEntity := ksEntity(iPart.NewEntity( o3d_baseRotated ));//интерфейс вращения
iBaseRotatedDef := ksBaseRotatedDefinition(iBaseRotatedEntity.GetDefinition); // интерфейс базовой операции вращения
iRotatedProperty := ksRotatedParam(iBaseRotatedDef.RotatedParam);
iRotatedProperty.Direction := dtNormal;//направление вращения
iRotatedProperty.ToroidShape := false;
iBaseRotatedDef.SetThinParam( true, dtBoth, 1, 1 ); // тонкая стенка в два направления
iBaseRotatedDef.SetSideParam( true, 360 ); //прямое направление, угол вращения
iBaseRotatedDef.SetSketch( iSketchEntity ); // эскиз операции вращения
iBaseRotatedEntity.Create; // создать операцию
// конец вращения
end; //0
doc:=nil;
Kompas:=nil;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//открытие компаса
if Kompas = nil then
begin
Kompas:= KompasObject( CreateOleObject('Kompas.Application.5') );
if Kompas <> nil then
Kompas.Visible := true;
end;
Doc:= ksDocument3D(Kompas.Document3D);
Doc.Create(false, false); //видимый режим, сборка
doc:= ksDocument3D(Kompas.ActiveDocument3D);
if doc <> nil then
begin //0
{x1:=strtoint(Edit1.Text);
x2:=strtoint(Edit2.Text);
x3:=strtoint(Edit3.Text);
x4:=strtoint(Edit4.Text);
y1:=strtoint(Edit5.Text);
y2:=strtoint(Edit6.Text);
y3:=strtoint(Edit7.Text);
y4:=strtoint(Edit8.Text); }
iPart := ksPart(Doc.GetPart(pNew_Part)); // новый компонент
iSketchEntity := ksEntity( iPart.NewEntity( o3d_sketch ));
//интерфейс свойств эскиза
iSketchDef := ksSketchDefinition(iSketchEntity.GetDefinition);
//интерфейс плоскости
iPlaneEntity := ksEntity(iPart.GetDefaultEntity( o3d_planeYOZ ));
iSketchDef.SetPlane( iPlaneEntity ); // установим плоскость XOY базовой для эскиза iSketchDef.Angle := 45; // угол поворота эскиза
iSketchEntity.Create;
// интерфейс редактора эскиза
iSketchDocument2D := ksDocument2D(iSketchDef.BeginEdit);
//координаты центра круга, диаметр, тип линии
iSketchDocument2D.ksLineSeg( x1, y1, x2, y2, 1 );
iSketchDocument2D.ksLineSeg( x2, y2, x3, y3, 1 );
iSketchDocument2D.ksLineSeg( x3, y3, x4, y4, 1 );
iSketchDocument2D.ksLineSeg( x4, y4, x1, y1, 1 );
iSketchDef.EndEdit; // завершение редактирования эскиза
iBaseExtrusionEntity := ksEntity(iPart.NewEntity( o3d_baseExtrusion ));
// интерфейс свойств базовой операции выдавливания
iBaseExtrusionDef := ksBaseExtrusionDefinition(iBaseExtrusionEntity.GetDefinition);
iBaseExtrusionDef.directionType:=2;
iBaseExtrusionDef.SetSideParam( false,0, 5, 0, false );
iBaseExtrusionDef.SetSketch( iSketchEntity ); // эскиз операции выдавливания
iBaseExtrusionEntity.Create; // создать операцию
end;
doc:=nil;
Kompas:=nil;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
StartKompas('C:\Documents and Settings\Admin\Рабочий стол\12.12.2012\12.12.2012\переделанные детали2\Сборка.a3d');
end;
procedure TForm1.Button4Click(Sender: TObject);
var
i:WORD;
begin
c:=TStringList.Create;
ReadParts(c);
//Label1.Caption:='Сборка '+c[0];
FOR i:=1 TO c.Count-1 DO
Memo3.Lines.Add('Деталь №'+IntToStr(i)+' '+c[i]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Text:='';
memo2.Text:='';
memo3.Text:='';
memo4.Text:='';
end;
procedure TForm1.Button5Click(Sender: TObject);
var
t:TPartVars;
i:WORD;
begin
c:=TStringList.Create;
ReadParts(c);
//Label1.Caption:='Сборка '+c[0];
// переменные первой детали
t:=GetPartVars(c[1]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[2]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[9]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[10]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[17]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[18]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[19]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[20]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[21]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[22]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[23]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
t:=GetPartVars(c[24]);
for i:=0 to Length(t)-1 do
Memo4.Lines.Add(t[i].VarName+'='+FloatToStr(t[i].VarValue));
Memo4.Lines.Add(' ');
end;
procedure TForm1.Button6Click(Sender: TObject);
var
c:TStringList;
t:TPartVars;
i:WORD;
r:string;
g:char;
begin
c:=TStringList.Create;
ReadParts(c);
// Label1.Caption:='Сборка '+c[0];
// переменные первой детали
t:=GetPartVars(c[1]);
ChangeVar(c[1],'L',(unit2.L));
ChangeVar(c[1],'dvo',(unit2.Db));
ChangeVar(c[1],'dvk',(unit2.Dk));
ChangeVar(c[2],'dvo',(unit2.Db));
ChangeVar(c[2],'dvt',(unit2.Dvt));
ChangeVar(c[9],'d1',strtofloat(form2.Edit24.text));
ChangeVar(c[9],'d2max',(unit2.dmax));
ChangeVar(c[10],'dn',(unit2.dn));
ChangeVar(c[10],'lvt',(unit2.Lvt));
ChangeVar(c[10],'rnc',(unit2. rnc));
ChangeVar(c[10],'dvt',(unit2.Dvt));
ChangeVar(c[10],'rc',(unit2.rc));
ChangeVar(c[10],'Lp1',(unit2.Lp));
ChangeVar(c[17],'dn',(unit2.dn));
ChangeVar(c[17],'lvt',(unit2.Lvt));
ChangeVar(c[17],'rnc',(unit2. rnc));
ChangeVar(c[17],'dvt',(unit2.Dvt));
ChangeVar(c[17],'rc',(unit2.rc));
ChangeVar(c[17],'Lp1',(unit2.Lp));
ChangeVar(c[18],'dn',(unit2.dn));
ChangeVar(c[18],'lvt',(unit2.Lvt));
ChangeVar(c[18],'rnc',(unit2. rnc));
ChangeVar(c[18],'dvt',(unit2.Dvt));
ChangeVar(c[18],'rc',(unit2.rc));
ChangeVar(c[18],'Lp1',(unit2.Lp));
ChangeVar(c[19],'dn',(unit2.dn));
ChangeVar(c[19],'lvt',(unit2.Lvt));
ChangeVar(c[19],'rnc',(unit2. rnc));
ChangeVar(c[19],'dvt',(unit2.Dvt));
ChangeVar(c[19],'rc',(unit2.rc));
ChangeVar(c[19],'Lp1',(unit2.Lp));
ChangeVar(c[20],'dn',(unit2.dn));
ChangeVar(c[20],'lvt',(unit2.Lvt));
ChangeVar(c[20],'rnc',(unit2. rnc));
ChangeVar(c[20],'dvt',(unit2.Dvt));
ChangeVar(c[20],'rc',(unit2.rc));
ChangeVar(c[20],'Lp1',(unit2.Lp));
ChangeVar(c[21],'dn',(unit2.dn));
ChangeVar(c[21],'lvt',(unit2.Lvt));
ChangeVar(c[21],'rnc',(unit2. rnc));
ChangeVar(c[21],'dvt',(unit2.Dvt));
ChangeVar(c[21],'rc',(unit2.rc));
ChangeVar(c[21],'Lp1',(unit2.Lp));
ChangeVar(c[22],'dn',(unit2.dn));
ChangeVar(c[22],'lvt',(unit2.Lvt));
ChangeVar(c[22],'rnc',(unit2. rnc));
ChangeVar(c[22],'dvt',(unit2.Dvt));
ChangeVar(c[22],'rc',(unit2.rc));
ChangeVar(c[22],'Lp1',(unit2.Lp));
ChangeVar(c[23],'dn',(unit2.dn));
ChangeVar(c[23],'lvt',(unit2.Lvt));
ChangeVar(c[23],'rnc',(unit2. rnc));
ChangeVar(c[23],'dvt',(unit2.Dvt));
ChangeVar(c[23],'rc',(unit2.rc));
ChangeVar(c[23],'Lp1',(unit2.Lp));
ChangeVar(c[24],'dn',(unit2.dn));
ChangeVar(c[24],'lvt',(unit2.Lvt));
ChangeVar(c[24],'rnc',(unit2. rnc));
ChangeVar(c[24],'dvt',(unit2.Dvt));
ChangeVar(c[24],'rc',(unit2.rc));
ChangeVar(c[24],'Lp1',(unit2.Lp));
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IniFiles, Menus;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label60: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label61: TLabel;
Label62: TLabel;
Label30: TLabel;
Label29: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label63: TLabel;
Label37: TLabel;
Label38: TLabel;
Label43: TLabel;
Label44: TLabel;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
Label64: TLabel;
Label50: TLabel;
Label51: TLabel;
Label45: TLabel;
Label47: TLabel;
Label48: TLabel;
Label49: TLabel;
Label46: TLabel;
Label53: TLabel;
Label54: TLabel;
Label52: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Edit21: TEdit;
Edit22: TEdit;
Edit23: TEdit;
Edit24: TEdit;
Edit25: TEdit;
Edit26: TEdit;
Edit29: TEdit;
Edit30: TEdit;
Edit34: TEdit;
Edit35: TEdit;
Edit36: TEdit;
Edit37: TEdit;
Edit38: TEdit;
Edit40: TEdit;
Edit41: TEdit;
Edit42: TEdit;
Edit43: TEdit;
Edit44: TEdit;
Edit45: TEdit;
Edit46: TEdit;
Edit47: TEdit;
Edit48: TEdit;
Edit49: TEdit;
Edit50: TEdit;
Edit51: TEdit;
Edit52: TEdit;
Edit53: TEdit;
Edit54: TEdit;
SaveDialog1: TSaveDialog;
MainMenu1: TMainMenu;
OpenDialog1: TOpenDialog;
N3: TMenuItem;
N1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
Label55: TLabel;
procedure N1Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
MyIniFile: TIniFile;
FName: string;
//1.1.2.1 предварительный расчет
dn,V0,Cp,Ap,z,gamma1,gamma,Kd,Fp,Dcil :real;
//1.1.2.2 Расчет поршня
h, Ks,Lvt, Lp, Dvt, rc,Dc,Dcf,rnc:real; it: integer;
//1.1.2.3 расчет сил и контактных нагрузок
pmax,pn,Rdel,Rkc, cigmakcp,cigmakmax,dc1,dnc1,Rgc,dnc:real;
//1.1.2.4 Расчет гидростатической опоры
NNNN,F0,d1,d2,omega,n,r,rcil,Drsh,dns,d4,h1,lnsh,b_zazor,S,dmax,m0,P1,l:real;
pb,P2,P3,cigmab,P4,mutr,mp,Pimax,pci,Pprdelta:real;
deltaPpr,Ppr,pr,Pot, deltaPi,Pnpi,deltaP ,Fn,dnsh,Pnp:real;
//1.1.2.5 Проверочный расчет гидростатической опоры
Fot,Qyt,hs,mu,kdr,ldr,rdr :real;
//1.1.2.6. Расчет вала
Mk,numex,tau,Dk,Tcum,Sm,a,b,c,Rb, Ra,Ma,Mb,Mc, Mmax,Mt,Me, cigmat,nn, Db,cigma, koaf, Wp:real;
//проверочный расчет вала на сопротивление усталости
cigmaa,Wk,taum,cigmam,ncigma,cigma_1,kcigma,Ecigma,kcicigma,ntau:real;
tau_1,taua,ktau,Etau,kcitau,nnn, E,lyambda,J:real;
//1.2.2.1 расчет гидростатической опоры поршня
Pnn, Pgb,d_1,d_2,d_by,d_b,a_by,nb,nbmax,Tn,rc1,rc2,c1,c2,R1,R2,delta,cigmasr_, cigmasr:real;
cigmac1,cigmam1,cigmamax1,dbu,b_,bb,cc,cmax,bmin:real;
//1.2.2.3. Расчет сил и моментов, действующих на блок цилиндров
Pjmax,m,Mpj,f,Pt1,Pt2,T1,T2,lc,Mpt1,Pt,
Mcumpt,Mpt2,Mpt,cigmamax1_,cigmasr_1,dp,ro:real;
//1.2.2.4. расчет уравновешенности блока от действия инерционных моментов //и моментов от действия сил давления жидкости на поршне
Mi,Mpp,Monp,Myp :real;
//1.2.2.5 расчет сил гидростатического давления, прижимающих и отжимающих блок
//распределитель
Pprux,Sok,Pprr,pott,lyamba,Rn,Rvn,rnn,rvnn:real;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.N1Click(Sender: TObject);
var
i: integer;
Control: TControl;
begin
OpenDialog1.FileName:=FName;
if OpenDialog1.Execute then
begin
FName:=OpenDialog1.FileName;
for i:=1 to 54 do
begin
MyIniFile:=TIniFile.Create(ChangeFileExt(FName,'.ini'));
Control:=Form2.FindChildControl('Edit'+inttostr(i));
TEdit(Control).Text:=MyIniFile.ReadString('Входные данные', inttostr(i),'' );
MyIniFile.Free;
end;
end;
end;
procedure TForm2.N5Click(Sender: TObject);
var
i: integer;
Control: TControl;
begin
FName:='';
SaveDialog1.FileName:=FName;
if SaveDialog1.Execute then
begin
FName:=SaveDialog1.FileName;
for i:=1 to 54 do
begin
MyIniFile:=TIniFile.Create(ChangeFileExt(FName,'.ini'));
Control:=Form2.FindChildControl('Edit'+inttostr(i));
MyIniFile.WriteString('Входные данные', inttostr(i), TEdit(Control).Text);
MyIniFile.Free;
end;
end;
end;
procedure TForm2.N6Click(Sender: TObject);
var
i: integer;
Control: TControl;
begin
for i:=1 to 54 do
begin
Control:=Form2.FindChildControl('Edit'+inttostr(i));
TEdit(Control).Text:='';
end;
end;
procedure TForm2.N4Click(Sender: TObject);
begin
form1.show;
form2.Visible:= false;
//1.1.2.1 предварительный расчет
//диаметр плунжера(поршня)
Cp:= strtofloat(edit16.Text);
Ap:= strtofloat(edit15.Text);
V0:= strtofloat(edit1.Text);
z:=strtofloat(edit5.Text);
gamma:=strtofloat(edit6.Text);
//gamma:=(gamma1*pi)/180;
Kd:=2/(1+cos(gamma*pi/180));
dn:= 2*exp(1/3*ln((V0*1000*sin(pi/z))/(pi*z*Kd*(2+Cp*(Ap-1))*(sin(gamma*pi/180)/cos(gamma*pi/180)))));
dn:=22.00;
form1.Memo1.Lines.Add('Диаметр поршня='+formatfloat('0.00',dn));
//площадь поршня
Fp:= pi*(dn*dn/4);
form1.Memo1.Lines.Add('Площадь поршня='+formatfloat('0.00',Fp));
//диаметр разноски
Dc:=V0*1000/(Fp*(sin(gamma*pi/180)/cos(gamma*pi/180))*z);
form1.Memo1.Lines.Add('Диаметр разноски='+formatfloat('0.00',Dc));
//1.1.2.2 Расчет поршня
//ход поршня
h:=Dc*(sin(gamma*pi/180)/cos(gamma*pi/180));
form1.Memo1.Lines.Add('Ход поршня='+formatfloat('0.00',h));
//коэффициент хода поршня
Ks:=h/dn;
//длина втулки (Lvt) в отверстии блока цилиндров
Lvt:=2.2*dn;
form1.Memo1.Lines.Add('Длина втулки в блоке цилиндров='+formatfloat('0.00',Lvt));
//длина поршня
Lp:=h+Lvt;
form1.Memo1.Lines.Add('Длина поршня='+formatfloat('0.00',Lp));
//диаметр втулки в отверстии блока цилиндров
Dvt:=dn+4;
form1.Memo1.Lines.Add('Диаметр втулки в блоке цилиндров='+formatfloat('0.00',Dvt));
//диаметр сферы поршня
Dcf:=0.75*dn;
//form1.Memo1.Lines.Add('Диаметр сферы поршня='+floattostr(Dcf));
//радиус сферической головки поршня
rc:=Dcf/2;
form1.Memo1.Lines.Add('Радиус сферической головки поршня='+formatfloat('0.00',rc));
//радиус среза сферической головки поршня
rnc:=rc*sin(gamma*pi/180);
form1.Memo1.Lines.Add('Радиус среза сферической головки поршня='+formatfloat('0.00',rnc));
//1.1.2.3 расчет сил и контактных нагрузок
//давление нагнетания
pn:=12.6;
dnc:=rnc*2;
//максимальное давление в цилиндре
pmax:=1.4*pn;
//сила,действующая на сферическую головку поршня
Rdel:=pn*(pi*dcf*dcf/4*cos(gamma*pi/180));
//сила давления жидкости на сферу
Rgc:=pn*(pi*dcf*(1-sqr(dnc/dcf))/(8*ln(dcf/dnc)));
//величина максимального значения контактного напряжения
cigmakmax:=(3*rc*cigmakcp/2*sqrt(rc*rc-rnc*rnc))*(sqrt(rc*rc-rnc*rnc)/rc);
//полная контактная сила
Rkc:=pi*cigmakcp*(sqr(rc-rnc));
//определеяющие размеры сферы
dc1:=dcf/dn;
dnc1:=dnc/dcf;
//контактная сила
Rkc:=Rdel-Rgc;
//среднее контактное напряжение на сфере поршня
cigmakcp:=Rkc/(pi/4*(dcf*dcf-dnc*dnc));
//сила, действующая на сферическую головку поршня
Rdel:=Rkc+Rgc;
//проверка по контактным напряжениям
//1.1.2.4 Расчет гидростатической опоры
d2:=strtofloat(edit23.Text);
d1:=strtofloat(edit24.Text);
//площадь,образованная в торцевом зазоре
F0:= (pi/12)*(d1*d1+d2*d2+d1*d2);
//form1.Memo1.Lines.Add('Площадь,образованная в торцевом зазоре='+floattostr(F0));
// Fp:=F0*1.15;
//усилие гидростатического прижима
NNNN:=pn*Fp/(cos(gamma*pi/180));
//form1.Memo1.Lines.Add('Усилие гидростатического прижима='+floattostr(NNNN));
n:=strtofloat(edit7.Text);//2500;
// угловая скорость вращения блока цилиндров
omega:=pi*n/30;
//радиус разноски осей гидростатических опор
r:=dc/2*(cos(gamma*pi/180));
//form1.Memo1.Lines.Add('Радиус разноски осей гидростатических опор='+floattostr(r));
//диаметр разноски наклонной шайбы
Drsh:=dc/(cos(gamma*pi/180));
//form1.Memo1.Lines.Add('Диаметр разноски наклонной шайбы='+floattostr(Drsh));
//диаметр головки поршня
h1:=1.5;
d4:=15;
dnsh:=2*dc/2-d4-2*h1;
//form1.Memo1.Lines.Add('Диаметр dnsh='+floattostr(dnsh));
//длина окружности, на которой расположены головки поршней
lnsh:= pi*Drsh;
//form1.Memo1.Lines.Add('Длина окружности, на которой расположены головки поршней='+floattostr(lnsh));
//суммарный зазор между гидростатическими опорами
b_zazor:=strtofloat(edit21.Text);
S:=b_zazor*z;
//максимальный диаметр кольцевой поверхности гидростатической опоры
dmax:=(lnsh+S)/z;
form1.Memo1.Lines.Add('Максимальный диаметр опоры='+formatfloat('0.00',dmax));
//суммарное усилие прижима гидростатической опоры, предотвращающее поворот
//ее под действием центробежной силы инерции
l:=dn/2;// плечо приложения силы
m0:=0.05;
P1:=((2*m0*r*omega*omega*l*cos(gamma*pi/180))/dmax)*((z+1)/2);
//суммарное усилие поршней необходимое для перемещения (z+1)/2
pb:=0.5;//разрежение во вссасывающем патрубке насоса
P2:= pb*Fp*(z+1)/2 ;
//суммарное усилие, необходимое для уплотнения (z+1)/2 поршней,
//соединенных с полостью всысывания
cigmab:=0.5;
P3:=Fp*cigmab*cos(gamma*pi/180)*(z+1)/2;
//суммарное усилие трения (z+1)/2 поршней, совершающих вход всасывыния
mutr:=strtofloat(edit9.Text);
mp:=0.1;
P4:=mutr*(P3*(sin(gamma*pi/180)/cos(gamma*pi/180))+mp*r*omega*omega)*(z+1)/2;
//суммарная сила инерции, действующая на поршни
if z=5 then pci:=1.62;
if z=7 then pci:=2.24;
if z=9 then pci:=2.88;
if z=11 then pci:=3.5;
if z=13 then pci:=4.14;
if z=15 then pci:=4.78;
Pimax:=pci*omega*omega*mp*r*(sin(gamma*pi/180)/cos(gamma*pi/180));
//результирующая сила
Pprdelta:=P1+P2+P3+P4+Pimax;
//усилие трения, обеспечивающее прижим гидростатической опоры к плоскости
//наклонной шайбы
deltaPpr:=0.15*(Pimax+P1+P2);
Ppr:=Pprdelta+deltaPpr;
//усилие отжима, возникающие в зазоре опорного диска
if Fp>F0 then pr:=pn
else pr:=(2*ln(d2/d1)*dn*dn*pn)/((d2*d2-d1*d1)*cos(gamma*pi/180));
Pot:=(pi*pr/12)*(d1*d1+d2*d2+d1*d2);
//сила прижима гидроскопической опоры к наклонной шайбы
deltaPi:=NNNN-Pot;
Pnpi:=Pnp/z*cos(gamma*pi/180);
deltaP:=deltaPi+Pnpi;
//1.1.2.5 Проверочный расчет гидростатической опоры
//расчет на контактные нагрузки
// площадь кольцевых поверхностей гидростатической опоры
Fot:=pi/4*(d2*d2-d1*d1);
//контактное давление, действующие на тоцевой поверхности гидростатической
//опоры при ходе нагнетания поршня
cigma:=deltaP/Fot;
//расчет утечек
//утечки через щель между гидростатической опорой и упорным диском
hs:=strtofloat(edit26.Text);
mu:=strtofloat(edit4.Text);
Qyt:=(pr*pi*hs*hs*hs)/(6*mu*ln(d2/d1));
//коэффициент дросселирования
kdr:=(Qyt*8*mu)/(pi*(pn-pr));
//длина дросселирующего отверстия в поршне
rdr:=strtofloat(edit25.Text);
ldr:=rdr*rdr*rdr*rdr/kdr;
//form1.Memo1.Lines.Add('Длина дросселирующего отверстия в поршне='+floattostr(ldr));
//1.1.2.6. Расчет вала
//проектировочный расчет вала
//крутящий момент насоса
numex:=strtofloat(edit11.Text);
Mk:=(pn*V0)/(2*pi*numex);
//form1.Memo1.Lines.Add('Крутящий момент насоса='+floattostr(Mk));
//диаметр выходного конца вала
tau:=strtofloat(edit40.Text);
Dk:=sqrt(Mk*0.001/0.2*tau);
form1.Memo1.Lines.Add('Диаметр выходного конца вала='+formatfloat('0.00',Dk));
//максимально изгибающая сила
Tcum:= pn*pi*(dn*dn/4)*(sin(gamma*pi/180)/cos(gamma*pi/180))*((z+1)/2);
//form1.Memo1.Lines.Add('Усилие от муфты='+floattostr(Tcum));
//предварительно реакция от полумуфты на вал
Sm:=0.3*Tcum;
//полная длина вала насоса
a:=strtofloat(edit52.Text);
b:=strtofloat(edit53.Text);
c:=strtofloat(edit54.Text);
L:=a+b+c;
form1.Memo1.Lines.Add('Полная длина вала насоса='+formatfloat('0.00',l));
//form1.edit1.text := floattostr(L);
//реакция в опорах А и В
Rb:=(Tcum*c+Sm*l)/(b+c);
//form1.Memo1.Lines.Add('Реакция в опоре В='+floattostr(Rb));
Ra:=(Tcum*b-Sm*a)/(b+c);
//form1.Memo1.Lines.Add('Реакция в опоре А='+floattostr(Ra));
//изгибающие моменты в опорах А и В
Ma:=Sm*a*0.001;
Mb:=0;
//максимальный изгибающий момент
Mc:=Rb*c*0.001;
// Mmax:=Mc;
Mt:=Mc;
//эквивалентный момент
Me:=sqrt(Mk*Mk+Mt*Mt);
//form1.Memo1.Lines.Add('Эквивалентный момент='+floattostr(Me));
//допустимое напряжение
nn:=3;
cigmat:=15;
cigma:=cigmat/nn;
//диаметр вала
Db:=sqrt(Me/(0.1*cigma));//нужно округлить до стандартного ГОСТ
Db:=50;
form1.Memo1.Lines.Add('Диаметр вала в опасном сечении='+formatfloat('0.00',Db));
//полярный момент
koaf:=1.205 ;
Wp:=koaf*pi*(Db*Db*Db/32);
//проверочный расчет вала на сопротивление усталости
//амплитудное нормальное напряжение
cigmaa:=Mt/Wp;
//момент сопротивления кручению
Wk:=koaf*pi*(Db*Db*Db/16);
//постоянная соствляющая касательных напряжений
taum:=Mk/2*Wk;
//постоянная составляющая нормальных напряжений
cigmam:=cigmaa/2;
cigma_1:=strtofloat(edit50.Text);
kcigma:=strtofloat(edit41.Text);
Ecigma:=strtofloat(edit42.Text);
kcicigma:=strtofloat(edit43.Text);
//cigma_1:=0.5;
//kcigma:=0.5;
//Ecigma:=0.5;
//kcitau:=0.5;
//коэффициент запаса по нормальным напряжениям
ncigma:=cigma_1+100000/((cigmaa*kcigma/Ecigma)+kcicigma*cigmam);
tau_1:=strtofloat(edit51.Text);
ktau:=strtofloat(edit44.Text);
Etau:=strtofloat(edit45.Text);
kcitau:=strtofloat(edit46.Text);
//tau_1:=0.5;
taua:=1;
//ktau:=0.5;
//Etau:=0.5;
//kcitau:=0.5;
//коэффициент запаса по касательным напряжениям
ntau:=tau_1*100000/((taua*ktau/Etau)+kcitau*taum);
//общий коэффициент запаса прочности
nnn:=(ncigma*ntau)/(sqrt(ncigma*ncigma+ntau*ntau));
//form1.Memo1.Lines.Add('Общий коэффициент запаса прочности='+floattostr(nnn));
//момент инерции поперечного сечения
J:=pi*Db*Db*Db*Db/64;
//прогиб вала в наиболее нагруженном сечении
E:=(strtofloat(edit16.Text))*100000000000;
lyambda:=(Tcum*b*b*c*c*1000000)/ (3*E*J*(b+c));
//form1.Memo1.Lines.Add('Прогиб вала в наиболее нагруженном сечении='+floattostr(lyambda));
//1.2.2.1 расчет гидростатической опоры поршня
//сила давления на поршень
Pnn:=(pi*dn*dn*pn*0.000001)/4;
//form1.Memo2.Lines.Add('Сила давления на поршень='+floattostr(Pnn));
//сила гидростатического отжима гидростатической опоры
Pgb:=(pn*pi*d2*d2*0.000001*(1-sqr(d1/d2)))/(8*ln(d2/d1));
//form1.Memo2.Lines.Add('Усилие отжима='+floattostr(Pgb));
//коэффициент прижима
nb:=Pnn*Pgb*cos(gamma*pi/180)/Fp;
//form1.Memo2.Lines.Add('коэффициент прижима='+floattostr(nb));
//if gamma=0 then (0<=nb) and (nb<=0.015);
//if gamma=18 then nbmax<=0.046;
//1.2.2.2 Определение контактных напряжений между поршнем и втулкой
cmax:=25;
//Сила, нагружающая поршень, приложенная к центру сферической головки
Tn:= Fp*(sin(gamma*pi/180)/cos(gamma*pi/180));
// Равновесие сил по оси y под действием тангенциальной силы
//Tn-R1+R2=0;
R1:=rc1*dn*c1/3;
R2:=rc2*dn*c2/3;
// c:=c1+c2;
// Из решения системы следует
c1:=(8*b+5*c)/2 - sqrt(sqr(8*b+5*c/2)-(4*b+3*c)*c);
delta:=c1/c;
c2:=c1*(1-delta);
R1:=Tn*(delta*delta/2*delta-1);
R2:= Tn*(sqr(1-delta)/2*delta-1);
delta:=c1/c;
//Контактное напряжение, среднее по площади пятен контакта
cigmasr_1:=2*R1/dn*c1;
//Безразмерный коэффициент среднего контактного напряжения
cigmasr_:=cigmasr/Pn;
// Среднее напряжение по сечению
//cigmac1:=2*cigmam1/pi;
//R1:=2*cigmam1*dn*c1/3*pi;
// Максимальное контактное напряжение
cigmamax1:=3*pi*cigmasr_1/4;
//Безразмерный коэффициент максимального напряжения
cigmamax1_:=cigmam1/Pn;
//условный размер,оганичивающий диаметр гидростатической опоры
dbu:=0.98*dn;
//Для случая запрессовки в отверстиях блока цилиндров втулок длиной c
//определим минимальный вылет сферической головки поршня от края цилиндра
b_:=((dbu/2)*sin(gamma*pi/180))-((dn/2)-(dbu*cos(gamma*pi/180)/2))*(1/(sin(gamma*pi/180)/cos(gamma*pi/180)));
//величина вылета
bb:=(dc*(sin(gamma*pi/180)/cos(gamma*pi/180))*(1+cos(gamma*pi/180)/2))+b_;
//c на втором участке
cc:=cmax-(bmin-b_)+Dc*(sin(gamma*pi/180)/cos(gamma*pi/180))*(1+cos(gamma*pi/180)/2);
//1.2.2.3. Расчет сил и моментов, действующих на блок цилиндров
//расчет центробежных сил и моментов центробежных сил
//максимальная величина центробежных сил
m:=0.15;
lc:=29.4;
Pjmax:=0.5*m*dc*sqr(omega);
//момент центробежных сил, действующих на блок цилиндров от всех поршней
Mpj:=0.5*m*z*sqr(dc/2)*sqr(omega)*(sin(gamma*pi/180)/cos(gamma*pi/180));
//расчет сил трения между поршнями и стенками цилиндров и моментов сил трения
//сила трения между поршями и стенками цилиндров
f:=0.05;
//тангенциальные усилия на поршне
T1:=(cmax/lc-1)*pn*Fp*(sin(gamma*pi/180)/cos(gamma*pi/180))-((pn*Fn)/lc)*(dp/2-dp/2*sin(gamma*pi/180));
T2:=(cmax/lc)*pn*Fp*(sin(gamma*pi/180)/cos(gamma*pi/180))+((pn*Fn)/lc)*(dp/2-dp/2*sin(gamma*pi/180));
Tcum:=T1+T2;
Pt1:=Tcum*f;
Pt2:=(f*m*sqr(omega)*dc)/2;
//суммарная сила трения
Pt:=(cmax/lc)*(sin(gamma*pi/180)/cos(gamma*pi/180))*pn*Fp*f*z*(2*cmax-lc)+f*m*z*sqr(omega)*Dc/2;
//момент сил трения от действия тангенциальных сил
Mpt1:=Pt*(dc/2)*(z/pi);
Mcumpt:=(cmax/lc)*(sin(gamma*pi/180)/cos(gamma*pi/180))*pn*Fp*f*(2*cmax-lc)+(z/pi)*Dc/2;
//момент сил трения от действия центробежных сил
Mpt2:=f*m*sqr(omega)*(z/m)*sqr(dc/2);
//суммарный момент сил трения
Mpt:=Mpt1+Mpt2;
//1.2.2.4. расчет уравновешенности блока от действия инерционных моментов и
// моментов от действия сил давления жидкости на поршне
//момент от сил инерции поршней в относительном движении
Mi:=0.5*m*z*sqr(dc/2)*sqr(omega)*(sin(gamma*pi/180)/cos(gamma*pi/180))*(sin(gamma*pi/180)/cos(gamma*pi/180))*(sin(gamma*pi/180)/cos(gamma*pi/180));
// момент от сил давления на поршень
Mpp:=pn*(pi*sqr(dn)/4)*z*cmax*(sin(gamma*pi/180)/cos(gamma*pi/180));
//суммарный опрокидывающий момент
Monp:=Mpj+Mi+Mp;
//уравновешивающий момент от усилия центральной пружины
Myp:=Pprux*(Db/2);
//1.2.2.5 расчет сил гидростатического давления, прижимающих и отжимающих //блок распределитель
//величина прижимающей силы, действующей на блок цилиндров
Pprr:=pn*((pi*sqr(dn))/4-Sok);
//величина отжимающей силы
Pott:=pn*((4*pi*dc*ro)/z-Sok)+(pi*pn)/(3*z)*(sqr(Rn)+Rn*Rvn-2*sqr(Rvn)+2*sqr(rnn)-sqr(rvnn)-rnn*rvnn);
//отношение прижимающей силы к отжимающей силе
lyamba:=Ppr/Pot;
end;
end.
Размещено на Allbest.ur
...Подобные документы
Общая характеристика схемы аксиально-поршневого насоса с наклонным блоком цилиндров и диском. Анализ основных этапов расчета и проектирования аксиально-поршневого насоса с наклонным блоком. Рассмотрение конструкции универсального регулятора скорости.
курсовая работа [4,1 M], добавлен 10.01.2014Проектирование приспособления для сверлильно-фрезерной операции. Метод получения заготовки. Конструкция, принцип и условия работы аксиально-поршневого насоса. Расчет погрешности измерительного инструмента. Технологическая схема сборки силового механизма.
дипломная работа [1,6 M], добавлен 26.05.2014Методика вычисления коэффициента и степени неравномерности подачи поршневого насоса с заданными параметрами, составление соответствующего графика. Условия всасывания поршневого насоса. Гидравлический расчет установки, ее основные параметры и функции.
контрольная работа [481,9 K], добавлен 07.03.2015Назначение, конструкция, отличительные признаки и преимущества аксиально-поршневого двигателя с шайбовым механизмом, принцип работы. Определение дезаксиала аксиально-поршневого насоса, расчет диаметров поршня и разноски отверстий в блоке цилиндров.
курсовая работа [1,5 M], добавлен 15.01.2014Особенности работы насоса на сеть, способы регулирования и определения его рабочих параметров на базе экспериментально снятых характеристик. Измерение расхода жидкости, выбор мощности и напора насоса. Правила техники безопасности при обслуживании насоса.
лабораторная работа [7,5 M], добавлен 28.11.2009Подготовка к комплексному проектированию поршневого насоса с кривошипно-ползунным механизмом. Ознакомление с общими принципами исследования кинематических и динамических свойств механизмов. Построение диаграмм движения методом графического интегрирования.
курсовая работа [429,2 K], добавлен 18.10.2010Центробежные насосы и принцип их работы. Расчёт основных параметров и рабочего колеса центробежного насоса. Выбор прототипа проектируемого центробежного насоса. Принципы подбора типа электродвигателя. Особенности эксплуатации центробежного насоса.
курсовая работа [859,3 K], добавлен 27.05.2013Устройство, преимущества и особенности применения поршневых насосов в промышленности. Теоретическая секундная подача объемного насоса. Определение высоты всасывания поршневого насоса. Мероприятия по технике безопасности при использовании насоса.
курсовая работа [374,6 K], добавлен 09.03.2018Классификация, устройство и принцип работы направляющей аппаратуры гидроприводов: логических клапанов, выдержки времени. Назначение и элементы уплотнительных устройств гидроприводов. Закон Архимеда. Расчет аксиально-поршневого насоса с наклонным блоком.
контрольная работа [932,3 K], добавлен 17.03.2016Изучение технологии автоматизации электроцентробежного насоса. Описание устройства и принципа работы системы управления насоса, общекустовой площадки месторождения нефти, систем телеметрии и телекоммуникаций. Выбор оборудования для модернизации процесса.
дипломная работа [2,1 M], добавлен 29.04.2015Методика конструктивного расчета основных параметров насоса и профилирования цилиндрической лопасти; вычисление спирального отвода с круговыми сечениями. Определение радиуса кругового сечения спиральной камеры и механического КПД центробежного насоса.
курсовая работа [746,3 K], добавлен 14.03.2012Классификация насосов по энергетическим и конструктивным признакам. Схема центробежного насоса. Методика конструктивного расчета основных параметров насоса. Конструктивные типы рабочих колес. Алгоритм расчета профилирования цилиндрической лопасти.
контрольная работа [1,1 M], добавлен 11.03.2013Рассмотрение рычажного механизма поршневого насоса с двойной качающейся кулисой. Метрический синтез и кинематический анализ механизма. Определение сил и момента сопротивления и инерции. Подбор чисел зубьев и числа сателлитов планетарного механизма.
курсовая работа [293,5 K], добавлен 09.01.2015Конструкция разрабатываемого центробежного насоса ВШН-150 и его техническая характеристика. Конструкционные, прокладочные и набавочные материалы, защита насоса от коррозии. Техническая эксплуатация, обслуживание, ремонт узлов и деталей, монтаж насоса.
курсовая работа [3,0 M], добавлен 26.04.2014Знакомство с основными особенностями и этапами разработки конструкции и технологии изготовления регулируемого поршневого насоса для привода металлорежущих станков. Рассмотрение способов и методов регулирования скорости вращения вала гидромотора.
дипломная работа [3,7 M], добавлен 12.08.2017Обзор способов регулирования скорости и конструкций насосов для гидропривода главного движения металлорежущих станков. Разработка конструкции насоса. Кинематическое исследование его механизма. Кинематический расчет кулачкового механизма привода клапана.
дипломная работа [1,5 M], добавлен 12.08.2017Расчет основных величин и определение характеристик питательного насоса ПН-1050-315 для модернизации Каширской электростанции. Проект лопастного колеса и направляющего аппарата. Определение геометрических размеров центробежного колеса, параметров насоса.
дипломная работа [5,6 M], добавлен 26.12.2011Конструкция осевого насоса. Устройство осевого насоса и вентилятора. Рабочее колесо осевого насоса и вентилятора. Распределение параметров потока по высоте лопастей. Максимальное давление, развиваемое вентилятором. Влияние конечной высоты лопастей.
реферат [437,2 K], добавлен 15.09.2008Подбор оптимального варианта насоса для подачи орошения колонны К-1 из емкости Е-1. Теплофизические параметры перекачиваемой жидкости. Схема насосной установки. Расчет напора насоса, построение "рабочей точки". Конструкция и принцип действия насоса.
реферат [92,1 K], добавлен 18.03.2012Организация и планирование ремонтных работ. Составление дефектных ведомостей. Описание конструкции насоса. Материальное исполнение насоса НГК 4х1. Дефектация деталей: вала и защитной гильзы, подшипника качения, рабочего колеса с уплотняющими кольцами.
отчет по практике [253,1 K], добавлен 14.07.2015