Файл: Лабораторная работа 1 Построение компьютерной модели.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.10.2023

Просмотров: 159

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

12 больше величина t, тем меньшая точность в передаче значений непрерывных функций их дискретными представлениями. Однако, уменьшение шага t не всегда ведет к улучшению результатов моделирования. Одна из причин заключается в том, что чем меньше шаг, тем больше арифметических действий, ведущих к увеличению глобальной погрешности округления. Более эффективными при моделировании процессов, описываемых дифференциальными уравнениями, являются методы Эйлера-Коши или Рунге-
Кутта более высокого порядка аппроксимации, чем метод Эйлера.
Пример выполнения задания
Задача. Парашютист спрыгивает с высоты h
0
и раскрывает парашют на высоте h
1
. Определить, будет ли скорость приземления безопасной.
Цель моделирования. Определить конечную скорость движения тела и сравнить ее с безопасной (10 м/с).
Формализация. Будем считать, что форма человека близка к сферической, форма парашюта – полусферической. Тело характеризуется массой m, радиусом (r- человека и r
1
– парашюта) и площадью поперечного сечения ( S и S
1
соответственно). Среда характеризуется плотностью ρ и вязкостью μ. В ходе движения меняются время t, скорость v и высота h.
Задача состоит в том, чтобы определить v кон в момент времени, когда h станет близкой к нулю.
Построение математической модели. Воспользуемся моделью (2):











v
dt
dh
m
v
Sc
rv
mg
dt
dv
2 5
,
0 6


Выбор метода исследования. Применим для решения системы дифференциальных уравнений метод Эйлера:

13















i
i
i
v
t
h
m
v
Sc
rv
mg
t
v
2 5
,
0 6


;

















i
i
i
i
i
i
i
v
t
h
h
m
v
Sc
rv
mg
t
v
v
1 2
1 5
,
0 6


;














t
v
h
h
t
m
v
Sc
rv
mg
v
v
i
i
i
i
i
i
i
1 2
1 5
,
0 6


Построение компьютерной модели и ее проверка Выберем для моделирования среду табличного процессора Excel. Для проверки модели на адекватность рассмотрим движение без сопротивления среды (k
1
=0 и k
2
=0)
Свободное падение тела
Параметры движения
Параметры тела
Параметры среды
Коэффициенты
Время t0 0
Масса m
80
Вязкость
0,0182 k1 0,000
Скорость v0 0
Радиус r
0,3
Плотность
1,2 k2 0,000
Высота h0 1000
Радиус r1 1,5
Высота h1 800
Площадь S
0,053
Шаг ∆t
0,5
Площадь S1 7,069
Коэффициент с
0,40
Коэффициент с1 0,55
Рис. 2 Исходные данные задачи о свободном падении (сопротивление среды не учитывается)
Изменение скорости и высоты со временем
t v h
0 0
1000 0,5 4,9 1000,0 1
9,8 997,6 1,5 14,7 992,7 2
19,6 985,3 2,5 24,5 975,5 3
29,4 963,3 3,5 34,3 948,6 4
39,2 931,4 4,5 44,1 911,8 5
49,0 889,8 5,5 53,9 865,3 6
58,8 838,3 t v h
6,5 63,7 808,9 7
68,6 777,1 7,5 73,5 742,8 8
78,4 706,0 8,5 83,3 666,8 9
88,2 625,2 9,5 93,1 581,1 10 98,0 534,5 10,5 102,9 485,5 11 107,8 434,1 11,5 112,7 380,2 12 117,6 323,8 12,5 122,5 265,0


14
В отсутствие сопротивления среды скорость растет со временем по линейному закону, что соответствует аналитическому решению уравнений
Добавим силу сопротивления (
k
r
1 6


и

cS
k
5
,
0 2

)
Свободное падение тела с учетом сопротивления
Параметры
движения
Параметры тела
Параметры среды
Коэффициенты
(без парашюта)
Время t0 0
Масса m
80
Вязкость
0,0182 k1 0,045
Скорость v0 0
Радиус r
0,3
Плотность 1,2 k2 0,013
Высота h0 1000
Радиус r1 1,5
Коэффициенты
(с парашютом)
Высота h1 800
Площадь S
0,053 k1 0,515
Шаг ∆t
0,5
Площадь S1 7,069 k2 2,333
Коэффициент с
0,40
Коэффициент с1 0,55

15
Изменение скорости и высоты со временем
t v h
0 0
1000 0,5 4,9 1000,0 1
9,8 997,6 1,5 14,7 992,7 2
19,6 985,3 2,5 24,4 975,5 3
29,3 963,3 3,5 34,1 948,7 4
38,9 931,6 4,5 43,7 912,2 5
48,4 890,3 5,5 53,1 866,1 6
57,8 839,6 6,5 62,4 810,7 7
10,3 779,5 7,5 13,7 774,3 8
15,8 767,5 t v h
8,5 17,0 759,6 9
17,6 751,1 9,5 17,9 742,3 10 18,1 733,3 10,5 18,2 724,3 11 18,2 715,2 11,5 18,2 706,1 12 18,2 697,0 12,5 18,2 687,9 13 18,2 678,8 13,5 18,2 669,7 14 18,2 660,6 14,5 18,2 651,5 15 18,2 642,3 15,5 18,2 633,2 16 18,2 624,1 16,5 18,2 615,0
Вывод. Если при падении с высоты 1000 м раскрыть парашют на высоте
800 метров, то скорость падения 18,2 м/с значительно превысит безопасную
Использование модели
Данная модель позволяет решать не только описательные, но и оптимизационные задачи, например:
 Найти оптимальную с точки зрения безопасности высоту раскрытия парашюта;

16
 Найти оптимальные размеры парашюта;
 Найти максимальную высоту, с которой можно спрыгнуть без парашюта и не пострадать и т.д.
Задание к лабораторной работе
1. Определить цель моделирования
2. Провести формализацию задачи: сделать предположения, определить состав параметров, характеризующих объект, сформулировать задачу математически.
3. Построить математическую модель (определить состав набора входных и выходных параметров, их конкретные числовые значения, записать уравнения).
4. Выбрать метод решения уравнений (в данном случае –один из численных методов). Записать решение уравнений в виде рекуррентных вычислительных схем.
5. Определить значения параметров модели, начальные значения меняющихся в ходе движения величин, условия окончания вычислительных циклов.
6. Построить компьютерную модель физического процесса в среде табличного процессора.
7. Произвести проверку модели на адекватность.
8. Выполнить конкретное задание из своего варианта работы.
9. Качественно проанализировать результаты моделирования.
Варианты заданий
Вариант 1.
Парашютист прыгает с некоторой высоты и летит, не открывая парашюта; на какой высоте (или через какое время) ему следует открыть парашют, чтобы иметь к моменту приземления безопасную скорость (не большую 10 м/с)?
Вариант 2.
Промоделировать падения тела с заданными характеристиками (масса, форма) в различных вязких средах. Изучить влияние вязкости среды на характер движения. Скорость движения должна быть столь невелика, чтобы квадратичной составляющей силы сопротивления можно было пренебрегать.


17
Вариант 3.
Промоделировать падения тела с заданными характеристиками (масса, форма) в различных плотных средах. Изучить влияние плотности среды на характер движения. Скорость движения должна быть достаточно велика, чтобы линейной составляющей силы сопротивления можно было пренебрегать (на большей части пути).
Вариант 4.
Глубинная бомба, установленная на взрыв через заданное время, сбрасывается со стоящего неподвижно противолодочного корабля. Исследовать связь между глубиной, на которой произойдет взрыв, и формой корпуса (сферической, полусферической, каплевидной и т.д.).
Вариант 5.
Глубинная бомба, установленная на взрыв на заданной глубине, сбрасывается со стоящего неподвижно противолодочного корабля. Исследовать связь между временем достижения заданной глубины и формой корпуса (сферической, полусферической, каплевидной и т.д.).
Вариант 6.
Промоделировать полет ракеты.
Провести исследование соотношения входных параметров m
0 и F
тяги
, при которых ракета достигнет первой космической скорости 7,8 км/с?(и в соответствующий момент исчерпает горючее). Остальные входные параметры фиксировать произвольно. Порядки входных параметров: m
0
˜ 10 7
кг,
m
кон
˜ 10 5 кг,

˜ 10 5
кг/c, F
тяги
˜
10 8
н.
Вариант 7.
Промоделировать полет тела, брошенного под углом к горизонту. Исследовать зависимость горизонтальной длины полета тела от одного из коэффициентов сопротивления среды, фиксировав все остальные параметры.
Вариант 8.
Найти траекторию полета кометы, залетевшей в Солнечную систему, у которой на расстоянии от Солнца 100 астрономических единиц (1 а.е. =
1,50
.
10 11 м  расстояние от Земли до Солнца) скорость v=10 км/с и направлена под углом

= 30
о к оси «комета-Солнце». Является ли эта траектория замкнутой? Если да, то сколько длится для нее период полета? Подобрать то

18 значение угла

, при котором траектория из незамкнутой превращается в замкнутую (скорость v фиксирована).
Вариант 9.
Проверить в компьютерном эксперименте выполнимость второго закона
Кеплера, определяющего движение небесных тел по замкнутой траектории.
Вариант 10.
Проверить в компьютерном эксперименте выполнимость третьего закона
Кеплера, определяющего движение небесных тел по замкнутой траектории.
Вариант 11.
Найти траекторию движения тела массой 1 г., несущего заряд величиной
q=1
.
10
2
к, в поле заряда величиной Q = 5
.
10
2
к. Начальное расстояние между зарядами 1 м, начальная скорость равна 1
.
10
1
м/с и направлена под углом 30
о к оси, соединяющей заряды. Провести моделирование для случая зарядов одного знака.
Вариант 12.
Имеется неподвижная заряженная частица с зарядом Q и экран (см. рис.7.2). В точке А экрана находится мишень. При каких соотношениях величины начальной скорости v
0
движущейся частицы (заряд q) и угла прицеливания

она попадет в мишень? Расстояния обозначены на рисунке. Заряды частиц  разных знаков.


19
Лабораторная работа №3
Построение графических моделей физических процессов в
среде Lazarus
Краткие теоретические сведения
Построение графиков функций в среде Lazarus. Для построения графических изображений имеется свойство формы Canvas (канва, холст) и его подсвойство Pen (перо). Перо в свою очередь обдадает свойствами Color
(цвет) и Width (толщина). Размеры формы определяются свойствами Height
(высота) и Width (ширина). Для перемещения из текущего положения в точку
(X,Y) служит метод MoveTo(X,Y), для рисования отрезков- LineTo(X,Y), для вывода текста на холст-, TextOut(X,Y,’текст’)
Алгоритм построения графика функции Y=Y(x), где x изменяется на
отрезке [a,b] с шагом h
1. Расчет расположения графика на форме
 Отступы от краев формы по горизонтали Hor и вертикали Ver
 Определение положения начала координат X0=Hor; Y0=Form2.Height-Ver
 Вычисление масштабов Mx=Form2.width/Xmax; My=Form2.Height/Ymax
2. Построение координатных осей
 Горизонтальная MoveTo(X0,Y0); LineTo(Form2.Width-Hor,Y0)
 Вертикальная MoveTo(X0,Y0); LineTo(X0,Ver)
3. Преобразование координат из
«обычных» в
«экранные»
X1:=trunc(X*Mx)+X0; Y0:=trunc(Y*My)+Y0 4. Начальные установки X=a; цвет и толщина пера; помещение пера в начало координат
5. Цикл построения графика:
Пока не достигнут правый конец отрезка
 Вычисление Y,
 Преобразование координат в «экранные»
 Построение отрезка из текущей точки в точку (X,Y)
 Увеличение x на шаг

20
Создание приложения с двумя формами. Вторую форму можно создать, например, выбрав в главном меню File, New, Form. Чтобы осуществить взаимодействие двух форм, необходимо включить модуль второй формы в предложение uses раздела реализации модуля первой формы и модуль первой формы в интерфейсный раздел второй формы:
Unit Unit1;
Interface

Var Form1:TForm1;
Implementation
// ссылка на модуль 2-ой формы uses Unit2;
Unit Unit2;
Interface
// ссылка на модуль 1-ой формы uses Unit1;

Var Form2:TForm2;
Implementation
При наступлении определенного события, например, щелчка на кнопке, вторая форма становится видимой и активной, а первая - скрытой:
Procedure Form1Button1Click();
Begin
Form2.Show;
Form1.Hide
End;
Возврат на первую форму происходит при щелчке на кнопке, расположенной на второй форме:
Procedure Form2Button1Click();
Begin
Form1.Show;
Form2.Hide
End;
Пример выполнения задания
Задача. Построить график зависимости скорости от времени для задачи из лабораторной работы №1. Объяснить график. Определить по нему конечное значение скорости.
Мы хотим наблюдать на экране график так, чтобы он занимал всю форму. Поскольку нужно будет еще вводить исходные данные, создадим приложение с двумя формами. На первой форме будут располагаться поля ввода исходных данных, на второй – график. График расположим


21 непосредственно на форме, появляться он будет при наступлении события
«Прорисовка формы». Роль аргумента играет время , роль функции – скорость. Поскольку обе величины принимают только неотрицательные значения, расположим начало координат в левом нижнем углу формы. На форме должны быть изображены и подписаны координатные оси.
Текст процедуры- обработчика события OnPaint компонента Form2: procedure TForm2.FormPaint(Sender: TObject); var Hor,Ver:integer; // горизонтальный и вертикальный отступ от краев формы x0,y0://
начало координат x,y:// текущие координаты точки
Mx,My:real;//
горизонтальный и вертикальный масштабы
Begin
// расчет расположения графика на форме
Hor:=10;Ver:=15; x0:=Hor; y0:=Form2.Height-Ver;
Mx:=Form2.Width/16;// ширину формы делим на tmax
My:=Form2.Height/63;// высоту формы- на Vmax with Canvas do begin
Pen.Color:=clBlack; Pen.Width:=2
//
горизонтальная ось
MoveTo(X0,Y0);LineTo(Form2.Width-Hor,Y0);
TextOut(Form2.Width-Hor,Y0-2,'t');
//
вертикальная ось
MoveTo(X0,Y0);LineTo(X0,Ver); TextOut(X0-5,Ver,'v');
//
начальные значения v:=0;t:=0;h:=h0; c:=0.40;S:=pi*r*r;
//
коэффициенты силы сопротивления k1:=6*pi*mu*r; k2:=0.5*S*c*ro;
Pen.Color:=clRed; // цвет пера - красный
MoveTo(x0,y0); // перо- в начало координат
//
цикл построения графика до раскрытия парашюта repeat

22 h:=h-v*dt; v:=v+(m*g-k1+v-k2*v*v)/m*dt; // изменение t,h и v t:=t+dt ;
X:=trunc(t*Mx)+X0;y:=trunc(-v*My)+Y0;//
перевод координат в экранные
LineTo(x,y); //
построение очередной точки графика until h