exponenta event banner

Соображения по неинтринальным математическим функциям

Когда ПЛК Simulink ® Coder™ обнаруживает математическую функцию, которая не является внутренней, он создает структурированный текст, заменяя неискробезопасную функцию эквивалентной IEC-61131 совместимой внутренней функцией. В таких случаях входное значение, превышающее допустимый диапазон, вызывает переполнение и генерирует NaN значение.

Например, гиперболический загар не является внутренней функцией. Simulink PLC Coder использует exp в сгенерированном коде для представления tanh. Более конкретно, он использует (exp (2 * x) -1 )/( exp (2 * x) + 1). Для больших значений x эта функция переполняется. Проблема может быть решена путем добавления кода проверки или использования блоков перед вызовом функции tanh для проверки того, что диапазон входных данных находится в пределах допустимых значений. В MATLAB ® значение tanh (x) для x > 19 равно 1,0000. Если x > 19, возвращает значение 1,0000.