跳转至

建模基础

引言

本页面是控制系统建模专题的数学基础部分,涵盖拉普拉斯变换、传递函数推导、方框图代数、信号流图与梅森公式、非线性系统的线性化方法等核心数学工具。这些工具将物理系统的微分方程转化为代数运算,是控制系统分析与设计的基石。

拉普拉斯变换

定义与性质

拉普拉斯变换(Laplace Transform)将时域中的微分方程转化为复频域中的代数方程,极大简化了线性时不变(Linear Time-Invariant, LTI)系统的分析。

对于因果信号 (),其单边拉普拉斯变换定义为:

其中 是复频率变量。

常用变换对

时域信号 拉普拉斯变换
单位冲激
单位阶跃

关键性质

拉普拉斯变换最重要的性质是微分性质——将微分运算转化为乘法:

当初始条件为零时,微分简化为乘以 ,积分简化为除以 。

传递函数

从微分方程到传递函数

传递函数(Transfer Function)定义为零初始条件下,输出的拉普拉斯变换与输入的拉普拉斯变换之比。

以弹簧-质量-阻尼系统为例:

对两边取拉普拉斯变换(零初始条件):

传递函数为:

直流电机传递函数推导

直流电机的电气方程和机械方程(零初始条件下的拉普拉斯域):

消去电流 ,得到从输入电压到输出转速的传递函数:

当电枢电感 很小可忽略时,简化为一阶系统:

其中 为电机增益常数, 为电机时间常数。

Python 中的传递函数操作

import control
import numpy as np

# 直流电机参数
R = 1.0    # 电枢电阻 (Ω)
L = 0.5    # 电枢电感 (H)
J = 0.01   # 转动惯量 (kg·m²)
b = 0.1    # 粘滞摩擦系数 (N·m·s/rad)
Kt = 0.01  # 力矩常数 (N·m/A)
Ke = 0.01  # 反电动势常数 (V·s/rad)

# 构建传递函数
num = [Kt]
den = [L*J, R*J + L*b, R*b + Kt*Ke]
G = control.tf(num, den)
print(f"传递函数: {G}")

# 极点和零点
poles = control.poles(G)
zeros = control.zeros(G)
print(f"极点: {poles}")
print(f"零点: {zeros}")

# 阶跃响应
t, y = control.step_response(G)

方框图代数

基本连接规则

方框图(Block Diagram)是控制系统中最常用的图形化表示方法。三种基本连接的等效规则:

串联(级联):

并联:

反馈连接(负反馈):

其中 为前向通道传递函数, 为反馈通道传递函数。当 时为单位反馈系统。

方框图化简技巧

操作 规则
求和点前移过方框 在移动支路中插入
求和点后移过方框 在移动支路中插入
引出点前移过方框 在移动支路中插入
引出点后移过方框 在移动支路中插入
交换相邻求和点 直接交换(加法交换律)

信号流图与梅森公式

信号流图

信号流图(Signal Flow Graph, SFG)是方框图的替代表示方法,由节点和有向分支组成。每个分支上标注增益(传递函数),信号沿分支方向单向流动。

梅森增益公式

梅森公式(Mason's Gain Formula)可直接从信号流图计算系统传递函数,无需逐步化简:

其中:

  • :第 条前向通路的增益
  • :图的行列式,
  • :第 个独立回路的增益
  • :第 和第 个互不接触回路的增益之积
  • :去掉与第 条前向通路接触的所有回路后的行列式

应用示例

考虑一个典型的 PID 控制系统,信号流图有:

  • 前向通路:
  • 回路:
  • 行列式:
  • (前向通路与唯一回路接触)

传递函数:

与反馈公式一致。梅森公式的优势在于处理复杂多回路系统时无需化简方框图。

非线性系统线性化

为什么需要线性化

大多数机器人系统本质上是非线性的(关节动力学、空气动力学、接触力等),但线性控制理论提供了成熟的分析和设计工具。线性化(Linearization)在平衡点附近用线性模型近似非线性系统,使得线性控制方法可以应用。

雅可比线性化

对于非线性状态方程:

在平衡点 处(满足 ),通过泰勒展开取一阶项得到线性化模型:

其中偏差变量 ,,系统矩阵和输入矩阵为雅可比矩阵:

倒立摆线性化示例

倒立摆的非线性运动方程(忽略摩擦):

选择状态向量 ,在上平衡点 处线性化(,,):

import numpy as np
import control

# 倒立摆参数
M = 0.5   # 小车质量 (kg)
m = 0.2   # 摆杆质量 (kg)
l = 0.3   # 摆杆半长 (m)
g = 9.81  # 重力加速度 (m/s²)

# 上平衡点处的线性化状态空间矩阵
A = np.array([
    [0, 1, 0, 0],
    [0, 0, -m*g/M, 0],
    [0, 0, 0, 1],
    [0, 0, (M+m)*g/(M*l), 0]
])

B = np.array([[0], [1/M], [0], [-1/(M*l)]])
C = np.array([[1, 0, 0, 0],
              [0, 0, 1, 0]])
D = np.zeros((2, 1))

sys = control.ss(A, B, C, D)
print(f"极点: {np.linalg.eigvals(A)}")

# 检查能控性
Wc = control.ctrb(A, B)
rank = np.linalg.matrix_rank(Wc)
print(f"能控性矩阵秩: {rank} (需要 {A.shape[0]} 才完全能控)")

线性化的局限性

  • 仅在平衡点附近有效,偏离过大时精度迅速下降
  • 不能捕获极限环、混沌等本质非线性现象
  • 对于大范围运动(如机械臂摆动)需要增益调度(Gain Scheduling)或非线性控制方法

标准系统传递函数速查

系统 传递函数 阶数
弹簧-质量-阻尼 2
直流电机(电压→转速) 2
直流电机(简化) 1
RC 低通滤波器 1
二阶振荡系统 2
积分环节 —
纯延迟 —

参考资料

  1. Ogata, K. (2010). Modern Control Engineering (5th ed.). Prentice Hall.
  2. Nise, N. S. (2019). Control Systems Engineering (8th ed.). Wiley.
  3. Franklin, G. F., Powell, J. D., & Emami-Naeini, A. (2019). Feedback Control of Dynamic Systems (8th ed.). Pearson.
  4. Mason, S. J. (1956). Feedback Theory — Further Properties of Signal Flow Graphs. Proceedings of the IRE, 44(7), 920–926.
  5. python-control 库文档:https://python-control.readthedocs.io/