MATLAB控制系统的margin函数详解与应用

需积分: 33 3 下载量 197 浏览量 更新于2024-08-21 收藏 181KB PPT 举报
本文主要介绍了MATLAB中的`margin`函数,该函数用于分析控制系统,特别是开环SISO系统的稳定性。幅值裕度和相角裕度是衡量系统闭环稳定性的重要指标,它们给出了系统在保持稳定性的极限条件下的性能余量。 在MATLAB中,`margin`函数可以绘制出带有裕量的Bode图,展示幅值裕度和相角裕度随频率的变化。当函数不带输出参数时,会在当前图形窗口中直接绘制Bode图。如果提供幅值`mag`(非分贝单位)、相位`phase`和角频率`w`作为输入,`margin(mag, phase, w)`会计算并显示系统的裕量。此外,`margin`还可以接受传递函数系数或者状态空间系统的矩阵参数,如`margin(num, den)`或`margin(a, b, c, d)`,来计算相应的幅值裕度和相角裕度。 幅值裕度表示在相位为-180度时,开环增益需降低到多少才能使得闭环增益等于1,通常以分贝表示。相角裕度则是当开环增益为1时,系统相位与-180度之间的差值。计算公式分别为 `-20*log10(g)`(其中g为开环增益)和相角裕度等于相角与180度的差。 如果需要单独计算裕度而不绘制图形,可以使用`[gm, pm, wcg, wcp] = margin(mag, phase, w)`,其中`gm`和`pm`分别代表幅值裕度和相角裕度,`wcg`是幅值交界频率,`wcp`是相角交界频率。 MATLAB控制系统工具箱简化了控制系统的分析,包括稳定性分析、时域分析、频域分析和根轨迹分析。系统的稳定性可以通过检查闭环极点的位置来判断,对于连续系统,极点在S平面左半平面则稳定;对于离散系统,极点在Z平单位圆内则稳定。最小相位系统要求系统的所有零极点都在相应平面的左半平面或单位圆内。 在MATLAB中,可以直接通过函数获取系统零极点并判断稳定性。例如,可以利用`pzmap`绘制零极点图,`find`函数配合条件判断来检查是否有不稳定极点。此外,时域分析通常涉及单位阶跃响应和脉冲响应的计算,MATLAB提供了相应的函数来处理这些分析任务。