Дипломная работа: Анализ графиков релаксации напряжений с использованием Delphi 2011

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Анализ графиков релаксации напряжений с использованием Delphi 2011

Жунисбеков Т.М., Шевцов А.Н., Джакияев Д.К., Юсупова Л.Х., ТарГУ им. М.Х. Дулати, Тараз

При изучении кривых релаксации эпоксидных полимеров часто возникает проблема обработки экспериментальных данных [1]. Рассмотрим графики зависимости напряжения от времени (Рис.1.). Отсканируем график, для его последующего компьютерного анализа.

релаксация эпоксидный напряжение полимер

Рис. 1. Отсканированные графики релаксации напряжений

Как видно из графика: напряжения заданы в пределе от 0 до 5000 на вертикальной координате, а время в пределах от 1 до 8. Причем есть два графика и узловые точки каждого графика.

Разработаем алгоритм нахождения координат узловых точек. Для этого пометим один пиксель каждой узловой точки 1-го графика - синим цветом, 2-го графика - красным цветом, а точки на координатных осях - зеленым (Рис.2.). Составим программу на языке Delphi-2011 для поиска пикселей красного, зеленого и синего цветов. После того как найденны координаты каждого цветного пикселя, необходимо найти точку начала координат, определить масштаб по осям Ох и Оу и перевести координаты всех узловых точек в масштаб координатных осей графика.

Рис. 2. Разноцветные пиксели на отсканированном графике

Создадим форму, разместим на ней кнопку и три компонента Memo - для сохранения найденных координат точек (Рис.3.).

Рис. 3. Окно программы

Получим следующий алгоритм программы:

procedure TForm1.Button1Click(Sender: TObject);

type

TRGB = record B, G, R: Byte;

end;

pRGB = ^TRGB;

var bit:tbitmap;

i,j:integer;

Dest: pRGB;

begin

bit:=tbitmap.Create;

bit.LoadFromFile('0 001.bmp');

memo1.Clear; memo2.Clear; memo3.Clear;

image1.Picture.Bitmap:=bit;

for I := 0 to bit.Height - 1 do

begin

Dest := Bit.ScanLine[i];

for j := 0 to bit.Width - 1 do

begin

if (Dest^.r=0)and(Dest^.g=255)and(Dest^.b=0) then

memo1.Lines.Add(floattostr(round((j-57)/112))+' '+floattostr(5000*round((bit.Height-i-48)/578)));

if (Dest^.r=0)and(Dest^.g=0)and(Dest^.b=255) then

memo2.Lines.Add(floattostr(round(100*(j-57)/112)/100)+' '+floattostr(round(5000*(bit.Height-i-48)/578)));

if (Dest^.r=255)and(Dest^.g=0)and(Dest^.b=0) then

memo3.Lines.Add(floattostr(round(100*(j-57)/112)/100)+' '+floattostr(round(5000*(bit.Height-i-48)/578)));

Inc(Dest);

end;

end;

Button2.Click;

bit.Free;

end;

Создаем тип в формате RGB

Задаем переменные

Загружаем отсканированное изображение

Очищаем Memo

Сканируем изображение на наличие цветных точек

Сохраняем координаты:

найденной зеленой точки,

синей точки,

красной точки

Сортируем координаты по возрастанию

Процедура сортировки:

procedure TForm1.Sort(memo:tmemo);

var

xmin, I,k,xt: Integer;

begin

memo4.Clear;

xmin:=1;

for k := 1 to 900 do

begin

for I := 0 to memo.Lines.Count - 1 do

begin

xt:=trunc(100*strtofloat(GetToken(memo.Lines.Strings[i],' ',1)));

if xmin=xt then memo4.Lines.Add(memo.Lines.Strings[i]);

end;

Inc(xmin);

end;

memo.Text:=memo4.Text;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

xmin, I,k,xt: Integer;

begin

memo4.Clear;

xmin:=strtoint(GetToken(memo1.Lines.Strings[0],' ',1));

for k := 1 to 8 do

begin

for I := 0 to memo1.Lines.Count - 1 do

begin

xt:=strtoint(GetToken(memo1.Lines.Strings[i],' ',1));

if xmin=xt then memo4.Lines.Add(memo1.Lines.Strings[i]);

end;

Inc(xmin);

end;

memo1.Text:=memo4.Text;

Sort(memo2);

Sort(memo3);

end;

Получим координаты узловых точек в масштабе осей графика (Рис.3.). Полученные данные, в дальнейшем, можно будет аппроксимировать для получения аналитического вида функции релаксации напряжений.

Разработанная программа позволяет анализировать любой график, находить координаты узловых точек, и отображать их в масштабе анализа экспериментальных данных.осей графика, что дает исследователю мощный алгоритм

Рис. 4. Результаты компьютерного анализа графиков

Литература

1. Джунисбеков Т.М., Кестельман В.Н., Малинин Н.И.. Релаксация напряжений в вязкоупругих материалах. - Алматы: ?ылым, 1998. -308с.

2. Nevzorov V. Delphi Russian Knowledge Base. -Chicago, USA. -2007, more than 4000 p.

Источник: https://otherreferats.allbest.ru/download/1108160/