声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2646|回复: 7

[编程技巧] maltab求解LQR问题

[复制链接]
发表于 2007-6-6 10:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我现在需要编程计算最优控制器问题,其中用到的是离散的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
[K,S,E]=dlqr(A,B,q,r);%LQR参数求解
请教高人这样的问题如何解决,多谢了!
回复
分享到:

使用道具 举报

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



错误提示已经给出,请自己调试一下,看看对应的输入是否符合要求
 楼主| 发表于 2007-6-6 11:03 | 显示全部楼层

回复 #2 eight 的帖子

A,B,q,r矩阵好像没有什么问题啊,困惑中。
 楼主| 发表于 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


都是计算出来的,看着是很乱,不过不知道该怎么计算才符合要求啊
发表于 2007-6-6 11:09 | 显示全部楼层
看看数据的类型是否符合要求吧
 楼主| 发表于 2007-6-6 12:18 | 显示全部楼层

回复 #5 eight 的帖子

都是直接计算得到的,如何能定义或者改变它的类型呢?
发表于 2007-6-6 12:49 | 显示全部楼层
原帖由 tianbian 于 2007-6-6 12:18 发表
都是直接计算得到的,如何能定义或者改变它的类型呢?


whos 变量名

看看是否符合 dlqr 函数的输入要求
 楼主| 发表于 2007-6-6 15:51 | 显示全部楼层

问题解决了

太谢谢了,这个问题解决了victory:
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 14:46 , Processed in 0.082386 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表