Centurio
Просветленный
(34328)
1 месяц назад
Какие величины и каким образом должны меняться?
Марат СуспенскийУченик (111)
1 месяц назад
Задание звучит так ( Определение оптимального угла вектора начальной скорости). Мой преподаватель дал этот исходный код и сказал изменить то, про что я говорил.
Марат СуспенскийУченик (111)
1 месяц назад
% m*(dVx/dt) = - X*cosA;
% m*(dVy/dt) = - m*g - X*sinA;
clc % очистка командного окна;
%%Начальные данные
Lmax = 0; % инициализация максимальной дальности;
Aopt = 0; % инициализация оптимального угла вектора начальной скорости, при котором достигается максимальная дальность полета материальной точки, при наличии аэродинамической составляющей;
for Ak = 0:1:90 % цикл значения угла от 0 до 90 градусов с шагом 1;
V(1) = 23; % начальная скорость, м/с;
A(1) = Ak; % угол наклона вектора начальной скорости, градусы;
ax(1) = 0; % ускорение вдоль оси х, м/с^2
ay(1) = 0; % ускорение вдоль оси y, м/с^2
Vx(1) = V(1)*cosd(A(1)); % скорость вдоль оси х, м/с
Vy(1) = V(1)*sind(A(1)); % скорость вдоль оси y, м/с
Марат СуспенскийУченик (111)
1 месяц назад
x(1) = 0; % перемещение вдоль оси х, м;
y(1) = 0; % перемещение вдоль оси y, м;
m = 86; % масса материальной точки, кг;
g = 9.8; % ускорение свободного падения, м/с^2;
t(1) = 0; % начальное время, с;
dt = 0.001; % шаг интегрирования, с;
A(1) = atan(Vy(1)/Vx(1)); % угол наклона вектора скорости, рад;
i = 1; % счетчик;
ro = 1.2205; % плотность воздуха, кг/м^3;
D = 0.93; % диаметр миделя, м;
S = pi*D^2/4; % площадь миделя, м^2;
Cx = 1.06; % коэффициент лобового сопротивления;
X = ro*V^2/2*Cx*S; % сила лобового сопротивления, Н;
while y(i)>=0 % цикл продолжается, пока высота полета материальной точки положительна или равно 0 (м.т. приземлилась);
Vx(i+1) = Vx(i)+ax(i)*dt; % обновление скорости вдоль оси x по дискретному аналогу первого порядка точности;
Vy(i+1) = Vy(i)+ay(i)*dt; % обновление скорости вдоль оси y по дискретному аналогу первого порядка точности;
x(i+1) = x(i)+ Vx(i)*dt; % обновление координаты x по дискретному аналогу первого порядка точности;
y(i+1) = y(i)+Vy(i)*dt; % обновление координаты y по дискретному аналогу первого порядка точности;
t(i+1) = t(i) + dt; % временная ось;
X(i+1) = (ro*(Vx(i+1)^2+ Vy(i+1)^2)*S*Cx)/2; % обновление силы лобового сопротивления;
A(i+1) = atan(Vy(i+1)/Vx(i+1))*180/pi; % угол наклона вектора начальной скорости, градусы;
ax(i+1) = -X(i+1)* cosd(A(i+1))/m; % обновление ускорения вдоль оси x;
ay(i+1) = -X(i+1)* sind(A(i+1))/m-g; % обновление ускорения вдоль оси y;
i = i+1; % обновление счетчика итераций;
end
if Lmax<x(i) % условие, если текущая дальность полета больше максимальной дальности;
Lmax=x(i); % обновление максимальной дальности;
Aopt=A(1)*180/pi; % присваивание оптимального угла наклона вектора начальной скорости;
end
end