Preliminaries

Kernal:

  • 傅立叶:
  • Laplace:

Eigenvalues:

Kernel of matrix is null space of matrix :

当零空间只有平凡解的时候, 是可逆的. 反之, 那么矩阵不可逆

O.D.E:

Lecture 01

Control Theory

Control Theory 研究以下三类问题:

System Identification Problem:

graph LR
Input-->?-->Outputs

Simulation Problem

graph LR
Input-->System-->?

Control Problem

graph LR
?-->System-->Outputs

Control

控制:

  • Dynamics: 这个系统本身的变化方向. 如:
    • : 恒定增长/减小
    • : 指数增长/减小
    • : 非线性增长/减小
  • Goal: 期望系统达成的目标. 如, 让, 并稳定下来
  • Input: 重点的部分. 要设计一个输入(Control System), 使得整个系统达到我们的Goal:
    • 是Control Input. 前面的是Dynamics

但是更常见的系统是一个二阶系统(加速度, …):

为了防止过冲(有加速度, 一阶系统仅能做到靠近, 但是无法确保不会“过冲”(overshoot)或者震荡)

Feedback Control

反馈(feedback): 需要知道输出才能知道控制, 即输入的函数

Negative Feedback

负反馈. 输出越大, 输入越小(或者越负). 防止输出爆炸

e.g. 根据图中的关系写表达式:

  • : 最终的输出
  • : 由控制器发出的信号, 用于控制最终的输出
  • : Error误差, 期望的目标(或者叫Reference)和输出之间的差异

替换, 得到最终的输出的公式:

此处可以理解为:

  • 是一个转换器, 希望得到的是, 有误差, 经过使得最终的输出接近.
  • 这个系统的目的是让输出追随目标

使, 可以令, 最终. 即, 如果让控制的增益能够达到无限, 那么系统会忽视其他的组件, 直接复制Reference.

但是实际上这个是理想的系统, 真实世界中由于 能量不是无限的, 因此令是不可能达成的.

Lecture 02

Linear Time Invariant System

齐次性(homogenity):

可加性(superposition):

时不变性(time invariance):

Linear Operator

线性操作. 对一个线性系统做线形操作, 得到的系统仍然是线性的.

Laplace Transform

激励函数(Excitation Functions): 在未知系统的时候, 创建一个冲击函数作为输入, 然后根据输出去分析这个系统的构成

  • 冲击函数: :
  • 阶跃函数: u(t)=\left\{\matrix{1&t>0\\0&t<0}\right.
  • Ramp函数:
  • Parabola函数:
  • Sinusoid函数:

Laplace Transform

定义:

常见的Laplace变换:

常见的Laplace变换的操作, 即复合函数的Laplace变换:

TheoremName
Definition
Linearity theorem
Linearity theorem
Frequency shift theorem
Time shift theorem
Scaling theorem
Differentiation theorem
Differentiation theorem
Differentiation theorem
Integration theorem
Final value theorem
Initial value theorem

Example

计算的Laplace Transform:

Example

计算Laplace Inverse Transform:

Example

根据微分方程求解Laplace Inverse Transform:

对两侧使用Laplace Transform, 得:

因为初始状态下为0, 有:

Example

注意, 高次项在裂项的时候需要使用重根, 不能省略这一项

Transfer Function

转移函数是一个线性时不变(LTI)的函数. 定义为: 在 零初始化 的状态下, 系统的输入量与输出量的Laplace Transform之比:

从微分方程转换:

  1. 将两侧通过Laplace Transform转换成频域
  2. 写成的形式

Example

System Examples

对于电路系统:

一个RLC振荡电路 RC Circuits RL Circuit

对于一个物理弹簧:

电机转子:

State Space Model

状态: , 一个线性无关的向量

SSM将整个系统的所有的方程, 整理成了两个部分:

  • 状态方程:
    • 状态的变化速度 = 物理规律当前的状态外部影响力外部输入
  • 输出:
    • 测量的结果 = 观测能力当前的状态外部对测量值的影响力外部输入

其中:

  • 是状态向量
  • 是一阶导数
  • 是输出向量
  • 是输入向量, 或者说control vector
  • 是系统矩阵
  • 是输入矩阵
  • 是输出矩阵
  • 是前馈矩阵

O.D.E to State Space Model

原始O.D.E方程:

首先定义: , , ,

有:

则SSM: 可以转换成:

由于, , 则A的上部分为:

根据原始的O.D.E, 有: , 因此, 因此完整的为:

完整的为:

因此, 状态方程为:

输出为, 就是. 则最终的输出方程为:

Transfer Function to State Space Model

首先, 将转移函数转换成O.D.E, 然后使用O.D.E to State Space Model.

对于分子不是常数的转移函数, 引入中间变量.

假设转移函数为

  1. 引入中间变量, 使得,
  2. 构造$$
  3. 构造矩阵. 频域的输出为. 因此, 构建矩阵$$
  4. 矩阵依然为0

对于分子分母同幂次的转移方程, 需要构建矩阵. 步骤为:

  1. 将转移函数写成如下形式:$$
  2. 对于后面的真分式, 使用前面的方法获取矩阵, , :$$
  3. 矩阵为一个常数

State Space Model to Transfer Function

假设已知:

结论为: 转移函数为

计算矩阵的逆的方法:

的结果仍然是一个矩阵, 的结果是一个scalar. 最终的结果应该是一个矩阵, shape和相同.

的算法为:

Example

Diagonal State Space Repr

引入: 变量的变换

对于一个系统而言, SSM不是唯一的. 将变量通过Transform矩阵转换到另一个变量, SSM也会随之改变.

如, 令, 那么SSM变成了:

使用对角状态空间表达的原因是解耦和, 让变量对最终结果的输出相互独立.

如果没有对角化, 那么可能依赖于. 对角化之后, 只和以及有关

Example

Solution: 使用之前的解法:

Solution of the State Space Model

根据SSM的公式, 求解时域的表达式.

假设SSM的状态方程为:

最终的结果为: 其中:

Block Diagram

框图: 信号都是在频域中的.

  • 箭头指向某一个框(System), 然后得到输出, 这个过程是做了乘法(以上图中的b为例):
  • 箭头指向一个圈(或者一个operator), 指的是按照符号进行相加减, 然后得到输出(如上图中的c)

串联: 频域相乘: 并联: 频域相加: 反馈: 输出影响输入: 等价于:

化简

注意符号

Example

Solution: 化简框图, 得:

Lecture 03

Poles and Zeros

响应:

  • 强迫响应(force response): 由于外界输入引起的响应 (输入函数的极点)
  • 自然响应(natural response): 由于系统本身的性质而产生的响应 (转移函数的极点)

极点 的位置决定了 的形态:

极点的位置 (在 s 平面上)数学形式 ()自然响应的时间函数形式 ()物理表现 (参考 Lecture 3, Page 8)
负实轴上 (左半平面)单调衰减。系统受到冲击后平滑地回到零,不震荡(过阻尼)。
原点 (阶跃)常数/积分。系统保持当前状态不恢复。
正实轴上 (右半平面)单调发散。系统不稳定,数值趋向无穷大。
左半平面共轭复数衰减震荡。系统会震荡,但振幅随 逐渐减小,最终趋于稳定(欠阻尼)。
虚轴上共轭复数等幅震荡。系统像永动机一样不停震荡,不衰减也不发散(临界稳定)。
右半平面共轭复数发散震荡。震荡幅度越来越大,系统不稳定。

Typical System

一阶系统只有一个极点, 通常是一个实数.

二阶系统有两个极点, 但是这两个极点不一定是什么, 可能是共轭的也可能是相同的.

  • Natural frequency
  • Damping ratio
  • 假设传递函数为

Performance Metrics

指示系统的性能指标.

  • 上升时间: 指示反应速度
  • 峰值时间: 上升到最大值的时间
  • 超调量 overshoot: 冲过头了多少
  • 调节时间: 需要多久稳定下来

_p=\frac{pi}{\omega_n\sqrt{1-\zeta^2}}=\frac{\pi}{\omega_d}$$

Example

Stability

  • Stable: 所有的极点都位于左半平面内
  • Unstable: 一个或多个极点位于右半平面内
  • Marginally Stable: 没有极点位于右半平面内, 但是有不重复的简单极点位于虚轴上
    • “简单极点”: 就是不重复的极点
    • 如果在虚轴上的极点是重复的, 那么这个系统就是Unstable的

Routh Table

特征方程: 传递函数的分母等于零的函数. 假设特征方程为, 特征方程为

Routh-Table:

假设

首先建立Routh Table的初始行(前两行):

  • 第一行, 填入 (从最高次项开始, 隔一个取一个)
  • 第二行, 填入 (剩下的系数, 如果缺少则补0)

从第三行开始, 每一行的元素都由上两行计算得出:

注意:这里指的“左上”是当前计算位置的上一行第一列元素. 对于最后一列, 右上和右下补零.

然后一直计算到, 观察第一列的符号变化:

  • 如果符号没有变化, 那么说明是稳定的
  • 如果符号有变化, 变化的次数就是不稳定极点的个数

Example

因此这个系统是不稳定的, 有两个不稳定极点

特殊情况:

  1. 如果第一列为0, 那么这个系统一定不是稳定的. 如果硬要算下去, 需要用无穷小量代替0
  2. 如果一整行都为0, 那么存在关于原点对称的极点(如, ). 如果要继续算下去, 需要求解, 将系数替换. 这里的是将上一行的系数根据劳斯表该行的最高次幂和系数组合的. 如, 最高次幂为, 系数为, 那么

Steady State Error

为了衡量系统的精度, 引入指标稳态误差. 指的是时间趋于无穷大的时候(到达稳定之后), 系统实际输出和期望之间的差值.

Final value theorem:

常见的稳态误差函数:

对于阶跃函数, Type 0的系统(上下幂次相同)有常数误差, Type 1,2误差为0; 对于Ramp函数, 由于有二阶输入, 因此Type 0无法跟住(误差为); 类似的, 三阶输入需要至少Type 2的系统.

通过误差的值计算传递函数

如果有“外部扰动” , 那么最终的输出的稳态误差会有区别: 在这个情况下, 最终的稳态误差为:

Root Locus

在一个系统中, 有一个“调节旋钮” 增益(Gain) , 用于调节系统反应的速度. 如果增益太小, 那么系统的反应会慢; 如果增益太大, 那么系统会不稳定(明显的震荡).

对于高阶系统而言, 极点难以计算. Root Locus的目的是随着, 得到poles的移动轨迹

画圈表示开环极点(Poles), 画叉表示开环零点(Zeros).

Vector Repr of Complex Numbers

将复数转换成向量, 可以根据Poles和Zeros去直接根据几何求解函数:

Example

Sketching Rules

  1. 根轨迹的数量等于开环极点的数量
  2. 所有轨迹从开环极点出发
    1. 其中有m条轨迹会走进开环零点(一共有m个开环零点, n个开环极点. 通常)
    2. 剩下的n-m个轨迹会延伸到无穷远处
  3. 在实轴上的点, 如果右侧极点零点加起来为奇数, 那么当前这一段为root locus; 如果加起来是偶数, 那么当前这一段不为root locus
    • e.g.,
    • 此时数轴为:
      graph LR
      x1(0)
      x2(\-1)
      x3(\-5)
      z(\-3)
      \-infty-->x3-->z-->x2-->x1-->infty
      
    • 按照从右往左的顺序
      • 第一段不是(因为0个点)
      • 第二段是, 因为有一个极点
      • 第三段不是, 因为有两个极点
      • 第四段是, 因为有一个零点和两个极点
      • 第五段不是, 因为有三个极点和一个零点
    • 注意只有是一个线段. 因为两个都是极点, 因此会发散到无穷远处
  4. 对于去无穷远处的root locus, 会沿着渐近线走向无穷远处.
    • 所有的渐近线在实轴上交于一点, 这个点为
    • 每个渐近线的角度为. 即如果, 那么角度分别为
  5. 当两条轨迹在实轴上相遇的时候, 会分开跑向复平面(e.g. 第三条的例子的)
    • 分开的位置为: 求解得出.
    • 一个简便算法:
      • 是极点的值, 是零点的值

如何确定一个sketch是否是root locus:

  1. 对称性: 沿实轴对称
  2. 这个sketch如果右侧有偶数个点, 那么一定不是root locus
  3. 数量守恒: sketch的数量等于极点的数量
  4. 去无穷远处的数量一定等于, 就是 极点个数-零点个数
  5. 起点一定是极点, 终点一定是零点或无穷远

examples:

Lecture 4

Compensator

常见串联在误差信号之后, 受控对象(Plant)之前. 数学上引入了额外的极点和零点到系统中(动态的补偿器)

Root Locus中, 只调节了一个静态的常数增益. 如果给Gain引入变量, 让Gain和输入输出有关, 就得到了Dynamic Compensator. 引入动态补偿器的目的是, 如果受控对象的表现(如速度/精度/稳定性等)无法满足需求, 那么可以加入一个“大脑”(补偿器)来改变输入信号, 补偿硬件的缺陷

Integral and Lag Compensation

积分补偿器(Integral Compensator): 在原点处有极点, 在处有零点的一个补偿器:

  • 作用: 消除稳态误差
  • 副作用: 会完全改变Root Locus
  • 解决方案: 变成一个很小的数, 和原点处的极点组合来抵消对高频轨迹的影响

设计方法:

  1. 确定要求, , 和对应的增益
  2. 极点一定位于原点处
  3. 零点位于非常靠近原点的负实轴上
  4. 确定增益: , 或者按照幅值条件微调

延后补偿器(Lag Compensator):

  • 改善稳态精度 同时既可能保持原有的瞬态响应不变
  • 极点和零点都在非常靠近原点处
  • 对增益的提升倍数为
    • 这个用于题目中有提到“improve the steady-state error by factor ”这种说法
    • , 即零点的位置更靠左

设计方法:

  1. 确定倍数
  2. 选择一个极点, 尽可能靠近原点
  3. 计算零点
  4. 增益应该和原始的增益近似: , 最终的增益应该由Compensator进行调整

Differentiation and Lead Compensation

微分控制器(Derivative Compensator): 引入一个零点,

  • 增加阻尼(Damping), 提前“刹车”, 防止过冲(允许让Gain开的比较大)
  • 只提供一个零点, 没有极点的干扰, 因此能够提供非常丰富的角度补偿
  • 根据需要的root去修改root locus
    • 由于要求, 因此直接修改root locus是不可行的.
    • 因此引入一个零点用于平衡

设计方法:

  1. 根据设计指标(, 等)确定
  2. 计算当前极点零点对的角度:
  3. 根据角度和得到需要补偿的角度
  4. 利用几何关系计算零点
    • , 其中
  5. 利用条件来计算新的增益

提前补偿器(Lead Compensator):

  • Derivative Compensator通过引入零点提供更丰富的角度补偿, 但是会极大改变Transient Response
  • 因此这个提供一个极点一个零点, 来维持原始的Transient Response变化不大

设计方法:

  1. 同PD的设计, 首先确定, 然后确定
  2. 设计零点和极点. 有两种方法:
    1. 抵消法: 将一个零点放在一个极点上, 然后计算满足的另一个极点
    2. 角平分线法: 几何作图, 使得与零极点连线的夹角平分线通过原点
  3. 根据计算增益

PID Control

  • 比例 P:
  • 误差积分 I:
  • 微分 D:

设计方法:

  1. 确定目标极点:
    1. 根据计算
    2. 根据计算
    3. 在复平面上计算
  2. 设计PD零点:
    1. 计算角度亏空
    2. 利用PD控制器提供的角度, 计算PD零点位置
    3. 此时控制器为
  3. 设计PI零点:
    1. PI零点应该靠近原点 (任意选择一个零点)
    2. 引入原点处的积分极点
    3. 此时控制器为

Lag-Lead Compensation

通常采用先Lead再Lag的形式:

计算方法:

  1. 确定:
    1. 根据确定
    2. 根据确定
  2. 设计Lead部分:
    1. 设计lead的零点(可以考虑放在一个极点上, 进行抵消)
    2. 计算角度亏空
    3. 根据计算必须提供的角度, 来设计
    4. 利用幅值条件, 计算增益
  3. 设计lag部分:
    1. 基于Lead的增益, 计算提升倍数, 使用Steady State Error计算
    2. 放置零点, 任意位置, 但是要靠近原点

Notch Filter

在剧烈波动的峰值处放一个零点和极点, 抑制这个波动:

  • : 零点阻尼比, 确定限制强度(越小越强)
  • : 极点阻尼比, 确定限制范围

Summary

Feedback Compensation

Lecture 5

Lecture 6

Lecture 7

Review