PID控制器切换到3p-3z控制器的应用与性能分析

摘要

随着电机控制技术的发展,对控制精度和响应速度的要求越来越高。为此,先楫电机控制系统在其硬件电流环中引入了一种新的闭环控制单元(Closed Loop Control, CLC)外设,该外设采用了3p-3z(即三个零点三个极点)类型的控制器。相比传统的PID控制器,3p-3z控制器能够提供更加灵活的频率响应调整能力,适用于更复杂的控制场景。本报告旨在详细介绍先楫电机库新提供的3p-3z控制器特性,包括如何将现有的PID参数转换为3p-3z控制器参数的方法,以及探讨这种转换可能带来的性能变化。

3p-3z控制器概述

3p-3z控制器是一种高级控制算法,它通过设置三个零点和三个极点来实现对系统频率响应的精确调整。与传统的PID控制器相比,3p-3z控制器能够更好地适应非线性系统和具有时变特性的系统,提供更优的动态性能和稳定性。此外,3p-3z控制器还能够在保证系统稳定性的前提下,实现更快的响应速度和更低的稳态误差。

如下图先楫的3p-3z控制器是由一个具有级联的 2P2Z-1P1Z 的控制器构成的
3p-3z结构

1. 2P2Z 控制器

2P2Z控制器是一种包含两个零点和两个极点的控制算法,主要用于改善系统的频率响应特性。具体来说,2P2Z控制器可以通过调整零点和极点的位置来实现以下功能:

  • 提高响应速度:通过合理设置零点位置,可以增强系统的高频响应,使系统能够更快地跟踪目标值。
  • 抑制振荡:通过调整极点位置,可以有效抑制系统在高频段的振荡,提高系统的稳定性。
  • 补偿相位滞后:2P2Z控制器还可以用于补偿系统中存在的相位滞后问题,特别是在存在大惯性环节的系统中。

2. 1P1Z 控制器

1P1Z控制器则是一个包含一个零点和一个极点的控制算法,主要应用于低频段的控制。它的主要功能包括:

  • 低频增益调节:通过调整极点位置,可以改变系统在低频段的增益,从而影响系统的稳态误差。
  • 滤波作用:1P1Z控制器可以起到低通滤波的作用,滤除系统中的高频噪声,提高系统的抗干扰能力。
  • 相位超前补偿:通过合理设置零点位置,可以在低频段引入相位超前,改善系统的动态响应。

3. 级联 2P2Z-1P1Z 控制器

将2P2Z控制器和1P1Z控制器级联起来,形成一个3p-3z控制器,可以充分利用两者的优点,实现更精细的控制效果。具体来说,这种级联结构的工作原理如下:

  • 高频段控制:2P2Z控制器主要负责高频段的控制,通过调整其零点和极点位置,可以显著提高系统的响应速度和稳定性。
  • 低频段控制:1P1Z控制器则主要负责低频段的控制,通过调节其极点和零点位置,可以有效改善系统的稳态误差和抗干扰能力。
  • 整体协调:两个子控制器之间通过级联的方式协同工作,确保在整个频率范围内都能实现良好的控制性能。

4. 参数设置方法

为了充分发挥3p-3z控制器的性能,合理设置各子控制器的参数至关重要。以下是一些建议的步骤:

  1. 系统建模:首先对被控对象进行建模,确定系统的传递函数。
  2. 初步设计:根据系统的需求,初步设定3p3z控制器的零点和极点位置。这一步可以通过经验公式或仿真工具来完成。
  3. 性能评估:通过仿真或实验,评估控制器的性能,包括响应速度、稳态误差、抗干扰能力等指标。
  4. 参数优化:根据评估结果,逐步调整各子控制器的参数,直到达到满意的控制效果。
  5. 稳定性验证:确保最终设计的控制器在所有工作条件下都是稳定的,可以通过根轨迹法或奈奎斯特图等方法进行验证。

离散表达式为

    \frac{u(z)}{e(z)} = \left( \frac{b_0 + b_1 z^{-1} + b_2 z^{-2}}{1 - a_0 z^{-1} - a_1 z^{-2}} \right) \cdot \left( \frac{1 + b_3 z^{-1}}{1 - a_2 z^{-1}} \right)

PID控制器

离散式PID控制器

离散式PID控制器的输出 u(k) 可以表示为:

u(k) = K_p e(k) + K_i \sum_{i=0}^{k} e(i) T_s + K_d \frac{e(k) - e(k-1)}{T_s}

其中:

  • u(k) 是第 k 个采样时刻的控制输出。
  • e(k) 是第 k 个采样时刻的误差,定义为 e(k) = r(k) - y(k),其中 r(k) 是参考输入,y(k) 是系统输出。
  • K_p 是比例增益。
  • K_i 是积分增益。
  • K_d 是微分增益。
  • T_s 是采样周期。

增量式PID控制器

增量式PID控制器的输出增量 \Delta u(k) 可以表示为:

\Delta u(k) = K_p [e(k) - e(k-1)] + K_i e(k) T_s + K_d \left( \frac{e(k) - 2e(k-1) + e(k-2)}{T_s} \right)

其中:

  • \Delta u(k) 是第 k 个采样时刻的控制输出增量。
  • e(k) 是第 k 个采样时刻的误差。
  • K_p 是比例增益。
  • K_i 是积分增益。
  • K_d 是微分增益。
  • T_s 是采样周期。

对于增量式PID控制器,控制输出 u(k) 通过累加输出增量来更新:

u(k) = u(k-1) + \Delta u(k)

PID至3p-3z参数转换方法

为了便于用户从传统PID控制平滑过渡到3p-3z控制,先楫电机库提供了一套的参数转换方法。具体来说,用户只需输入当前使用的PID控制器参数,系统将自动计算出相应的3p-3z参数。注意这种方法只支持增量式PID的转换。所以在参数整定的过程中,建议使用增量式PID。

参数转换使用如下API

sdk_version: RC1.8

hpm_mcl_stat_t hpm_mcl_pid_to_3p3z(mcl_control_pid_cfg_t *cfg_pid, mcl_clc_coeff_cfg_t *cfg_3p3z)

输入参数为pid的配置信息,由kp,ki,kd组成
输出参数为3p-3z控制器的系数,由b0 b1 b2 b3 a0 a1 a2组成。

同样电机库中给出了增量式pid的软件实现:

hpm_mcl_stat_t hpm_mcl_delta_pid(float setpoint, float feedback, mcl_control_pid_t *pid_x, float *output)

以及位置式pid的实现:


hpm_mcl_stat_t hpm_mcl_position_pid(float setpoint, float feedback, mcl_control_pid_t *pid_x, float *output)

性能评估与分析

为了验证转换后的3p-3z控制器的实际效果,我们进行了仿真,包括但不限于启动时间、稳态误差、抗干扰能力等方面的比较。测试结果显示,在大多数应用场景下,转换后3p-3z控制器均能满足系统的动态响应和稳定性。

如下为一个简单的Matlab仿真情况:

2个pid控制器使用相同的控制参数,3p-3z控制器的参数使用我们提供的api转换后的参数。控制器的输出给到一个二阶系统的输出作为反馈值给到pid\3p-3z控制器作为输入。

可以看到黄色线为系统的给定,蓝色和红色线分别为增量式PID的系统输出和3p-3z系统的输出,两个曲线完全重合,所以系统的控制器性能一致。

下边再看位置式和增量式的比较:
可以看到在相同的系数下,可以看到系统的瞬态响应基本一致,但是稳态误差会不一致。

所以位置式pid和3p-3z控制器如果直接转换的化会存在同样的问题,系统的瞬态响应基本一致,但是其他方面会有差异。

结论

先楫电机控制系统通过引入3p-3z控制器,为用户提供了更加高效、灵活的电机控制解决方案。尽管从PID到3p-3z的转换过程中可能存在一定的挑战,但借助于我们提供的参数转换方法,对于增量式PID可以完全替代,对于位置式PID可以部分替代。

3
0
发表回复 0

Your email address will not be published. Required fields are marked *