首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制工具箱:函数在Matlab中是如何工作的?

控制工具箱:函数在Matlab中是如何工作的?
EN

Stack Overflow用户
提问于 2015-12-05 17:14:31
回答 1查看 3.2K关注 0票数 0

在Matlab中,我有一个关于“minreal”函数的问题。在Matlab的帮助下,我假设输出是系统的最小实现。据我理解,它意味着输出函数是可观察的和可控的。

示例:

代码语言:javascript
复制
num = [ 6.40756397363316, -4511.90326777420, 7084807.91317081, -3549645853.18273, 2307781024837.00, -761727788683491, 2.26760542619190e+17, -1.54992537527829e+19, 5.58719150155001e+21 ];
den = [ 1, 824.614362937241, 1036273.19811846, 592905955.793358, 319582996989.696, 106244022544031, 2.87990542333047e+16, 2.36284104437760e+18, 3.50241006466156e+20, 0];
G = tf(num,den);
G_min = minreal(ss(G));

但这并不是最低限度的实现:

代码语言:javascript
复制
>> size(G_min)
State-space model with 1 outputs, 1 inputs, and 9 states.
>> rank(obsv(G_min))
ans =     6
>> rank(ctrb(G_min))
ans =     5

所以很明显:秩(G_min) !=秩(ctrb(G_min)) != 9(状态数)。

我的错误在哪里?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-05 19:45:28

从概念上讲,你是正确的,因为最小的实现是可控的和可观察的。然而,极小体并不能保证这一点。据医生说:

代码语言:javascript
复制
Pole-zero cancellation is a straightforward search through the poles
and zeros looking for matches that are within tolerance. Transfer functions
are first converted to zero-pole-gain form.

也就是说,minreal只是对极点和零点是否接近进行了一些盲目的搜索,不能保证结果满足任何其他条件。请注意,在您的情况下,您可以指定更大的容忍度,从而消除更多的状态,

代码语言:javascript
复制
>> G_red = minreal(G,10)

G_red =

      6.408 s + 74.87
  ------------------------
  s^2 + 625.7 s + 1.703e05

Continuous-time transfer function.

你会得到更接近你预期的东西。

或者,你很可能会更好地转换成一个平衡的实现,并决定哪种状态来消除你自己。有关如何将其与巴莱尔一起使用以实现此目的的示例,请参阅调模文档。

您还可能会注意到蒙舍夫的文档,其中明确指出,除了玩具问题之外,您不应该信任它的结果:

代码语言:javascript
复制
obsv is here for educational purposes and is not recommended for serious control design.
Computing the rank of the observability matrix is not recommended for observability testing.
Ob will be numerically singular for most systems with more than a handful of states.
This fact is well documented in the control literature. For example, see section III in
http://lawww.epfl.ch/webdav/site/la/users/105941/public/NumCompCtrl.pdf 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34108362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档