49214

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

Курсовая

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

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

Русский

2013-12-23

265.65 KB

80 чел.

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

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

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

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

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

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


 

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

36610. Проект создания системы контроля качества производства пакетов полиэтиленовых на ООО «Пластик» 728.5 KB
  Отрасль упаковки – одна из наиболее молодых в нашей стране, и это понятно, т.к. еще 10-15 лет назад никого не волновало, во что упакован товар, главное его купить, а завернуть можно было и в газету. Несколько десятилетий отрасль упаковки у нас совершенно не развивалась...
36611. Операційне числення 1.43 MB
  5 Поняття функції комплексної змінної. Множина комплексних чисел w що відповідають усім називається множиною значень функції fz. Оскільки кожне комплексне число характеризується парою дійсних чисел то завдання комплексної функції w =uiv комплексної змінної z = х iу еквівалентно завданню двох дійсних функцій двох дійсних змінних що може бути записане у вигляді wz =их у ivx у. Функції uху і vxy визначені в області G площини дійсних змінних x y що відповідає області G комплексної площини z.
36612. Поставка товаров, работ и услуг для органов внутренних дел 294.5 KB
  Сфера применения института поставки разнообразна и велика. Она включает отношения, связанные с поставкой товаров, как для коммерческих целей, так и для государственных нужд, в том числе нужд Органов внутренних дел. Тема моей дипломной работы «Поставка товаров, работ и услуг для нужд ОВД»
36613. ІНЖЕНЕРНА ГІДРАВЛІКА. Рух рідини в закритих руслах 752.5 KB
  Рух рідини в закритих руслах. Також в конспекті розглянуті питання виникнення гідравлічних опорів поняття гідравлічного удару витікання рідини через отвори та насадки вільні гідравлічні струмені. ОСНОВНІ ПОНЯТТЯ І ВИЗНАЧЕННЯ КУРСУ ІНЖЕНЕРНА ГІДРАВЛІКА Гідравліка це наука яка вивчає закони рівноваги і руху рідини а також взаємодію між рідиною і твердими тілами в стані спокою і щодо їх руху.
36614. ПРОЕКТУВАННЯ ПЛАСТИЧНОЇ ФОРМИ ОДЯГУ 762 KB
  ПРИЙОМИ ТВОРЧОГО ПОШУКУ ПЛАСТИЧНОЇ ФОРМИ ОДЯГУ. Створення одягу це мистецтво. Тому пластична композиція форми одягу вирішується не лініями і площинами а обємами і просторами певної конфігурації і величини.
36615. РЕГІОНАЛЬНЕ УПРАВЛІННЯ 584.5 KB
  Регіональне управління [конспект лекцій для студентів спеціальності 6. Конспект лекцій з дисципліни Регіональне управління призначений для студентів спеціальності 6. Конспект лекцій з дисципліни Регіональне управління складено на підставі відповідних нормативних вимог Міністерства освіти і науки молоді та спорту України.
36616. КОНСПЕКТ ЛЕКЦІЙ З ТРУДОВОГО ПРАВА УКРАЇНИ 217 KB
  Предмет і система трудового права Трудове право розглядається в 3 значеннях як галузь права як науку і як навчальну дисципліну. Предмет трудового права це сукупність трудових та інших повязаних з ними суспільних відносин з приводу організації та здійснення найманої оплачуваної праці. Перша загальна частина до якої входять такі інститути: а поняття та предмет трудового права; б основні принципи трудового права; в джерела трудового права; г суб'єкти трудового права; ґ трудові правовідносини; д колективний договір; е правова...
36617. УСТАТКУВАННЯ ЗАКЛАДІВ ГОТЕЛЬНО-РЕСТОРАННОГО ГОСПОДАРСТВА. Механічне та теплове устаткування 12.46 MB
  Універсальні кухонні машини. Допоміжними елементами машини є засоби керування регулювання захисту сигналізації а також пристрої які забезпечують безпеку експлуатації. Ведуча ланка зєднується з приводом машини а ведена з робочими органами. Такі машини називаються складними на відміну від простих машин з одним робочим органом.
36618. ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ 3.53 MB
  Обєктноорієнтоване програмування це методологія програмування яка базується на поданні програми у вигляді сукупності обєктів кожний із яких є реалізацією певного класу а класи утворюють ієрархію на принципах успадкування. кожний обєкт є реалізацією певного класу; 3. Це обєкт класу який асоційований з системною консоллю і отже все те що буде передано в цей об'єкт за допомогою оператора буде виведено в консоль. Тема 15 Поняття класу.