- •Отчет По лабораторной работе № 8
- •Решение: Балансно-тангенсальный метод
- •При запуске получаем следующее изображение:
- •Проекции на оси:
- •Xy zx
- •Метод по радиусу кривизны
- •При запуске получаем следующее изображение:
- •Проекции на оси:
- •Xy zx
- •Метод усреднения углов
- •При запуске получаем следующее изображение:
- •Проекции на оси:
- •Xy zx
При запуске получаем следующее изображение:
Проекции на оси:
Xy zx
ZY
Метод по радиусу кривизны
clear, clc
% L - длина ствола, a - зенитный угол, A - азимут
L = [0, 29, 49, 73, 105, 144, 190, 215];
a = [0, 2, 3, 7, 9, 18, 23, 27];
A = [0, 270, 240, 215, 230, 244, 256, 270];
% Перевод градусов в радианы
az = zeros(1, 8); az(1,:) = (A(1, :)*pi)/180;
z = zeros (1, 8); z(1,:) = (a(1, :)*pi)/180;
% Найдем координаты точек изгиба по формулам
% Y = ((L(1)-L(2))*(cos(z(1))-cos(z(2)))*(cos(a(1))-cos(a(2))))/((z(2)-z(1))*(a(2)-a(1)))
% X = ((L(1)-L(2))*(cos(z(1))-cos(z(2)))*(sin(a(1))-sin(a(2))))/((z(2)-z(1))*(a(2)-a(1)))
% Z = ( (L(1)-L(2)) * (sin(z(2))-sin(z(1))) ) /( (z(2)-z(1)) )
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:8
Y(n) = Y(n-1) + ((L(n-1)-L(n))*(cos(z(n-1))-cos(z(n)))*(cos(az(n-1))-cos(az(n))))/((z(n)-z(n-1))*(az(n)-az(n-1)));
X(n) = X(n-1) + ((L(n-1)-L(n))*(cos(z(n-1))-cos(z(n)))*(sin(az(n))-sin(az(n-1))))/((z(n)-z(n-1))*(az(n)-az(n-1)));
Z(n) = Z(n-1) + ((L(n-1)-L(n))*(sin(z(n))-sin(z(n-1))))/((z(n)-z(n-1)));
end
% Построим график
mainGraph = plot3(X,Y,Z,'Color','b','LineWidth', 3);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;
text(X(1), Y(1), Z(1), ' устье');
text(X(8), Y(8), Z(8), ' забой');
%-------Верхняя граница-----
L = [0, 29, 49, 73, 105, 144, 190, 215];
a = [0, 2.5, 3.5, 7.5, 9.5, 18.5, 23.5, 27.5];
A = [0, 270.1, 240.1, 215.1, 230.1, 244.1, 256.1, 270.1];
az = zeros(1, 8); az(1,:) = (A(1, :)*pi)/180;
z = zeros (1, 8); z(1,:) = (a(1, :)*pi)/180;
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:8
Y(n) = Y(n-1) + ((L(n-1)-L(n))*(cos(z(n-1))-cos(z(n)))*(cos(az(n-1))-cos(az(n))))/((z(n)-z(n-1))*(az(n)-az(n-1)));
X(n) = X(n-1) + ((L(n-1)-L(n))*(cos(z(n-1))-cos(z(n)))*(sin(az(n))-sin(az(n-1))))/((z(n)-z(n-1))*(az(n)-az(n-1)));
Z(n) = Z(n-1) + ((L(n-1)-L(n))*(sin(z(n))-sin(z(n-1))))/((z(n)-z(n-1)));
end
topGraph = plot3(X,Y,Z,'Color','r','LineWidth', 1);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;
%-------Нижняя граница-----
L = [0, 29, 49, 73, 105, 144, 190, 215];
a = [0, 1.5, 2.5, 6.5, 8.5, 17.5, 22.5, 26.5];
A = [0, 269.9, 239.9, 214.9, 229.9, 243.9, 255.9, 269.9];
az = zeros(1, 8); az(1,:) = (A(1, :)*pi)/180;
z = zeros (1, 8); z(1,:) = (a(1, :)*pi)/180;
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:8
Y(n) = Y(n-1) + ((L(n-1)-L(n))*(cos(z(n-1))-cos(z(n)))*(cos(az(n-1))-cos(az(n))))/((z(n)-z(n-1))*(az(n)-az(n-1)));
X(n) = X(n-1) + ((L(n-1)-L(n))*(cos(z(n-1))-cos(z(n)))*(sin(az(n))-sin(az(n-1))))/((z(n)-z(n-1))*(az(n)-az(n-1)));
Z(n) = Z(n-1) + ((L(n-1)-L(n))*(sin(z(n))-sin(z(n-1))))/((z(n)-z(n-1)));
end
undGraph = plot3(X,Y,Z,'Color','r','LineWidth', 1);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;
При запуске получаем следующее изображение:
Проекции на оси:
Xy zx
ZY
Метод усреднения углов
clear, clc
% L - длина ствола, a - зенитный угол, A - азимут
L = [0, 29, 49, 73, 105, 144, 190, 215];
a = [0, 2, 3, 7, 9, 18, 23, 27];
A = [0, 270, 240, 215, 230, 244, 256, 270];
% Перевод градусов в радианы
azimut = zeros(1, 8); azimut(1,:) = (A(1, :)*pi)/180;
zenit = zeros (1, 8); zenit(1,:) = (a(1, :)*pi)/180;
% Найдем приращения координат по формулам
% x = (L(1)-L(2)) * sin((zenit(1)+zeint(2))/2) * sin((azimut(1)+azimut(2))/2)
% y = (L(1)-L(2)) * sin((zenit(1)+zeint(2))/2) * cos((azimut(1)+azimut(2))/2)
% z = (L(1)-L(2)) * cos((zenit(1)+zeint(2))/2)
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:7
X(n) = X(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * sin((azimut(n)+azimut(n+1))/2);
Y(n) = Y(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * cos((azimut(n)+azimut(n+1))/2);
Z(n) = Z(n-1) + (L(n)-L(n+1)) * cos((zenit(n)+zenit(n+1))/2);
end
% Построим график
mainGraph = plot3(X(1:7),Y(1:7),Z(1:7),'Color','b','LineWidth', 3);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;
text(X(1), Y(1), Z(1), ' устье');
text(X(7), Y(7), Z(7), ' забой');
%----Верхняя граница-----
L = [0, 29, 49, 73, 105, 144, 190, 215];
a = [0, 2.5, 3.5, 7.5, 9.5, 18.5, 23.5, 27.5];
A = [0, 270.1, 240.1, 215.1, 230.1, 244.1, 256.1, 270.1];
azimut = zeros(1, 8); azimut(1,:) = (A(1, :)*pi)/180;
zenit = zeros (1, 8); zenit(1,:) = (a(1, :)*pi)/180;
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:7
X(n) = X(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * sin((azimut(n)+azimut(n+1))/2);
Y(n) = Y(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * cos((azimut(n)+azimut(n+1))/2);
Z(n) = Z(n-1) + (L(n)-L(n+1)) * cos((zenit(n)+zenit(n+1))/2);
end
topGraph = plot3(X(1:7),Y(1:7),Z(1:7),'Color','r','LineWidth', 1);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;
%----Нижняя граница------
L = [0, 29, 49, 73, 105, 144, 190, 215];
a = [0, 1.5, 2.5, 6.5, 8.5, 17.5, 22.5, 26.5];
A = [0, 269.9, 239.9, 214.9, 229.9, 243.9, 255.9, 269.9];
azimut = zeros(1, 8); azimut(1,:) = (A(1, :)*pi)/180;
zenit = zeros (1, 8); zenit(1,:) = (a(1, :)*pi)/180;
X = zeros(1, 8); Y = zeros(1, 8); Z = zeros(1, 8);
Y(1) = 0; X(1) = 0; Z(1) = 0;
for n = 2:7
X(n) = X(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * sin((azimut(n)+azimut(n+1))/2);
Y(n) = Y(n-1) + (L(n)-L(n+1)) * sin((zenit(n)+zenit(n+1))/2) * cos((azimut(n)+azimut(n+1))/2);
Z(n) = Z(n-1) + (L(n)-L(n+1)) * cos((zenit(n)+zenit(n+1))/2);
end
undGraph = plot3(X(1:7),Y(1:7),Z(1:7),'Color','r','LineWidth', 1);
hold on;
xlabel('X, м');
ylabel('Y, м');
zlabel('Z, м');
grid on;