我正在使用Matlab在我正在使用的系统上执行一些控制分析。我已经在状态空间表示中建立了系统的模型,并设计了一个反馈补偿器来产生我想要的闭环响应。
使用Matlab place()函数选择反馈增益K和估计器增益L的方法会产生一个系统根轨迹,该轨迹在RHP的同一位置显示一个极点和零。理想情况下,它们应该完全相同,从而导致零极点对消,但系统的阶跃响应仍然不稳定。
查看组合补偿器-对象系统的极点和零点,闭环响应的极点和零点是:
极点
1.0e+02 *
-2.5547 + 0.3423i
-2.5547 - 0.3423i
-0.0087 + 0.0000i
-0.0003 + 0.0000i
-0.0027 + 0.0000i
-2.8542 + 0.0000i
-2.2717 + 0.0000i
0.2108 + 0.0000i
-0.3119 + 0.3874i
-0.3119 - 0.3874i
-0.0200 + 0.0000i
-0.0300 + 0.0000i
-0.0400 + 0.0000i
-0.0500 + 0.0000i
-0.1200 + 0.0000i
-0.2000 + 0.0000i
-2.5500 + 0.0500i
-2.5500 - 0.0500i
-2.5500 + 0.0100i
-2.5500 - 0.0100i零
1.0e+02 *
-3.6118 + 0.0000i
-2.1330 + 0.0000i
-2.8542 + 0.0000i
-2.5547 + 0.3423i
-2.5547 - 0.3423i
-2.2717 + 0.0000i
-0.3119 + 0.3874i
-0.3119 - 0.3874i
0.2108 + 0.0000i
-0.0022 + 0.0067i
-0.0022 - 0.0067i
-0.0100 + 0.0000i
-0.0003 + 0.0000i
-0.0027 + 0.0000i
-0.0087 + 0.0000i具体来看RHP值,在1e+02*(0.2108 + 0.0000i)处有一个极点,也有一个零点。由于这是唯一不稳定的极点,阶跃响应应该是稳定的,但事实并非如此。
我猜这与重要的数字或不适当的系统扩展有关,但我不确定。有没有想过为什么这些极点不会被取消?
发布于 2016-08-08 19:32:10
在没有看到植物的情况下很难说出任何话,但阶跃反应在很大程度上取决于植物的条件作用。零极点消除不是在幕后执行的,数值上希望在系统响应期间相互抵消。
换句话说,matlab不检查微分方程求解器是否存在抵消和非常小的数值不匹配随时间增长。无论这些极点和零属于哪个位置,都可以通过minreal()传递并使用该工厂。
https://stackoverflow.com/questions/38681570
复制相似问题