tianbian 发表于 2007-6-6 10:57

maltab求解LQR问题

我现在需要编程计算最优控制器问题,其中用到的是离散的LQR,因为做的是增维系统,参数A,B都是计算中得到的,现在每次编译都有错误,错误提示如下:??? Error using ==> @ss\private\abcdechk
Invalid model: A,B,C must be arrays of real or complex numbers.

Error in ==> ar at 34
=dlqr(A,B,q,r);%LQR参数求解
请教高人这样的问题如何解决,多谢了!

eight 发表于 2007-6-6 10:59

原帖由 tianbian 于 2007-6-6 10:57 发表 http://www.chinavib.com/forum/images/common/back.gif
我现在需要编程计算最优控制器问题,其中用到的是离散的LQR,因为做的是增维系统,参数A,B都是计算中得到的,现在每次编译都有错误,错误提示如下:??? Error using ==> @ss\private\abcdechk
Invalid model: ...


错误提示已经给出,请自己调试一下,看看对应的输入是否符合要求

tianbian 发表于 2007-6-6 11:03

回复 #2 eight 的帖子

A,B,q,r矩阵好像没有什么问题啊,困惑中。

tianbian 发表于 2007-6-6 11:07

数据如下:

A =

[                                                                                             8957746938927295*2^(-53),                                                                                             4504998423345645*2^(-52),                                                                                             6149486737086532*2^(-54),                                                                                             4504998423345645*2^(-52),   -557653021590569/1247511170530463*exp(-198354276114343617/36028797018963968000)+557653021590569/1247511170530463, -14090383266467382/6237555852652315*exp(-198354276114343617/36028797018963968000)+14090383266467382/6237555852652315]
[                                                                                             4968038739241095*2^(-52),                                                                                             8165157587619761*2^(-53),                                                                                             4968038739241095*2^(-52),                                                                                             8165157587619761*2^(-53),                              45169894748836089/1801439850948198400*exp(53/540)-45169894748836089/1801439850948198400,                            570660522291928971/4503599627370496000*exp(53/540)-570660522291928971/4503599627370496000]
[                                                                                             4575779168158886*2^(-52),                                                                                                                  1,                                                                                                                  1,                                                                                                                  1,                                 2788265107952845/18014398509481984*exp(159/10000)-2788265107952845/18014398509481984,                                 7045191633233691/9007199254740992*exp(159/10000)-7045191633233691/9007199254740992]
[                                                                                                                  1,                                                                                             4575779168158886*2^(-52),                                                                                                                  1,                                                                                                                  1,                                                                               88666830432900471/36028797018963968000,                                                                           1120185469684156869/90071992547409920000]
[                                                                                                                  0,                                                                                                                  0,                                                                                                                  0,                                                                                                                  0,                                                                                                                  0,                                                                                                                  1]
[                                                                                                                  0,                                                                                                                  0,                                                                                                                  0,                                                                                                                  0,                                                                                          -5576530215905690*2^(-55),                                                                                          -7045191633233691*2^(-53)]


B =
1152921504606847/102196115089855528960*exp(-198354276114343617/36028797018963968000)-2616687479509667314411/41389426611391489228800+128/2025*exp(159/512000)
                                 -93386641873154607/147573952589676412928000*exp(53/540)+148040885799042185963/737869762948382064640000-1/5000*exp(-53/540)
                                                      -1152921504606847/295147905179352825856*exp(159/10000)+586116469904505833449/24903104499507894681600000
                                                                                 -295162753655410657438513/239069803195275788943360000+1/810*exp(159/10000)
                                                                                                                                                            0
                                                                                                                                                            0


都是计算出来的,看着是很乱,不过不知道该怎么计算才符合要求啊

eight 发表于 2007-6-6 11:09

看看数据的类型是否符合要求吧

tianbian 发表于 2007-6-6 12:18

回复 #5 eight 的帖子

都是直接计算得到的,如何能定义或者改变它的类型呢?

eight 发表于 2007-6-6 12:49

原帖由 tianbian 于 2007-6-6 12:18 发表 http://www.chinavib.com/forum/images/common/back.gif
都是直接计算得到的,如何能定义或者改变它的类型呢?

whos 变量名

看看是否符合 dlqr 函数的输入要求

tianbian 发表于 2007-6-6 15:51

问题解决了

太谢谢了,这个问题解决了victory:
页: [1]
查看完整版本: maltab求解LQR问题