ssGetContStates

Получите непрерывные состояния блока

Синтаксис

real_T *ssGetContStates(SimStruct *S)

Аргументы

S

SimStruct, представляющий блок S-Function.

Возвраты

Указатель (real_T *) непрерывному вектору состояния как массиву длин ssGetNumContStates(S). Возвращает NULL если S-функция не имеет никаких непрерывных состояний.

Описание

Используйте в цикле симуляции, mdlInitializeConditions, или mdlStart стандартные программы для получения real_T непрерывный вектор состояния для S-функции. Этот вектор имеет длину ssGetNumContStates(S). Обычно этот вектор инициализируется в mdlInitializeConditions и используемый в mdlOutputs.

Языки

C, C++

Пример

Следующие линии из файла csfunc.c показать, как инициализировать непрерывные состояния в mdlInitializeConditions и вычислите производные по состоянию в mdlDerivatives. Эта S-функция используется в модели sfcndemo_csfunc.

static void mdlInitializeConditions(SimStruct *S)
{
    real_T *x0 = ssGetContStates(S);
    int_T lp;

    for (lp=0;lp<2;lp++) {
        *x0++=0.0;
    }
}

static void mdlDerivatives(SimStruct *S)
{
    real_T            *dx    = ssGetdX(S);
    real_T            *x     = ssGetContStates(S);
    InputRealPtrsType uPtrs  = ssGetInputPortRealSignalPtrs(S,0);
    /* xdot = Ax + Bu */
    dx[0]=A[0][0]*x[0]+A[1][1]*x[1]+B[0][0]*U(0)+B[0][1]*U(1);
    dx[1]=A[1][0]*x[0]+A[1][1]*x[1]+B[1][0]*U(0)+B[1][1]*U(1);
}
Представлено до R2006a