主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

ssGetContStates

获取块的连续状态

语法

real_T *ssGetContStates(SimStruct *S)

参量

S

表示 S-Function 模块的 SimStruct。

返回

指向连续状态向量的指针(real_T *),作为长度为 ssGetNumContStates(S) 的数组。如果 S-Function 没有任何连续状态,则返回 NULL

描述

在仿真循环中使用 mdlInitializeConditionsmdlStart 例程来获取 S-Function 的 real_T 连续状态向量。该向量的长度为 ssGetNumContStates(S)。通常,该向量在 mdlInitializeConditions 中初始化并在 mdlOutputs 中使用。

语言

C、C++

示例

文件 csfunc.c 中的以下几行显示了如何初始化 mdlInitializeConditions 中的连续状态并计算 mdlDerivatives 中的状态导数。此 S-Function 用于模型 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 之前推出