35.1 引言为什么需要线性化与频域分析伺服系统本质上是一个非线性、时变的复杂系统但控制器的设计通常依赖于线性控制理论。模型线性化是将非线性模型在某一工作点附近近似为线性模型的过程而频域分析则是评估线性系统稳定性、带宽、相位裕度等关键指标的经典方法。二者的结合为控制器设计和系统优化提供了坚实的理论基础。线性化的核心价值将复杂的非线性模型简化为易于处理的线性传递函数或状态空间模型支持经典的频域设计方法Bode图、Nyquist判据等为控制器参数整定提供定量依据如带宽、相位裕度频域分析的核心价值直观展示系统的频率响应特性增益、相位随频率变化量化稳定裕度相位裕度PM、增益裕度GM指导控制器设计确定穿越频率、补偿相位滞后35.2 模型线性化的基本原理与方法35.2.1 线性化的数学本质非线性系统在平衡点 (x0,u0)附近的泰勒展开x˙f(x,u)≈f(x0,u0)∂x∂f(x0,u0)(x−x0)∂u∂f(x0,u0)(u−u0)线性化后的状态空间模型Δx˙ΔyAΔxBΔuCΔxDΔu其中 A,B,C,D是雅可比矩阵在工作点的取值。35.2.2 Simulink中的线性化工具Simulink提供了多种线性化途径线性化工具选择 ┌─────────────────────────────────────────────────────────┐ │ 工具/方法 │ 适用场景 │ 特点 │ ├─────────────────────────────────────────────────────────┤ │ Model Linearizer │ 交互式图形化线性化 │ 直观易用│ │ (Apps Model │ │ 支持多输入│ │ Linearizer) │ │ 多输出 │ ├─────────────────────────────────────────────────────────┤ │ linmod / linmod2 │ 命令行线性化 │ 适合脚本│ │ (已弃用) │ │ 自动化 │ ├─────────────────────────────────────────────────────────┤ │ linearize 函数 │ 现代命令行线性化 │ 灵活强大│ │ (slLinearizer) │ │ 支持批次│ ├─────────────────────────────────────────────────────────┤ │ Frequency Response │ 频域响应估计 │ 无需解析│ │ Estimator │ 通过注入信号估计 │ 模型 │ └─────────────────────────────────────────────────────────┘35.3 使用Model Linearizer进行线性化35.3.1 启动与界面布局Model Linearizer界面结构 ┌─────────────────────────────────────────────────────────┤ │ 菜单栏File, Edit, View, Tools, Help │ ├─────────────────────────────────────────────────────────┤ │ 左侧模型浏览器 │ │ ├─ 选择线性化输入/输出点 │ │ └─ 设置工作点 │ ├─────────────────────────────────────────────────────────┤ │ 中央线性化结果展示 │ │ ├─ Bode图 │ │ ├─ Nyquist图 │ │ ├─ Nichols图 │ │ └─ 极点-零点图 │ ├─────────────────────────────────────────────────────────┤ │ 右侧数据浏览器 │ │ ├─ 线性化模型列表 │ │ ├─ 工作点列表 │ │ └─ 分析结果 │ └─────────────────────────────────────────────────────────┘35.3.2 线性化步骤完整线性化流程 ┌─────────────────────────────────────────────────────────┐ │ 步骤1打开Model Linearizer │ │ 在Simulink工具栏 Apps Model Linearizer │ ├─────────────────────────────────────────────────────────┤ │ 步骤2指定线性化输入/输出点 │ │ 点击 Add Perturbation 选择输入信号线 │ │ 点击 Add Measurement 选择输出信号线 │ │ 支持批量选择和命名 │ ├─────────────────────────────────────────────────────────┤ │ 步骤3设置工作点 │ │ 选项A使用仿真快照 │ │ - 运行仿真至稳态自动捕捉工作点 │ │ 选项B手动指定工作点值 │ │ - 直接输入状态变量和输入的值 │ │ 选项C使用操作点搜索 │ │ - 指定约束条件自动寻找平衡点 │ ├─────────────────────────────────────────────────────────┤ │ 步骤4执行线性化 │ │ 点击 Linearize 按钮 │ │ 等待计算完成 │ ├─────────────────────────────────────────────────────────┤ │ 步骤5查看与分析结果 │ │ 自动生成Bode图、极点-零点图等 │ │ 可切换显示不同输入输出通道 │ ├─────────────────────────────────────────────────────────┤ │ 步骤6导出线性化模型 │ │ 右键结果 → Export → To Workspace │ │ 保存为LTI对象或状态空间模型 │ └─────────────────────────────────────────────────────────┘35.3.3 工作点设置的三种方式工作点设置方法对比 ┌─────────────────────────────────────────────────────────┤ │ 方法 │ 操作步骤 │ 适用场景│ ├─────────────────────────────────────────────────────────┤ │ 仿真快照 │ 1. 运行仿真至期望时刻 │ 已知稳 │ │ (Snapshot) │ 2. 点击 Take Snapshot│ 态工作点│ │ │ 3. 选择该快照作为工作点│ │ ├─────────────────────────────────────────────────────────┤ │ 手动指定 │ 1. 选择 Specify │ 已知状 │ │ (Specify) │ 2. 输入状态变量值 │ 态值 │ │ │ 3. 输入输入信号值 │ │ ├─────────────────────────────────────────────────────────┤ │ 操作点搜索 │ 1. 选择 Trim │ 复杂非 │ │ (Trim/Find Op Point)│ 2. 设置状态约束 │ 线性系统│ │ │ 3. 设置输入约束 │ │ │ │ 4. 运行搜索 │ │ └─────────────────────────────────────────────────────────┘伺服系统工作点选择建议速度环线性化选择额定转速作为工作点位置环线性化选择中间位置如0°作为工作点电流环线性化选择额定电流作为工作点考虑不同负载条件下的工作点空载、满载35.4 频域分析工具的使用35.4.1 线性分析工具Linear Analysis Tool该工具集成在Model Linearizer中也可单独启动。频域分析功能面板 ┌─────────────────────────────────────────────────────────┤ │ 分析类型选择 │ │ ├─ Bode Diagram幅频和相频曲线 │ │ ├─ Nyquist Diagram奈奎斯特图 │ │ ├─ Nichols Diagram尼科尔斯图 │ │ ├─ Singular Values奇异值MIMO系统 │ │ └─ Pole-Zero Map极点-零点分布图 │ ├─────────────────────────────────────────────────────────┤ │ 显示选项 │ │ ├─ 频率范围手动指定或自动 │ │ ├─ 幅值单位dB或线性 │ │ ├─ 相位单位度或弧度 │ │ └─ 网格开启/关闭 │ ├─────────────────────────────────────────────────────────┤ │ 分析结果 │ │ ├─ 相位裕度PM │ │ ├─ 增益裕度GM │ │ ├─ 穿越频率ω_c │ │ ├─ 带宽BW │ │ └─ 谐振峰值M_p │ └─────────────────────────────────────────────────────────┘35.4.2 从Bode图读取关键指标Bode图解读指南 ┌─────────────────────────────────────────────────────────┤ │ 幅频曲线Magnitude Plot │ │ ├─ 低频增益反映稳态精度 │ │ ├─ 穿越频率0dB交点反映响应速度 │ │ ├─ 谐振峰值反映阻尼特性 │ │ └─ 高频滚降反映噪声抑制能力 │ ├─────────────────────────────────────────────────────────┤ │ 相频曲线Phase Plot │ │ ├─ 穿越频率处的相位减去-180°得相位裕度 │ │ ├─ 低频相位反映积分作用 │ │ └─ 高频相位延迟反映系统延迟 │ ├─────────────────────────────────────────────────────────┤ │ 稳定性判据 │ │ ├─ 相位裕度 45°良好 │ │ ├─ 相位裕度 30°可接受 │ │ ├─ 相位裕度 20°欠阻尼可能振荡 │ │ └─ 增益裕度 6dB良好 │ └─────────────────────────────────────────────────────────┘35.4.3 频域响应估计Frequency Response Estimation对于无法解析线性化的模型如包含查表、不连续函数可通过注入信号估计频率响应。频域响应估计流程 ┌─────────────────────────────────────────────────────────┤ │ 步骤1打开Frequency Response Estimator │ │ 在Simulink Apps中选择 │ ├─────────────────────────────────────────────────────────┤ │ 步骤2配置注入信号 │ │ 信号类型正弦扫描、伪随机二进制序列PRBS │ │ 频率范围指定起始和终止频率 │ │ 幅值小信号避免激发非线性 │ ├─────────────────────────────────────────────────────────┤ │ 步骤3指定输入输出点 │ │ 与线性化类似选择注入点和测量点 │ ├─────────────────────────────────────────────────────────┤ │ 步骤4运行估计 │ │ 自动运行仿真采集数据 │ │ 实时显示估计进度 │ ├─────────────────────────────────────────────────────────┤ │ 步骤5查看结果 │ │ 生成Bode图可与线性化结果对比 │ │ 导出估计结果 │ └─────────────────────────────────────────────────────────┘伺服系统频域估计注意事项注入信号幅值应为额定值的1%~5%避免饱和频率范围应覆盖感兴趣的带宽如1Hz~1000Hz对于机械谐振需在谐振频率附近加密频率点35.5 伺服系统的典型频域分析案例35.5.1 速度环线性化与频域分析速度环频域分析示例 ┌─────────────────────────────────────────────────────────┤ │ 模型速度闭环控制系统 │ │ 输入速度参考值rpm │ │ 输出实际速度rpm │ │ 工作点额定转速1500 rpm │ ├─────────────────────────────────────────────────────────┤ │ 线性化结果Bode图 │ │ ├─ 低频增益40 dB高增益稳态精度好 │ │ ├─ 穿越频率50 Hz │ │ ├─ 相位裕度55°良好 │ │ ├─ 增益裕度12 dB充足 │ │ └─ 带宽80 Hz │ ├─────────────────────────────────────────────────────────┤ │ 分析结论 │ │ ├─ 系统稳定有足够的稳定裕度 │ │ ├─ 带宽80Hz满足一般伺服应用要求 │ │ └─ 可尝试提高穿越频率至80Hz以获得更快响应 │ └─────────────────────────────────────────────────────────┘35.5.2 电流环线性化与解耦效果验证通过线性化验证d轴和q轴电流环的解耦效果电流环解耦分析 ┌─────────────────────────────────────────────────────────┤ │ 输入u_d, u_q (电压指令) │ │ 输出i_d, i_q (实际电流) │ │ 工作点i_d0, i_q5A, ω_e314rad/s │ ├─────────────────────────────────────────────────────────┤ │ 分析1不加解耦时的传递函数矩阵 │ │ [i_d] [G_dd(s) G_dq(s)] [u_d] │ │ [i_q] [G_qd(s) G_qq(s)] [u_q] │ │ ├─ G_dq(s) ≠ 0d轴受q轴影响 │ │ └─ G_qd(s) ≠ 0q轴受d轴影响 │ ├─────────────────────────────────────────────────────────┤ │ 分析2加入解耦后的传递函数矩阵 │ │ ├─ G_dq(s) ≈ 0解耦有效 │ │ └─ G_qd(s) ≈ 0解耦有效 │ ├─────────────────────────────────────────────────────────┤ │ 结论通过对比耦合项的幅值量化解耦效果 │ │ 理想情况耦合项幅值应低于-20dB │ └─────────────────────────────────────────────────────────┘35.5.3 机械谐振的频域识别通过频域分析识别机械谐振频率谐振频率识别 ┌─────────────────────────────────────────────────────────┤ │ 测试对象电机-负载双惯量系统 │ │ 输入转矩指令 │ │ 输出电机速度 │ ├─────────────────────────────────────────────────────────┤ │ 幅频曲线特征 │ │ ├─ 反谐振谷f_anti 1/2π √(K/J_L) │ │ ├─ 谐振峰f_res 1/2π √(K(1/J_m1/J_L)) │ │ └─ 谐振峰高度反映阻尼大小 │ ├─────────────────────────────────────────────────────────┤ │ 分析结果 │ │ ├─ 反谐振频率120 Hz │ │ ├─ 谐振频率280 Hz │ │ ├─ 谐振峰高度15 dB需抑制 │ │ └─ 建议在280Hz处加入陷波滤波器 │ └─────────────────────────────────────────────────────────┘35.6 线性化结果的导出与应用35.6.1 导出为LTI对象% 从Model Linearizer导出后在工作区得到lti对象 sys_linear linearized_model; % 假设导出的变量名 % 转换为传递函数 tf_sys tf(sys_linear); % 转换为状态空间 ss_sys ss(sys_linear); % 提取零极点 [z, p, k] zpkdata(sys_linear);35.6.2 用于控制器设计线性化模型可直接用于MATLAB的控制器设计工具控制器设计流程 ┌─────────────────────────────────────────────────────────┤ │ 1. 从Simulink导出线性化模型 sys_linear │ │ 2. 使用sisotool进行交互式控制器设计 │ │ sisotool(sys_linear) │ │ 3. 调整控制器参数实时观察Bode图和根轨迹 │ │ 4. 导出设计好的控制器对象 │ │ C pidtune(sys_linear, pid) │ │ 5. 将控制器参数应用到Simulink模型 │ │ Kp C.Kp; Ki C.Ki; Kd C.Kd; │ └─────────────────────────────────────────────────────────┘36.6.3 验证线性化精度通过对比线性化模型和非线性模型的时域响应验证线性化的有效性% 非线性模型仿真 simOut_nonlinear sim(servo_model, StopTime, 0.1); % 线性化模型仿真 [y_linear, t_linear] lsim(sys_linear, input_signal, time_vector); % 对比 plot(t_nonlinear, y_nonlinear, t_linear, y_linear); legend(非线性模型, 线性化模型); title(线性化精度验证);验收标准在小信号激励下线性化模型与非线性模型的响应误差应小于5%。35.7 多变量系统的频域分析35.7.1 MIMO系统的奇异值分析对于多输入多输出系统如dq轴电流环使用奇异值分析评估系统性能。奇异值分析 ┌─────────────────────────────────────────────────────────┤ │ 系统2输入2输出电流环 │ │ 输入u_d, u_q │ │ 输出i_d, i_q │ ├─────────────────────────────────────────────────────────┤ │ 分析内容 │ │ ├─ 最大奇异值σ_max反映最坏情况增益 │ │ ├─ 最小奇异值σ_min反映最好情况增益 │ │ ├─ 条件数σ_max/σ_min反映耦合程度 │ │ └─ 带宽定义σ_max下降到-3dB的频率 │ ├─────────────────────────────────────────────────────────┤ │ 使用sigma函数 │ │ sigma(sys_linear) │ │ 或使用Model Linearizer的Singular Values选项 │ └─────────────────────────────────────────────────────────┘35.7.2 相对增益阵列RGARGA用于分析MIMO系统的输入输出配对% 计算RGA sys_ss ss(sys_linear); RGA real(sys_ss.D) .* inv(real(sys_ss.D)).; % 静态RGA % 或使用频率相关的RGA w logspace(-1, 3, 100); RGA_w zeros(size(w)); for i 1:length(w) G freqresp(sys_linear, w(i)); RGA_w(i) G .* inv(G).; endRGA解读RGA元素接近1该配对合适RGA元素远大于1耦合严重需解耦RGA元素为负可能引起不稳定35.8 工程实践要点35.8.1 线性化精度影响因素影响线性化精度的因素 ┌─────────────────────────────────────────────────────────┤ │ 因素 │ 影响 │ 对策 │ ├─────────────────────────────────────────────────────────┤ │ 工作点选择不当 │ 线性化模型偏离实际 │ 选择典 │ │ │ │ 型工作点│ ├─────────────────────────────────────────────────────────┤ │ 非线性强度大 │ 线性近似误差大 │ 分段线性│ │ │ │ 化 │ ├─────────────────────────────────────────────────────────┤ │ 信号幅值过大 │ 超出线性范围 │ 小信号 │ │ │ │ 激励 │ ├─────────────────────────────────────────────────────────┤ │ 模型包含不连续 │ 雅可比矩阵不存在 │ 使用频 │ │ │ │ 域估计 │ └─────────────────────────────────────────────────────────┘35.8.2 频域分析的局限性仅适用于线性系统非线性系统的小信号分析仅在局部有效无法处理时变系统频域分析假设系统时不变忽略初始条件频域响应假设零初始条件单频率输入实际系统可能同时受到多个频率的激励35.8.3 最佳实践建议多工作点线性化在多个典型工作点进行线性化评估参数变化的影响验证线性化精度始终用时域仿真验证线性化模型的有效性结合时域分析频域分析提供稳定性信息时域分析提供瞬态性能使用频率响应估计对于难以解析线性化的模型使用估计方法文档记录记录线性化的工作点、频率范围和结果35.9 总结35.9.1 工具选择总结工具选择决策树 ┌─────────────────────────────────────────────────────────┤ │ 需要线性化模型 │ │ ├─ 是模型是否可解析 │ │ │ ├─ 是使用Model Linearizer │ │ │ └─ 否使用Frequency Response Estimator │ │ └─ 否直接使用时域仿真 │ ├─────────────────────────────────────────────────────────┤ │ 需要频域分析 │ │ ├─ 是使用Model Linearizer的频域分析功能 │ │ └─ 否使用MATLAB命令行工具bode, nyquist等 │ └─────────────────────────────────────────────────────────┘35.9.2 核心能力要求理解线性化原理知道何时线性化有效何时无效熟练使用工具掌握Model Linearizer的操作流程解读频域曲线能从Bode图中读出稳定裕度、带宽等关键指标应用于控制器设计能将频域分析结果转化为控制器参数的调整方向验证与迭代能通过时域仿真验证频域分析的结果核心结论模型线性化与频域分析是伺服系统控制器设计的核心工具。通过Simulink的Model Linearizer和频域分析功能工程师可以快速获得系统的频率响应特性量化稳定裕度指导控制器参数整定。掌握这些工具的使用能够显著提高控制系统的设计效率和可靠性。但也要认识到线性化方法的局限性始终结合时域仿真进行验证。
伺服电机仿真(35):Simulink仿真实践——模型线性化与频域分析工具使用
35.1 引言为什么需要线性化与频域分析伺服系统本质上是一个非线性、时变的复杂系统但控制器的设计通常依赖于线性控制理论。模型线性化是将非线性模型在某一工作点附近近似为线性模型的过程而频域分析则是评估线性系统稳定性、带宽、相位裕度等关键指标的经典方法。二者的结合为控制器设计和系统优化提供了坚实的理论基础。线性化的核心价值将复杂的非线性模型简化为易于处理的线性传递函数或状态空间模型支持经典的频域设计方法Bode图、Nyquist判据等为控制器参数整定提供定量依据如带宽、相位裕度频域分析的核心价值直观展示系统的频率响应特性增益、相位随频率变化量化稳定裕度相位裕度PM、增益裕度GM指导控制器设计确定穿越频率、补偿相位滞后35.2 模型线性化的基本原理与方法35.2.1 线性化的数学本质非线性系统在平衡点 (x0,u0)附近的泰勒展开x˙f(x,u)≈f(x0,u0)∂x∂f(x0,u0)(x−x0)∂u∂f(x0,u0)(u−u0)线性化后的状态空间模型Δx˙ΔyAΔxBΔuCΔxDΔu其中 A,B,C,D是雅可比矩阵在工作点的取值。35.2.2 Simulink中的线性化工具Simulink提供了多种线性化途径线性化工具选择 ┌─────────────────────────────────────────────────────────┐ │ 工具/方法 │ 适用场景 │ 特点 │ ├─────────────────────────────────────────────────────────┤ │ Model Linearizer │ 交互式图形化线性化 │ 直观易用│ │ (Apps Model │ │ 支持多输入│ │ Linearizer) │ │ 多输出 │ ├─────────────────────────────────────────────────────────┤ │ linmod / linmod2 │ 命令行线性化 │ 适合脚本│ │ (已弃用) │ │ 自动化 │ ├─────────────────────────────────────────────────────────┤ │ linearize 函数 │ 现代命令行线性化 │ 灵活强大│ │ (slLinearizer) │ │ 支持批次│ ├─────────────────────────────────────────────────────────┤ │ Frequency Response │ 频域响应估计 │ 无需解析│ │ Estimator │ 通过注入信号估计 │ 模型 │ └─────────────────────────────────────────────────────────┘35.3 使用Model Linearizer进行线性化35.3.1 启动与界面布局Model Linearizer界面结构 ┌─────────────────────────────────────────────────────────┤ │ 菜单栏File, Edit, View, Tools, Help │ ├─────────────────────────────────────────────────────────┤ │ 左侧模型浏览器 │ │ ├─ 选择线性化输入/输出点 │ │ └─ 设置工作点 │ ├─────────────────────────────────────────────────────────┤ │ 中央线性化结果展示 │ │ ├─ Bode图 │ │ ├─ Nyquist图 │ │ ├─ Nichols图 │ │ └─ 极点-零点图 │ ├─────────────────────────────────────────────────────────┤ │ 右侧数据浏览器 │ │ ├─ 线性化模型列表 │ │ ├─ 工作点列表 │ │ └─ 分析结果 │ └─────────────────────────────────────────────────────────┘35.3.2 线性化步骤完整线性化流程 ┌─────────────────────────────────────────────────────────┐ │ 步骤1打开Model Linearizer │ │ 在Simulink工具栏 Apps Model Linearizer │ ├─────────────────────────────────────────────────────────┤ │ 步骤2指定线性化输入/输出点 │ │ 点击 Add Perturbation 选择输入信号线 │ │ 点击 Add Measurement 选择输出信号线 │ │ 支持批量选择和命名 │ ├─────────────────────────────────────────────────────────┤ │ 步骤3设置工作点 │ │ 选项A使用仿真快照 │ │ - 运行仿真至稳态自动捕捉工作点 │ │ 选项B手动指定工作点值 │ │ - 直接输入状态变量和输入的值 │ │ 选项C使用操作点搜索 │ │ - 指定约束条件自动寻找平衡点 │ ├─────────────────────────────────────────────────────────┤ │ 步骤4执行线性化 │ │ 点击 Linearize 按钮 │ │ 等待计算完成 │ ├─────────────────────────────────────────────────────────┤ │ 步骤5查看与分析结果 │ │ 自动生成Bode图、极点-零点图等 │ │ 可切换显示不同输入输出通道 │ ├─────────────────────────────────────────────────────────┤ │ 步骤6导出线性化模型 │ │ 右键结果 → Export → To Workspace │ │ 保存为LTI对象或状态空间模型 │ └─────────────────────────────────────────────────────────┘35.3.3 工作点设置的三种方式工作点设置方法对比 ┌─────────────────────────────────────────────────────────┤ │ 方法 │ 操作步骤 │ 适用场景│ ├─────────────────────────────────────────────────────────┤ │ 仿真快照 │ 1. 运行仿真至期望时刻 │ 已知稳 │ │ (Snapshot) │ 2. 点击 Take Snapshot│ 态工作点│ │ │ 3. 选择该快照作为工作点│ │ ├─────────────────────────────────────────────────────────┤ │ 手动指定 │ 1. 选择 Specify │ 已知状 │ │ (Specify) │ 2. 输入状态变量值 │ 态值 │ │ │ 3. 输入输入信号值 │ │ ├─────────────────────────────────────────────────────────┤ │ 操作点搜索 │ 1. 选择 Trim │ 复杂非 │ │ (Trim/Find Op Point)│ 2. 设置状态约束 │ 线性系统│ │ │ 3. 设置输入约束 │ │ │ │ 4. 运行搜索 │ │ └─────────────────────────────────────────────────────────┘伺服系统工作点选择建议速度环线性化选择额定转速作为工作点位置环线性化选择中间位置如0°作为工作点电流环线性化选择额定电流作为工作点考虑不同负载条件下的工作点空载、满载35.4 频域分析工具的使用35.4.1 线性分析工具Linear Analysis Tool该工具集成在Model Linearizer中也可单独启动。频域分析功能面板 ┌─────────────────────────────────────────────────────────┤ │ 分析类型选择 │ │ ├─ Bode Diagram幅频和相频曲线 │ │ ├─ Nyquist Diagram奈奎斯特图 │ │ ├─ Nichols Diagram尼科尔斯图 │ │ ├─ Singular Values奇异值MIMO系统 │ │ └─ Pole-Zero Map极点-零点分布图 │ ├─────────────────────────────────────────────────────────┤ │ 显示选项 │ │ ├─ 频率范围手动指定或自动 │ │ ├─ 幅值单位dB或线性 │ │ ├─ 相位单位度或弧度 │ │ └─ 网格开启/关闭 │ ├─────────────────────────────────────────────────────────┤ │ 分析结果 │ │ ├─ 相位裕度PM │ │ ├─ 增益裕度GM │ │ ├─ 穿越频率ω_c │ │ ├─ 带宽BW │ │ └─ 谐振峰值M_p │ └─────────────────────────────────────────────────────────┘35.4.2 从Bode图读取关键指标Bode图解读指南 ┌─────────────────────────────────────────────────────────┤ │ 幅频曲线Magnitude Plot │ │ ├─ 低频增益反映稳态精度 │ │ ├─ 穿越频率0dB交点反映响应速度 │ │ ├─ 谐振峰值反映阻尼特性 │ │ └─ 高频滚降反映噪声抑制能力 │ ├─────────────────────────────────────────────────────────┤ │ 相频曲线Phase Plot │ │ ├─ 穿越频率处的相位减去-180°得相位裕度 │ │ ├─ 低频相位反映积分作用 │ │ └─ 高频相位延迟反映系统延迟 │ ├─────────────────────────────────────────────────────────┤ │ 稳定性判据 │ │ ├─ 相位裕度 45°良好 │ │ ├─ 相位裕度 30°可接受 │ │ ├─ 相位裕度 20°欠阻尼可能振荡 │ │ └─ 增益裕度 6dB良好 │ └─────────────────────────────────────────────────────────┘35.4.3 频域响应估计Frequency Response Estimation对于无法解析线性化的模型如包含查表、不连续函数可通过注入信号估计频率响应。频域响应估计流程 ┌─────────────────────────────────────────────────────────┤ │ 步骤1打开Frequency Response Estimator │ │ 在Simulink Apps中选择 │ ├─────────────────────────────────────────────────────────┤ │ 步骤2配置注入信号 │ │ 信号类型正弦扫描、伪随机二进制序列PRBS │ │ 频率范围指定起始和终止频率 │ │ 幅值小信号避免激发非线性 │ ├─────────────────────────────────────────────────────────┤ │ 步骤3指定输入输出点 │ │ 与线性化类似选择注入点和测量点 │ ├─────────────────────────────────────────────────────────┤ │ 步骤4运行估计 │ │ 自动运行仿真采集数据 │ │ 实时显示估计进度 │ ├─────────────────────────────────────────────────────────┤ │ 步骤5查看结果 │ │ 生成Bode图可与线性化结果对比 │ │ 导出估计结果 │ └─────────────────────────────────────────────────────────┘伺服系统频域估计注意事项注入信号幅值应为额定值的1%~5%避免饱和频率范围应覆盖感兴趣的带宽如1Hz~1000Hz对于机械谐振需在谐振频率附近加密频率点35.5 伺服系统的典型频域分析案例35.5.1 速度环线性化与频域分析速度环频域分析示例 ┌─────────────────────────────────────────────────────────┤ │ 模型速度闭环控制系统 │ │ 输入速度参考值rpm │ │ 输出实际速度rpm │ │ 工作点额定转速1500 rpm │ ├─────────────────────────────────────────────────────────┤ │ 线性化结果Bode图 │ │ ├─ 低频增益40 dB高增益稳态精度好 │ │ ├─ 穿越频率50 Hz │ │ ├─ 相位裕度55°良好 │ │ ├─ 增益裕度12 dB充足 │ │ └─ 带宽80 Hz │ ├─────────────────────────────────────────────────────────┤ │ 分析结论 │ │ ├─ 系统稳定有足够的稳定裕度 │ │ ├─ 带宽80Hz满足一般伺服应用要求 │ │ └─ 可尝试提高穿越频率至80Hz以获得更快响应 │ └─────────────────────────────────────────────────────────┘35.5.2 电流环线性化与解耦效果验证通过线性化验证d轴和q轴电流环的解耦效果电流环解耦分析 ┌─────────────────────────────────────────────────────────┤ │ 输入u_d, u_q (电压指令) │ │ 输出i_d, i_q (实际电流) │ │ 工作点i_d0, i_q5A, ω_e314rad/s │ ├─────────────────────────────────────────────────────────┤ │ 分析1不加解耦时的传递函数矩阵 │ │ [i_d] [G_dd(s) G_dq(s)] [u_d] │ │ [i_q] [G_qd(s) G_qq(s)] [u_q] │ │ ├─ G_dq(s) ≠ 0d轴受q轴影响 │ │ └─ G_qd(s) ≠ 0q轴受d轴影响 │ ├─────────────────────────────────────────────────────────┤ │ 分析2加入解耦后的传递函数矩阵 │ │ ├─ G_dq(s) ≈ 0解耦有效 │ │ └─ G_qd(s) ≈ 0解耦有效 │ ├─────────────────────────────────────────────────────────┤ │ 结论通过对比耦合项的幅值量化解耦效果 │ │ 理想情况耦合项幅值应低于-20dB │ └─────────────────────────────────────────────────────────┘35.5.3 机械谐振的频域识别通过频域分析识别机械谐振频率谐振频率识别 ┌─────────────────────────────────────────────────────────┤ │ 测试对象电机-负载双惯量系统 │ │ 输入转矩指令 │ │ 输出电机速度 │ ├─────────────────────────────────────────────────────────┤ │ 幅频曲线特征 │ │ ├─ 反谐振谷f_anti 1/2π √(K/J_L) │ │ ├─ 谐振峰f_res 1/2π √(K(1/J_m1/J_L)) │ │ └─ 谐振峰高度反映阻尼大小 │ ├─────────────────────────────────────────────────────────┤ │ 分析结果 │ │ ├─ 反谐振频率120 Hz │ │ ├─ 谐振频率280 Hz │ │ ├─ 谐振峰高度15 dB需抑制 │ │ └─ 建议在280Hz处加入陷波滤波器 │ └─────────────────────────────────────────────────────────┘35.6 线性化结果的导出与应用35.6.1 导出为LTI对象% 从Model Linearizer导出后在工作区得到lti对象 sys_linear linearized_model; % 假设导出的变量名 % 转换为传递函数 tf_sys tf(sys_linear); % 转换为状态空间 ss_sys ss(sys_linear); % 提取零极点 [z, p, k] zpkdata(sys_linear);35.6.2 用于控制器设计线性化模型可直接用于MATLAB的控制器设计工具控制器设计流程 ┌─────────────────────────────────────────────────────────┤ │ 1. 从Simulink导出线性化模型 sys_linear │ │ 2. 使用sisotool进行交互式控制器设计 │ │ sisotool(sys_linear) │ │ 3. 调整控制器参数实时观察Bode图和根轨迹 │ │ 4. 导出设计好的控制器对象 │ │ C pidtune(sys_linear, pid) │ │ 5. 将控制器参数应用到Simulink模型 │ │ Kp C.Kp; Ki C.Ki; Kd C.Kd; │ └─────────────────────────────────────────────────────────┘36.6.3 验证线性化精度通过对比线性化模型和非线性模型的时域响应验证线性化的有效性% 非线性模型仿真 simOut_nonlinear sim(servo_model, StopTime, 0.1); % 线性化模型仿真 [y_linear, t_linear] lsim(sys_linear, input_signal, time_vector); % 对比 plot(t_nonlinear, y_nonlinear, t_linear, y_linear); legend(非线性模型, 线性化模型); title(线性化精度验证);验收标准在小信号激励下线性化模型与非线性模型的响应误差应小于5%。35.7 多变量系统的频域分析35.7.1 MIMO系统的奇异值分析对于多输入多输出系统如dq轴电流环使用奇异值分析评估系统性能。奇异值分析 ┌─────────────────────────────────────────────────────────┤ │ 系统2输入2输出电流环 │ │ 输入u_d, u_q │ │ 输出i_d, i_q │ ├─────────────────────────────────────────────────────────┤ │ 分析内容 │ │ ├─ 最大奇异值σ_max反映最坏情况增益 │ │ ├─ 最小奇异值σ_min反映最好情况增益 │ │ ├─ 条件数σ_max/σ_min反映耦合程度 │ │ └─ 带宽定义σ_max下降到-3dB的频率 │ ├─────────────────────────────────────────────────────────┤ │ 使用sigma函数 │ │ sigma(sys_linear) │ │ 或使用Model Linearizer的Singular Values选项 │ └─────────────────────────────────────────────────────────┘35.7.2 相对增益阵列RGARGA用于分析MIMO系统的输入输出配对% 计算RGA sys_ss ss(sys_linear); RGA real(sys_ss.D) .* inv(real(sys_ss.D)).; % 静态RGA % 或使用频率相关的RGA w logspace(-1, 3, 100); RGA_w zeros(size(w)); for i 1:length(w) G freqresp(sys_linear, w(i)); RGA_w(i) G .* inv(G).; endRGA解读RGA元素接近1该配对合适RGA元素远大于1耦合严重需解耦RGA元素为负可能引起不稳定35.8 工程实践要点35.8.1 线性化精度影响因素影响线性化精度的因素 ┌─────────────────────────────────────────────────────────┤ │ 因素 │ 影响 │ 对策 │ ├─────────────────────────────────────────────────────────┤ │ 工作点选择不当 │ 线性化模型偏离实际 │ 选择典 │ │ │ │ 型工作点│ ├─────────────────────────────────────────────────────────┤ │ 非线性强度大 │ 线性近似误差大 │ 分段线性│ │ │ │ 化 │ ├─────────────────────────────────────────────────────────┤ │ 信号幅值过大 │ 超出线性范围 │ 小信号 │ │ │ │ 激励 │ ├─────────────────────────────────────────────────────────┤ │ 模型包含不连续 │ 雅可比矩阵不存在 │ 使用频 │ │ │ │ 域估计 │ └─────────────────────────────────────────────────────────┘35.8.2 频域分析的局限性仅适用于线性系统非线性系统的小信号分析仅在局部有效无法处理时变系统频域分析假设系统时不变忽略初始条件频域响应假设零初始条件单频率输入实际系统可能同时受到多个频率的激励35.8.3 最佳实践建议多工作点线性化在多个典型工作点进行线性化评估参数变化的影响验证线性化精度始终用时域仿真验证线性化模型的有效性结合时域分析频域分析提供稳定性信息时域分析提供瞬态性能使用频率响应估计对于难以解析线性化的模型使用估计方法文档记录记录线性化的工作点、频率范围和结果35.9 总结35.9.1 工具选择总结工具选择决策树 ┌─────────────────────────────────────────────────────────┤ │ 需要线性化模型 │ │ ├─ 是模型是否可解析 │ │ │ ├─ 是使用Model Linearizer │ │ │ └─ 否使用Frequency Response Estimator │ │ └─ 否直接使用时域仿真 │ ├─────────────────────────────────────────────────────────┤ │ 需要频域分析 │ │ ├─ 是使用Model Linearizer的频域分析功能 │ │ └─ 否使用MATLAB命令行工具bode, nyquist等 │ └─────────────────────────────────────────────────────────┘35.9.2 核心能力要求理解线性化原理知道何时线性化有效何时无效熟练使用工具掌握Model Linearizer的操作流程解读频域曲线能从Bode图中读出稳定裕度、带宽等关键指标应用于控制器设计能将频域分析结果转化为控制器参数的调整方向验证与迭代能通过时域仿真验证频域分析的结果核心结论模型线性化与频域分析是伺服系统控制器设计的核心工具。通过Simulink的Model Linearizer和频域分析功能工程师可以快速获得系统的频率响应特性量化稳定裕度指导控制器参数整定。掌握这些工具的使用能够显著提高控制系统的设计效率和可靠性。但也要认识到线性化方法的局限性始终结合时域仿真进行验证。