ilaila666 发表于 2010-3-5 18:53

求教matla解控制问题状态方程的问题

Z'(t)=AZ(t)+BsU(t)+BF(t)
Y(t)=CZ(t)+DF(t)
这是振动控制的状态方程的典型格式
书中一般用lsim命令解
=lsim(A,B,C,D,U,t)

我现在的问题是 不仅仅U是时变的 结构的特性也是时变的
意味着 A B这些矩阵都是随时间变化的   如何求解这种方程我就不会了 请高手解答 谢谢

我试图用循环语句一步一步的求解但是这样解出来的每一步都是以静止开始计算的 而不是以上一个时间步末的位移、速度状态   
请问高手如何能让 A矩阵 B矩阵随时间变化 还能求解? 用什么命令 谢谢?

ilaila666 发表于 2010-3-6 16:07

显示高亮是什么意思?是好事 是坏事?

我承认我没有仔细读说明, 现在在lsim加上一个前一步的向量就能算下去了, 得出的结果也正确, 至少目前看来是这样 
for i=1:1:245
=lsim(A,B,C,D,U(i:i+1,:),t(i:i+1),Z(i,:));
end
但是这样的代价是速度太慢了, 为什么我把lsim命令分成一个一个的时间步之后, 速度降低这么多?多成百上千倍时间
补充一下:A B是时变的意思是, A B 的确定需要上一步的计算结果, 不是像U一开始就能写好的

[ 本帖最后由 ChaChing 于 2010-3-7 01:01 编辑 ]

ChaChing 发表于 2010-3-7 01:06

原帖由 ilaila666 于 2010-3-6 16:07 发表 http://www.chinavib.com/forum/images/common/back.gif
显示高亮是什么意思?是好事 是坏事?...
显示高亮是希望容易被看到, 不好吗?:@)
个人水平有限, 但也想知道有无好法子! 汗颜! :@L

原帖由 ilaila666 于 2010-3-6 16:07 发表 http://www.chinavib.com/forum/images/common/back.gif
...把lsim命令分成一个一个的时间步之后, 速度降低这么多...
一个大loop应该速度就会降低

ilaila666 发表于 2010-3-7 10:56

谢谢给我高亮 但是问题还是没解决.
现在的问题就是 lsim执行第一次的时候很快0,24.5秒一瞬间算晚了第二次调用Lsim 速度就变得慢的无法忍受哪怕我只算0,0.1一个时间步不知道这是为什么   只要能解决这个问题一切都迎刃而解希望大家献计献策

ChaChing 发表于 2010-3-7 12:22

回复 地板 ilaila666 的帖子

个人水平有限, LZ在4F的描述怎看不准!?

ilaila666 发表于 2010-3-8 16:36

谢谢 ChaChing 又给高亮 又给解答 非常感谢 .
但我没太听懂你说一个大loop 会降低速度但我试验的结果只让他从0-0.1 0.1-0.2 速度也超级慢 lsim调用两次 就慢得不行

ChaChing 发表于 2010-3-9 00:07

不知LZ的程式是否方便给齐!? 个人虽无此经验, 或许可以试试看!

ChaChing 发表于 2010-3-10 23:12

看看下面有无用
http://forum.vibunion.com/forum/thread-9220-1-1.html
或搜索下 - 时变

ilaila666 发表于 2010-3-11 20:35

谢谢 ChaChing
我两天没来没想到你这么热心 非常感谢
这两天我一直在想替代方法不过仍然对你提供的信息十分感动对我帮助很大

destiny 发表于 2010-4-6 10:03

LZ你好,不知道你的问题解决没,我现在也遇到类似的问题,在状态方程中,F(t)为数据集的时变项,A,B是可以用表达式来表示的时变项,这样的状态空间怎么解啊?谢谢
页: [1]
查看完整版本: 求教matla解控制问题状态方程的问题