Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Файл-процедура для нахождения точек




function [xmax2,ymax2] = findpoints(i_f1, i_f2, Fy, Fx);

 

ymax2 = Fy(i_f1);

i_f1 = i_f1+1;

 

while i_f1<=i_f2

if Fy(i_f1) > ymax2

ymax2 = Fy(i_f1);

xmax2 = Fx(i_f1);

end

i_f1 = i_f1+1;

end

7.1.3 Программа по обнаружению границ фаз с помощью четкой логики для кривых темпа охлаждения, выбранных из таблицы 2.1 согласно номеру варианта (вариант №3+8).

 

script

format long e;

 

for x1 = 11:15 %Номера считываемых КТО

xx = int2str(x1); %переводит строковую переменную в число

file = 'curve';

exten = '.xy';

 

fid = fopen([file xx exten],'r'); %чтение файла КТО

[F, LMas] = fscanf(fid, '%e', inf); %определение входных параметров

st = fclose(fid);

 

n = LMas/2;

for i=1:n %цикл получения массивов координат по Х и по Y

Fx(i) = F(i*2-1);

Fy(i) = F(i*2);

end

 

plot(Fx, Fy); %построение КТО

hold on;

 

%Нахождение границы первой фазы

i=20;

d = Fy(i) - Fy(i+1);

if d > 0

i = i + 1;

i = findmin1(i, Fy); %нахождение первого минимума

end

[X2,Y2,i,ymax2,xmax2] = findmax_ch(i, Fx, Fy);

 

d = 0;

%Цикл повторяется до тех пор, пока не будет найдена первая фаза

while d < 0.004

%нахождение расстояний, координат минимума и левого максимума фазы

[X1,Y1,i,xmax1,ymax1,ymin,xmin] = findmin_ch(i, Fx, Fy);

i_f1 = i; %индекс минимума фазы по оси Х

%нахождение расстояний и координат правого максимума

[X2,Y2,i,ymax2,xmax2] = findmax_ch(i, Fx, Fy);

L1=sqrt((ymax1-ymin)^2+((xmin-xmax1)/20000)^2); %Вычисление параметра L1

d=L1;

end

%После окончание цикла определены все параметры первой фазы

step = Fx(i+1)-Fx(i);

 

% Построение первой фазы

plot([xmax1 xmax1],[ymax1+0.001 ymax1-0.001],'r-'); %построение левой границы первой фазы

plot(xmax1, ymax1, 'b*'); %построение левого максимума первой фазы

plot(xmin, ymin, 'r*'); %построение минимума первой фазы

 

plot(xmax2, ymax2, 'b*');

plot([xmax2 xmax2],[ymax2+0.001 ymax2-0.001],'r-'); %прорисовка верт.линии конца фазы

zoom on;

 

i_end = 200; %

T_kr = findend(Fy, n, i_f1); %нахождение точки конца кристализации

F_kr = Fx(T_kr-1);

 

% Цикл для нахождения следующего участка, подозрительного на фазу

while Fx(i) < F_kr

i_s = i;

[X1,Y1,i,xmax1,ymax1,ymin,xmin] = findmin_ch(i, Fx, Fy);

i_f2 = i; %индекс следующего минимума фазы по оси Х

[X2,Y2,i,ymax2,xmax2] = findmax_ch(i, Fx, Fy);

 

Xratio = X1/X2; %определение Xratio

Vector_1 = [Y1/Y2 Y2/Y1];

Yratio = max(Vector_1); %определение Yratio

 

X_nach = xmax2 - xmax1; %расстояние между двумя максимумами по Х

X_nach1 = 0;

S = 0;

%Цикл нахождения площади под анализируемым участком кривой

while X_nach1 < X_nach

YY = ((ymax2-ymax1)/(xmax2-xmax1))*(Fx(i_s)-xmax1)+ymax1;

YYtek = YY-Fy(i_s); %текущее значение по Y

S = YYtek*step+S; %площадь под анализируемым участком кривой

i_s = i_s+1; %переход к следующему участку кривой

X_nach1 = X_nach1+step;

end

 

%Если выполняется условие сравнение Xratio, Yratio и S с их граничными

%значениями, то учасок считается фазой и находится правый максимум

if (Xratio<0.8) & (Yratio>1.5) & (S>0.00165)

[xmax2,ymax2] = findpoints(i_f1, i_f2, Fy, Fx);

 

%Построение фазы

plot(xmin, ymin, 'r*');

plot(xmax2, ymax2, 'b*');

plot([xmax2 xmax2],[ymax2+0.001 ymax2-0.001],'r-');

 

i_f1 = i_f2;

kor_x = xmax2; %правый максимум по Х для построения последней фазы

kor_y = ymax2; %правый максимум по Y для построения последней фазы

end

end

 

%Построение последней правой границы фазы

if Fy(T_kr)>kor_y

plot(Fx(T_kr-1), Fy(T_kr), 'b*');

plot([Fx(T_kr-1) Fx(T_kr-1)],[Fy(T_kr)+0.001 Fy(T_kr)-0.001],'r-');

else

plot(kor_x, kor_y, 'b*');

plot([kor_x kor_x],[kor_y+0.001 kor_y-0.001],'r-');

end

 

hold off;

 

disp(x1);

pause;

end

 

 

clear all;

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

Результаты работы программы для разных участков кривой представлены на рисунках 7.1-7.5.


Рисунок 7.1 – Участок кривой №11

Рисунок 7.3 – Участок кривой №13

Рисунок 7.5 – Участок кривой №40

Рисунок 7.2 – Участок кривой №12

Рисунок 7.4 – Участок кривой №39

 


Для нечеткой логики

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...