
Краткое описание программы в пакетеMatlabи представление результатов ее выполнения Описание программы в Matlab
Для решения полученной в формуле (1.1) системы ДУ в пакете MATLAB была использована стандартная функция ode45 (f,interval,X0 [,options]), где:
f - вектор-функция для вычисления правой части уравнения системы уравнений
interval - массив из двух чисел, определяющий интервал интегрирования дифференциального уравнения или системы;
Х0 - вектор начальных условий системы дифференциальных систем
options - параметры управления ходом решения дифференциального уравнения или системы.
Вектор-функция с именем Model (t,x), задаётся в файле «Model.m», программный код приведен в Приложении 2. После сохранения файла «Model.m» формируем код сценария отрисовки графиков, представляющий собой следующую последовательность команд в командной строке:
1) Вызываем функцию ode45с требуемыми параметрами:
>> [t, y] = ode45(@Model, [0:0.1:50], [x0, vx0, y0, vy0]); (5.1)
2) Результатом выполнения функции ode45 является массив. Для построения графиков движения системы нас интересуют столбцы 1, 3, поэтому далее в командной строке задаем следующие команды:
>>x=y(:,1); //график изменения скорости движения тележки (5.2)
>>y=y(:,3); //график колебаний маятника (5.3)
3) Задаем команду отрисовки двух графиков на одной координатной оси заданными цветами:
>> plot(t, x, 'r-', t, y, 'g-') (5.4)
4) Включаем сетку, подписываем оси и формируем легенду графиков:
>>grid on (5.5)
>>xlabel ('t') (5.6)
>>ylabel('X(t, Y(t)') (5.7)
>>legend('x', 'y'); (5.8)
В результате в окне «Figure 1» получаем изображение графиков (см. рис. 4):
Рис.4. Результаты выполнения программы при начальных условиях
Результаты выполнения программы при изменении начальных условий
Примем m2 равным 20, а остальные параметры оставим без изменений:
m1 = 2;
m2 = 20;
C1 = 200;
C2 = 200;
C3 = 200;
l1 = 0.4;
l2 = 0.4;
l3 = 0.4;
L = 5;
w = 2;
k = 0.5;
nyu = 0.2;
Изменив параметры системы, получаем следующие графики (Рис.5):
Рис.5. Результаты выполнения программы при изменении начальных условий
Видно, что типы графиков не изменились. Из этого можно сделать вывод, что при увеличении массы груза частота колебаний пружины маятника и амплитуда колебаний увеличиваются. Следует заметить, что при этом быстрота изменения скорости тележки приобрела еще более затихающий характер.
Из сказанного можно сделать вывод, что по средствам задания функций и при получении их графиков, можно дать описание динамических изменений системы в целом.
Выводы
В курсовой работе были изучены методы решения систем обыкновенных дифференциальных уравнений. Разработана математическая модель заданного физического процесса — движения тележки, помещенной в ящик— с использованием системы линейных дифференциальных уравнений второго порядка.
Разработана программа в среде C++Builder XE2, реализующая моделирование физического процесса по его математической модели, используя методы Эйлера, Рунге-Кутта, Адамса.
При наблюдении за физической моделью видно, что результаты, полученные тремя методами при одинаковых начальных данных, совпадают, что позволяет сделать вывод об эффективности работы программы. При этом наибольшая точность результатов достигается при использовании метода Адамса.
Разработана программа для решения заданной системы в пакете Matlab.