我正在与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)处有一个极点以及零。由于这是唯一不稳定的极点,阶跃响应应该是稳定的,但不是。
我猜它与有意义的数字或不正确的系统缩放有关,但我不确定。关于为什么这些零极点没有取消的任何想法?
答案 0 :(得分:1)
如果没有看到植物很难说什么,但阶跃响应在很大程度上取决于植物的条件。在系统响应期间,不会在幕后执行极点零消除,并且数字上希望相互抵消。
换句话说,matlab不检查是否存在消除,并且使用微分方程求解器随时间推移产生非常小的数值不匹配。无论这些极点和零点属于何处,都将它传递给minreal()并使用该工厂。