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

📄 serialsim_no_observer_acc.c

📁 SVPWM应用
💻 C
📖 第 1 页 / 共 5 页
字号:
/*
 * This file is not available for use in any application other than as a
 * MATLAB(R) MEX file for use with the Simulink(R) Accelerator product.
 */

/*
 * Real-Time Workshop code generation for Simulink model "serialsim_no_observer_acc.mdl".
 *
 * Model Version                        : 1.15
 * Real-Time Workshop file version      : 5.1 $Date: 2003/08/08 18:37:24 $
 * Real-Time Workshop file generated on : Wed May 30 15:01:44 2007
 * TLC version                          : 5.1 (Aug  8 2003)
 * C source code generated on           : Wed May 30 15:01:44 2007
 */

#include <math.h>
#include <string.h>
#include "serialsim_no_observer_acc.h"
#include "serialsim_no_observer_acc_private.h"
#include <stdio.h>
#include "simstruc.h"

#define CodeFormat                      S-Function
#define AccDefine1                      Accelerator_S-Function

/* Outputs for root system: '<Root>' */
static void mdlOutputs(SimStruct *S, int_T tid)
{
  /* simstruct variables */
  serialsim_no_observer_BlockIO *serialsim_no_observer_B =
    (serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
  serialsim_no_observer_ContinuousStates *serialsim_no_observer_X =
    (serialsim_no_observer_ContinuousStates*) ssGetContStates(S);
  serialsim_no_observer_D_Work *serialsim_no_observer_DWork =
    (serialsim_no_observer_D_Work *) ssGetRootDWork(S);
  serialsim_no_observer_Parameters *serialsim_no_observer_P =
    (serialsim_no_observer_Parameters *) ssGetDefaultParam(S);

  /* local block i/o variables */
  real_T rtb_phiqr;
  real_T rtb_phidr;
  real_T rtb_Llr_a[2];
  real_T rtb_phiqs;
  real_T rtb_phids;
  real_T rtb_Lls[2];
  real_T rtb_Llr1_a;
  real_T rtb_iqr;
  real_T rtb_Llr2_a;
  real_T rtb_idr;
  real_T rtb_iqs;
  real_T rtb_ids;
  real_T rtb_Integrator1;
  real_T rtb_Integrator_a;
  real_T rtb_Switch_a[4];
  real_T rtb_Step;
  real_T rtb_Step1;
  real_T rtb_Step2;
  real_T rtb_Step3;
  real_T rtb_t;
  real_T rtb_Clock_a;
  real_T rtb_Vb[4];
  real_T rtb_Multiport_Switch_c[2];
  real_T rtb_Multiport_Switch1_b[2];
  real_T rtb_Sum1_b;
  real_T rtb_Multiport_Switch_d;
  real_T rtb_Multiport_Switch1_c;
  real_T rtb_Integrator_b[6];
  real_T rtb_Gain_c;
  real_T rtb_Multiport_Switch_a[2];
  real_T rtb_Sum2_a;
  real_T rtb_Multiport_Switch_b[6];
  real_T rtb_Multiport_Switch1_a[2];
  real_T rtb_Sum3_c;
  real_T rtb_Product1_a;
  real_T rtb_Memory2[6];
  real_T rtb_beta;
  real_T rtb_Complex_to_Magnitude_Angle;
  real_T rtb_temp188;
  real_T rtb_temp189;
  real_T rtb_temp190;
  real_T rtb_temp191[3];
  boolean_T rtb_b6[6];
  boolean_T rtb_Memory_b[6];
  boolean_T rtb_Data_Type_Conversion4_b;
  boolean_T rtb_id_i[6];
  boolean_T rtb_Relational_Operator_a[3];
  boolean_T rtb_Memory_c[6];
  boolean_T rtb_temp204[3];
  boolean_T rtb_temp205[6];

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */

    /* StateSpace Block: <Root>/Analog Filter Design */
    {
      serialsim_no_observer_B->Analog_Filter_Design =
        serialsim_no_observer_P->Analog_Filter_Design_C*serialsim_no_observer_X->Analog_Filter_Design_CSTATE[7];
    }

    /* Scope: '<Root>/Scope4_Rr' */
    /* Call into Simulink for Scope */
    ssCallAccelRunBlock(S, 13, 1, SS_CALL_MDL_OUTPUTS);
  }

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

    /* Constant: '<S30>/Constant3' */
    serialsim_no_observer_B->Constant3_a =
      serialsim_no_observer_P->Constant3_a_Value;
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */

    /* Integrator: '<S27>/phiqr' */
    rtb_phiqr = serialsim_no_observer_X->phiqr_CSTATE;

    /* Integrator: '<S27>/phidr' */
    rtb_phidr = serialsim_no_observer_X->phidr_CSTATE;

    /* Gain: '<S26>/1Llr'
     *
     * Regarding '<S26>/1Llr':
     *   Gain value: serialsim_no_observer_P->Llr_a_Gain
     */
    rtb_Llr_a[0] = rtb_phiqr * serialsim_no_observer_P->Llr_a_Gain;
    rtb_Llr_a[1] = rtb_phidr * serialsim_no_observer_P->Llr_a_Gain;

    /* Integrator: '<S28>/phiqs' */
    rtb_phiqs = serialsim_no_observer_X->phiqs_CSTATE;

    /* Integrator: '<S28>/phids' */
    rtb_phids = serialsim_no_observer_X->phids_CSTATE;

    /* Gain: '<S26>/1Lls'
     *
     * Regarding '<S26>/1Lls':
     *   Gain value: serialsim_no_observer_P->Lls_Gain
     */
    rtb_Lls[0] = rtb_phiqs * serialsim_no_observer_P->Lls_Gain;
    rtb_Lls[1] = rtb_phids * serialsim_no_observer_P->Lls_Gain;

    /* Gain: '<S26>/1Llr1' incorporates:
     *   Sum: '<S26>/Sum'
     *
     * Regarding '<S26>/1Llr1':
     *   Gain value: serialsim_no_observer_P->Llr1_a_Gain
     */
    rtb_Llr1_a = (rtb_Llr_a[0] + rtb_Lls[0]) *
      serialsim_no_observer_P->Llr1_a_Gain;

    /* Gain: '<S27>/1Llr' incorporates:
     *   Sum: '<S27>/Sum3'
     *
     * Regarding '<S27>/1Llr':
     *   Gain value: serialsim_no_observer_P->Llr_b_Gain
     */
    rtb_iqr = (rtb_phiqr - rtb_Llr1_a) * serialsim_no_observer_P->Llr_b_Gain;

    /* Gain: '<S26>/1Llr2' incorporates:
     *   Sum: '<S26>/Sum1'
     *
     * Regarding '<S26>/1Llr2':
     *   Gain value: serialsim_no_observer_P->Llr2_a_Gain
     */
    rtb_Llr2_a = (rtb_Llr_a[1] + rtb_Lls[1]) *
      serialsim_no_observer_P->Llr2_a_Gain;

    /* Gain: '<S27>/1Llr2' incorporates:
     *   Sum: '<S27>/Sum4'
     *
     * Regarding '<S27>/1Llr2':
     *   Gain value: serialsim_no_observer_P->Llr2_b_Gain
     */
    rtb_idr = (-rtb_Llr2_a + rtb_phidr) * serialsim_no_observer_P->Llr2_b_Gain;

    /* Gain: '<S28>/1Llr' incorporates:
     *   Sum: '<S28>/Sum4'
     *
     * Regarding '<S28>/1Llr':
     *   Gain value: serialsim_no_observer_P->Llr_c_Gain
     */
    rtb_iqs = (rtb_phiqs - rtb_Llr1_a) * serialsim_no_observer_P->Llr_c_Gain;

    /* Gain: '<S28>/1Llr2' incorporates:
     *   Sum: '<S28>/Sum3'
     *
     * Regarding '<S28>/1Llr2':
     *   Gain value: serialsim_no_observer_P->Llr2_c_Gain
     */
    rtb_ids = (-rtb_Llr2_a + rtb_phids) * serialsim_no_observer_P->Llr2_c_Gain;

    /* Integrator: '<S25>/Integrator1' */
    rtb_Integrator1 = serialsim_no_observer_X->Integrator1_CSTATE;
  }

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

    /* Constant: '<S31>/Constant' */
    serialsim_no_observer_B->Constant_a =
      serialsim_no_observer_P->Constant_a_Value;
  }

  /* SubSystem: '<S31>/sin(thr),cos(thr)' */

  /* Output and update for enable system: '<S31>/sin(thr),cos(thr)' */
  {
    /* simstruct variables */
    serialsim_no_observer_BlockIO *serialsim_no_observer_B =
      (serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
    serialsim_no_observer_D_Work *serialsim_no_observer_DWork =
      (serialsim_no_observer_D_Work *) ssGetRootDWork(S);
    serialsim_no_observer_Parameters *serialsim_no_observer_P =
      (serialsim_no_observer_Parameters *) ssGetDefaultParam(S);

    /* detect enable/disable transitions */
    if (ssIsSampleHit(S, 1, tid)) {
      EnableStates prevEnableState = (EnableStates)
        serialsim_no_observer_DWork->sin_thr_cos_MODE[0];
      EnableStates enableState;

      if (ssIsSampleHit(S, 1, tid)) {   /* Sample time: [0.0, 1.0] */
        serialsim_no_observer_DWork->sin_thr_cos_MODE[1] =
         (serialsim_no_observer_B->Constant_a) ? SUBSYS_ENABLED :
          SUBSYS_DISABLED;
      }

      enableState = (EnableStates)
        serialsim_no_observer_DWork->sin_thr_cos_MODE[1];
      if (enableState == SUBSYS_ENABLED) {
        if (prevEnableState == SUBSYS_DISABLED) {
          /* SUBSYS_BECOMING_ENABLED */

          if ( ssGetT(S) != ssGetTStart(S) ) {
            ssSetSolverNeedsReset(S);
          }
          /* (system initialize function is empty) */
          /* (system enable function is empty) */
          serialsim_no_observer_DWork->sin_thr_cos_MODE[0] = (int_T)
            SUBSYS_ENABLED;
        }
      } else {
        if (prevEnableState == SUBSYS_ENABLED) {
          /* SUBSYS_BECOMING_DISABLED */
          ssSetSolverNeedsReset(S);

          /* Disable for enable system: '<S31>/sin(thr),cos(thr)' */
          {
            /* simstruct variables */
            serialsim_no_observer_BlockIO *serialsim_no_observer_B =
              (serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
            serialsim_no_observer_D_Work *serialsim_no_observer_DWork =
              (serialsim_no_observer_D_Work *) ssGetRootDWork(S);
            serialsim_no_observer_Parameters *serialsim_no_observer_P =
              (serialsim_no_observer_Parameters *) ssGetDefaultParam(S);

            /* DisableFcn of enable SubSystem Block: <S31>/sin(thr),cos(thr) */
            if (serialsim_no_observer_DWork->sin_thr_cos_MODE[0] == (int_T)
             SUBSYS_ENABLED) {

              /* (Virtual) Outport Block: <S40>/sin(thr),cos(thr) */

              serialsim_no_observer_B->Trigonometric_Function_c =
                serialsim_no_observer_P->sin_thr_cos_thr_Y0;
              serialsim_no_observer_B->Trigonometric_Function1_b =
                serialsim_no_observer_P->sin_thr_cos_thr_Y0;
              serialsim_no_observer_B->Constant_e[0] =
                serialsim_no_observer_P->sin_thr_cos_thr_Y0;
              serialsim_no_observer_B->Constant_e[1] =
                serialsim_no_observer_P->sin_thr_cos_thr_Y0;

              serialsim_no_observer_DWork->sin_thr_cos_MODE[0] = (int_T)
                SUBSYS_DISABLED;
            }
          }
        }
      }
    }

    /* run blocks if enabled */
    if (serialsim_no_observer_DWork->sin_thr_cos_MODE[0] == SUBSYS_ENABLED) {
      if (ssIsContinuousTask(S, tid) || ssIsSampleHit(S, 1, tid)) {

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

          /* Constant: '<S40>/Constant' */
          serialsim_no_observer_B->Constant_e[0] =
            serialsim_no_observer_P->Constant_e_Value[0];
          serialsim_no_observer_B->Constant_e[1] =
            serialsim_no_observer_P->Constant_e_Value[1];
        }

        if (ssIsContinuousTask(S, tid)) { /* Sample time: [0.0, 0.0] */

          /* Trigonometry: '<S40>/Trigonometric Function' */
          serialsim_no_observer_B->Trigonometric_Function_c =
            sin(rtb_Integrator1);

          /* Trigonometry: '<S40>/Trigonometric Function1' */
          serialsim_no_observer_B->Trigonometric_Function1_b =
            cos(rtb_Integrator1);
        }
      } }
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */

    /* Integrator: '<S25>/Integrator' */
    rtb_Integrator_a = serialsim_no_observer_X->Integrator_a_CSTATE;
  }

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

    /* Constant: '<S31>/Constant3' */
    serialsim_no_observer_B->Constant3_b =
      serialsim_no_observer_P->Constant3_b_Value;
  }

  /* SubSystem: '<S31>/sin(beta),cos(beta),sin(th),cos(th)' */

  /* Output and update for enable system: '<S31>/sin(beta),cos(beta),sin(th),cos(th)' */
  {
    /* simstruct variables */
    serialsim_no_observer_BlockIO *serialsim_no_observer_B =
      (serialsim_no_observer_BlockIO *) _ssGetBlockIO(S);
    serialsim_no_observer_D_Work *serialsim_no_observer_DWork =
      (serialsim_no_observer_D_Work *) ssGetRootDWork(S);
    serialsim_no_observer_Parameters *serialsim_no_observer_P =
      (serialsim_no_observer_Parameters *) ssGetDefaultParam(S);

    /* detect enable/disable transitions */

⌨️ 快捷键说明

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