许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  用Matlab更好理解根轨迹第五讲笔记

用Matlab更好理解根轨迹第五讲笔记

阅读数 4
点赞 0
article_banner


【根轨迹-5】:利用Matlab更好的理解根轨迹

根轨迹本质就是在看K* 对于我们传递函数分母的影响

比如这闭环个例子里面

先定义了 Gs 前馈转移函数

Hs 反馈转移函数

kG/(1+KGH)

我们只要关心KGH 就可以了

这里面Kgh= 1/[S(S+4)(S*S+4S+200]

四个poles 没有zeros

网页链接​

我先解释下上面的字母

K=gain就是我们设计的增益是多少

system 系统是什么,本题目是GH系统

pole 等效K下的闭环极点(这个点会随着K变化而变化,也是我们设计K的主要目的)

damping ratio阻尼数值,从欠阻尼到过阻尼变化了

Overshoot 表示根据主导二阶近似估计出来的超调量 overshoot 超调,overshoot=0 没有超调,overshoot越大,那么超调的响应,也就是ht图像最上面的那个极值点,相对于稳态一条线的数值,超了多少。

Frequency rad/s 表示角频率,单位为弧度每秒。

本题的 GH有四个开环极点,所以根轨迹有四条分支。在这个上面的变化overshoot=0 系统欠阻尼,没有任何超调问题。

---

说了些matlab牛逼的函数,这些函数可以替换我们自己调节K的补偿,设计循环的看点。

K_values = [10 100 1000 5000 10000 11600 12000];

for K = K_values

T = feedback(K*GH, 1);

p = pole(T);

fprintf('\nK = %.0f\n', K);

disp(p);

if all(real(p) < 0)

disp('Stable');

elseif any(real(p) > 0)

disp('Unstable');

else

disp('Marginally stable');

end

end

---

然后,随着gain 增大,会往上走,但是为什么分成了左右两个,我就没看明白了,以及如何判断k gain如何确定才能让系统稳定,也就是根轨迹都在 negative real axis

网页链接​

但是k越来越大,四个极点中,比较糟糕的靠近0的2个点,会让系统阶跃响应越来越糟糕,当靠近0的2个点,真的到达虚轴,那就是临界稳定。这个属于广义的稳定,是符合李亚普诺对于系统稳定要求,因为v正定,v导数负半正定。因此它可以满足李亚普诺夫稳定,但不满足渐近稳定。

如果K超过临界值,一对闭环极点进入右半平面:

$$

\operatorname{Re}(s)>0

$$

此时响应项变成:

$$

e^{\sigma t}\cos(\omega t), \quad \sigma>0

$$

因为:

$$

e^{\sigma t}

$$

会随着时间指数增长,所以系统响应会发散。

对应到阶跃响应中,就会看到:

- 振荡幅度越来越大;

- 输出无法收敛到稳态值;

---

总结下随着 K变大,系统可能出现以下变化:

  • 响应速度变快;
  • 阻尼比降低;甚至小于0
  • 超调增大;

所以,增大 K并不一定总是让系统变好。

在很多系统中,K增大可以提高响应速度,但同时会降低稳定裕度。也就是系统快速性一定和稳定性是矛盾

---

交互式补偿器设计

视频里比较重要的一点是 MATLAB 的交互式控制设计功能。

它不仅可以画根轨迹,还可以让我们通过拖动极点、零点来改变补偿器,从而改变根轨迹和阶跃响应。

比如视屏加入了1/(1+希望的系数*S)

我可以拖动加入的那个极点,调整为我希望看到的根轨迹,以及我期望的阶跃响应,并且这个期望的系数,也会随着我的拖动极点操作而变化。

---

后面的Notch filter:陷波滤波器真的是天书,借着gpt也不是特别懂。

## 18.3 Notch filter 在电机倒摆控制中的例子

假设我们有一个小车倒立摆系统:

- 小车由直流电机驱动;

- 倒摆杆安装在小车上;

- 控制目标是让摆杆保持竖直;

- 控制器根据摆杆角度 \(\theta\) 和小车位置 \(x\) 给电机输出控制电压 \(u\)。

系统结构大概是:

```text

控制器 C(s) ---> 电机 + 小车 + 倒摆 P(s) ---> 摆杆角度 θ

^ |

|______________________________________|

```

### 1. 问题:电机控制时出现某个频率的振动

假设我们已经设计了一个 PID 或 LQR 控制器,倒摆基本可以立起来。

但是实验中发现,当电机快速修正小车位置时,系统在某个频率附近会明显抖动。

例如,通过传感器数据或频谱分析发现,摆杆角度在:

\[

\omega = 25\ \text{rad/s}

\]

附近有明显振动峰值。

这种振动可能来自:

- 电机齿轮箱间隙;

- 皮带或传动机构弹性;

- 小车轨道结构共振;

- 编码器噪声;

- 摆杆柔性振动;

- 控制增益过高,激发了机械共振。

如果控制器继续在这个频率附近输出很强的控制信号,就可能把这个共振频率越激越厉害。

---

### 2. Notch filter 的作用

Notch filter,也就是陷波滤波器,作用是在某个特定频率附近降低系统增益。

直观理解:

> Notch filter 会在某个频率附近“挖一个坑”,专门压制这个频率的振动。

在这个例子中,我们希望抑制:

\[

\omega = 25\ \text{rad/s}

\]

附近的振动。

所以我们在控制器中加入一个 notch filter,让控制器不要在这个频率附近太敏感。

---

## 18.3 Notch filter 在电机倒摆控制中的例子

假设我们有一个小车倒立摆系统:

- 小车由直流电机驱动;

- 倒摆杆安装在小车上;

- 控制目标是让摆杆保持竖直;

- 控制器根据摆杆角度 \(\theta\) 和小车位置 \(x\) 给电机输出控制电压 \(u\)。

系统结构大概是:

```text

控制器 C(s) ---> 电机 + 小车 + 倒摆 P(s) ---> 摆杆角度 θ

^ |

|______________________________________|

```

### 1. 问题:电机控制时出现某个频率的振动

假设我们已经设计了一个 PID 或 LQR 控制器,倒摆基本可以立起来。

但是实验中发现,当电机快速修正小车位置时,系统在某个频率附近会明显抖动。

例如,通过传感器数据或频谱分析发现,摆杆角度在:

\[

\omega = 25\ \text{rad/s}

\]

附近有明显振动峰值。

这种振动可能来自:

- 电机齿轮箱间隙;

- 皮带或传动机构弹性;

- 小车轨道结构共振;

- 编码器噪声;

- 摆杆柔性振动;

- 控制增益过高,激发了机械共振。

如果控制器继续在这个频率附近输出很强的控制信号,就可能把这个共振频率越激越厉害。

---

### 2. Notch filter 的作用

Notch filter,也就是陷波滤波器,作用是在某个特定频率附近降低系统增益。

直观理解:

> Notch filter 会在某个频率附近“挖一个坑”,专门压制这个频率的振动。

在这个例子中,我们希望抑制:

\[

\omega = 25\ \text{rad/s}

\]

附近的振动。

所以我们在控制器中加入一个 notch filter,让控制器不要在这个频率附近太敏感。

---

### 3. Notch filter 的常见形式

Notch filter 的常见形式为:

C_notch(s) =

\[

s^2 + 2\zeta_z \omega_n s + \omega_n^2

\]

\[

s^2 + 2\zeta_p \omega_n s + \omega_n^2

\]

其中:

其中,分子为:

\[

s^2 + 2\zeta_z \omega_n s + \omega_n^2

\]

分子决定滤波器的**零点位置**。这里的 \(\zeta_z\) 是**零点阻尼比**,它控制陷波深度。通常 \(\zeta_z\) 越小,中心频率附近的增益下降越明显,陷波效果越强。

分母为:

\[

s^2 + 2\zeta_p \omega_n s + \omega_n^2

\]

分母决定滤波器的**极点位置**。这里的 \(\zeta_p\) 是**极点阻尼比**,它控制陷波的带宽和恢复速度。通常 \(\zeta_p\) 越大,被抑制的频率范围越宽,滤波器在中心频率附近的影响范围也越大。

因此,为了形成明显的 notch filter,通常选择:

- ω_n:想要抑制的中心频率;

- ζ_z:零点阻尼比;

- ζ_p:极点阻尼比。

为了形成明显的陷波,通常选择:

\[

\zeta_z < \zeta_p

\]

例如:

\[

\omega_n = 25

\]

\[

\zeta_z = 0.05

\]

\[

\zeta_p = 0.5

\]

代入公式:

\[

C_{\text{notch}}(s)

=

\frac{s^2+2(0.05)(25)s+25^2}

{s^2+2(0.5)(25)s+25^2}

\]

得到:

\[

C_{\text{notch}}(s)

=

\frac{s^2+2.5s+625}

{s^2+25s+625}

\]

这个滤波器会在:

\[

25\ \text{rad/s}

\]

附近降低增益,从而压制该频率附近的机械振动。

---

### 4. 加入 notch 前后的控制器

假设原来的控制器是一个 PD 控制器:

\[

C_{\text{PD}}(s)=K_p+K_d s

\]

例如:

\[

C_{\text{PD}}(s)=100+10s

\]

没有 notch 时:

\[

C(s)=100+10s

\]

加入 notch 后:

\[

C(s)=C_{\text{PD}}(s)C_{\text{notch}}(s)

\]

也就是:

\[

C(s)

=

(100+10s)

\frac{s^2+2.5s+625}{s^2+25s+625}

\]

这个控制器的含义是:

> 平时仍然使用 PD 控制倒摆,但在 \(25\ \text{rad/s}\) 附近主动降低控制器增益,避免激发结构共振。

---

### 5. MATLAB 例子

```matlab

clc; clear; close all;

s = tf('s');

% 原始 PD 控制器

Kp = 100;

Kd = 10;

Cpd = Kp + Kd*s;

% Notch filter 参数

wn = 25; % 想要抑制的共振频率,单位 rad/s

zeta_z = 0.05; % 零点阻尼比,小一些,形成较深陷波

zeta_p = 0.5; % 极点阻尼比,大一些,控制陷波宽度和平滑度

Cnotch = (s^2 + 2*zeta_z*wn*s + wn^2) / ...

(s^2 + 2*zeta_p*wn*s + wn^2);

% 加入 notch 后的控制器

C = Cpd * Cnotch;

figure;

bode(Cpd, C);

grid on;

legend('Original PD Controller', 'PD Controller with Notch');

title('Effect of Notch Filter in Motor-Inverted Pendulum Control');

```

运行后可以看到,在:

\[

25\ \text{rad/s}

\]

附近,加入 notch 的控制器增益会明显下降。

这表示控制器不会在该频率附近输出过强的控制作用。

---

### 6. 更直观的理解

没有 notch 时:

```text

电机快速修正

↓

激发机械结构 25 rad/s 共振

↓

倒摆开始抖动

↓

控制器继续大力修正

↓

抖动更加严重

```

加入 notch 后:

```text

电机快速修正

↓

notch filter 抑制 25 rad/s 附近的控制信号

↓

机械共振不容易被激发

↓

倒摆角度更加平稳

```

---

### 7. 在根轨迹里的理解

Notch filter 会给系统加入一对零点和一对极点。

零点位置大约为:

\[

s=-\zeta_z\omega_n \pm j\omega_n\sqrt{1-\zeta_z^2}

\]

极点位置大约为:

\[

s=-\zeta_p\omega_n \pm j\omega_n\sqrt{1-\zeta_p^2}

\]

如果:

\[

\omega_n=25

\]

\[

\zeta_z=0.05

\]

那么零点大约是:

\[

s=-1.25\pm j24.97

\]

如果:

\[

\zeta_p=0.5

\]

那么极点大约是:

\[

s=-12.5\pm j21.65

\]

这些新增的 pole 和 zero 会改变根轨迹形状。

它的目的不是单纯让根轨迹更好看,而是:

> 在某个容易振动的频率附近改变系统频率响应,降低共振峰。

---

### 8. 一句话总结

在电机倒摆控制中,如果电机、小车轨道或摆杆结构在某个频率,例如:

\[

25\ \text{rad/s}

\]

附近容易共振,就可以加入 notch filter:

\[

C_{\text{notch}}(s)

=

\frac{s^2+2.5s+625}{s^2+25s+625}

\]

它会专门压制这个频率附近的响应,减少倒摆抖动,让电机控制更加平稳。

---

最后讲的stack 多个Gs我是完全听不懂




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空