Расчет > Mechanism Design и Mechanism Dynamics > Mechanism Dynamics > Пользовательские нагрузки > Сведения о функциях пользовательских нагрузок
Сведения о функциях пользовательских нагрузок
Когда пользователь Mechanism Dynamics запускает приложение пользовательской нагрузки, обмен данными между приложением и средой Mechanism Design происходит посредством прямого вызова функций. Некоторые функции вызываются из приложения пользовательской нагрузки средой Mechanism Dynamics. Другие предоставляются в среде Mechanism Dynamics и могут быть вызваны приложением пользовательской нагрузки. Каждая функция может иметь ряд необязательных аргументов, которые пользователь может добавлять в свое определение функции при необходимости.
Далее кратко описываются функции, специфические для приложения пользовательской нагрузки.
Функции, предоставляемые приложением пользовательской нагрузки и написанные разработчиком пользовательской нагрузки:
CLUSEREvalCustomLoad()
CLUSERDefineInit()
CLUSERRunInit()
CLUSERGetStateVariablesSize()
CLUSERInitStateVariables()
CLUSERGetStateVariableDerivatives()
Функции, предоставляемые средой Mechanism Dynamics, которые могут быть вызваны разработчиком пользовательской нагрузки:
CLEvalMeasure()
CLEvalStateVariables()
Функция CLUSEREvalCustomLoad() является единственной функцией, которая всегда должна присутствовать в приложении пользовательской нагрузки. Когда пользователь выполняет анализ, ссылающийся на пользовательскую нагрузку, эта функция вызывается на каждом шаге анализа. Она возвращает значение пользовательской нагрузки в соответствующий момент времени. Mechanism Design использует это значение для вычисления сил и ускорений для данного шага времени.
Так как функция CLUSEREvalCustomLoad() передает в качестве аргумента имя пользовательской нагрузки, различные пользовательские нагрузки могут поддерживаться одним исполняемым файлом для вычисления пользовательских нагрузок.
Внутри функции CLUSEREvalCustomLoad() пользователь может вызывать функцию CLEvalMeasure(). Функция CLEvalMeasure() принимает имя измерения, которое существует в модели, в качестве входного параметра. При разработке приложения пользовательской нагрузки убедитесь, что в документации по пользовательской нагрузке указан тип измерения, который пользователь должен создать в модели.
Поскольку функция CLUSEREvalCustomLoad() будет многократно вызываться во время анализа, важно, чтобы она выполнялась как можно быстрее, иначе выполнение анализа резко замедлится. В особенности, во время этого вызова функции не должны выполняться операции с интерфейсом пользователя или изменяться модели.
Еще одной важной функцией является CLUSERDefineInit(). Она вызывается, когда пользователь создает новый силовой привод, внешнюю силу или крутящий момент. Эта функция позволяет приложению пользовательской нагрузки запрашивать у пользователя данные, относящиеся к соответствующей пользовательской нагрузке. Данные могут быть сохранены и использованы позже в функции CLUSEREvalCustomLoad(). Например, если пользовательская нагрузка предназначена для пружины, функция CLUSERDefineInit() может запросить у пользователя указание жесткости пружины для этой нагрузки.
Функция CLUSERRunInit() вызывается до выполнения пользователем анализа, ссылающегося на пользовательскую нагрузку.
Остальные функции могут помочь при реализации систем управления с помощью пользовательской нагрузки. Приложение пользовательской нагрузки может предоставить набор значений производной, интегрированных на каждом шаге времени.
* 
Эти процедуры инициализации вызываются до запуска анализа, поэтому вызов из них функции CLEValMeasure() или CLEvalStateVariables() не допускается.
Функция CLUSERGetStateVariablesSize() вызывается до запуска анализа. Если приложение пользовательской нагрузки предоставляет ненулевой размер переменной состояния, Mechanism Dynamics вызывает функцию CLUSERGetStateVariables() до выполнения анализа. Затем на каждом шаге по времени вызывается функция CLUSERGetStateVariableDerivatives() для получения текущих значений производной.