6.1 Агрегат (assembly)
Копируемый в качестве агрегата проект будем называть проектом-прототипом. Любой проект может быть включен в другой проект в качестве агрегата неограниченное число раз. Однако при этом недопустим рекурсивный вызов проекта, то есть обращение из проекта через цепочку агрегатов к самому себе.
Значения внутренних объектов проекта-прототипа, которые объявлены параметрами агрегата, могут быть переопределены для конкретного агрегата.
Использование агрегатов позволяет существенно сократить объем вводимой информации при моделировании сложных ММС. Например, типовую конструкцию подвески многоосного автомобиля можно описать в виде отдельного проекта, а затем многократно использовать этот проект в качестве агрегатов при формировании модели автомобиля в целом. Разделение сложных систем на агрегаты имеет смысл также для организации параллельной работы по формированию моделей отдельных подсистем и их автономной отработки.
Внутренние системные объекты
Каждый проект, и, соответственно, агрегат, имеет следующие объекты, которые создаются в программном комплексе автоматически.
scalar PI
Число пи. PI = 3.1415927 [-].
vector projectX, projectY, projectZ
plane planeXY, planeXZ, planeYZ
Базовые плоскости системы координат проекта. Плоскости образуются соответствующими базовыми векторами и проходят через точку начала системы координат проекта.
sensor time [time]
Датчик, который показывает текущее время состояния механической системы. Датчик имеет размерность времени. В начальный момент, сразу после перевода проекта из режима редактирования в режим исследования, датчик имеет значение ноль.
sensor stateNumber [-]
Датчик, который показывает текущий шаг интегрирования. Датчик не имеет размерности. В начальный момент, сразу после перевода проекта из режима редактирования в режим исследования, датчик имеет значение единица.
sensor IntegratorStep [time]
Датчик, который показывает текущий шаг интегрирования. Датчик имеет размерность времени. В начальный момент, сразу после перевода проекта из режима редактирования в режим исследования, датчик имеет значение ноль.
sensor constraint_pos_error_max [-]
Датчик, который показывает максимальную ошибку положения в кинематических связях. Датчик имеет соответствующую размерность. В начальный момент, сразу после перевода проекта из режима редактирования в режим исследования, датчик имеет значение ноль.
sensor constraint_vel_error_max [-]
Датчик, который показывает максимальную ошибку скорости в кинематических связях. Датчик имеет соответствующую размерность. В начальный момент, сразу после перевода проекта из режима редактирования в режим исследования, датчик имеет значение ноль.
Параметры агрегата
Значения внутренних объектов проекта-прототипа, которые объявлены параметрами агрегата, могут быть переопределены для конкретного агрегата. Параметр агрегата не является самостоятельным объектом. Он представляет собой дополнительный атрибут уже существующего объекта. Параметрами агрегата могут быть объявлены объекты следующих типов::
Объявить параметром агрегата можно любой объект вышеперечисленного типа, который создан непосредственно в проекте-прототипе и не прикреплен к какому-либо звену.
Для объявления объекта параметром агрегата в языке описания ММС используется следующий оператор:
set parameters = (список имен объектов);
Этот оператор должен быть записан в проекте-прототипе агрегата.
В программном комплексе имеются также диалоговые средства для объявления объектов параметрами агрегата.
При создании агрегата значения его параметров могут быть переопределены. Если параметр агрегата не переопределен, то он сохраняет то значение, которое было указано в проекте-прототипе. Порядок записи параметров при их переопределении - произвольный. Запись переопределения параметров агрегата в операторе создания агрегата аналогична записи необязательных именованных параметров. Но в этом случае перед именем переопределяемого параметра агрегата ставится символ «#» и указывается его тип. Также можно переопределять параметры агрегата созданными по месту объектами. Указывать тип переопределяемого параметра обязательно в том случае, если по выражению после знака «=» нельзя однозначно определить тип переопределяемого параметра.
При переопределении параметра-звена геометрический центр и цвет звена не переопределяются. Видимость определяется видимостью звена-значения. Для переопределения звеньев используется механизм жесткого соединения звеньев.
Нельзя переопределять датчик, созданный методом «Переменный датчик с заданным начальным значением» (sensor var).
Особенности переопределения списков объектов приведены в разделе «Список (list)» главы «Объекты структуризации».
|
Пример
/* Проект 1: файл - project1.elr*/
scalar a = 3;
point s = point(1, 2, 3);
....
set parameter = a;
set parameter = s;
/* Проект 2 */
node baseNode1 = nodePoint(point(5, 2, 12));
point p1 = point(5, 6, 7);
assembly ass = assembly2(“project1.elr”, baseNode=baseNode1, #point s=p1);
...
|
В данном примере значением параметра s будет точка с координатами (5,6,7), а значение параметра a не изменится.
Необязательные именованные параметры всех методов создания
baseNode = nodeУзел установки проекта-прототипа в проект. Данный параметр совместно с параметром location определяет место установки проекта-прототипа в проект. Возможны следующие варианты.
− baseNode не задан, location не задан. В этом случае система координат проекта-прототипа совмещается с системой координат проекта.
− baseNode задан, location не задан. В этом случае система координат проекта-прототипа совмещается с узлом baseNode проекта.
− baseNode не задан, location задан. В этом случае узел из проекта-прототипа с именем, заданным параметром location, совмещается с системой координат проекта.
− baseNode задан, location задан. В этом случае узел из проекта-прототипа с именем, заданным параметром location, совмещается с узлом baseNode проекта.
По умолчанию проект-прототип помещается в начало системы координат проекта.
filter = [filterOn:/filterOff:]
Параметр определяет состояние фильтра (включен/выключен) объектов агрегата. Фильтр служит для управления доступом к объектам агрегата. Подробнее формирование и работа фильтра описаны в разделе «Управление доступом к объектам» главы «Работа с программным комплексом» книги «Общее описание программного комплекса». По умолчанию filter=filterOn:.
filter = filterOn:Фильтр агрегата включен.
filter = filterOff:Фильтр агрегата выключен.
Имя установочного узла из файла проекта-прототипа. Узел не должен зависеть от параметров агрегата. Подробности использования в описании параметра baseNode.
visible = [show:/hide:]
Параметр определяет видимость агрегата (его объектов) в окнах Вид проекта. По умолчанию visible = show:
visible = show:Объекты агрегата отображаются, если это не блокируется значениями их параметров visible.
visible = hide:Объекты агрегата не отображаются, вне зависимости от значений их параметров visible.
Методы создания

