/SENSOR/PYTHON ================ Radioss 2025.1 -------------- .. contents:: Описание -------- **/SENSOR/PYTHON** - ключевое слово для описания сенсора, определяемого с помощью скрипта на Python и используемого для активации или деактивации объекта. Формат ------ ``` /SENSOR/PYTHON/ sens_ID def function_name(argument) ... Python code... return variable ``` Пустая строка после команды ``return`` обязательна. Определение ----------- +----------------+---------------------------------------------------------+ | Поле | Описание | +================+=========================================================+ | sens_ID | Идентификатор сенсора (целое число, максимум 10 цифр). | +----------------+---------------------------------------------------------+ | function_name | Имя функции. Должно быть уникальным в модели (текст). | +----------------+---------------------------------------------------------+ | argument | (Обязательный) Аргумент функции (текст). | +----------------+---------------------------------------------------------+ | variable | (Обязательный) Выходная переменная (текст). | +----------------+---------------------------------------------------------+ Переменные Radioss ------------------- Скрипт на Python может использовать глобальные, узловые, элементарные или другие данные сенсоров из Radioss. === Глобальные переменные === +---------+---------------------------------+ | Ключ | Определение | +=========+=================================+ | TIME | Текущее время симуляции. | +---------+---------------------------------+ | DT | Текущий временной шаг. | +---------+---------------------------------+ === Узловые переменные === +--------------+----------------------------------------+ | Ключ | Определение | +==============+========================================+ | Ci(node_ID) | Координата i ∈ X, Y, Z узла node_ID | +--------------+----------------------------------------+ | Di(node_ID) | Перемещение i ∈ X, Y, Z узла node_ID | +--------------+----------------------------------------+ | Vi(node_ID) | Скорость i ∈ X, Y, Z узла node_ID | +--------------+----------------------------------------+ | Ai(node_ID) | Ускорение i ∈ X, Y, Z узла node_ID | +--------------+----------------------------------------+ | VRi(node_ID) | Угловая скорость i ∈ X, Y, Z узла node_ID | +--------------+----------------------------------------+ | ARi(node_ID) | Угловое ускорение i ∈ X, Y, Z узла node_ID | +--------------+----------------------------------------+ | DRi(node_ID) | Угловое перемещение i ∈ X, Y, Z узла node_ID | +--------------+----------------------------------------+ Скрипт Python может получать информацию от других сенсоров, используя словарь sensors и следующий синтаксис: ``` sensors[sens_ID].get(key) sensors[sens_ID][key] ``` Пример использования (TIME) --------------------------- Пример использования глобальной переменной TIME: ``` /SENSOR/PYTHON/1 def sensor_1(arg): if TIME >= 0.001: return 1.0 return 0.0 ``` Пример использования узловой информации --------------------------------------- ``` /SENSOR/PYTHON/2 def sensor_2(arg): wall_disp=DX(30517) if wall_disp < -20.0: return 1.0 return 0.0 ``` Пример использования сенсорной информации ----------------------------------------- ``` /SENSOR/PYTHON/3 def sensor_3(arg): Internal_energy = sensors[4]['Eint'] if Internal_energy > 1E+07: return 1.0 return 0.0 ``` Комментарии ----------- - Пустая строка после команды ``return`` обязательна. - Сенсоры могут использоваться для активации воздушных подушек, наложенных сил, давлений и фиксированных скоростей. - Сенсоры могут активировать или деактивировать такие элементы, как кирпич, квад, оболочка, ферма, балка, пружина или 3N оболочка с /ACTIV. - Количество строк в функции ограничено 1000. Однако функцию можно разбить на несколько частей, так как Python-функция может вызывать другую Python-функцию. - Переменные Radioss доступны только для чтения. - Значения Python всегда будут в двойной точности. - Возвращаемое значение будет 0.0, если результат не содержит данных для запрашиваемой переменной Radioss и элемента ELEM_ID. - Radioss использует библиотеку Python, доступную в установке HyperWorks. Можно использовать другую дистрибуцию Python, установив переменную окружения RAD_PYTHON_PATH. - Опция ``-python`` должна быть добавлена в командную строку Starter для подтверждения намерения использовать скрипт на Python с Radioss.