⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dsys.c

📁 《嵌入式控制系统及其CC++实现-面向使用Matlab的软件开发者》源码
💻 C
字号:
/* Model: dsys  */
/* Sampling period =  0.100000 seconds */
/* Generated at 19:17:17 on 26-Feb-2003 */

/* n = #states, m = #outputs, r = #inputs */
enum {n_dsys = 2, m_dsys = 1, r_dsys = 1};

void Initialize_dsys(const double* x0);
void Initialize_double(const void Update_dsys(const double* u);
const double *Output_dsys();
const double *State_dsys();

static const double a[n_dsys*n_dsys] =
{
     8.143536762e-001, -2.262093545e-002,
     3.619349672e-001,  9.953211598e-001
};

static const double b[n_dsys*r_dsys] =
{
     4.524187090e-002,
     9.357680321e-003
};

static const double c[m_dsys*n_dsys] =
{
     0.000000000e+000,  5.000000000e-001
};

static const double d[m_dsys*r_dsys] =
{
     0.000000000e+000
};

static double x[n_dsys], y[m_dsys];

void Initialize_dsys(const double* x0)
{
    int i;
    
    /* Initialize x */
    for (i=0; i<n_dsys; i++)
        x[i] = x0[i];
}

void Update_dsys(const double* u)
{
    int i, j;
    double x_next[n_dsys];
    
    /* Evaluate x_next = A*x + B*u */
    for (i=0; i<n_dsys; i++)
    {
        x_next[i] = 0;
        for (j=0; j<n_dsys; j++)
            x_next[i] += a[i*n_dsys+j]*x[j];
            
        for (j=0; j<r_dsys; j++)
            x_next[i] += b[i*r_dsys+j]*u[j];
    }
    
    /* Evaluate y = C*x + D*u */
    for (i=0; i<m_dsys; i++)
    {
        y[i] = 0;
        for (j=0; j<n_dsys; j++)
            y[i] += c[i*n_dsys+j]*x[j];
            
        for (j=0; j<r_dsys; j++)
            y[i] += d[i*r_dsys+j]*u[j];
    }
    
    /* Update x to its next value */
    for (i=0; i<n_dsys; i++)
        x[i] = x_next[i];
}

const double *Output_dsys()
{
    return y;
}

const double *State_dsys()
{
    return x;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -