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

📄 ex38s1_acc.c

📁 其中提到遺傳學的程式碼與應用提供給次淚相向的研究者參考下載
💻 C
📖 第 1 页 / 共 2 页
字号:
#if 0

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.

If you do not have the Real-Time Workshop licensed, this file contains
encrypted block names, etc. If you purchase the Real-Time Workshop,
this file will contain full block descriptions and improved variable
names.

#endif

/*
 * ex38s1_acc.c
 *
 * Real-Time Workshop code generation for Simulink model "ex38s1_acc.mdl".
 *
 * Model Version                        : 1.55
 * Real-Time Workshop file version      : 4.0 $Date: 2000/09/19 19:45:27 $
 * Real-Time Workshop file generated on : Thu Feb 07 22:04:58 2002
 * TLC version                          : 4.0 (Aug 21 2000)
 * C source code generated on           : Thu Feb 07 22:04:59 2002
 *
 * Relevant TLC Options:
 *   InlineParameters      = 0
 *   RollThreshold         = 5
 *   CodeFormat            = S-Function
 *
 * Simulink model settings:
 *   Solver     : VariableStep
 *   StartTime  : 0.0 s
 *   StopTime   : 140.0 s
 *   Variable step solver used
 */

#include <math.h>
#include <string.h>
#include "ex38s1_acc.h"
#include "ex38s1_acc_prm.h"

real_T rtInf;

/* Start of Functions in model "ex38s1_acc" */

/* Compute block outputs */
static void mdlOutputs(SimStruct *S, int_T tid)
{
  /* simstruct variables */
  ex38s1_BlockIO *ex38s1_B = (ex38s1_BlockIO *) _ssGetBlockIO(S);
  ex38s1_ContinuousStates *ex38s1_X = (ex38s1_ContinuousStates*) ssGetContStates(S);
  ex38s1_D_Work *ex38s1_DWork = (ex38s1_D_Work *) ssGetRootDWork(S);
  ex38s1_Parameters *ex38s1_P = (ex38s1_Parameters *) ssGetDefaultParam(S);

  /* local block i/o variables */
  real_T rtb_s5_White_Noise;
  real_T rtb_temp29;
  real_T rtb_temp30;
  real_T rtb_temp31;

  if (ssIsSampleHit(S, 3, tid)) {       /* Sample time: [30.0, 0.0] */
    /* RandomNumber Block: <S5>/White Noise */
    rtb_s5_White_Noise = ex38s1_DWork->s5_White_Noise_RWORK.NextOutput;

    /* Gain Block: <S5>/Gain */
    ex38s1_B->s5_Gain = rtb_s5_White_Noise * (ex38s1_P->s5_Gain_Gain);

    /* Outport Block: <Root>/Out1 */
    /* Call into Simulink for root Outports */
    ssCallAccelRunBlock(S, 0, 2, SS_CALL_MDL_OUTPUTS);
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* StateSpace Block: <S7>/Internal */
    {
      ex38s1_B->s7_Internal = (ex38s1_P->s7_Internal_C)*ex38s1_X->s7_Internal[1];
    }

    /* Outport Block: <Root>/Out2 */
    /* Call into Simulink for root Outports */
    ssCallAccelRunBlock(S, 0, 4, SS_CALL_MDL_OUTPUTS);

    /* Sum Block: <Root>/Sum */
    ex38s1_B->root_Sum = ex38s1_B->s5_Gain - ex38s1_B->s7_Internal;

    /* Abs Block: <S4>/Abs */
    if (ssIsMajorTimeStep(S)) {
      ex38s1_DWork->s4_Abs_MODE = ex38s1_B->root_Sum >= 0.0;
    }
    rtb_temp31 = (ex38s1_DWork->s4_Abs_MODE)? ex38s1_B->root_Sum:-(ex38s1_B->root_Sum);
    /* Gain Block: <S4>/Gain */
    rtb_temp31 *= (ex38s1_P->s4_Gain_Gain);

    /* Clock Block: <Root>/Clock */
    ex38s1_B->root_Clock = ssGetT(S);
  }

  if (ssIsSampleHit(S, 2, tid)) {       /* Sample time: [0.01, 0.0] */
    /* ZeroOrderHold Block: <Root>/Zero-Order Hold7 */
    ex38s1_B->root_Zero_Order_Hold7 = ex38s1_B->root_Clock;
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */
    /* Constant Block: <S4>/Constant */
    rtb_temp29 = (ex38s1_P->s4_Constant_Value);

    /* RelationalOperator Block: <S4>/Relational Operator */
    rtb_temp29 = (ex38s1_B->root_Zero_Order_Hold7 >= rtb_temp29);

    /* Constant Block: <S4>/Constant1 */
    rtb_temp30 = (ex38s1_P->s4_Constant1_Value);

    /* RelationalOperator Block: <S4>/Relational Operator1 */
    rtb_temp30 = (ex38s1_B->root_Zero_Order_Hold7 <= rtb_temp30);

    /* Logic Block: <S4>/Logical Operator */
    ex38s1_B->s4_Logical_Operator = (real_T) ((rtb_temp29 != 0.0)
       && (rtb_temp30 != 0.0));
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* Product Block: <S4>/Product */
    rtb_temp31 = rtb_temp31 *
      rtb_temp31 *
      ex38s1_B->s4_Logical_Operator;
  }

  if (ssIsSampleHit(S, 2, tid)) {       /* Sample time: [0.01, 0.0] */
    /* UnitDelay Block: <S4>/Unit Delay Ts=0.1 */
    ex38s1_B->s4_Unit_Delay_Ts_0_1 = ex38s1_DWork->s4_Unit_Delay_Ts_0_1_DSTATE;
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* Sum Block: <S4>/Sum2 */
    ex38s1_B->s4_Sum2 = rtb_temp31 + ex38s1_B->s4_Unit_Delay_Ts_0_1;

    /* Abs Block: <S3>/Abs */
    if (ssIsMajorTimeStep(S)) {
      ex38s1_DWork->s3_Abs_MODE = ex38s1_B->root_Sum >= 0.0;
    }
    rtb_temp31 = (ex38s1_DWork->s3_Abs_MODE)? ex38s1_B->root_Sum:-(ex38s1_B->root_Sum);
    /* Gain Block: <S3>/Gain */
    rtb_temp31 *= (ex38s1_P->s3_Gain_Gain);
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */
    /* Constant Block: <S3>/Constant */
    rtb_temp30 = (ex38s1_P->s3_Constant_Value);

    /* RelationalOperator Block: <S3>/Relational Operator */
    rtb_temp30 = (ex38s1_B->root_Zero_Order_Hold7 >= rtb_temp30);

    /* Constant Block: <S3>/Constant1 */
    rtb_temp29 = (ex38s1_P->s3_Constant1_Value);

    /* RelationalOperator Block: <S3>/Relational Operator1 */
    rtb_temp29 = (ex38s1_B->root_Zero_Order_Hold7 <= rtb_temp29);

    /* Logic Block: <S3>/Logical Operator */
    ex38s1_B->s3_Logical_Operator = (real_T) ((rtb_temp30 != 0.0)
       && (rtb_temp29 != 0.0));
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* Product Block: <S3>/Product */
    rtb_temp31 = rtb_temp31 *
      rtb_temp31 *
      ex38s1_B->s3_Logical_Operator;
  }

  if (ssIsSampleHit(S, 2, tid)) {       /* Sample time: [0.01, 0.0] */
    /* UnitDelay Block: <S3>/Unit Delay Ts=0.1 */
    ex38s1_B->s3_Unit_Delay_Ts_0_1 = ex38s1_DWork->s3_Unit_Delay_Ts_0_1_DSTATE;
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* Sum Block: <S3>/Sum2 */
    ex38s1_B->s3_Sum2 = rtb_temp31 + ex38s1_B->s3_Unit_Delay_Ts_0_1;

    /* Abs Block: <S2>/Abs */
    if (ssIsMajorTimeStep(S)) {
      ex38s1_DWork->s2_Abs_MODE = ex38s1_B->root_Sum >= 0.0;
    }
    rtb_temp31 = (ex38s1_DWork->s2_Abs_MODE)? ex38s1_B->root_Sum:-(ex38s1_B->root_Sum);
    /* Gain Block: <S2>/Gain */
    rtb_temp31 *= (ex38s1_P->s2_Gain_Gain);
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */
    /* Constant Block: <S2>/Constant */
    rtb_temp30 = (ex38s1_P->s2_Constant_Value);

    /* RelationalOperator Block: <S2>/Relational Operator */
    rtb_temp30 = (ex38s1_B->root_Zero_Order_Hold7 >= rtb_temp30);

    /* Constant Block: <S2>/Constant1 */
    rtb_temp29 = (ex38s1_P->s2_Constant1_Value);

    /* RelationalOperator Block: <S2>/Relational Operator1 */
    rtb_temp29 = (ex38s1_B->root_Zero_Order_Hold7 <= rtb_temp29);

    /* Logic Block: <S2>/Logical Operator */
    ex38s1_B->s2_Logical_Operator = (real_T) ((rtb_temp30 != 0.0)
       && (rtb_temp29 != 0.0));
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* Product Block: <S2>/Product */
    rtb_temp31 = rtb_temp31 *
      rtb_temp31 *
      ex38s1_B->s2_Logical_Operator;
  }

  if (ssIsSampleHit(S, 2, tid)) {       /* Sample time: [0.01, 0.0] */
    /* UnitDelay Block: <S2>/Unit Delay Ts=0.1 */
    ex38s1_B->s2_Unit_Delay_Ts_0_1 = ex38s1_DWork->s2_Unit_Delay_Ts_0_1_DSTATE;
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* Sum Block: <S2>/Sum2 */
    ex38s1_B->s2_Sum2 = rtb_temp31 + ex38s1_B->s2_Unit_Delay_Ts_0_1;

    /* Abs Block: <S1>/Abs */
    if (ssIsMajorTimeStep(S)) {
      ex38s1_DWork->s1_Abs_MODE = ex38s1_B->root_Sum >= 0.0;
    }
    rtb_temp31 = (ex38s1_DWork->s1_Abs_MODE)? ex38s1_B->root_Sum:-(ex38s1_B->root_Sum);
    /* Gain Block: <S1>/Gain */
    rtb_temp31 *= (ex38s1_P->s1_Gain_Gain);
  }

  if (ssIsSampleHit(S, 1, tid)) {       /* Sample time: [0.0, 1.0] */
    /* Constant Block: <S1>/Constant */
    rtb_temp30 = (ex38s1_P->s1_Constant_Value);

    /* RelationalOperator Block: <S1>/Relational Operator */
    rtb_temp30 = (ex38s1_B->root_Zero_Order_Hold7 >= rtb_temp30);

    /* Constant Block: <S1>/Constant1 */
    rtb_temp29 = (ex38s1_P->s1_Constant1_Value);

    /* RelationalOperator Block: <S1>/Relational Operator1 */
    rtb_temp29 = (ex38s1_B->root_Zero_Order_Hold7 <= rtb_temp29);

    /* Logic Block: <S1>/Logical Operator */
    ex38s1_B->s1_Logical_Operator = (real_T) ((rtb_temp30 != 0.0)
       && (rtb_temp29 != 0.0));
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* Product Block: <S1>/Product */
    rtb_temp31 = rtb_temp31 *
      rtb_temp31 *
      ex38s1_B->s1_Logical_Operator;
  }

  if (ssIsSampleHit(S, 2, tid)) {       /* Sample time: [0.01, 0.0] */
    /* UnitDelay Block: <S1>/Unit Delay Ts=0.1 */
    ex38s1_B->s1_Unit_Delay_Ts_0_1 = ex38s1_DWork->s1_Unit_Delay_Ts_0_1_DSTATE;
  }

  if (ssIsContinuousTask(S, tid)) {     /* Sample time: [0.0, 0.0] */
    /* Sum Block: <S1>/Sum2 */
    ex38s1_B->s1_Sum2 = rtb_temp31 + ex38s1_B->s1_Unit_Delay_Ts_0_1;

    /* Sum Block: <Root>/Sum2 */
    rtb_temp31 = ex38s1_B->s4_Sum2 + ex38s1_B->s3_Sum2 + ex38s1_B->s2_Sum2
      + ex38s1_B->s1_Sum2;

    /* Gain Block: <Root>/Gain */
    ex38s1_B->root_Gain = rtb_temp31 * (ex38s1_P->root_Gain_Gain);

⌨️ 快捷键说明

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