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

MSC.Adams_Th_El-да

.pdf
Скачиваний:
188
Добавлен:
09.05.2015
Размер:
1.96 Mб
Скачать

9. Применение Системных Элементов для добавления в модель уравнений

81

9. Переменные в MSC.ADAMS

Важный класс объектов MSC.ADAMS представляют Переменные (Variables). Как в любом языке программирования они предназначены для хранения информации. Переменные разделены на два типа: конструк-

ционные (Design variables) и переменные состояния (State variables).

Переменные первого типа остаются постоянными в процессе Симулирования (Simulation), т.е. являются параметрами модели. Переменные состояния принадлежат множеству объектов, которые называются системные элементы (System Elements). Объекты такого типа могут изменять свои значения в процессе симулирования. Особенности использования переменных для создания моделей сложных механических систем рассмотрены в этом разделе.

9.1. Конструкционные переменные

Конструкционные переменные (Design Variables) предназначены для описания и параметризации модели. Все ее характеристики, которые могут быть изменены в процессе моделирования и проведения эксперимента, можно описать в терминах конструкционных переменных. Например, с их помощью может задаваться положение точки, величина силы или жесткость пружины, масса объекта, угол, плотность и т.д.

Конструкционная переменная может иметь вещественный или целый тип, быть строкой или объектом. Переменной вещественного типа можно сопоставить размерность, т.е. отнести ее к некоторому классу физических величин: length, angle, mass и т.д.. Использование переменных с незаданным атрибутом размерности может привести к неправильным результатам. Поэтому использование атрибута размерности для имеющих физический смысл констант весьма желательно.

ВADAMS/View конструкционные переменные создаются и инициализируются с помощью команды New в меню Build->Design variable. По этой команде открывается окно Create Design Variable…, в котором можно задать тип переменной, единицы измерения и значение. Однако этот способ создания переменной не позволяет сразу привязать ее к како- му-либо элементу – это действие производится отдельно.

Вэтом же меню присутствует команда Modify, при нажатии которой открывается Database Navigator со списком всех конструкционных переменных модели. Редактировать переменную можно, дважды щелкнув по

ееимени.

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

82

А.А.ИВАНОВ. MSC.Adams: теория и элементы виртуального конструирования и моделирования.

Альтернативный способ создания переменной – использование команды Create Design Variable всплывающего меню в контексте того объекта, значение которого предполагается связать с переменной. Т.е. требуется для данного объекта выбрать Modify во всплывающем меню, в появив-

шемся окне (Modify Rigid Body, Modify a Spring-Damper Force и т.д.)

выбрать текстовое поле, соответствующее параметру, в нем щелкнуть правой кнопкой мыши и выбрать команду Create Design Variable или Reference Design Variable, если предполагается использовать уже существующую переменную. При использовании этого метода, новая переменная сразу при создании связывается с некоторым объектом, но при этом она получает имя и значение по умолчанию, для создания наглядной и понятной модели ее необходимо модифицировать: переименовать (Rename), оснастить желаемыми атрибутами, которые предлагается задать в окне

Modify Design Variable.

Конструкционные переменные позволяют пользователю создавать собственные независимые параметры и связывать их с моделируемыми объектами. К примеру, если модель содержит 3 цилиндра, которые должны иметь одинаковую высоту, необходимо создать одну конструкционную переменную, контролирующую длины всех трех цилиндров. Таким образом, модель параметризуется, т.е. приводится к виду, когда все ее параметры выражены через набор независимых значений.

9.2. О системных элементах

Особое место среди объектов пакета MSC.Adams занимают Системные Элементы (System Elements). С их помощью могут быть созданы дополнительные дифференциальные уравнения и/или алгебраические уравнения, позволяющие моделировать компоненты, которые не представимы стандартными объектами ADAMS/View: части (Parts), ограничения (Constraints), силы (Forces). Системные элементы используются для моделирования компонент или подсистем, имеющих собственную динамику: системы управления, системы электромеханического, гидравлического, пневматического, мышечного привода. Системный элемент может быть использован для вычисления функций характеризующих свойства моделируемой системы, но неопределяемых в процессе симулирования стандартными средствами пакета. Системные элементы разделяются на

переменные состояния (State Variables),

дифференциальные уравнения (Differential Equations),

линейные уравнения состояния (Linear State Equations),

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

9. Применение Системных Элементов для добавления в модель уравнений

83

общие уравнения состояния (General State Equations),

передаточные функции (Transfer Functions).

Встроенный в ADAMS/View Решатель (Solver) или независимый модуль ADAMS/Solver решает уравнения, добавленные пользователем, одновременно с уравнениями сгенерированными при создании механической модели. Далее при описании некоторые особенностей использования Системных Элементов (System Elements) будет использоваться название ADAMS/Solver, но все излагаемое имеет отношение и к вычислительному модулю, встроенному в ADAMS/View.

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

Table 9.1. Типы системных элементов

Системный эле-

Задает:

мент:

 

State variable

Скалярное алгебраическое уравнение для использования

 

независимо или как части входа/выхода модели или мас-

 

сива данных элементов.

Differen-

Дифференциальное уравнение, которое описывает

tial Equation

определенную пользователем переменную (a user-defined

 

variable) в терминах её производных по времени.

General state equa-

Систему явных дифференциальных уравнений для пе-

tion

ременных состояния x и алгебраических уравнений, явно

 

задающих наблюдения y, определяющих в классической

 

форме пространства состояний связь входов u, перемен-

 

ных состояния x, выходов y и времени t.

Linear state equa-

Систему явных дифференциальных уравнений и алгеб-

tion

раических уравнений с постоянными коэффициентами в

 

классическом формате пространства состояний, исполь-

 

зующем связанные элементы массивов и матриц данных.

Transfer function

Передаточная функция с одним входом и одним выхо-

 

дом, представленная как отношение двух полиномов в

 

пространстве преобразований Лапласа.

Элементы State variable и Differential Equation предоставляют воз-

можность задавать дополнительные соотношения в произвольной форме. Элементы из трех последних строк таблицы 9.1 в основном используются в Теории управления и не имеют преимущества перед State variable и Differential Equation при добавлении отдельных дифференциальных или

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

84

А.А.ИВАНОВ. MSC.Adams: теория и элементы виртуального конструирования и моделирования.

алгебраических уравнений, а лишь отличаются формой описания, которая более удобна специалистам соответствующей предметной области [7]. Далее будут рассмотрены особенности использования только State variable

и Differential Equation.

9.3. Управление равновесными значениями

При моделировании равновесия, ADAMS/Solver находит равновесные значения как для определенных пользователем (user-defined) системных переменных (дифференциальные уравнения, обобщенные уравнения состояния, линейных уравнения состояния, и передаточные функции), так и для переменных перемещений и сил. Находимые равновесные значения заменяют начальные условия для последующего моделирования. Для помощи в управлении результатами статического симулирования, ADAMS/View предоставляет опции, которые можно установить для сохранения значений неизменными. Эти опции называются статическое хранение (static hold). Static hold оставляет назначенные пользователем начальные условия в качестве равновесных значений. Если опция static hold не установлена, ADAMS/Solver устанавливает производные по времени определенных пользователем переменных (user-defined) в ноль и использует заданные пользователем начальные значения только как начальные условия для статического решения. В общем случае, равновесные значения и начальные значения не одно и тоже. ADAMS/Solver использует равновесные значения (equilibrium values) определенных пользователем (user-defined variables) как начальные условия для любых последующих симуляций также как для равновесных значений перемещений и сил.

Если установлена опция static hold, ADAMS/Solver оставляет назначенные пользователем начальные условия как значения статического равновесия. Следовательно, равновесные значения те же, что и заданные пользователем начальные условия. Отметим, что это не гарантирует равенство нулю производных по времени определенных пользователем переменных (user-defined variable) после статической симуляции.

9.4. Создание переменных состояния

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

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

9. Применение Системных Элементов для добавления в модель уравнений

85

реакций связей точка-кривая и кривая-кривая не доступны для использования в системных переменных.

Переменные состояния (state variables) используются в следующих случаях:

В сочетании с входами/выходами установки (plant) для идентификации входов/выходов для решений ADAMS/Linear. Более подробно этот вопрос рассмотрен в документации пакета.

С элементами массивов для идентификации входов в Linear state equations, General state equations и Transfer functions.

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

9.4.1. Способы определения State Variables

Вычисляемое значение переменной можно определить одним из путей:

Записав вычисляемое выражение в модели.

Вызывая VARSUB написанную пользователем процедуру (userwritten subroutine).

Выражения для функций и пользовательских процедур (user-written subroutines) могут иметь доступ к вычисленному значению переменной,

используя ADAMS/View функцию VARVAL(variable_name) для представ-

ления значения, где variable_name – имя переменной. Пользовательские процедуры имеют доступ к одиночным переменным через вызов процеду-

ры SYSFNC.

Более подробная информация приводится в руководстве Using the ADAMS/View Function Builder , входящем в поставляемую с пакетом или продаваемую отдельно документацию к пакету. Для зарегистрированных пользователей сайта adams.university.com, имеется возможность загрузить архив документацией объёмом приблизительно 300Mb. Подробная информация об использовании библиотеки процедур пакета содержится в руко-

водстве, Using ADAMS/Solver Subroutines.

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

86

А.А.ИВАНОВ. MSC.Adams: теория и элементы виртуального конструирования и моделирования.

9.4.2. Предостережения от ошибок при использовании State Variables

При задании переменных, зависящих от других переменных, или ADAMS/View элементов, содержащих функции, следует быть внимательным. Так как существует возможность не намеренно создать уравнения, которые не могут быть разрешены. Если определяемые системы уравнений не имеют устойчивое решение, сходимость может быть нарушена и для полной ADAMS модели.

Например, если переменная состояния my_variable определяется выражением varval(my_variable) + 1, то задается следующее алгебраическое уравнение, которое не имеет решения:

V = V + 1

Когда ADAMS/Solver пытается решить это уравнение, используя метод Ньютона-Рафсона (Newton-Raphson), решение расходится и на экране появляется сообщение, указывающее на то, что решение имело ошибку сходимости.

9.4.3. Создание и модификация State Variables

Для создания (create) и модификации (modify) переменной состояния

(state variable):

1.Из пункта Build меню, указать System Elements/State Variable, и за-

тем выбрать New или Modify.

2.Если выбрано Modify, появляется окно Навигатора базы данных (Database Navigator). После этого нужно выбрать системный элемент для модификации.

Появляется диалоговое окно Modify or Create State Variable. Оба диалоговых окна содержат одинаковые опции.

3.Можно изменить имя переменной.

4.Из опций меню Definition выбрать одно из двух:

Run-Time Expression и ввести выражение, определяющее переменную. User Written Subroutine и ввести константы для user-written процедуры

VARSUB, чтобы задать переменную.

5. Если желательно, выбрать Guess for F(1, 0..) и задать приближенное начальное значение для начального значения переменной. ADAMS/Solver может настроить значение при выполнении симуляции начальных условий. Введение точного значения для начальных условий может помочь ADAMS/Solver в сходимости к решению для начального условия.

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

9. Применение Системных Элементов для добавления в модель уравнений

87

9.5. Использование Differential Equations

Активизация объекта Differential Equation создает пользовательскую переменную (user-defined state variable) и определяет дифференциальное уравнение первого порядка, описывающее её. Уравнение может зависеть от любой ADAMS/Solver переменной состояния доступной в функциональном выражении за исключением, как уже отмечалось, связей point-curve и curve-curve. Можно создавать системы дифференциальных уравнений, используя более чем один объект Differential equation,

Linear state equations, General state equations.

Описывать переменную Differential equation можно, записывая либо функциональное выражение, либо передавая параметры в пользовательскую подпрограмму (user-written subroutine). Рекомендуется по возможности максимально использовать встроенный аппарат функциональных выражений. При наличии опыта использования пакета и обоснованной потребности дополнять его возможности за счет собственного кода, может быть использованы пользовательские процедуры, описание порядка их применения можно найти в документации пакета и становится понятным при активизации примеров, поставляемых с ним.

9.5.1. Пути определения Differential Equations

В пакете допускается определение дифференциальных уравнений первого порядка в явной и неявной форме. Следующее уравнение определяет явную (explicit) форму дифференциального уравнения первого порядка:

y& = f ( y,q,q&,t)

где

y – производная переменной состояния, y

– сама переменная, q

 

&

 

вектор переменных состояния, задаваемых в ADAMS/Solver.

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

0 = F( y, y&,q,q&) .

Заданная таким образом переменная может быть получена далее в функциональном выражении с помощью функции DIF(i), а ее производная

– с помощью функции DIF1(i), где i – имя дифференциального уравнения, присваиваемое автоматически или задаваемое пользователем при определении системной переменной Differential Equations. При переименовании объекта это имя изменится и обращении к функциям DIF(i), DIF1(i).

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

88

А.А.ИВАНОВ. MSC.Adams: теория и элементы виртуального конструирования и моделирования.

9.5.2. Пути использования Differential Equations

Дифференциальные уравнения (Differential equations) более удобны для создания одиночных уравнений или небольших множеств уравнений.

Для добавления в модель дифференциальных уравнений высокого порядка или больших систем уравнений рекомендуется использовать другие элементы ADAMS/Solver, такие как transfer functions, linear state equations, или general state equation. Решение дифференциальных уравнений может использоваться в функциональных выражениях, задающих множество других элементов ADAMS, таких как силы или пользовательские процедуры (user-written subroutines). И функциональные выражения и user-written subroutines имеют доступ к пользовательским (userdefined state variable) и их производным. Следовательно, ADAMS/Solver

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

Функциональные выражения имеют доступ к переменной состояния, используя функцию DIF(i1), и её производной, используя DIF1(i1). В обоих случаях i1 обозначает имя дифференциального уравнения, определяющего переменную. Пользовательские (user-written) подпрограммы (subroutines) имеют доступ к значениям и производным через вызов процедуры

SYSFNC.

9.5.3. Создание и модификация Differential Equations

Для создания (create) или модификации (modify) дифференциальных

уравнений:

1. Из пункта меню Build, указать System Elements, далее Differential Equation, и затем выбрать New либо Modify.

2. При выборе Modify, появляется окно Навигатора базы данных (Database Navigator), котором необходимо выбрать подлежащее модификации дифференциальное уравнение.

В результате появляется диалоговое окно Modify или Create Differential Equation.. Оба диалоговых окна содержат одинаковые опции.

3. При необходимости можно изменить имя дифференциального уравнения.

4. Из меню опций Type выбрать Explicit или Implicit для указания функционального выражения или подпрограммы, определяющих неявную или явную формы уравнения.

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

9. Применение Системных Элементов для добавления в модель уравнений

89

5.Далее должно быть сделано одно из двух:

Из меню опций Definition выбрать Run-time Expression и ввести функциональное выражение, которое ADAMS/Solver вычисляет в процессе симуляции. В функциональном выражении системная переменная (system variable) DIF(i) – значение зависимой переменной, определяющей дифференциальное уравнение, DIF1(i) – её первая производная.

Выбрать User Written Subroutine и ввести параметры, передаваемые пользовательской подпрограмме.

6.В окне ввода Initial Conditions определить:

Начальное значение пользовательской (user-defined) переменной и начать симуляцию.

Если дополнительно задаваемое уравнение имеет неявную форму, то необходимо задать также и приближенное значение начальной производной по времени пользовательской переменной (user-defined variable) в начале симуляции. ADAMS/Solver может подстроить значение производной по времени при выполнении симуляцию начальных условий. Введение начального значения для производной помогает ADAMS/Solver достичь сходимости к желаемому решению для начального условия.

8.Выбрать должен или нет ADAMS/Solver сохранять постоянное значение дифференциального уравнения в процессе статического или квазистатического симулирования.

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

90

А.А.ИВАНОВ. MSC.Adams: теория и элементы виртуального конструирования и моделирования.

Литература

1Верещагин А.Ф. Компьютерное моделирование динамики сложных механизмов роботов манипуляторов//Известия АН СССР, сер. Техническая кибернетика, №6, 1974, сс.65-70

2Wittenburg J. Dynamics of Systems of Rigid Bodies //Teubner. Stuttgart. 1977. 292p.

3Вукобратович М. Шагающие роботы и механизмы//Мир, М., 1976. 541с.

4Кулаков Ф.М. Лоозе Н., Горизонтова Н.П. Численное моделирование систем твердых тел и приложения в робототехнике// Л., 1986

5Слиеде П.Б., Аузиньш И.П.//В кн.: Вопросы динамики и прочности. Зинантне, Рига, 1980

6Multibody System Handbook// ed. W.O.Schiehlien. Berlin-Heidelberg- New-York-Tokyo: Springer-Verlag. 1990. 432p.

7Андриевский Б.Р., Фрадков А.Л. Избранные главы теории автоматического управления с примерами на языке MATLAB. СПб.: Наука, 1999.–467 с.

MSC.Software Corporation

Тел. (095) 363-06-83, 254-57-10

123056, Москва, ул. Зоологическая, 26, стр. 2

Факс: (095) 787-76-06, e-mail: sergey.sergievskiy@mscsoftware.com

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]