Автор: Пользователь скрыл имя, 16 Ноября 2011 в 10:40, дипломная работа
Особое сложное понимание переходных процессов (динамики). Трудность восприятия циклического и общего шага.
UM
включает в себя ядро и ряд
дополнительных модулей,
Использование
UM для моделирования механических
систем, особенности програмного комплекса
и его основных модулей, а также множество
рисунков и анимаций, которые помогут
Вам составить первое впечатление о программе,
объектах исследования и принятых методиках,
все это представлено в презентации Применение
UM в решении задач общего машиностроения
(zip архив, 83 Мб, рус. яз., с анимациями).
1.7.1.
UM.Imput
Программа ввода данных
Программа описания объекта (uminput.exe) предназначена для создания, корректировки объектов/систем тел, а также для автоматизированного синтеза уравнений движения и
их компиляции.
Основными элементами программы являются (Рис.7)
Основное меню команд:
· панель инструментов с кнопками, дублирующими наиболее часто используемые команды основного меню;
·набор закладок с типовыми элементами (компонентами) для визуального конструирования простых объектов (см. п. 3.5);
· конструктор объектов – средство ввода и корректировки параметров моделируемых
объектов.
Программа является многозадачной, то есть позволяет одновременно открывать несколько конструкторов с разными объектами. Активным является объект, окно конструктора которого расположено поверх конструкторов остальных объектов.
Рис. 7.
Общий вид программы
ввода UM Input
1.7.2.
UM.Simulation
Программа моделирования
Программа моделирования представляет собой отдельное приложение EUMSimul.exe) и
подгружает уравнения движения исследуемого объекта, используя предварительно подготовленную динамическую библиотеку Eumtask.dll) задачи.
Для запуска программы используйте пункт меню Объект=|=Моделирование в программе описания моделей EUMInput.exe). Если текущая активная задача полностью подготовлена для моделирования Eто есть для нее создана динамическая библиотека с уравнениями движения umtask.dll), то программа моделирования автоматически подгружает модель. Если задача не имеет aLL, то ее моделирование невозможно, однако модуль интегрирования может быть запущен. В этом случае пользователь может подгрузить любую ранее подготовленную модель с помощью команды меню Файл=|=Открыть.
Численный анализ уравнений движения включает:
· численное интегрирование уравнений движенияX
· анализ XVA-файлов и создание демонстрацийX
·
анализ линеаризованных уравнений.
2.
Опытно-экспериментальная
часть.
В программе UM Input была создана модель вертолёта Ми-8 в трёх мерном реальном масштабе. Материал корпуса алюминий, толщина 5 мм, что соответствует реальности. На основе этих данных было выполнено UM системы. Что позволило вводить силу момента и наблюдать поведение модели в режиме времени. Модель позволяет наблюдать изменение переменных на графиках. Учитывая то, что стандартные силы и моменты применяются для двух тел. Одно тело вертолет, а второе тело, воздух. Но нельзя задать воздух как второе тело. Поэтому стандартных средств для данной задачи не достаточно. Вынуждены применить программирование в среде UM, был создан файл управления.
unit ClAshanin;
interface
uses
CtvSt, CtvDll;
procedure UserCalc( _x, _v, _a : VectRPtr; _isubs, _UMMessage : integer; var WhatDo : integer ); cdecl; export;
procedure ControlPanelMessage( _x, _v, _a : VectRPtr; _isubs, _index : integer; _Value : double ); cdecl; export;
procedure TimeFuncCalc( _t : real_; _x, _v : VectRPtr; _isubs : integer ); cdecl; export;
procedure Get1stOrderODE( _t : real_; _x, _f : VectRPtr; _isubs : integer ); cdecl; export;
procedure Get2ndOrderODE( _t : real_; _x, _v, _f : VectRPtr; _isubs : integer ); cdecl; export;
procedure UserConCalc( _x, _v : VectRPtr; _Jacobi : MatrRPtr; _Error : Vec3RPtr; _isubs, _ic : integer; _predict : boolean; _nright : integer ); cdecl; export;
implementation
uses
DGetVars, AshaninC, _TAshanin;
{ Функция "TimeFuncCalc" используется исключительно для расчета функций времени.
Не используйте функции типа "GetPoint" внутри этой процедуры.
Недопустим расчет сил в этой процедуре. }
procedure TimeFuncCalc( _t : real_; _x, _v : VectRPtr; _isubs : integer );
var
_ : _AshaninVarPtr;
begin
_ := _PzAll[SubIndx[_isubs]];
end;
procedure ForceFuncCalc( _t : real_; _x, _v : VectRPtr; _isubs : integer ); {Здесь вычисляются силы и мометы}
var
_ : _AshaninVarPtr;
Force, Moment : coordin;
begin
Force[1]:=0; Force[2]:=10000; Force[3]:=0;
Moment[1]:=0; Moment[2]:=0; Moment[3]:=10000;
AddForceToBody(1,1, Force,
BodyCoordinateSystem) : integer;
{Функция добавляет вектор силы corce к телу ibody подсистемы isubs в начало отсчета
СК, связанной с телом.}
AddMomentToBody(0,1, Moment,
BodyCoordinateSystem) : integer;
{Функция добавляет вектор момента Moment к телу ibody подсистемы isubs.}
:= _PzAll[SubIndx[_isubs]];
end;
procedure Get1stOrderODE( _t : real_; _x, _f : VectRPtr; _isubs : integer );var
_ : _AshaninVarPtr;begin
_ := _PzAll[SubIndx[_isubs]];end;
procedure Get2ndOrderODE( _t : real_; _x, _v, _f : VectRPtr; _isubs : integer );var
_ : _AshaninVarPtr;begin
_ := _PzAll[SubIndx[_isubs]];end;
procedure UserConCalc( _x, _v : VectRPtr; _Jacobi : MatrRPtr; _Error : Vec3RPtr; _isubs, _ic : integer; _predict : boolean; _nright : integer );var
_ : _AshaninVarPtr;begin
_ := _PzAll[SubIndx[_isubs]];end;
procedure UserCalc( _x, _v, _a : VectRPtr; _isubs, _UMMessage : integer; var WhatDo : integer );var
Key : integer;begin
Key := WhatDo;
WhatDo := NOTHING;
case _UMMessage of FORCESCALC_MESSAGE : begintry
ForceFuncCalc( t, _x, _v, _isubs );
except WhatDo := -1;end;
procedure ControlPanelMessage( _x, _v, _a : VectRPtr; _isubs, _index : integer; _Value : double );var
: _AshaninVarPtr;begin
_:= _PzAll[SubIndx[_isubs]];end;
end.
Несмотря на то, что данные были введены в соответствии с инструкции! Не удалось смоделировать воздействие линейных сил и моментов.
Информация о работе Блок управления вертолетом БУВ – 8А: Создание имитационной обучающей программы