User`s guide
39
*/
rtb_Gain.re = TwinDFTs_CCS_P.Gain_Gain_n * rtb_ComplextoMagnitudeAngle1_o2;
rtb_Gain.im = TwinDFTs_CCS_P.Gain_Gain_n * rtb_PhaseRelay;
/* ComplexToMagnitudeAngle: '<Root>/Complex to Magnitude-Angle' */
rtb_RelayDFT1 = rt_hypot(rtb_Gain.re, rtb_Gain.im);
/* Relay: '<Root>/Relay DFT1'
*
* Regarding '<Root>/Relay DFT1':
* Input0 Data Type: Floating Point real_T
* Output0 Data Type: Floating Point real_T
* On Points Value parameter uses the same data type and scaling as Input0
* Off Points Value parameter uses the same data type and scaling as Input0
* On Output Value parameter uses the same data type and scaling as Output0
* Off Output Value parameter uses the same data type and scaling as Output0
*/
if (rtb_RelayDFT1 >= TwinDFTs_CCS_P.RelayDFT1_OnVal ) {
TwinDFTs_CCS_DWork.RelayDFT1_Mode = TRUE;
} else if (rtb_RelayDFT1 <= TwinDFTs_CCS_P.RelayDFT1_OffVal ) {
TwinDFTs_CCS_DWork.RelayDFT1_Mode = FALSE;
}
rtb_RelayDFT1 = TwinDFTs_CCS_DWork.RelayDFT1_Mode ?
TwinDFTs_CCS_P.RelayDFT1_YOn : TwinDFTs_CCS_P.RelayDFT1_YOff;
/* Product: '<S2>/Product' */
TwinDFTs_CCS_B.Product_j = rtb_TrigonometricFunction * rtb_Gain_c[1];
/* DiscreteFilter: '<S2>/Mean of 20 samples' */
rtb_Angle = TwinDFTs_CCS_P.Meanof20samples_D_l*TwinDFTs_CCS_B.Product_j;
{
int_T nx = 19;
const real_T *x = &TwinDFTs_CCS_DWork.Meanof20samples_DSTATE_p[0];
const real_T *Cmtx = &TwinDFTs_CCS_P.Meanof20samples_C_i[0];
while (nx--) {
rtb_Angle += (*Cmtx) * (*x++);
Cmtx += 1;
}
}
/* Product: '<S2>/Product1' */
TwinDFTs_CCS_B.Product1_l = rtb_Gain_c[1] * rtb_RelayDFT2;
/* DiscreteFilter: '<S2>/Mean of 20 samples1' */
rtb_PhaseRelay = TwinDFTs_CCS_P.Meanof20samples1_D_d*TwinDFTs_CCS_B.Product1_l;
{
int_T nx = 19;
const real_T *x = &TwinDFTs_CCS_DWork.Meanof20samples1_DSTATE_f[0];
const real_T *Cmtx = &TwinDFTs_CCS_P.Meanof20samples1_C_b[0];
while (nx--) {
rtb_PhaseRelay += (*Cmtx) * (*x++);
Cmtx += 1;
}
}
/* Gain: '<S2>/Gain' incorporates:
* RealImagToComplex: '<S2>/Real-Imag to Complex'