电气系统控制的巧妙性,通过速度与位置双环控制得到了有效展现。这一技术的运用十分实用,让系统具备更为精确和稳定的运行能力。下面我们将详细探究其内在原理。
一、速度闭环控制详解
在速度闭环控制系统中,我们通常采用增量式PI控制。由于微处理器通过软件实现其控制算法,因此需要对模拟调节器进行离散化处理。这样,它仅需根据采样时刻的偏差值来计算控制量。我们使用离散的差分方程来代替连续的微分方程。
当采样时间较短(如我们的代码中设定的10ms)时,处理方式如下:
1. 使用一阶差分代替一阶微分;
2. 使用累加来代替积分。
根据增量式离散PID公式:
Pwm+=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)],其中e(k)、e(k-1)和e(k-2)分别代表本次偏差、上一次偏差和上上次偏差,而Pwm代表增量输出。
在我们的速度控制闭环系统中,我们只使用了PI控制,因此PID控制器可以简化为以下形式:
Pwm+=Kp[e(k)-e(k-1)]+Kie(k)。
这一过程在C语言中的实现如下:
```c
int Incremental_PI(int Encoder, int Target) {
float Kp = 100, Ki = 100; // PI参数根据电机种类和负载决定
static int Bias, Pwm, Last_bias;
Bias = Encoder - Target; // 计算偏差
Pwm += Kp (Bias - Last_bias) + Ki Bias; // 增量式PI控制器
Last_bias = Bias; // 保存上一次偏差
return Pwm; // 返回增量输出
```
在10ms的定时中断中调用此函数,可以达成我们的控制目标。
二、位置闭环控制的解析
根据位置式离散PID公式:
Pwm=Kp∗e(k)+Ki∗∑e(k)+Kd[e(k)−e(k−1)],其中Pwm代表输出。在我们的位置控制闭环系统中,我们也只使用了PI控制,因此公式可以简化为:
Pwm=Kp∗e(k)+Ki∗∑e(k)。
其C语言实现如下:
```c
int Position_PI(int Encoder, int Target) {
float Kp = 15, Ki = 0.01; // PI参数在不同系统中可能不同,需根据实际情况调整
static int Bias, Pwm, Integral_bias;
Bias = Encoder - Target; // 计算偏差
Integral_bias += Bias; // 计算偏差的积分
Pwm = Kp Bias + Ki Integral_bias; // 位置式PI控制器输出
return Pwm; // 返回PWM值
```
在位置控制中,我们同样在10ms的定时中断中调用该函数,以实现控制目标。
三、速度位置双环控制的结合
双环控制将速度与位置控制相结合,核心代码的解释如下:
- 首先通过测速法获得电机速度。
- 通过累加求出速度的积分,即电机的位置信息。
- 外环为位置控制器,求出控制输出量,作为内环速度控制的目标值。
- 内环为速度控制器。