Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 366

.pdf
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
1.03 Mб
Скачать

ФГБОУ ВО "Воронежский государственный технический университет"

Кафедра высшей математики и физико-математического моделирования

МОДЕЛИРОВАНИЕ ДИНАМИКИ ШЕСТИМЕРНОГО ОСЦИЛЛЯТОРА В СИСТЕМЕ КОМПЬЮТЕРНОЙ МАТЕМАТИКИ

SCILAB

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к выполнению лабораторных работ по курсу «Математическое моделирование в технической физике» для студентов направления подготовки магистров 16.04.01 «Техническая физика» очной формы обучения

Воронеж 2016

Составители: аспирант А.А. Кудряш, канд. физ.-мат. наук Г.Е. Шунин.

УДК 004.94:519.63

Моделирование динамики шестимерного осциллятора в системе компьютерной математики Scilab: методические указания к выполнению лабораторных работ по курсу «Математическое моделирование в технической физике» для студентов направления подготовки магистров 16.04.01 «Техническая физика» очной формы обучения / ФГБОУ ВО "Воронежский государственный технический университет"; сост. А.А. Кудряш, Г.Е. Шунин. Воронеж, 2016. 39 с.

В методических указаниях рассмотрены функциональные возможности системы компьютерной математики Scilab. Приводится программа, описывающая динамику левитирующего тела.

Издание соответствует требованиям Федерального государственного образовательного стандарта высшего образования по направлению подготовки магистров 16.04.01 «Техническая физика», дисциплине «Математическое моделирование в технической физике».

Методические указания подготовлены в электронном виде в текстовом редакторе Word и содержатся в файле МДШМО.pdf.

Ил.5 . Библиогр.: 2 назв.

Рецензент канд. техн. наук, доц. В.В. Пешков.

Ответственный за выпуск зав. кафедрой д-р физ.-мат. наук, проф. И.Л. Батаронов

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

ФГБОУ ВО "Воронежский государственный технический университет", 2016

Cистема компьютерной математики Scilab.

Scilab – это свободно распространяемый пакет прикладных программ для математических расчѐтов, представляющий мощную вычислительную среду для инженерных и научных применений. Scilab содержит множество математических функций для решения широкого спектра задач, а также имеет свой язык программирования высокого уровня. Для выполнения задач можно воспользоваться как командным окном Scilab, так и редактором, позволяющим создавать и редактировать скрипт-файлы (рис. 1).

Рис. 1. Пример редактора в Scilab 5.4.1

Среди функциональных возможностей Scilab выделяются следующие:

Математические операции и моделирование: элементарные математические функции, функции линейной алгебры, действия с разреженными матрицами, действия над

многочленами и рациональными функциями и моделирование

– явные и неявные решатели систем дифференциальных уравнений.

Функции для 2D и 3D визуализации результатов: линейные графики, круговые диаграммы, гистограммы, поверхности, анимация, а также функции для экспорта графических данных в различных форматах.

Оптимизация – функции для решения непрерывных

идискретных задач с ограничениями и без них: нелинейная оптимизация, квадратичная оптимизация, нелинейная оптимизация методом наименьших квадратов, полуопределѐнное программирование, генетические алгоритмы, имитация отжига, линейные матричные неравенства.

Статистика – описательная статистика, распределения вероятности, линейное и нелинейное моделирование.

Разработка и анализ систем управления: передаточные функции, классическое и робастное управления, анализ устойчивости.

Обработка сигналов: генерирование сигнала, обработка данных методом окон, оценка спектральной плотности, разработка цифровых БИХ и КИХ фильтров, разработка аналоговых фильтров, трансформация сигналов, включая быстрое преобразование Фурье.

Разработка приложений: расширенные структуры данных и пользовательские типы данных, пользовательский интерфейс, программный интерфейс приложения, совместимый с C, C++, Java. Также существует возможность управления обменом данных с внешними источниками: чтение и запись бинарных MATLAB-файлов, преобразование MATLAB M-файлов в Scilab-файлы, связь с Excel.

Xcos – графический редактор для моделирования гибридных динамических систем. Состоит из трѐх основных частей. Первая часть – браузер палитры блоков, в котором представлены блоки, которые формируют конечную модель.

2

Блоки сгруппированы по категориям: блоки обработки сигналов, блоки математических операций, блоки непрерывных и дискретных систем, пользовательские блоки и т.д. Вторая часть – редактор, в котором блоки соединяются в единую динамическую систему, которая подлежит решению. Третья часть – компилятор/моделирующее устройство, позволяющее моделировать сложные системы: дискретные, непрерывные, определяемые символьными уравнениями и т.д., а также гибридные системы. Также, можно в реальном времени следить за данными, полученными в результате моделирования, при помощи их графического представления.

Динамика левитирующего сверхпроводящего тела

В качестве примера, иллюстрирующего возможность построения графического интерфейса, рассматривается задача левитации сверхпроводящего пробного тела в магнитном поле сверхпроводящих катушек с током. Такое тело имеет шесть колебательных степеней свободы относительно корпуса. Система дифференциальных уравнений, описывающая отклонения пробного тела от положения равновесия под действием гравиинерционных сил была получены в рамках формализма Лагранжа в работе [2]. В обобщѐнной матричной форме она может быть записана в виде

+ + = , ,

где - вектор-столбец отклонений размерностью (6х1), - диагональная матрица (6х6) коэффициентов вязкости, , – диагональная матрица (6х6) коэффициентов жѐсткости, - вектор-функция (6х1), описывающая гравиинерционные силы, нелинейности и перекрѐстные связи.

Для решения такой системы дифференциальных уравнений в Scilab необходимо свести еѐ к системе дифференциальных уравнений первого порядка путѐм замены

= .

3

Таким образом, система будет иметь вид:

= ,

= − − + , .

Таким образом, система из шести уравнений 2-го порядка сводится к системе из 12 уравнений первого порядка, которую уже можно решать с помощью функций Scilab.

Разработанная программа, состоит из файла-сценария с расширением sce и двух файлов с расширением sci, в одном из которых содержатся функции, описывающие динамику рассматриваемого тела, а в другом – функции, отвечающие за создание графического интерфейса.

В файле-сценарии задаются начальные условия для решения системы дифференциальных уравнений и графические параметры (создаѐтся графическое окно, задаются свойства графических осей и изображается исследуемое тело). После этого вызывается функция, создающая соответствующий графический интерфейс (см. рис. 2).

На рисунке первые 2 кнопки интерфейса отвечают соответственно за запуск и остановку решения системы, а третья – за реинициализацию (возвращение тела в начальное положение), дальнейшие 6 кнопок при нажатии отображают график изменения каждой из компонент вектора-решения системы, следующие 6 кнопок аналогично показывают скорость изменения каждой из компонент в зависимости от времени, а последние 6 кнопок используются для определения правильного функционирования программы (для этого создаѐтся дополнительно ещѐ один sci-файл, подробнее об этом будет сказано далее). Ползунки вверху наглядно отображают изменение компонент вектора-решения и изменение скорости изменения этих компонент во времени, а также справа от ползунков показываются соответствующие значения этих параметров.

Что касается остальных двух sci-файлов, то в одном из них описывается динамика исследуемого тела (другими словами в нѐм записывается правая часть системы дифференциаль-

4

ных уравнений), а также описываются матрицы взаимной ориентации двух ортогональных систем, выраженные через углы Эйлера.

Рис. 2. Пример построения пользовательского интерфейса в

Scilab 5.4.1

Второй файл содержит описание функций, отвечающих за графический интерфейс: функции, создающие контур изображаемого тела; функцию, отображающую тело в графическом окне; функцию; непосредственно создающую графический интерфейс (проще говоря, всѐ, что расположено в правой части вышеприведѐнного рисунка); функции, вызываемые при передвижении ползунка: либо при передвижении ползунка вручную меняется значение соответствующей компоненты решения, либо наоборот, при изменении соответствующей компоненты передвигается ползунок; функции, вызываемые при нажатии на кнопки; функцию, отвечающую за анимацию: она позволяет отображать тело в соответствии с текущими значениями его координат; функцию, в которой решается система дифференциальных уравнений.

Листинг программы вместе с описанием приведѐн в приложении.

5

Для проверки функционирования программы, рассчитывающей динамику шестимерного осциллятора, исходная система уравнений, описывающих шестимерный осциллятор, была упрощена и сведена к следующему виду:

+ 1 + 2 = (2 )

где = 1 … 6 Рассматривается колебательная система, т.е. коэффици-

ент трения 1 достаточно мал по сравнению с коэффициентом2. Проверка проводилась для двух случаев: колебательная система с трением при наличии вынуждающей силы и случай свободных колебаний, т.е. правая часть уравнений системы – нулевая.

В первом случае использовались следующие значения коэффициентов:

11 = 21 = 31 = 41 = 51 = 61 = 1712 = 22 = 32 = 42 = 52 = 62 = 100

1 = 2 = 3 = 4 = 5 = 6 = 1

И начальные условия

0 = 00 = 0

Далее, система решалась аналитически (для этого был создан отдельный файл с соответствующей функцией) и численно и проводилось сравнение графиков численного и аналитического решений (см.рис. 3).

Аналогичная картина наблюдалась по остальным координатам, что логично, учитывая то, что уравнения системы совпадают.

Разность между аналитическим и численным решениями имеет порядок 10−9, так что можно говорить об успешном функционировании программы в этом случае.

Во втором случае использовались следующие значения коэффициентов:

11 = 21 = 31 = 41 = 51 = 61 = 1

6

12 = 22 = 32 = 42 = 52 = 62 = 100

1 = 2 = 3 = 4 = 5 = 6 = 0

Т.е. имеют место свободные затухающие колебания. Использовались следующие начальные условия:

0 = 0.01, = 1 … 60 = 0

Рис. 3. Сравнение численного и аналитического решений для незатухающих колебаний

7

Рис. 4. Сравнение численного и аналитического решений для затухающих колебаний

Графики численного и аналитического решений изображены на рис. 4

Разность между аналитическим и численным решениями имеет порядок 10−8, так что и в этом случае можно говорить об успешном функционировании программы.

Описание программы в Scilab, моделирующей динамику шестимерного осциллятора.

Файл-сценарий model.dem.sce: exec C:\...\model.sci;

exec C:\...\model_gui.sci;

(включаются функции, описанные в файле model.sci (динамика исследуемого тела) и в файле model_gui.sci (графический ин-

8