news 2026/9/24 14:46:01

抛载检测 → 重复控制 RPT 清窗逻辑 → RPT 缓投使能 → 二阶滤波处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
抛载检测 → 重复控制 RPT 清窗逻辑 → RPT 缓投使能 → 二阶滤波处理

 可以专门  提供  储能一体机ARM通信管理单元,从ARM单元代码,主DSP代码、方案、硬件软件全部开源;一体化解决方案

提供西门子200全套解决方案,软硬件解决方案,全部源代码。

抛载检测 → 重复控制 RPT 清窗逻辑 → RPT 缓投使能 → 二阶滤波处理 前置背景: 你的逆变器是50Hz,20kHz PWM,PWM 周期 50μs。 50Hz 工频周期 = 20ms;20ms ÷ 50μs =400 个 PWM 拍

重复控制 RPT 核心思想:当前工频周期的误差波形,在下一个工频周期同一时刻拿来补偿。 RPT 内部保存一整周期(400 点)的误差缓存数组,记住上一轮 50Hz 波形的畸变,下一个周期提前抵消谐波。

类比理解: 你投篮,第一球投偏了,记住出手时刻的偏差;下一次同一出手时机,提前反向修正。 每一轮投篮周期(对应 50Hz 工频),复用上个周期的误差。 问题:如果中途突然抛载(突卸负载),电压瞬间冲高,缓存数组里存了大量错误的 “偏大误差”;下一个周期拿这个错误值补偿,会越补越震荡,甚至炸机。 所以必须:抛载触发 → 清空 RPT 历史缓存(清窗),等波形平稳后再慢慢投入 RPT

模块输入输出清单

输入(来自中断,本拍采样,只读)

  1. ADValue.f32INV_PHASE_VOLT_1:当前采样输出相电压 (V)
  2. f32InvErr:瞬时电压环路误差(本次拍计算出来的电压误差)
  3. RPT 结构体StOffGridVoltLoop_RPT:包含误差缓存数组、索引、输出值
  4. 二阶滤波器结构体StOffGridVoltLoop_2rdFilter:滤波器历史状态

输出

  1. RPT 输出值,送入二阶滤波器
  2. 二阶滤波输出,叠加到电压环 PI 输出,作为电流给定一部分
  3. 标志位:清窗启动标志、清窗进行标志、RPT 投入系数s_f32RPT_K

一、函数完整代码

/** * @brief 重复控制RPT处理函数:抛载判断、清窗、RPT缓投、二阶滤波 * @param pStInvL1Ctrl 控制寄存器结构体指针 * @param pADValue AD采样结构体指针,本拍采样值 * @param f32InvErr 本拍电压误差,来自电压环 * @retval none * @note 调用位置:PWM中断内,电压误差计算完成之后,电压PI之前 */ void INV_L1_RptCtrlProcess(ST_INV_L1_CTRL_REGS *pStInvL1Ctrl, ST_AD_VALUE *pADValue, float32 f32InvErr) { //===== 1. 抛载判断:输出电压超过 ±210V,判定抛载冲击 ===== if((pADValue->f32INV_PHASE_VOLT_1 > 210.0f) || (pADValue->f32INV_PHASE_VOLT_1 < -210.0f)) { //置清窗启动标志,下一拍开始逐个清空RPT缓存
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 14:39:47

WSL2资源分配实战:.wslconfig配置详解与内存优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华