49214

Виртуальная модель вертолета в среде MatLab

Курсовая

Информатика, кибернетика и программирование

Математическое моделирование движителя вертолета. Создание виртуальной модели вертолета в среде VRBuilder. Особенностью моделируемого вертолета является то что используется движитель роль которого выполняет двигатель постоянного тока ДПТ.

Русский

2013-12-23

265.65 KB

69 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

БРЯНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра: «Информатика и программное обеспечение»

Курсовая работа

по информатике

«Виртуальная модель вертолета в среде MatLab»

Выполнил студент группы 12-ЭиН2:

Семченко И.А.

Преподаватель:

Симкин В. В.

Брянск 2013

СОДЕРЖАНИЕ

  1.  Введение……………………………………………………………………3
  2.  Описание объекта моделирования………………………………………..4
  3.  Математическое моделирование движителя вертолета………………….4
  4.  Создание виртуальной модели вертолета в среде VR-Builder…………..6
  5.  Заключение………………………………………………………………..10
  6.  Список используемой литературы ……………………………………...10
  7.  Приложение 1……………………………………………………………..11

Введение

MATLAB (Matrix Laboratory) — пакет прикладных программ для решения задач технических вычислений.

Основной особенностью языка MatLab является то, что его функции основаны на матричных операциях, которые создатели языка выразили в лозунге «думай векторно».

MATLAB как язык программирования был разработан Кливом Моулером  (англ. Cleve Moler) в конце 1970-х годов, когда он был деканом факультета  компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EISPACK без необходимости изучения Фортрана. Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учёными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little) познакомился с этим языком во время визита Клива Моулера в Стэндфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert). Совместными усилиями они переписали MATLAB на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JACKPAC. Первоначально MATLAB предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов.

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

Simulink - интерактивный инструмент для моделирования, имитации и анализа динамических систем. Он дает возможность строить графические блок-диаграммы, имитировать динамические системы, исследовать работоспособность систем и совершенствовать проекты. Simulink полностью интегрирован с MATLAB, обеспечивая немедленным доступом к широкому спектру инструментов анализа и проектирования. Simulink также интегрируется с Stateflow для моделирования  поведения, вызванного событиями. Эти преимущества делают Simulink наиболее популярным инструментом для проектирования систем управления и коммуникации, цифровой обработки и других приложений моделирования.

Virtual Reality раздвигает границы возможностей систем MATLAB и Simulink в мир виртуальной реальности. Используя технологию языка моделирования виртуальной реальности Virtual Reality Modeling Language (VRML), можно создавать анимационные   3-D сцены, которые управляются из среды MATLAB и Simulink.


  1.  Описание объекта моделирования

В качестве объекта моделирования выбран вертолет. Особенностью моделируемого вертолета является то, что используется движитель, роль которого выполняет двигатель постоянного тока (ДПТ). Для упрощения моделирования аэродинамические характеристики вертолета не учитываются, а моделируется только движитель.

Условное графическое обозначение (УГО) ДПТ представлено на рис.1.

Рис.1 УГО ДПТ

  1.  Математическое моделирование движителя вертолета

Роль движителя вертолета выполняет ДПТ. С целью упрощения моделирования ДПТ принимаем допущения:

  1.  Магнитный поток, создаваемый обмоткой возбуждения, величина постоянная;
  2.  Момент сопротивления двигателю равен нулю;
  3.  Постоянные ДПТ  и  равны.

Выпишем дифференциальное уравнение (уравнение Кирхгофа) для цепи якоря:

(закон Кирхгофа),

где

Uп - напряжение питания (входной сигнал)[В];

- падение напряжения на активном сопротивлении цепи якоря (закон Ома) [Ом];

– ЭДС индукции обмотки якоря (закон Ленца) [];

– индуктивность цепи якоря [Гн];

- ЭДС вращения (закон Лоренца) [В];

- константа, определяется параметрами машины [];

- частота вращения якоря [];

- ток цепи якоря [А].

Дифференциальное уравнение, описывающее электромеханическое поведение ДПТ имеют вид:

(закон Ньютона);

,

где

- момент инерции якоря электродвигателя [];

- электромагнитный момент двигателя [Н*м];

- момент сопротивления двигателя [Н*м];

– угол поворота якоря электродвигателя [рад].

Исходную систему дифференциальных уравнений, описывающую ДПТ, выпишем в форме Коши, т.е. разрешим относительно первых производных:

 

Представим систему дифференциальных уравнений ДПТ в форме пространства состояний, для этого введём новые переменные , ,  и выпишем систему в виде:

   

или в матричном виде:

,

 где

, , , .

Принимая параметры ДПТ равными La=0.001[Гн], Ca=10[], J=10[], R=0.1[Ом] вычислим коэффициенты усилителей структурной схемы ДПТ Gain=1000, Gain1=-100, Gain2=-10000, Gain3=1, Gain4=1.

Структурная схема ДПТ представлена на рис. 2

Рис.2 Структурная схема ДПТ

  1.  Создание виртуальной модели вертолета в среде VR-Builder

С целью создания виртуальной модели открываем новый файл и, используя примитивы и редакторы среды, создадим виртуальную модель вертолета (рис.3).

Рис. 3 Виртуальная модель вертолета

Рис. 4 Дерево узлов виртуальной модели вертолета и виды Main, Top, Right и Front

С целью ориентации модели вертолета в пространстве создаем модуль ориентации в Simulink модели. Модель ориентации представлена на рис. 5 и включает 2 блока констант 3 блока переключателей и мультиплексор. Изменяя положение ключей, формируется код ориентации вертолета в пространстве.

Рис. 5 Структурная схема ориентации в пространстве модели вертолета

С целью реализации функций вертолета формируем входы на VR Sink модуле. При моделировании используем 3 входа vertushka.rotation, vertushka_1.rotation и vertolet.translation (рис. 6)

Рис. 6 Модуль VR Sink с тремя входами

Подключение модуля VR Sink к Simulink модели вертолета выполняем с помощью мастера связи файла модели с файлом визуализации (рис. 7).

Рис. 7. Мастер связи файла модели с файлом визуализации

Для визуализации параметров вертолета создаем S-функцию и подключаем ее к модели движителя, используя мультиплексор (рис. 8).

На экран визуализатора выводим Напряжение питания якоря двигателя, ток якоря, угловую скорость и угол поворота ротора.

Рис. 8. Структурная схема визуализации параметров вертолета

Окно визуализатора представлено на рис. 9. Программный код S-функции визуализатора представлен в приложении 1.

Рис. 9. Окно визуализатора параметров двигателя

ЗАКЛЮЧЕНИЕ

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

  1.  Разработана математическая модель движителя вертолета;
  2.  Представили математическую модель движителя в форме Коши;
  3.  Выписали систему дифференциальных уравнений в форме пространства состояний;
  4.  Сформировали структурную схему движителя в Simulink;
  5.  Создали структурную схему ориентации в пространстве модели вертолета;
  6.  В среде VR-Builder создали виртуальную модель вертолета;
  7.  Выполнили подключение модуля VR Sink к Simulink модели вертолета;
  8.  Создали S-функцию визуализатора параметров движителя;
  9.  Сформировали структурную схему системы моделирования полета виртуальной модели вертолета;
  10.   Провели численные эксперименты моделирования вертолета.

СПИСОК ИСПОЛЬЗОВАНОЙ ЛИТЕРАТУРЫ


1. Matlab. Режим доступа:http://www.mathworks.com/products/matlab/ 
2. Лабораторные работы:http://matlab.exponenta.ru/matlab/default.php
3. Основы информатики. Савельев А.Я. Изд-во МГТУ им Н.Э. Баумана,

2001. — 328 с.

Приложение 1

Код для S-function

function [sys, x0, str, ts] = mysfun(t, x, u, flag)

switch flag

   case 0

       [sys, x0, str, ts] = mdlInitializeSizes;

   case 2

       sys=mdlUpdate(t, x, u);

   case 3

       sys=mdlOutputs(t,x,u);

   case 9

       sys=mdlTerminate(t,x,u);

   otherwise

       error(['Unhandled flag = ',num2str(flag)]);

end

 

function [sys, x0, str, ts] = mdlInitializeSizes

sizes = simsizes;

sizes.NumInputs = 4;

sizes.NumSampleTimes = 1;

sys = simsizes(sizes);

 

x0  = [];

str = [];

ts  = [-1 0];

 

Fig=figure('Position',[644 -11 551 685],...

   'Color', 'k',...

   'MenuBar', 'none',...

   'Name', 'GUI_Simulink',...

   'NumberTitle', 'off');

 

InitControl = 1;

 

uicontrol('Style',   'slider',...

   'Position',[50 485 451 18],...

   'Min', 0, 'Max', 220, 'Value', InitControl,...

   'Callback', @sldCallback);

 

set_param([gcs '/Control'],'Value',num2str(InitControl));

 

axes('Tag', 'ax1',...

 'Units', 'pixels',...

 'Position',[50 334 451 101],...

 'NextPlot','add',...

 'Xlim',    [0 50],...

 'Ylim',    [-50 300],...

 'Color','k',...

 'Xcolor', 'g',...

 'YColor', 'g',...

 'Box', 'on',...

 'XGrid', 'on',...

 'YGrid', 'on');

axes('Tag', 'ax2',...

 'Units', 'pixels',...

 'Position',[50 534 451 101],...

 'NextPlot','add',...

 'Xlim',    [0 50],...

 'Ylim',    [-150 150],...

 'Color','k',...

 'Xcolor', 'g',...

 'YColor', 'g',...

 'Box', 'on',...

 'XGrid', 'on',...

 'YGrid', 'on');

axes('Tag', 'ax3',...

 'Units', 'pixels',...

 'Position',[50 184 451 101],...

 'NextPlot','add',...

 'Xlim',    [0 50],...

 'Ylim',    [-10 7000],...

 'Color','k',...

 'Xcolor', 'g',...

 'YColor', 'g',...

 'Box', 'on',...

 'XGrid', 'on',...

 'YGrid', 'on');

axes('Tag', 'ax4',...

 'Units', 'pixels',...

 'Position',[50 34 451 101],...

 'NextPlot','add',...

 'Xlim',    [0 50],...

 'Ylim',    [-20 250],...

 'Color','k',...

 'Xcolor', 'g',...

 'YColor', 'g',...

 'Box', 'on',...

 'XGrid', 'on',...

 'YGrid', 'on');

 

uicontrol('Style', 'text',...

   'String', 'Signal',...

   'Position', [200 445 151 26],...

   'FontSize', 10,...

   'FontWeight', 'bold',...

   'BackgroundColor', 'k',...

   'ForegroundColor', 'm')

uicontrol('Style', 'text',...

   'String', 'Control',...

   'Position', [200 644 151 23],...

   'FontSize', 10,...

   'FontWeight', 'bold',...

   'BackgroundColor', 'k',...

   'ForegroundColor', 'y')

uicontrol('Style', 'text',...

   'String', 'angular velocity',...

   'Position', [199 285 151 22],...

   'FontSize', 10,...

   'FontWeight', 'bold',...

   'BackgroundColor', 'k',...

   'ForegroundColor', 'r')

uicontrol('Style', 'text',...

   'String', 'angle of rotation',...

   'Position', [199 135 151 22],...

   'FontSize', 10,...

   'FontWeight', 'bold',...

   'BackgroundColor', 'k',...

   'ForegroundColor', 'b')

 

set_param(gcbh, 'UserData', Fig);

 

function sys=mdlUpdate(t, x, u)

Fig = get_param(gcbh,'UserData');

Handles = guihandles(Fig);

PassedSampleNum = int32(t*10);

if mod(PassedSampleNum, 500) == 0  

   set(Handles.ax1, 'XLim', [t t+50])

   set(Handles.ax2, 'XLim', [t t+50])

   set(Handles.ax3, 'XLim', [t t+50])

   set(Handles.ax4, 'XLim', [t t+50])

end

axes(Handles.ax1)

LastPoint = get(Handles.ax1, 'UserData');

if ~isempty(LastPoint)

   plot([LastPoint(1) t],[LastPoint(2) u(2)],...

       'Color', 'm', 'LineWidth', 2)

   set(Handles.ax1, 'UserData', [t, u(2)])

else

   set(Handles.ax1, 'UserData', [t, u(1)*u(2)])

   plot(t, u(1)*u(2),  'Color', 'm', 'LineWidth', 2 )

end

axes(Handles.ax2)

LastPoint = get(Handles.ax2, 'UserData');

if ~isempty(LastPoint)

   plot([LastPoint(1) t],[LastPoint(2) u(1)],...

       'Color', 'y', 'LineWidth', 2)

   set(Handles.ax2, 'UserData', [t, u(1)])

else

   set(Handles.ax2, 'UserData', [t, u(1)])

   plot(t, u(1),  'Color', 'y', 'LineWidth', 2 )

end

axes(Handles.ax3)

LastPoint = get(Handles.ax3, 'UserData');

if ~isempty(LastPoint)

   plot([LastPoint(1) t],[LastPoint(2) u(3)],...

       'Color', 'r', 'LineWidth', 2)

   set(Handles.ax3, 'UserData', [t, u(3)])

else

   set(Handles.ax3, 'UserData', [t, u(1)])

   plot(t, u(3),  'Color', 'r', 'LineWidth', 1 )

end

axes(Handles.ax4)

LastPoint = get(Handles.ax4, 'UserData');

if ~isempty(LastPoint)

   plot([LastPoint(1) t],[LastPoint(2) u(4)],...

       'Color', 'b', 'LineWidth', 2)

   set(Handles.ax4, 'UserData', [t, u(4)])

else

   set(Handles.ax4, 'UserData', [t, u(1)])

   plot(t, u(4),  'Color', 'b', 'LineWidth', 1 )

end

sys = [];

 

function sys=mdlOutputs(t,x,u)

sys=[];

 

function sys=mdlTerminate(t,x,u)

button = questdlg('Delete the GUI_Simulink window?','GUI_Simulink',...

   'No','Yes','No');

if isequal(button, 'Yes')

   Fig = get_param(gcbh,'UserData');

   delete(Fig)

end

sys = [];

 

function sldCallback(src,evt)

s = get(src, 'Value');

set_param([gcs '/Control'], 'Value', num2str(s));


 

А также другие работы, которые могут Вас заинтересовать

1755. СТРУКТУРНАЯ ОРГАНИЗАЦИЯ МАГНИТНЫХ КОЛЛОИДОВ В ЭЛЕКТРИЧЕСКОМ И МАГНИТНОМ ПОЛЯХ 1.45 MB
  Взаимодействие частиц и представления о фазовых переходах в магнитных жидкостях. Методика и техника исследования структурных превращений магнитных жидкостей в электрическом и магнитном полях. Особенности деформации микрокапельных агрегатов, содержащихся в магнитной жидкости при воздействии электрического поля. Фазовый переход в магнитных жидкостях в постоянном электрическом поле.
1756. Становление общественно–философских взглядов А.А. Григорьева (опыт историко–психологической биографии) 1.45 MB
  Аполлон Григорьев яркий представитель разночинцев и недемократов, философское самоуглубление в бесплодное искание того, чего нет. Культура Серебряного века в борьбе с утилитарным подходом к искусству. Постепенная идеологизация науки.
1757. Курорты Северо-Западного Кавказа в политической, экономической и культурной жизни России конца XVIII – начала XX веков 1.45 MB
  Военно-политические и административные аспекты становления и развития курортов Северо-Западного Кавказа в конце XVIII - начале XX века. Особенности административно-правового статуса курортов Северо-Восточного берега Черного моря – Анапы. Создание бальнеологической базы и благоустройство курортов Северо-Западного Кавказа.
1758. Использование историко-культурного потенциала Санкт-Петербурга для повышения эффективности гостиничных услуг на примере деятельности гостиницы 1.45 MB
  Оценка Санкт-Петербурга как крупного центра туристской индустрии, анализ экскурсионных предложений, имеющихся в нашем городе, создание новых экскурсионных программ, которые можно было предложить взыскательному туристу, посещающему наш город не в первый раз
1760. Автомобили и автомобильное хозяйство 1.42 MB
  Цель методических указаний – помощь студентам при выполнении контрольной работы по дисциплине Автомобили. Излагаются основные теоретические сведения, порядок проведения расчетов и требования к оформлению контрольной работы.
1761. СИНТЕЗ И ИССЛЕДОВАНИЕ ГРАНАТОВ РЗЭ И АЛЮМИНИЯ ДЛЯ СВЕТОИЗЛУЧАЮЩИХ ДИОДОВ 1.44 MB
  Физико-химические и люминесцентные свойства гранатов, основные способы соединения со структурой граната, кристаллохимические особенности соединений со структурой гранат, термостимулированная люминесценция в соединениях со структурой граната.
1762. Об итерационных методах решения операторных уравнений второго рода 1.44 MB
  Метод ускорения сходимости монотонных приближений к решению уравнения. Построение приближений, сходящихся к спектральному радиусу и собственному вектору линейного оператора. Построение приближений, сходящихся к собственному вектору линейного оператора. Об одном варианте метода Зейделя.
1763. Литургия в творчестве русских композиторов конца XVIII - XX веков. Специфика жанра и организация цикла 1.43 MB
  Авторский хоровой цикл литургии: богослужебный и музыкально-художественный аспекты. Литургия в жанровой системе духовно-музыкального искусства. Проблемы организации авторского литургийного цикла. Богослужебная структура и принципы музыкальной композиции. Литургия как исторически типизированная композиция. Богослужебная структура. Соотношение сакральной и художественной сфер в русской духовной музыке. Научно-теоретические подходы. Литургия Иоанна Златоуста ор. 41 П. Чайковского. Богослужебный канон и авторское художественное творчество.