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

📄 ex33c_pid_acc.c

📁 其中提到遺傳學的程式碼與應用提供給次淚相向的研究者參考下載
💻 C
📖 第 1 页 / 共 3 页
字号:
    rtb_Sum_l1 += rtb_Product_m[1];

    ex33C_pid_B->IW113_a[0] = ex33C_pid_P->IW113_Value_n[0];
    ex33C_pid_B->IW113_a[1] = ex33C_pid_P->IW113_Value_n[1];

    rtb_Product_e[0] = ex33C_pid_B->IW113_a[0] * ex33C_pid_B->SE1_d;
    rtb_Product_e[1] = ex33C_pid_B->IW113_a[1] * ex33C_pid_B->SDE001_m;

    /* Sum: '<S39>/Sum' */
    rtb_Sum_ao = rtb_Product_e[0];
    rtb_Sum_ao += rtb_Product_e[1];

    ex33C_pid_B->IW114_b[0] = ex33C_pid_P->IW114_Value_l[0];
    ex33C_pid_B->IW114_b[1] = ex33C_pid_P->IW114_Value_l[1];

    rtb_Product_h[0] = ex33C_pid_B->IW114_b[0] * ex33C_pid_B->SE1_d;
    rtb_Product_h[1] = ex33C_pid_B->IW114_b[1] * ex33C_pid_B->SDE001_m;

    /* Sum: '<S40>/Sum' */
    rtb_Sum_ls = rtb_Product_h[0];
    rtb_Sum_ls += rtb_Product_h[1];

    ex33C_pid_B->IW115_n[0] = ex33C_pid_P->IW115_Value_b[0];
    ex33C_pid_B->IW115_n[1] = ex33C_pid_P->IW115_Value_b[1];

    rtb_Product_j[0] = ex33C_pid_B->IW115_n[0] * ex33C_pid_B->SE1_d;
    rtb_Product_j[1] = ex33C_pid_B->IW115_n[1] * ex33C_pid_B->SDE001_m;

    /* Sum: '<S41>/Sum' */
    rtb_Sum_m = rtb_Product_j[0];
    rtb_Sum_m += rtb_Product_j[1];

    {
      real_T cg_in_0_61_0[5];
      int32_T i1;

      for(i1=0; i1<5; i1++) {
        ex33C_pid_B->b1_b[i1] = ex33C_pid_P->b1_Value_i[i1];
      }

      cg_in_0_61_0[0] = rtb_Sum_j;
      cg_in_0_61_0[1] = rtb_Sum_l1;
      cg_in_0_61_0[2] = rtb_Sum_ao;
      cg_in_0_61_0[3] = rtb_Sum_ls;
      cg_in_0_61_0[4] = rtb_Sum_m;
      for(i1=0; i1<5; i1++) {
        rtb_netsum_h[i1] = cg_in_0_61_0[i1] + ex33C_pid_B->b1_b[i1];

        rtb_Product_a[i1] = ex33C_pid_B->IW211_e[i1] *
          rt_SATURATE(rtb_netsum_h[i1], ex33C_pid_P->Saturation_LowerSat_h,
         ex33C_pid_P->Saturation_UpperSat_h);
      }
    }

    /* Sum: '<S46>/Sum' */
    rtb_Sum_f = rtb_Product_a[0];
    rtb_Sum_f += rtb_Product_a[1];
    rtb_Sum_f += rtb_Product_a[2];
    rtb_Sum_f += rtb_Product_a[3];
    rtb_Sum_f += rtb_Product_a[4];

    ex33C_pid_B->b2_f = ex33C_pid_P->b2_Value_g;

    ex33C_pid_B->SU1_h = (rtb_Sum_f + ex33C_pid_B->b2_f) *
      ex33C_pid_P->SU1_Gain_c;
  }

  ex33C_pid_B->Sum9 = ex33C_pid_B->Sum2 + ex33C_pid_B->SU1_h;

  /* Derivative Block: <Root>/Derivative1 */
  {
    real_T t = ssGetTaskTime(S,tid);
    real_T timeStampA = ex33C_pid_DWork->Derivative1_RWORK_o.TimeStampA;
    real_T timeStampB = ex33C_pid_DWork->Derivative1_RWORK_o.TimeStampB;

    if (timeStampA >= t && timeStampB >= t) {
      rtb_Derivative1_c = 0.0;
    } else {
      real_T deltaT;
      real_T *lastBank = &ex33C_pid_DWork->Derivative1_RWORK_o.TimeStampA;
      if (timeStampA < timeStampB) {
        if (timeStampB < t) {
          lastBank += 2;
        }
      } else if (timeStampA >= t) {
        lastBank += 2;
      }
      deltaT = t - *lastBank++;
      rtb_Derivative1_c = (ex33C_pid_B->Sum9 - *lastBank++) / deltaT;
    }
  }

  ex33C_pid_B->Sum4 = rtb_Gain12 - rtb_TransferFcn3;

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.001s, 0.0s] */

    {
      int32_T i1;

      for(i1=0; i1<5; i1++) {
        ex33C_pid_B->IW211_d[i1] = ex33C_pid_P->IW211_Value_o[i1];
      }

      ex33C_pid_B->IW111_k[0] = ex33C_pid_P->IW111_Value_c[0];
      ex33C_pid_B->IW111_k[1] = ex33C_pid_P->IW111_Value_c[1];
    }
  }

  ex33C_pid_B->SE1_b = ex33C_pid_B->Sum4 * ex33C_pid_P->SE1_Gain_o;

  /* Derivative Block: <S3>/Derivative1 */
  {
    real_T t = ssGetTaskTime(S,tid);
    real_T timeStampA = ex33C_pid_DWork->Derivative1_RWORK_h5.TimeStampA;
    real_T timeStampB = ex33C_pid_DWork->Derivative1_RWORK_h5.TimeStampB;

    if (timeStampA >= t && timeStampB >= t) {
      rtb_Derivative1_g = 0.0;
    } else {
      real_T deltaT;
      real_T *lastBank = &ex33C_pid_DWork->Derivative1_RWORK_h5.TimeStampA;
      if (timeStampA < timeStampB) {
        if (timeStampB < t) {
          lastBank += 2;
        }
      } else if (timeStampA >= t) {
        lastBank += 2;
      }
      deltaT = t - *lastBank++;
      rtb_Derivative1_g = (ex33C_pid_B->Sum4 - *lastBank++) / deltaT;
    }
  }

  ex33C_pid_B->SDE001_b = rtb_Derivative1_g * ex33C_pid_P->SDE001_Gain_m;

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.001s, 0.0s] */

    rtb_Product_mi[0] = ex33C_pid_B->IW111_k[0] * ex33C_pid_B->SE1_b;
    rtb_Product_mi[1] = ex33C_pid_B->IW111_k[1] * ex33C_pid_B->SDE001_b;

    /* Sum: '<S58>/Sum' */
    rtb_Sum_my = rtb_Product_mi[0];
    rtb_Sum_my += rtb_Product_mi[1];

    ex33C_pid_B->IW112_d[0] = ex33C_pid_P->IW112_Value_o[0];
    ex33C_pid_B->IW112_d[1] = ex33C_pid_P->IW112_Value_o[1];

    rtb_Product_g[0] = ex33C_pid_B->IW112_d[0] * ex33C_pid_B->SE1_b;
    rtb_Product_g[1] = ex33C_pid_B->IW112_d[1] * ex33C_pid_B->SDE001_b;

    /* Sum: '<S59>/Sum' */
    rtb_Sum_c = rtb_Product_g[0];
    rtb_Sum_c += rtb_Product_g[1];

    ex33C_pid_B->IW113_n[0] = ex33C_pid_P->IW113_Value_d[0];
    ex33C_pid_B->IW113_n[1] = ex33C_pid_P->IW113_Value_d[1];

    rtb_Product_n[0] = ex33C_pid_B->IW113_n[0] * ex33C_pid_B->SE1_b;
    rtb_Product_n[1] = ex33C_pid_B->IW113_n[1] * ex33C_pid_B->SDE001_b;

    /* Sum: '<S60>/Sum' */
    rtb_Sum_jn = rtb_Product_n[0];
    rtb_Sum_jn += rtb_Product_n[1];

    ex33C_pid_B->IW114_i[0] = ex33C_pid_P->IW114_Value_b[0];
    ex33C_pid_B->IW114_i[1] = ex33C_pid_P->IW114_Value_b[1];

    rtb_Product_mn[0] = ex33C_pid_B->IW114_i[0] * ex33C_pid_B->SE1_b;
    rtb_Product_mn[1] = ex33C_pid_B->IW114_i[1] * ex33C_pid_B->SDE001_b;

    /* Sum: '<S61>/Sum' */
    rtb_Sum_lq = rtb_Product_mn[0];
    rtb_Sum_lq += rtb_Product_mn[1];

    ex33C_pid_B->IW115_e[0] = ex33C_pid_P->IW115_Value_k[0];
    ex33C_pid_B->IW115_e[1] = ex33C_pid_P->IW115_Value_k[1];

    rtb_Product_jm[0] = ex33C_pid_B->IW115_e[0] * ex33C_pid_B->SE1_b;
    rtb_Product_jm[1] = ex33C_pid_B->IW115_e[1] * ex33C_pid_B->SDE001_b;

    /* Sum: '<S62>/Sum' */
    rtb_Sum_g = rtb_Product_jm[0];
    rtb_Sum_g += rtb_Product_jm[1];

    {
      real_T cg_in_0_91_0[5];
      int32_T i1;

      for(i1=0; i1<5; i1++) {
        ex33C_pid_B->b1_f[i1] = ex33C_pid_P->b1_Value_c[i1];
      }

      cg_in_0_91_0[0] = rtb_Sum_my;
      cg_in_0_91_0[1] = rtb_Sum_c;
      cg_in_0_91_0[2] = rtb_Sum_jn;
      cg_in_0_91_0[3] = rtb_Sum_lq;
      cg_in_0_91_0[4] = rtb_Sum_g;
      for(i1=0; i1<5; i1++) {
        rtb_netsum_l[i1] = cg_in_0_91_0[i1] + ex33C_pid_B->b1_f[i1];

        rtb_Product_et[i1] = ex33C_pid_B->IW211_d[i1] *
          rt_SATURATE(rtb_netsum_l[i1], ex33C_pid_P->Saturation_LowerSat_b,
         ex33C_pid_P->Saturation_UpperSat_m);
      }
    }

    /* Sum: '<S67>/Sum' */
    rtb_Sum_p = rtb_Product_et[0];
    rtb_Sum_p += rtb_Product_et[1];
    rtb_Sum_p += rtb_Product_et[2];
    rtb_Sum_p += rtb_Product_et[3];
    rtb_Sum_p += rtb_Product_et[4];

    ex33C_pid_B->b2_p = ex33C_pid_P->b2_Value_l;

    ex33C_pid_B->SU1_m = (rtb_Sum_p + ex33C_pid_B->b2_p) *
      ex33C_pid_P->SU1_Gain_p;
  }

  ex33C_pid_B->Sum10 = ex33C_pid_B->Sum4 + ex33C_pid_B->SU1_m;

  /* Derivative Block: <Root>/Derivative2 */
  {
    real_T t = ssGetTaskTime(S,tid);
    real_T timeStampA = ex33C_pid_DWork->Derivative2_RWORK.TimeStampA;
    real_T timeStampB = ex33C_pid_DWork->Derivative2_RWORK.TimeStampB;

    if (timeStampA >= t && timeStampB >= t) {
      rtb_Derivative2 = 0.0;
    } else {
      real_T deltaT;
      real_T *lastBank = &ex33C_pid_DWork->Derivative2_RWORK.TimeStampA;
      if (timeStampA < timeStampB) {
        if (timeStampB < t) {
          lastBank += 2;
        }
      } else if (timeStampA >= t) {
        lastBank += 2;
      }
      deltaT = t - *lastBank++;
      rtb_Derivative2 = (ex33C_pid_B->Sum10 - *lastBank++) / deltaT;
    }
  }

  ex33C_pid_B->Sum6 = rtb_Gain12 - rtb_TransferFcn4;

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.001s, 0.0s] */

    {
      int32_T i1;

      for(i1=0; i1<5; i1++) {
        ex33C_pid_B->IW211_dk[i1] = ex33C_pid_P->IW211_Value_n[i1];
      }

      ex33C_pid_B->IW111_n[0] = ex33C_pid_P->IW111_Value_ic[0];
      ex33C_pid_B->IW111_n[1] = ex33C_pid_P->IW111_Value_ic[1];
    }
  }

  ex33C_pid_B->SE1_j = ex33C_pid_B->Sum6 * ex33C_pid_P->SE1_Gain_f;

  /* Derivative Block: <S4>/Derivative1 */
  {
    real_T t = ssGetTaskTime(S,tid);
    real_T timeStampA = ex33C_pid_DWork->Derivative1_RWORK_g.TimeStampA;
    real_T timeStampB = ex33C_pid_DWork->Derivative1_RWORK_g.TimeStampB;

    if (timeStampA >= t && timeStampB >= t) {
      rtb_Derivative1_a = 0.0;
    } else {
      real_T deltaT;
      real_T *lastBank = &ex33C_pid_DWork->Derivative1_RWORK_g.TimeStampA;
      if (timeStampA < timeStampB) {
        if (timeStampB < t) {
          lastBank += 2;
        }
      } else if (timeStampA >= t) {
        lastBank += 2;
      }
      deltaT = t - *lastBank++;
      rtb_Derivative1_a = (ex33C_pid_B->Sum6 - *lastBank++) / deltaT;
    }
  }

  ex33C_pid_B->SDE001_e = rtb_Derivative1_a * ex33C_pid_P->SDE001_Gain_js;

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.001s, 0.0s] */

    rtb_Product_gv[0] = ex33C_pid_B->IW111_n[0] * ex33C_pid_B->SE1_j;
    rtb_Product_gv[1] = ex33C_pid_B->IW111_n[1] * ex33C_pid_B->SDE001_e;

    /* Sum: '<S79>/Sum' */
    rtb_Sum_ic = rtb_Product_gv[0];
    rtb_Sum_ic += rtb_Product_gv[1];

    ex33C_pid_B->IW112_g[0] = ex33C_pid_P->IW112_Value_a[0];
    ex33C_pid_B->IW112_g[1] = ex33C_pid_P->IW112_Value_a[1];

    rtb_Product_f[0] = ex33C_pid_B->IW112_g[0] * ex33C_pid_B->SE1_j;
    rtb_Product_f[1] = ex33C_pid_B->IW112_g[1] * ex33C_pid_B->SDE001_e;

    /* Sum: '<S80>/Sum' */
    rtb_Sum_lj = rtb_Product_f[0];
    rtb_Sum_lj += rtb_Product_f[1];

    ex33C_pid_B->IW113_j[0] = ex33C_pid_P->IW113_Value_b[0];
    ex33C_pid_B->IW113_j[1] = ex33C_pid_P->IW113_Value_b[1];

    rtb_Product_n0[0] = ex33C_pid_B->IW113_j[0] * ex33C_pid_B->SE1_j;
    rtb_Product_n0[1] = ex33C_pid_B->IW113_j[1] * ex33C_pid_B->SDE001_e;

    /* Sum: '<S81>/Sum' */
    rtb_Sum_fv = rtb_Product_n0[0];
    rtb_Sum_fv += rtb_Product_n0[1];

    ex33C_pid_B->IW114_n[0] = ex33C_pid_P->IW114_Value_m[0];
    ex33C_pid_B->IW114_n[1] = ex33C_pid_P->IW114_Value_m[1];

    rtb_Product_np[0] = ex33C_pid_B->IW114_n[0] * ex33C_pid_B->SE1_j;
    rtb_Product_np[1] = ex33C_pid_B->IW114_n[1] * ex33C_pid_B->SDE001_e;

    /* Sum: '<S82>/Sum' */
    rtb_Sum_bz = rtb_Product_np[0];
    rtb_Sum_bz += rtb_Product_np[1];

    ex33C_pid_B->IW115_j[0] = ex33C_pid_P->IW115_Value_n[0];
    ex33C_pid_B->IW115_j[1] = ex33C_pid_P->IW115_Value_n[1];

    rtb_Product_op[0] = ex33C_pid_B->IW115_j[0] * ex33C_pid_B->SE1_j;
    rtb_Product_op[1] = ex33C_pid_B->IW115_j[1] * ex33C_pid_B->SDE001_e;

    /* Sum: '<S83>/Sum' */
    rtb_Sum_h = rtb_Product_op[0];
    rtb_Sum_h += rtb_Product_op[1];

    {
      real_T cg_in_0_121_0[5];
      int32_T i1;

      for(i1=0; i1<5; i1++) {
        ex33C_pid_B->b1_d[i1] = ex33C_pid_P->b1_Value_b[i1];
      }

      cg_in_0_121_0[0] = rtb_Sum_ic;
      cg_in_0_121_0[1] = rtb_Sum_lj;
      cg_in_0_121_0[2] = rtb_Sum_fv;
      cg_in_0_121_0[3] = rtb_Sum_bz;
      cg_in_0_121_0[4] = rtb_Sum_h;
      for(i1=0; i1<5; i1++) {
        rtb_netsum_b[i1] = cg_in_0_121_0[i1] + ex33C_pid_B->b1_d[i1];

        rtb_Product_hb[i1] = ex33C_pid_B->IW211_dk[i1] *
          rt_SATURATE(rtb_netsum_b[i1], ex33C_pid_P->Saturation_LowerSat_i,
         ex33C_pid_P->Saturation_UpperSat_k);
      }
    }

    /* Sum: '<S88>/Sum' */
    rtb_Sum_ht = rtb_Product_hb[0];
    rtb_Sum_ht += rtb_Product_hb[1];
    rtb_Sum_ht += rtb_Product_hb[2];
    rtb_Sum_ht += rtb_Product_hb[3];
    rtb_Sum_ht += rtb_Product_hb[4];

    ex33C_pid_B->b2_n = ex33C_pid_P->b2_Value_n;

    ex33C_pid_B->SU1_k = (rtb_Sum_ht + ex33C_pid_B->b2_n) *
      ex33C_pid_P->SU1_Gain_a;
  }

  ex33C_pid_B->Sum11 = ex33C_pid_B->Sum6 + ex33C_pid_B->SU1_k;

  /* Derivative Block: <Root>/Derivative3 */
  {
    real_T t = ssGetTaskTime(S,tid);
    real_T timeStampA = ex33C_pid_DWork->Derivative3_RWORK.TimeStampA;
    real_T timeStampB = ex33C_pid_DWork->Derivative3_RWORK.TimeStampB;

    if (timeStampA >= t && timeStampB >= t) {

⌨️ 快捷键说明

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