控制系统传递函数实战:从RLC电路到PID控制器,3个实例详解建模
在工程实践中,控制系统的设计往往始于对物理系统的数学建模。传递函数作为控制系统分析的核心工具,能够将复杂的物理系统转化为简洁的数学表达式。本文将聚焦三个典型工程实例——RLC电路、机械弹簧阻尼系统和直流电机,手把手演示如何从物理定律出发,推导微分方程,再通过拉普拉斯变换得到传递函数。
1. RLC电路:二阶系统的经典案例
RLC串联电路是理解二阶系统的绝佳起点。假设我们有一个由电阻R、电感L和电容C组成的串联电路,输入电压为uᵣ(t),输出电压为u_c(t)(电容两端电压)。
1.1 建立微分方程
根据基尔霍夫电压定律(KVL),我们可以列出电路方程:
% KVL方程 syms R L C t ur(t) uc(t) i(t) eq1 = ur(t) == R*i(t) + L*diff(i(t),t) + uc(t); eq2 = uc(t) == (1/C)*int(i(t),t);消去中间变量电流i(t),得到关于u_c(t)的二阶微分方程:
$$ LC\frac{d^2u_c(t)}{dt^2} + RC\frac{du_c(t)}{dt} + u_c(t) = u_r(t) $$
1.2 拉普拉斯变换与传递函数
对上述方程进行拉普拉斯变换(零初始条件):
% 拉普拉斯变换 syms s laplace_eq = laplace(eq2_substituted, t, s);得到传递函数:
$$ G(s) = \frac{U_c(s)}{U_r(s)} = \frac{1}{LCs^2 + RCs + 1} $$
1.3 MATLAB验证
我们可以用MATLAB快速验证这个传递函数的特性:
% 示例参数 R = 1; L = 0.5; C = 0.2; num = [1]; den = [L*C R*C 1]; sys = tf(num, den); % 绘制阶跃响应 step(sys) grid on title('RLC电路阶跃响应')这个二阶系统的特性由阻尼比ζ和无阻尼自然频率ωₙ决定:
| 参数 | 计算公式 | 物理意义 |
|---|---|---|
| ωₙ | 1/√(LC) | 系统固有振荡频率 |
| ζ | (R/2)√(C/L) | 阻尼程度指标 |
2. 机械弹簧阻尼系统:力学与电学的类比
机械平移系统与RLC电路有着惊人的数学相似性。考虑一个质量-弹簧-阻尼系统,其中:
- m:质量块质量(kg)
- k:弹簧刚度(N/m)
- b:阻尼系数(N·s/m)
- x(t):位移输出(m)
- F(t):外力输入(N)
2.1 建立动力学方程
根据牛顿第二定律:
$$ m\frac{d^2x(t)}{dt^2} + b\frac{dx(t)}{dt} + kx(t) = F(t) $$
这与RLC电路的微分方程形式完全相同,体现了机电相似性。
2.2 传递函数推导
进行拉普拉斯变换后得到:
$$ G(s) = \frac{X(s)}{F(s)} = \frac{1}{ms^2 + bs + k} $$
2.3 Simulink建模验证
在Simulink中搭建模型可以直观观察系统响应:
[外力F] --> [Sum] | [弹簧力] <-- [k Gain] <-- [Integrator1] <-- [Integrator2] <-- [1/m Gain] | [阻尼力] <-- [b Gain] <-- [Derivative]通过调整参数m、b、k,可以观察到从欠阻尼到过阻尼的各种响应特性。
3. 直流电机:多能量域耦合系统
直流电机是机电一体化系统的典型代表,包含电气和机械两个能量域。
3.1 电枢控制直流电机建模
假设我们考虑电枢电压Vₐ(t)为输入,轴转速ω(t)为输出。
电气部分方程: $$ V_a(t) = R_ai_a(t) + L_a\frac{di_a(t)}{dt} + K_bω(t) $$
机械部分方程: $$ J\frac{dω(t)}{dt} + Bω(t) = K_ti_a(t) $$
其中:
- K_b:反电动势常数(V·s/rad)
- K_t:转矩常数(N·m/A)
- J:转动惯量(kg·m²)
- B:粘性摩擦系数(N·m·s/rad)
3.2 传递函数推导
消去中间变量iₐ(t)后,得到:
$$ G(s) = \frac{ω(s)}{V_a(s)} = \frac{K_t}{(L_as + R_a)(Js + B) + K_bK_t} $$
通常Lₐ很小可忽略,简化为:
$$ G(s) ≈ \frac{K_t/R_a}{Js + (B + K_bK_t/R_a)} $$
3.3 PID控制器设计实例
针对上述直流电机模型,设计一个PID控制器:
% 电机参数 Ra = 2; Kt = 0.5; Kb = 0.5; J = 0.1; B = 0.2; % 简化模型 num = Kt/Ra; den = [J (B + Kb*Kt/Ra)]; motor = tf(num, den); % PID控制器 Kp = 1; Ki = 0.5; Kd = 0.1; C = pid(Kp, Ki, Kd); % 闭环系统 cl_sys = feedback(C*motor, 1); % 阶跃响应 step(cl_sys)4. 从传递函数到实际应用
理解传递函数后,我们可以进行:
- 稳定性分析:通过极点位置判断系统稳定性
- 性能评估:通过阶跃响应分析上升时间、超调量等
- 控制器设计:基于模型设计PID或其他先进控制器
在实际工程中,MATLAB/Simulink提供了强大的工具链:
% 系统辨识工具箱示例 load iddata1 sys = tfest(z1, 2); % 二阶系统辨识 compare(z1, sys)掌握这些建模技能,工程师就能将物理世界中的复杂系统转化为可分析、可设计的数学模型,为后续的控制系统设计奠定坚实基础。