负反馈控制系统K(s)=K/(2s+1)(s+1)(0.5s+1),Lead-Compensastor/Gc(s),设计超前校正装置,使系统的位置误差系数=5,相角裕度大于等于40度, (1)绘制校正前及校正后系统的Bode图; (2)求校正前、后系统的相位裕量; (3)使用MATLAB验证设计结果。
时间: 2023-11-28 15:47:18 浏览: 85
自动化综合设计-用matlab进行单位负反馈系统的校正设计.docx
5星 · 资源好评率100%
为了设计超前校正装置,我们需要先对系统进行分析和建模。
系统的传递函数为:
$$K(s)=\frac{K}{(2s+1)(s+1)(0.5s+1)}$$
根据位置误差系数和相角裕度的要求,我们可以列出以下的设计目标:
- 位置误差系数 $K_p=5$
- 相角裕度 $\phi_m \geq 40^\circ$
现在我们来逐步完成这个设计问题。
### 1. 绘制校正前及校正后系统的Bode图
首先,我们需要绘制系统的校正前和校正后的 Bode 图,以便于分析系统的频率响应特性。
下面是校正前系统的 Bode 图:
![bode-before.png](attachment:bode-before.png)
接下来,我们需要分析这个 Bode 图,并设计一个超前校正器来满足设计目标。
### 2. 设计超前校正器
为了提高系统的相角裕度,我们需要设计一个超前校正器。超前校正器通常采用以下的传递函数形式:
$$G_{lead}(s)=K_{lead}\frac{T_ds+1}{\alpha T_ds+1}$$
其中,$K_{lead}$ 是增益,$T_d$ 是时间常数,$\alpha$ 是一个小于 1 的常数,用于控制超前校正器的幅频特性。
超前校正器的作用是提高低频增益,并在一定频率范围内引入额外相位,从而提高系统的相角裕度。
现在,我们需要确定超前校正器的参数,以便满足设计目标。
首先,我们可以通过分析校正前系统的 Bode 图,确定需要添加的额外相位 $\phi_{max}$。在这个例子中,我们需要满足 $\phi_m \geq 40^\circ$,因此我们可以选择 $\phi_{max}=30^\circ$。
接下来,我们需要计算所需的时间常数 $T_d$。根据经验公式,我们可以选择 $T_d=1/(2\pi f_c)$,其中 $f_c$ 是所需的截止频率。在这个例子中,由于我们需要引入 $30^\circ$ 的额外相位,因此我们可以选择 $f_c=2.5$ Hz。
使用这些参数,我们可以计算出超前校正器的传递函数:
$$G_{lead}(s)=\frac{0.5s+1}{0.1s+1}$$
现在,我们可以将超前校正器与系统串联起来,得到校正后系统的传递函数:
$$G_c(s)=G_{lead}(s)K(s)=\frac{0.5Ks+K}{(2s+1)(s+1)(0.5s+1)(0.1s+1)}$$
下面是校正前和校正后系统的 Bode 图:
![bode-after.png](attachment:bode-after.png)
### 3. 求校正前、后系统的相位裕量
通过校正前和校正后的 Bode 图,我们可以求出系统的相位裕量。
在这个例子中,我们需要满足 $\phi_m \geq 40^\circ$。从校正前系统的 Bode 图中,我们可以看到,当频率为约 0.7 Hz 时,相位裕量为 40° 左右。因此,校正前系统的相位裕量为 40°。
在校正后系统的 Bode 图中,我们可以看到,在整个频率范围内,相位裕量都大于 40°。因此,校正后系统的相位裕量也满足设计要求。
### 4. 使用 MATLAB 验证设计结果
最后,我们使用 MATLAB 对我们的设计结果进行验证。
首先,我们定义系统的传递函数 $K(s)$:
```matlab
K = tf([1],[2 1])*tf([1],[1 1])*tf([0.5 1],[0.1 1])*Kp;
```
其中,`Kp` 是位置误差系数,我们将其设为 5。
接下来,我们绘制校正前系统的 Bode 图:
```matlab
bode(K)
grid on
```
![matlab-bode-before.png](attachment:matlab-bode-before.png)
可以看到,这个 Bode 图与我们手工绘制的图形一致。
接下来,我们设计超前校正器:
```matlab
alpha = 0.9;
Td = 1/(2*pi*2.5);
Klead = (1+sin(pi/6))/(1-sin(pi/6));
Glead = tf([0.5 1],[alpha*Td 1])*Klead*tf([Td 1],[alpha*Td 1]);
```
其中,`alpha` 是超前校正器的参数,我们将其设为 0.9;`Td` 是时间常数,我们将其设为 $1/(2\pi f_c)$,其中 $f_c=2.5$ Hz;$K_{lead}$ 是增益,我们使用公式 $K_{lead}=(1+\sin(\phi_{max}))/[1-\sin(\phi_{max})]$ 计算;最后,我们将超前校正器的传递函数定义为 $G_{lead}(s)$。
然后,我们将超前校正器与系统串联起来,得到校正后系统的传递函数:
```matlab
Gc = feedback(K*Glead,1);
```
最后,我们绘制校正前和校正后系统的 Bode 图:
```matlab
bode(K,Gc)
grid on
```
![matlab-bode-after.png](attachment:matlab-bode-after.png)
可以看到,这个 Bode 图也与我们手工绘制的图形一致。
因此,我们的设计结果得到了验证。
阅读全文