Лазерный измеритель параметров дождевых капель, работающий в проходящем свете

Дипломная работа - Разное

Другие дипломы по предмету Разное

ata','Threshold',10);:= SIniFile.ReadInteger('Data','HistInt',1);:= SIniFile.ReadInteger('Data','HistCount',20);.Free;

end;

Запись настроек в ini-файл при закрытии:

procedure TForm1.WriteIni;: TIniFile;: string[200];(0, sPath); { текущий каталог }:= TIniFile.Create(sPath + '\Config.INI');

//параметры окна.WriteInteger('Form1', 'form1.Top', form1.top);.WriteInteger('Form1', 'form1.left', form1.left);.WriteInteger('Form1','Form1.Width',Form1.Width);.WriteInteger('Form1','Form1.Height',Form1.Height);

//

SIniFile.WriteInteger('Data','Frequency',Frequency);.WriteInteger('Data','AveCount',AveCount);.WriteInteger('Data','Part',Part);.WriteInteger('Data','SizeOfPart',SizeOfPart);.WriteInteger('Data','grf',grf);.WriteInteger('Data','Threshold',Threshold);.WriteInteger('Data','HistInt',HistInt);.WriteInteger('Data','HistCount',HistCount);

//

sIniFile.Free;;

Вывод временного распределения количества частиц- подсчитывается количество частиц за каждую реализацию:

procedure TForm1.Button4Click(Sender: TObject);i,j,k,t: integer;.Clear;.Clear;.Clear;.Clear;

//series1.LegendToValueIndex(1);i:= 0 to countofparts-1 do:= 0;j:= 0 to 24 do:= t+ ArrayOfHists[i].hist[j];.AddXY(i*SizeOfPart/strtoint(edit2.Text),t*strtoint(edit3.Text),'<50'+' *'+edit3.Text);:= 0;j:= 0 to 24 do:= t+ ArrayOfHists[i].hist[j+25];.AddXY(i*SizeOfPart/strtoint(edit2.Text),t*strtoint(edit4.Text),'50-100'+' *'+edit4.Text);:= 0;j:= 0 to 24 do:= t+ ArrayOfHists[i].hist[j+50];.AddXY(i*SizeOfPart/strtoint(edit2.Text),t*strtoint(edit5.Text),'100-150'+' *'+edit5.Text);:= 0;j:= 0 to 24 do:= t+ ArrayOfHists[i].hist[j+75];.AddXY(i*SizeOfPart/strtoint(edit2.Text),t*strtoint(edit6.Text),'150-200'+' *'+edit6.Text);;

end;

Сохранение результатов обработки:

procedure TForm1.Button5Click(Sender: TObject);i,j: integer;: textfile;: file of Histogram;: string;.FileName:= copy(OpenDialog1.FileName,0,length(OpenDialog1.FileName)-4);SaveDialog1.Execute then.Text:= inttostr(SaveDialog1.FilterIndex);SaveDialog1.FilterIndex = 1 then(f,SaveDialog1.FileName+SaveDialog1.Filter);(f);

//WriteLn(f,'

'+copy(ExtractFileName(f),1,Length(ExtractFileName(f)-ExtractFileExt(f));

//WriteLn(f,DateTimeToStr(FileDateToDateTime(FileGetDate(FileOfData))););eLn(f,' :'

+floattostr(SizeOfPart/strtoint(edit2.text))+ '.');

WriteLn(f,'');

WriteLn(f,' '+ inttostr(CountOfParts));

for i:= 0 to CountOfParts-1 doj:= 0 to 99 do(f,FloattoStr(ArrayOfHists[i].hist[j]));(f);;SaveDialog1.FilterIndex = 2 then(Hist,SaveDialog1.FileName+ '.hst');(Hist);i:= 0 to CountOfParts-1 do(Hist, ArrayOfHists[i]);(Hist);;SaveDialog1.FilterIndex = 3 then;SaveDialog1.FilterIndex = 4 then;;;TForm1.Button6Click(Sender: TObject);

//chart1.PrintProportional:= true;PrintDialog1.Execute then chart1.PrintLandscape;;

Обработка событий интерфейса программы:

procedure TForm1.FormCreate(Sender: TObject);: file of smallint;: smallint;: integer;:= false;:= 0;:= 0;:= 0;(ArrayOfData,0);(AverageArray,0);;(ArrayOfHists,100 {div HistInt});(TempHist,HistCount);

//Panel1.Top:= 1;

//Panel1.Left:= Form1.Width-panel1.Width-1;;TForm1.Button1Click(Sender: TObject);i: integer;FileStatus then(FileOfData);.Clear;.Clear;.Clear;.Clear;.Clear;OpenDialog1.Execute thenopendialog1.FilterIndex = 1 then;FileStatus then.Text:= inttostr(FileSize(FileOfData) div SizeOfPart) ;;;

//For i:= 0 to CountOfData-1 do series2.Add(AverageArray[i]);;opendialog1.FilterIndex = 2 then OpenTheHist;;.Click;;;TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);;FileStatus then CloseFile(FileOfData);;TForm1.Button2Click(Sender: TObject);i,j,t1,t2,t1i,t2i: integer;

{t1:= ArrayOfImpulses[0,0];:= ArrayOfImpulses[1,0];i:= 0;i:= 0;}i:= 0 to CountOfImpulses-1 doi:= i;:= ArrayOfImpulses[0,i];j:= i+1 to CountOfImpulses-1 do if t1>ArrayOfImpulses[0,j] theni:= j;:= ArrayOfImpulses[0,j];;[0,t1i]:= ArrayOfImpulses[0,i];[0,i]:= t1;;;TForm1.ScrollBar1Change(Sender: TObject);i: integer;.Clear;CheckBox3.Checked then;i:= 0 to HistCount-1 do.AddXY(sqrt(Threshold)*2+i*TempCount*2,TempHist[ScrollBar1.P,i]*exp(strtofloat(edit7.text)*ln(sqrt(Threshold)*2+i*TempCount*2)));elsei:= 1 to 99 do.AddXY(i*2,ArrayOfHists[ScrollBar1.Position].hist[i]*exp(strtofloat(edit7.text)*ln(i)));;

{procedure TForm1.CheckBox3Click(Sender: TObject);.Active:= checkbox3.Checked;;TForm1.CheckBox4Click(Sender: TObject);.Active:= Checkbox4.Checked;;}TForm1.Button3Click(Sender: TObject);i, j, t: integer;.Clear;CheckBox3.Checked then;i:= 0 to HistCount-1 do:= 0;j:= 0 to CountOfParts -1 do:= t+TempHist[j,i];.AddXY((sqrt(Threshold)+i*TempCount),t*exp(strtofloat(edit7.text)*ln(sqrt(Threshold)*2+i*TempCount*2)));;elsei:= 1 to 99 do:= 0;j:= 0 to CountOfParts -1 do:= t+ArrayOfHists[j].hist[i];.AddXY(i*2,t*exp(strtofloat(edit7.text)*ln(i)));; end;TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;

MousePos: TPoint; var Handled: Boolean);.ZoomPercent(chart1.View3DOptions.Zoom+5);;TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;

MousePos: TPoint; var Handled: Boolean);.ZoomPercent(chart1.View3DOptions.Zoom-5);;TForm1.CheckBox1Click(Sender: TObject);.UndoZoom;.Axes.Bottom.Logarithmic:= CheckBox1.Checked;.Refresh;;TForm1.CheckBox2Click(Sender: TObject);.UndoZoom;.Axes.Left.Logarithmic:= CheckBox2.Checked;.Refresh;;TForm1.Button7Click(Sender: TObject);;;.

 

4.2 Результаты измерений

 

Определение реального диаметра капель проводилось следующим образом. В шприц с иглами, разных диаметров набиралась вода и проводились измерения количества, упавших капель за 10 минут, с помощью разработанного счетчика. Вода собиралась в нормировочный стакан, с помощью, которого мерялся объем воды, исходя из чего, определялся средний диаметр капли.

 

Рисунок 3.2.1. Распределение по размерам капель. Длительность 1 минута.

 

Рисунок 3.2.2. Распределение по размерам капель. Длительность 1 минута.

 

Рисунок 3.2.2. Распределение по размерам капель. Длительность 1 минута.

 

Рисунок 3.2.3. Распределение по размерам капель. Длительность 1 минута.

4. Безопасность жизнедеятельности

 

4.1 Анализ опасных и вредных факторов, возникающих при эксплуатации лазерного измерителя параметров дождевых капель

 

При эксплуатации прибора возникают следующие опасные и вредные факторы по ГОСТ 12.0.003.-74* [10]:

-Опасность поражения электрическим током.

Питание прибора осуществляется от сети переменного тока напряжением 220 В и f=50 Гц. Из-за чего возникает опасный уровень напряжения в электрической цепи, замыкание которой может произойти через тело человека. Опасность поражения электрическим током возникает при: контакте человека с поврежденным участком кабеля питания, при пробое высокого напряжения на корпус прибора или компьютера. Поражение электрическим током возможно при прикосновении разработчика к двум точкам цепи находящимися под напряжением. Опасность такого прикосновения, оцениваемая значением тока, проходящего через тело разработчика, или напряжением прикосновения, зависит от схемы включения человека в цепь, напряжения сети, схемы сети. По степени опасности поражения электрическим током помещение является малоопасным по ПУЭ-98 [11].

-Недостаточная освещенность рабочей зоны

Недостаточная осве