声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1614|回复: 9

[编程技巧] 求教matla解控制问题状态方程的问题

[复制链接]
发表于 2010-3-5 18:53 | 显示全部楼层 |阅读模式

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

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

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

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

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

使用道具 举报

 楼主| 发表于 2010-3-6 16:07 | 显示全部楼层
显示高亮是什么意思?  是好事 是坏事?

我承认我没有仔细读说明, 现在在lsim加上一个前一步的向量就能算下去了, 得出的结果也正确, 至少目前看来是这样 
for i=1:1:245
[y(i:i+1,:),Z(i:i+1,:)]=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 编辑 ]
发表于 2010-3-7 01:06 | 显示全部楼层

显示高亮是希望容易被看到, 不好吗?:@)
个人水平有限, 但也想知道有无好法子! 汗颜! :@L

原帖由 ilaila666 于 2010-3-6 16:07 发表
...把lsim命令分成一个一个的时间步之后, 速度降低这么多...

一个大loop应该速度就会降低
 楼主| 发表于 2010-3-7 10:56 | 显示全部楼层
谢谢  给我高亮 但是问题还是没解决.
现在的问题就是 lsim执行第一次的时候很快0,24.5秒一瞬间算晚了  第二次调用Lsim 速度就变得慢的无法忍受  哪怕我只算0,0.1一个时间步  不知道这是为什么   只要能解决这个问题  一切都迎刃而解  希望大家献计献策
发表于 2010-3-7 12:22 | 显示全部楼层

回复 地板 ilaila666 的帖子

个人水平有限, LZ在4F的描述怎看不准!?
 楼主| 发表于 2010-3-8 16:36 | 显示全部楼层
谢谢 ChaChing 又给高亮 又给解答 非常感谢 .
但我没太听懂  你说一个大loop 会降低速度  但我试验的结果  只让他从0-0.1 0.1-0.2 速度也超级慢 lsim调用两次 就慢得不行
发表于 2010-3-9 00:07 | 显示全部楼层
不知LZ的程式是否方便给齐!? 个人虽无此经验, 或许可以试试看!
发表于 2010-3-10 23:12 | 显示全部楼层
看看下面有无用
http://forum.vibunion.com/forum/thread-9220-1-1.html
或搜索下 - 时变
 楼主| 发表于 2010-3-11 20:35 | 显示全部楼层
谢谢 ChaChing
我两天没来  没想到你这么热心 非常感谢  
这两天我一直在想替代方法  不过仍然对你提供的信息十分感动  对我帮助很大
发表于 2010-4-6 10:03 | 显示全部楼层
LZ你好,不知道你的问题解决没,我现在也遇到类似的问题,在状态方程中,F(t)为数据集的时变项,A,B是可以用表达式来表示的时变项,这样的状态空间怎么解啊?谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-16 17:46 , Processed in 0.069112 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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