ST电机(feed_forward_ctrl)

#ifndef __FEEDFORWARDCTRL_H

#define __FEEDFORWARDCTRL_H

#ifdef __cplusplus

 extern "C" {

#endif /* __cplusplus */

/* Includes ------------------------------------------------------------------*/

#include "mc_type.h"

#include "bus_voltage_sensor.h"

#include "speed_pos_fdbk.h"

#include "speed_torq_ctrl.h"

#include "sto_speed_pos_fdbk.h"

typedef struct

{

  Volt_Components   Vqdff;                 /**< Feed Forward controller @f$I_{qd}@f$ contribution to @f$V_{qd}@f$ */

  Volt_Components   VqdPIout;              /**< @f$V_{qd}@f$ as output by PID controller */

  Volt_Components   VqdAvPIout;            /**< Averaged @f$V_{qd}@f$ as output by PID controller */

  int32_t  wConstant_1D;                   /**< Feed forward default constant for the @f$d@f$ axis */

  int32_t  wConstant_1Q;                   /**< Feed forward default constant for the @f$q@f$ axis */

  int32_t  wConstant_2;                    /**< Default constant value used by Feed-Forward algorithm */

  BusVoltageSensor_Handle_t *pBus_Sensor;  /**< Related bus voltage sensor */

  PID_Handle_t  *pPID_q;                   /*!< Related PI for @f$I_{q}@f$ regulator */

  PID_Handle_t  *pPID_d;                   /*!< Related PI for @f$I_{d}@f$ regulator */

  uint16_t hVqdLowPassFilterBW;            /**< Configures the @f$V_{qd}@f$

                                                first order software filter bandwidth.

                                                If #FULL_MISRA_COMPLIANCY is defined, this field must be

                                                set to

                                                @f[

                                                \frac{FOC_CurrController

                                                call rate [Hz]}{FilterBandwidth[Hz]}

                                                @f]

                                                Otherwise, it must be set to:

                                                @f[

                                                log_2(\frac{FOC_CurrController

                                                call rate [Hz]}{FilterBandwidth[Hz]})

                                                @f]

                                                */

  int32_t  wDefConstant_1D;                /**< Feed forward default constant for d axes */

  int32_t  wDefConstant_1Q;                /**< Feed forward default constant for q axes */

  int32_t  wDefConstant_2;                 /**< Default constant value used by

                                                Feed-Forward algorithm*/

  uint16_t hVqdLowPassFilterBWLOG;         /**< hVqdLowPassFilterBW expressed as power of 2.

                                                E.g. if gain divisor is 512 the value

                                                must be 9 because 2^9 = 512 */

                   

} FF_Handle_t;  

该代码定义了一个名为 FeedForwardCtrl_Handle_t 的结构,其中包含与前馈控制组件相关的各种变量和指针。该结构用于存储有关前馈控制器的信息并配置其参数。
该代码还包括与前馈控制组件相关的几个功能。这些函数用于初始化前馈控制器,设置其参数,并计算对电压矢量的前馈贡献。前馈控制器用于补偿负载转矩和干扰对电机控制系统的影响。
结构中的pBus_Sensor指针指向相关的总线电压传感器,该传感器用于测量总线电压并将其合并到前馈控制计算中。pPID_q和pPID_d指针分别指向q轴和d轴电流分量的相关PI稳压器。hVqdLowPassFilterBW 变量用于为 Vqd 电压矢量配置软件低通滤波器。
该代码包括几个与前馈控制组件相关的功能。FF_Init函数初始化前馈控制器并设置FF_Handle_t结构中的各种变量。该函数将指向总线电压传感器的指针作为输入,并将指向 Id 和 Iq 电流分量的 PI 稳压器的指针作为输入。
FF_Clear函数重置前馈控制器的内部变量。应在每次电机重新启动之前调用此函数。
FF_VqdffComputation函数通过计算新的 Vqdff 值来实现前馈控制器。然后将该值添加到IMFF_VqdConditioning函数中PI稳压器的输出中。该函数将 Idq 参考组件和指向速度传感器的指针作为输入。
FF_VqdConditioning函数返回输入中的 Vqd 分量以及前馈操作。该函数还将最后一个 Vqd 值存储在前馈控制器的内部变量中。
FF_DataProcess功能低通滤除来自速度PI的Vqd电压。滤波器带宽取决于 hVqdLowPassFilterBW 参数。
FF_InitFOCAdditionalMethods 函数用于初始化处于START_TO_RUN状态的前馈控制器变量。
FF_SetFFConstants函数用于为前馈算法使用的常量设置新值。该函数将常量的新值作为输入。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值