49214

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

Курсовая

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

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

Русский

2013-12-23

265.65 KB

70 чел.

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

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

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

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

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

«Виртуальная модель вертолета в среде 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));


 

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

18182. ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ ВОДНОГО ФОНДУ 79 KB
  Лекція 26 ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ ВОДНОГО ФОНДУ План: Поняття та склад земель водного фонду Дозвільний порядок на проведення робіт на землях водного фонду Правовий режим окремих різновидів земель водного фонду Правові форми використання земель водно
18183. ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ ПРОМИСЛОВОСТІ, ТРАНСПОРТУ, ЗВЯЗКУ, ЕНЕРГЕТИКИ, ОБОРОНИ ТА ІНШОГО ПРИЗНАЧЕННЯ 87.5 KB
  Лекція 27. ПРАВОВИЙ РЕЖИМ ЗЕМЕЛЬ ПРОМИСЛОВОСТІ ТРАНСПОРТУ ЗВ'ЯЗКУ ЕНЕРГЕТИКИ ОБОРОНИ ТА ІНШОГО ПРИЗНАЧЕННЯ План: Поняття земель промисловості транспорту звязку енергетики оборони та іншого призначення Загальні риси правового режиму земель промислово...
18184. Проблема одаренности: анализ базовых дефиниций 136 KB
  Тема 1. Проблема одаренности: анализ базовых дефиниций. Общее представление об одаренности Трехсторонняя модель одаренности. Трехкольцевая модель Д.Рензулли. Проблема соотношения творчества и обучения. Природа творчества и деятельности по Дружинину.
18185. ІНДИВІДУАЛЬНІ ОСОБЛИВОСТІ ОБДАРОВАНИХ 183 KB
  Матеріал до теми 2 ІНДИВІДУАЛЬНІ ОСОБЛИВОСТІ ОБДАРОВАНИХ Типологія обдарованості. Творча особистість і її життєвий шлях У дослідженнях проведених у лабораторії психології здібностей Інституту психології РАНЕЙ А.Н. Вороніним на дорослих випробуваних ...
18186. ГЕНЕЗИС ОДАРЕННОСТИ 38 KB
  Материал к теме 3 ГЕНЕЗИС ОДАРЕННОСТИ Существует три подхода в отношении генезиса одаренности: 1 генетический отводящий основную роль в детерминации психических свойств наследственности; 2 средовой представители которого считают решающим фактором развити
18187. ВИДЫ ОДАРЕННОСТИ 122 KB
  ВИДЫ ОДАРЕННОСТИ Понятия о видах одаренности. Теория множественности видов интеллекта Ховарда Гарднера. Общая интеллектуальная и академическая одаренность. Художественная одаренность. Творческая одаренность. Лидерская одаренность. Практическая одаренно...
18188. Диагностика одаренности. Наиболее популярные тесты диагностики творческой одаренности 524 KB
  Материалы к теме Диагностика одаренности. Наиболее популярные тесты диагностики творческой одаренности. К числу наиболее популярных тестов направленных на выявление творческой одаренности можно отнести следующие: тесты креативности для детей разработанн
18189. ДІАГНОСТИКА ОБДАРОВАНОСТІ 167.5 KB
  PAGE MERGEFORMAT 21 Тема 5. ДІАГНОСТИКА ОБДАРОВАНОСТІ Мета: Опанування матеріалів лекції студентами слухачами має сформувати у них знання основних підходів до визначення етапів принципів методів та факторів достовірності психодіагностики обдар
18190. ПОНЯТТЯ ПРО ОБДАРОВАНІСТЬ 156.5 KB
  Тема 1. ПОНЯТТЯ ПРО ОБДАРОВАНІСТЬ Мета: Опанування матеріалів лекції студентами слухачами має сформувати у них загальні уявлення про обдарованість та обдаровану дитину знання основних теоретичних та практичних підходів до виз