ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RG_MACRO宏解析

2022-04-23 12:31:55  阅读:209  来源: 互联网

标签:Angle pu iq MACRO IQ -----------------------------------------------------------


typedef struct { _iq  Freq;            // Input: Ramp frequency (pu)     
                 _iq  StepAngleMax;    // Parameter: Maximum step angle (pu)        
                 _iq  Angle;           // Variable: Step angle (pu)                      
                 _iq  Gain;            // Input: Ramp gain (pu)
                 _iq  Out;             // Output: Ramp signal (pu)     
                 _iq  Offset;          // Input: Ramp offset (pu)                  
               } RAMPGEN;

RAMPGEN结构体:

  输入变量:Freq(频率:对应RC_MACRO结构体中的SetpointValue输出)

       Gain(斜坡增益)

       Offset(斜坡偏置)

  输出变量:Out(斜坡信号形式)

  参数:StepAngleMax(角度步长)

/*------------------------------------------------------------------------------
      Object Initializers
------------------------------------------------------------------------------*/                       
#define RAMPGEN_DEFAULTS {0,        \
                          0,        \
                          0,        \
                          _IQ(1),   \
                          0,        \
                          _IQ(1),   \
                         }

RAMPGEN对象默认初始化

/*------------------------------------------------------------------------------
    RAMP(Sawtooh) Generator Macro Definition
------------------------------------------------------------------------------*/                                               

#define RG_MACRO(v)                                  \
                                                     \
/* Compute the angle rate */                         \
    v.Angle += _IQmpy(v.StepAngleMax,v.Freq);        \
                                                     \
/* Saturate the angle rate within (-1,1) */          \
    if (v.Angle>_IQ(1.0))                            \
        v.Angle -= _IQ(1.0);                         \
    else if (v.Angle<_IQ(-1.0))                      \
        v.Angle += _IQ(1.0);                         \
    v.Out=v.Angle;
以下代码均被注释
// Use the code snippet below if gain/offset needed. \
/* Compute the ramp output */                        \
    v.Out = _IQmpy(v.Angle,v.Gain) + v.Offset;       \
/* Saturate the ramp output within (-1,1) */         \
    if (v.Out>_IQ(1.0))                              \
        v.Out -= _IQ(1.0);                           \
    else if (v.Out<_IQ(-1.0))                        \
        v.Out += _IQ(1.0);

RG_MACRO宏:1.角度等于前一次的角度+频率*角度步长

        2.输出为饱和限幅后的角度

标签:Angle,pu,iq,MACRO,IQ,-----------------------------------------------------------
来源: https://www.cnblogs.com/xing-2/p/16182093.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有