exponenta event banner

mdlSetDefaultPortDimensionInfo

Установка размеров по умолчанию сигналов, принимаемых или излучаемых портами S-функции C MEX

Необходимый

Нет

Языки

C, C++

Синтаксис

#define MDL_SET_DEFAULT_PORT_DIMENSION_INFO
void mdlSetDefaultPortDimensionInfo(SimStruct *S)

Аргументы

S

SimStruct представляет S-функциональный блок.

Описание

Модуль Simulink ® вызывает этот метод во время распространения размера сигнала, когда модель не предоставляет достаточной информации для определения размерности сигналов, которые могут входить или выходить из блока, представленного S. Этот метод должен устанавливать размеры всех портов ввода и вывода, которые динамически масштабируются по умолчанию. Этот метод допустим только для моделирования и должен быть заключен в #if defined(MATLAB_MEX_FILE) заявление.

Если S-функция не реализует этот метод, механизм пытается найти набор измерений, которые удовлетворят правилам распространения измерений, реализованным с помощью mdlSetInputPortDimensionInfo и mdlSetOutputPortDimensionInfo. Возможно, этот процесс не сможет создать допустимый набор измерений для S-функций со специальными требованиями к измерениям.

Модуль вызывает ошибку, если mdlSetDefaultPortDimensionInfo метод пытается изменить размеры порта, когда размеры были предварительно определены mdlSetInputPortDimensionInfo или mdlSetOutputPortDimensionInfo. Если S-функция имеет несколько входных или выходных портов, mdlSetDefaultPortDimensionInfo следует проверить, являются ли размеры порта динамическими, прежде чем пытаться установить размеры. Например, mdlSetDefaultPortDimensionInfo использует следующие строки для проверки, неизвестны ли размеры первого выходного порта.

     if (ssGetOutputPortWidth(S, 0) == DYNAMICALLY_SIZED) {
        ssSetOutputPortMatrixDimensions(S, 0, 1, 1 );
     }

Пример

Посмотрите sfun_matadd.c пример использования этой функции.

Представлен до R2006a