ЛР2 / Моделирование_2
.docxНикитина С.
ИВТ-44
Лабораторная работа №2
Вариант 10
Заданию соответствует lab_2.m файл.
clear; clc; %очищаем рабочее пространство и экран
close all;
M = 10; %масса пули, кг
m = 0.01; %масса пули, кг
g = 9.8; %ускорение свободного падения, м/с2
%модель влияния длины подвеса на угол отклонения груза
v = 300; %скорость пули, м/с
l = 0.1:0.01:8;
a = acos(1-m.^2*v.^2./(2*(m+M).^2*g*l));
a = rad2deg(a); %переводим радианы в градусы
subplot(2, 1, 1);
plot(l, a); grid;
xlabel('l, m'); %подписываем оси
ylabel('\alpha, \circ');
title('\alpha = f(l). v = 300 m/c');
%модель определения скорости пули в зависимости от угла отклонения груза
l = 1; %длина подвеса груза, м
a = 0.1:0.1:14;
v = (2*(m+M)^2*g*l*(1-cos(deg2rad(a)))/(m^2)).^0.5;
subplot(2, 1, 2);
plot(a, v); grid;
xlabel('\alpha, \circ'); %подписываем оси
ylabel('v, m/c');
title('v = f(\alpha). l = 1 m.');
Можно заметить, как из каждой из трех величин, исходит значение другой, следовательно, построенная зависимость правильная.
Заданию соответствует lab2_2.m и lab2_2.fig файлы.
Помимо тех тригонометрических функций, что представлены на примере, была добавлена еще одна функция – тангенса, с графиком, представленном ниже.
function plot_button_Callback(hObject, eventdata, handles)
xmin = get(handles.Xmin, 'String'); %считываем минимальное значение х
xmin = str2num(xmin); %переводим его в число
xmax = get(handles.Xmax, 'String'); %считываем максимальное значение х
xmax = str2num(xmax); %переводим его в число
x = xmin : 0.01 : xmax; %задаем вектор значений по оси Х
grafik = get(handles.panel, 'SelectedObject'); %какую функцию выбрали
switch (grafik) %строим график
case {handles.plot_sin} %соответствующей функции
plot(x, sin(x)); grid;
case {handles.plot_cos}
plot(x, cos(x)); grid;
case {handles.plot_tan}
plot(x, tan(x)); grid; axis ([-pi pi -10 10]);
end
Модель построена на основе физических зависимостей. Регулировка этих зависимостей влияет на время работы. Отсчёт времени идет до момента пока идет моделирование работы лазера.
У диаметра есть ограничения по выставлению значений: 10 ≤ D ≤ 60. Если D не попадает в диапазон, программа выставляет его крайнее ближайшее значение.
Аналогично с L: 50 ≤ L ≤ 200.
Можно менять положение лазера с помощью кнопок < и >.
Пример работы: