首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Matlab求解非方mimo系统逆问题?

如何用Matlab求解非方mimo系统逆问题?
EN

Stack Overflow用户
提问于 2016-03-05 02:17:49
回答 1查看 174关注 0票数 0

这里我有一个非平方mimo系统'G‘,有3个输入和7个输出:

代码语言:javascript
复制
A = [-6.932e-2,17.41,-36.75,0,0,0,-6.0660,-31.54,0;
    -1.435e-4,2.719e-2,-1.411e-3,3.467e-1,0,-9.380e-1,7.139e-2,-1.691e-2,0;
    -4.537e-4,1.870e-3,-2.025e-1,0,1,0,-4.688e-2,7.563e-3,0;
    -1.304e-4,-7.179,-4.916e-1,-6.172e-1,-3.689e-2,7.631e-1,0,0,0;
    2.297e-5,0,-8.667e-1,4.393e-2,-1.947e-1,-2.026e-2,0,0,0;
    1.964e-5,4.263e-2,-1.329e-2,1.233e-3,1.579e-2,-1.600e-1,0,0,0;
    0,0,0,1,1.941e-1,2.771e-1,0,6.258e-2,0;
    0,0,0,0,8.192e-1,-5.736e-1,-5.612e-2,0,0;
    0,0,0,0,6.055e-1,8.648e-1,0,2.006e-2,0]


B = [0,0,-7.560,9.067e-4;
     -6.952e-3,1.293e-2,0,0;
     0,0,-3.425e-2,-9.577e-7;
     4.249,5.989e-1,0,0;
     0,0,-1.796,0;
     -7.287e-2,-2.877e-1,0,0;
     0,0,0,0;
     0,0,0,0;
     0,0,0,0]


C = [0,-5.758e-1,0,0,0,0,0,0,0;
     0,0,0,1,0,0,0,0,0;
     0,0,0,0,0,1,0,0,0;
     0,0,1,0,0,0,0,0,0;
     0,1,0,0,0,0,0,0,0;
     0,0,0,0,1,0,0,0,0;
     0,2.719e-2,-1.411e-3,3.467e-1,0,-9.380e-1,7.139e-2,0,0]


D = [-1.298e-1,-1.610e-1,0,0;
     0,0,0,0;
     0,0,0,0;
     0,0,0,0;
     0,0,0,0;
     0,0,0,0;
     -6.952e-3,1.293e-2,0,0]

 Gss = ss(A,B,C,D)
 G = tf(Gss)

我试着用pinv(G)得到G的倒数,但我得到了这个错误:

代码语言:javascript
复制
Undefined function 'svd' for input arguments of type 'tf'.

Error in pinv (line 18)
[U,S,V] = svd(A,'econ');

我也尝试过G'*inv(G*G'),但结果是:

代码语言:javascript
复制
    *GT*invGGT
    ans =

      From input 1 to output...
       1:  NaN

       2:  NaN

       3:  NaN

       4:  NaN

      From input 2 to output...

..。

代码语言:javascript
复制
 Static gain.\*

如何获取inv(G)

EN

回答 1

Stack Overflow用户

发布于 2016-03-05 02:44:27

您确定要使用伪逆系统吗?这是为了系统识别吗?pinv-命令仅适用于矩阵,而不适用于传递函数。

我认为很明显,inv(G)是完全不可能的。如果输入的数量不等于输出的数量,如何获得反函数?

现在来看看你的问题:很明显,你有7个输出,并且想要找到最适合它的最小二乘解。我会说这在数学上是非常困难的,因为状态空间系统的可观测性没有给出。(尝试减少状态数,但即使这样,D矩阵也会产生问题。)该命令

代码语言:javascript
复制
rank(obsv(Gss))

提供8个状态,系统有9个状态。基本上,这意味着你不能观察所有的状态,因此你不能推导出状态的输入。

备注:如果你想证明可观察性(用于科学研究),请使用文法。Obsv有时会遇到一些数值问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35803263

复制
相关文章

相似问题

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