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函数用于为前馈算法使用的常量设置新值。该函数将常量的新值作为输入。
 

基于STM32有感直流无刷电机驱动控制程序,集成CANopen通讯电机控制子集协议 和 MONDBUS 协议。.zip嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,优快云博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值