当前位置: 首页 > news >正文

控制系统传递函数 2 种标准形式:首1型与尾1型在根轨迹与Bode图中的应用对比

控制系统传递函数两种标准形式的工程应用对比:首1型与尾1型在根轨迹与Bode图中的实战解析

引言:为什么我们需要两种标准形式?

在自动控制系统的分析与设计中,传递函数作为描述系统动态特性的核心数学工具,其标准形式的选取直接影响后续分析的便捷性与直观性。面对同一个传递函数表达式,工程师们常会根据不同的分析目的将其整理为首1型(零极点形式)或尾1型(时间常数形式)。这两种形式看似只是代数表达式的变形,实则暗含深刻的工程应用逻辑。

想象你手中有一把多功能瑞士军刀——首1型就像展开刀刃进行精细雕刻,特别适合分析系统的稳定性与动态响应;而尾1型则如同使用剪刀功能,更擅长处理频率特性与稳态性能。本文将带您深入这两种形式的转换技巧,并通过典型例题演示它们在根轨迹法和频域分析法中的实战应用差异。

1. 首1型与尾1型的数学本质与转换方法

1.1 首1型(零极点形式)的数学特征

首1型传递函数的标准表达式为:

$$ G(s) = \frac{K^*\prod_{j=1}^m(s-z_j)}{\prod_{i=1}^n(s-p_i)} $$

关键特征

  • 每个因式中s的系数为1(即"首"项系数归一化)
  • $K^*$称为根轨迹增益,具有明确的物理意义
  • 直接呈现系统的零点$z_j$和极点$p_i$

转换步骤示例: 考虑传递函数 $G(s) = \frac{2(s+3)}{s(s^2+2s+5)}$

  1. 分解分母多项式:
    # 在Python中求解分母的根 import numpy as np roots = np.roots([1, 2, 5]) # 结果为[-1±2j]
  2. 整理为首1形式: $$ G(s) = \frac{2(s+3)}{s(s+1-2j)(s+1+2j)} = \frac{0.4(s+3)}{s[(s+1)^2+4]} $$

注意:在复数极点情况下,通常保留二次因式形式更便于工程应用。

1.2 尾1型(时间常数形式)的数学结构

尾1型的标准表达式为:

$$ G(s) = K\frac{\prod(\tau_ks+1)\prod(\tau_l^2s^2+2\xi\tau_ls+1)}{s^v\prod(T_is+1)\prod(T_j^2s^2+2\xi T_js+1)} $$

核心特点

  • 每个因式的常数项为1(即"尾"项系数归一化)
  • $K$称为系统增益,直接影响稳态输出
  • 时间常数$\tau$和$T$直接关联系统的响应速度

转换实战: 将 $G(s) = \frac{5(s+2)}{(s+10)(s+0.1)}$ 转换为尾1型:

  1. 提取各因式的常数项:
    % MATLAB符号计算示例 syms s G = 5*(s+2)/((s+10)*(s+0.1)); [num,den] = numden(G); num = collect(num/2,s); % 分子提出常数2 den = collect(den/10,s); % 分母提出常数10
  2. 得到尾1形式: $$ G(s) = \frac{5×2(0.5s+1)}{10(0.1s+1)(10s+1)} = \frac{(0.5s+1)}{(0.1s+1)(10s+1)} $$

1.3 两种形式的对比表格

特性首1型尾1型
标准化目标各因式s系数为1各因式常数项为1
增益名称根轨迹增益$K^*$系统增益$K$
主要应用场景根轨迹分析、稳定性研究频域分析、稳态误差计算
零极点可见性直接显示需解方程获得
典型环节分解适用于部分分式展开便于时间常数提取
工程调试优势方便调整极点位置直观反映系统带宽

2. 首1型在根轨迹分析中的核心作用

2.1 根轨迹绘制的基本原理

根轨迹是当系统增益$K^*$从0变化到∞时,闭环极点在s平面上的运动轨迹。使用首1型传递函数的根本原因在于:

  1. 增益一致性:根轨迹增益$K^*$直接对应绘图参数
  2. 几何解释清晰:零极点位置决定渐近线角度与分离点
  3. 相位条件:$\sum\angle(s-z_j)-\sum\angle(s-p_i)=180°$的几何意义明确

典型绘制步骤

  1. 将开环传递函数化为首1型
  2. 标出s平面上的零极点
  3. 确定实轴上的根轨迹区间
  4. 计算渐近线角度与交点
  5. 找出分离/会合点

2.2 实例解析:二阶系统根轨迹

考虑系统 $G(s)H(s) = \frac{K^*}{s(s+2)}$:

# Python控制库绘制根轨迹 import control as ct import matplotlib.pyplot as plt sys = ct.TransferFunction([1], [1, 2, 0]) ct.root_locus(sys, plot=True) plt.title('Root Locus of $G(s)=\\frac{K^*}{s(s+2)}$') plt.grid(True) plt.show()

关键观察点

  • 渐近线角度:±90°,交于σ=-1
  • 分离点:s=-1(通过$\frac{dK^*}{ds}=0$求解)
  • 临界增益:$K^*=4$(对应纯虚根)

2.3 高阶系统处理技巧

对于 $G(s)H(s) = \frac{K^*(s+1)}{s(s+2)(s+5)}$:

  1. 实轴根轨迹:[-5,-2]和[-1,0]
  2. 渐近线角度:±90°(n-m=2)
  3. 分离点计算: $$ \frac{1}{d+1} = \frac{1}{d} + \frac{1}{d+2} + \frac{1}{d+5} $$ 解得d≈-0.45

提示:使用首1型时,MATLAB的rlocus函数直接接受该形式,无需额外转换。

3. 尾1型在频域分析中的独特优势

3.1 Bode图绘制的核心逻辑

尾1型传递函数在频域分析中展现出三大优势:

  1. 渐近线近似:当ω≫1/τ时,20log|jωτ+1|≈20log(ωτ)
  2. 转折频率直观:各环节的转折频率ω=1/τ
  3. 增益调整方便:直接读取低频增益20logK

典型绘制流程

  1. 将传递函数转换为尾1型
  2. 确定各环节的时间常数和转折频率
  3. 绘制幅频特性的渐近线近似
  4. 添加相位曲线

3.2 案例演示:三阶系统Bode图

分析 $G(s) = \frac{10(s+0.1)}{(s+1)(s+100)}$:

  1. 转换为尾1型: $$ G(s) = \frac{0.01(10s+1)}{(s+1)(0.01s+1)} $$
  2. 识别关键参数:
    • 低频增益:20log(0.01) = -40dB
    • 转折频率:0.1rad/s(零点)、1rad/s(极点)、100rad/s(极点)
% MATLAB Bode图绘制 s = tf('s'); G = 0.01*(10*s+1)/((s+1)*(0.01*s+1)); bode(G), grid on

幅频特性特征

  • 0.1rad/s前:-40dB/dec斜率
  • 0.1-1rad/s:-20dB/dec(零点作用)
  • 1-100rad/s:-40dB/dec
  • 100rad/s后:-60dB/dec

3.3 非最小相位系统处理

对于包含右半平面零极点的系统,如 $G(s) = \frac{1-s}{1+s}$:

  1. 转换为尾1型: $$ G(s) = -\frac{s-1}{s+1} = -\frac{(0.1s-1)}{(0.1s+1)} \quad (\text{假设时间常数0.1}) $$
  2. Bode图特点:
    • 幅频特性与最小相位系统相同
    • 相位滞后更显著

4. 工程应用中的综合决策

4.1 形式选择的黄金法则

分析类型首选形式原因
稳定性分析首1型直接反映系统极点位置,便于劳斯判据应用
动态响应设计首1型根轨迹清晰展示极点随增益变化规律
频域指标验证尾1型转折频率直观,便于估算带宽、相位裕度
稳态误差计算尾1型系统增益K直接对应静态误差系数
控制器参数整定两者结合首1型设计主导极点,尾1型校验频率特性

4.2 典型设计案例:位置伺服系统

给定要求

  • 超调量σ%≤5%
  • 调节时间ts≤1s
  • 速度误差系数Kv≥10

设计步骤

  1. 初步建模(尾1型): $$ G(s) = \frac{2.5}{s(0.5s+1)(0.02s+1)} $$
  2. 转换为首1型用于根轨迹设计: $$ G(s) = \frac{250}{s(s+2)(s+50)} $$
  3. 根轨迹设计:
    • 期望主导极点:ζ=0.7, ωn≈4.6rad/s
    • 添加超前补偿器:$G_c(s) = \frac{s+2}{s+10}$
  4. 验证频域指标(切换回尾1型):
    G_comp = 250*(s+2)/(s*(s+50)*(s+10)); margin(G_comp)

4.3 常见误区警示

  1. 增益混淆:误将尾1型的K当作根轨迹增益$K^*$

    • 修正方法:全部分子常数项提取到K外
  2. 时间常数误读:将$\tau^2s^2+2ζτs+1$中的τ误认为转折频率

    • 实际转折频率:$ω_n=1/τ$
  3. 非最小相位忽视:右半平面零点导致相位特性异常

    • 诊断技巧:检查分子因式符号
  4. 高频段忽略:认为高频极点不影响主要性能

    • 实际影响:可能引入额外相位滞后,降低稳定裕度

5. 计算机辅助分析实战技巧

5.1 MATLAB/Python中的自动转换

MATLAB实现

% 首1型转换为尾1型 G_zpk = zpk([-1], [0 -2 -5], 10); % 首1型创建 G_tf = tf(G_zpk); % 自动转换为尾1型 % 自定义转换函数 function [G_tail1] = to_tail1(G) [z,p,k] = zpkdata(G,'v'); % 处理零点 cz = cellfun(@(x) -1./x, num2cell(z(z~=0)), 'UniformOutput', false); % 处理极点 cp = cellfun(@(x) -1./x, num2cell(p(p~=0)), 'UniformOutput', false); new_k = k * prod(-z(z~=0)) / prod(-p(p~=0)); G_tail1 = tf(new_k * poly([cz{:}]), poly([cp{:}])); end

Python实现

from scipy import signal import numpy as np def to_tail1(num, den): # 求零极点 z = np.roots(num) p = np.roots(den) # 计算新增益 K = num[-1]/den[-1] * np.prod(-z[np.nonzero(z)])/np.prod(-p[np.nonzero(p)]) # 构建新多项式 new_num = K * np.poly(-1/z[z != 0]) new_den = np.poly(-1/p[p != 0]) return new_num, new_den

5.2 仿真对比案例

比较 $G(s)=\frac{2(s+3)}{(s+1)(s+5)}$ 两种形式的阶跃响应:

# 首1型仿真 sys_zpk = signal.ZerosPolesGain([-3], [-1, -5], 2) t, y1 = signal.step(sys_zpk) # 尾1型仿真 num, den = to_tail1([2, 6], [1, 6, 5]) sys_tf = signal.TransferFunction(num, den) _, y2 = signal.step(sys_tf) # 绘图比较 plt.plot(t, y1, label='首1型') plt.plot(t, y2, '--', label='尾1型') plt.legend(), plt.grid(True) plt.title('不同形式传递函数的阶跃响应对比')

关键发现:两种形式描述的同一系统,动态特性完全一致,验证了数学等价性。

结语:掌握形式转换的艺术

在实际工程设计中,我经常遇到学生纠结于该用哪种传递函数形式。经过多个项目的实践验证,我的经验是:根轨迹设计阶段优先使用首1型,频域验证阶段切换到尾1型。这种灵活转换的能力,正是控制工程师专业素养的体现。

记得在一次无人机控制系统调试中,我们首先用首1型确定了主导极点的合适位置,随后用尾1型分析了传感器噪声的影响频率范围。这种双重视角的分析方法,最终帮助我们实现了既稳定又抗干扰的飞行控制系统。

http://www.cnnetsun.cn/news/3204276.html

相关文章:

  • 深度解析ComfyUI Load Image Batch节点3大核心问题与高效解决方案
  • 计算机毕业设计之基于jsp美食分享网站
  • EPS到SBW:4代转向系统技术演进与2024年市场格局分析
  • 别把API Key藏进前端环境变量:构建产物、日志截图与泄露止损
  • ThinkPad风扇静音革命:TPFanCtrl2智能控温全解析
  • 暗黑破坏神2存档编辑器:专业玩家的终极游戏体验定制工具
  • Runway三模型策略解析:AI视频生成如何匹配真实工作场景
  • AI搜索的时效性陷阱:三天不更新,推荐权重就掉 痛点:为什么你的深度好文刚上AI推荐榜就掉了?
  • 【大模型原理与微调实战14】LoRA微调完整代码实战(一键可跑):标准SFT训练、参数配置、训练日志、保存权重全流程落地
  • 高压隔离设计:ISOM8710与STM32F205RB的实战指南
  • 【2026最新】Adobe Lightroom Classic 15.3最新版怎么装?
  • 中兴光猫工厂模式终极指南:zteOnu一键解锁完整教程
  • Java毕设选题推荐:基于 SpringBoot 的高校车辆档案管理系统的设计与实现 基于 SpringBoot+Vue 的智慧校园车辆管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 锂离子电池过压保护方案与BQ29200芯片应用详解
  • 小微企业低成本勒索软件防护实战指南:从攻击链分析到自动化脚本部署
  • 平阳高性价比婚庆布置优势
  • 一个问题,轻松撕下DDD Fans的遮羞布
  • 埃氏筛与欧拉筛 Python 3.11 性能实测:10^7 数据量下耗时差 5 倍
  • AI视频分析并发优化性能优化指南
  • Linux命令全家桶:进程、磁盘、排序、搜索、压缩——Xshell全实操
  • 网盘直链下载助手:7天精通九大网盘一键加速下载终极指南
  • EM3080-W与MKV44F64VLH16在工业条码识别中的硬件优化方案
  • 为什么跨国办公时业务系统总卡顿?一文读懂跨地域网络访问的底层逻辑
  • 收藏!互联网产品经理转AI的8大行业方向深度解析,小白也能看懂
  • 基于MK60DN和PAM8904的低功耗多级警报系统设计
  • 从SQL注入到RCE:Jeecg-Boot积木报表CVE-2023-4450漏洞复现与深度剖析
  • Prompt 模板引擎:别把规则直接写死进代码里
  • 新手入局干细胞研究的五大认知陷阱
  • 26年软考系规备考!超靠谱三位老师全方位推荐
  • CBAM 注意力模块 PyTorch 实战:ResNet-50 集成 3 步代码提升 ImageNet 精度 1.5%