Level-2 MATLAB® S-функции не поддерживают определение пользовательских типов данных в рамках S-функции. Однако входные и выходные порты могут наследовать свои типы данных от Simulink.NumericType
или Simulink.AliasType
объект. Для примера S-функция в следующей модели наследует свой тип входных данных от блока Constant:
Поле Output data type блока Constant содержит значение MyDouble
, который является Simulink.AliasType
определяется в рабочем пространстве MATLAB следующей строкой кода:
MyDouble = Simulink.AliasType('double');
Входной и выходной порты Level-2 S-функции MATLAB msfcn_inheritdt.m
наследовать их типы данных. Когда Simulink® модуль выполняет распространение типа данных, он присваивает тип данных MyDouble
к этим портам.
Можно задать тип данных с фиксированной точкой в рамках Level-2 S-функции MATLAB, используя один из следующих трех методов:
RegisterDataTypeFxpBinaryPoint
регистрирует тип данных с фиксированной точкой с двоичным масштабированием только для точки
RegisterDataTypeFxpFSlopeFixExpBias
регистрирует тип данных с фиксированной точкой с масштабированием [Slope Bias], заданным с точки зрения дробного наклона, фиксированной экспоненты и смещения
RegisterDataTypeFxpSlopeBias
регистрирует тип данных с масштабированием [Смещение Откоса]
Примечание
Если зарегистрированный тип данных не является одним из встроенных типов данных Simulink, необходимо иметь лицензию Fixed-Point Designer™.
Если у вас есть Fixed-Point Designer, смотрите модели примера и S-функции, предоставляемые программным обеспечением, для примеров, использующих макросы для определения типов данных с фиксированной точкой.
Level-2 MATLAB S-Function | MATLAB Function | S-Function | S-Function Builder