|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
昨晚看/回帖, 学习并复习了一下多年前的一些回覆!
由上头这些帖不难发现有因对比不正确, 就怀疑通过状态方程的特徵矩阵算出来的特征值可能不是固有频率!? 请别再质疑了, 一定是没注意到某些细节! google下网上资料或者查看下Ogata的书(Modern Control Engineering)吧!
或者到处求助, 但可能没经验, 忽略掉给出细节没能描述明确! 没头没尾仅是简单叙述, 至少在个人有限水平下, 仅能确认somthing is wrong, 但不知从那帮忙debug起!?
想想好像只能自己整理一下, 希望遇到问题的人可以自己找出差异, 更正自己原先的错误!
应该不是很难才是, 但个人真有些力不从心且也很懒, 就儘可能交代一下了! 希望能说明白
首先稍微推导下, 一些相对应的式子及与matlab如何对应, 由於个人水平有限, 仅为了后面自己撰写程序方便而已, 应该不是很清楚严谨! 凑合参考看吧, 如果想要详细了解(如高阶或其它型式...), 就请看下一些相关的书吧!
从简易起, 无阻尼系统 Mx"+Kx=0
1. x=q*exp(i*w) => (-w^2*M+K)*q=0 => K*q=w^2*M*q
matlab eig函数 A*x=lambda*B*x => A=K; B=M; lambda=w^2;
2. x=q*exp(i*w) => (-w^2*M+K)*q=0 => inv(M)*K*q=w^2*q
matlab eig函数 A*x=lambda*x => A=inv(M)*K; lambda=w^2; 或 A=M\K; lambda=w^2;
3. x1=x, x2=x' => x1'=x'=x2 & x2'=x"=-inv(M)*K*x1
=> 特徵矩阵 A=[0,I;-inv(M)*K 0] 或 A=[0,I;-M\K 0]
4. eqn 4.6.11 of http://forum.vibunion.com/thread-44115-1-1.html
=> A=[0 M;M 0]; B=[K 0;0 -M]; => lambda*A*q=-B*q (eqn 4.6.14)
注意下,方式1/2对应一般方式, 方式3/4对应状态方程方式, 其中inv函数可以用倒除取代(算法不同,速度比较快)
另提醒下状态方程是有许多种形式的, 其特徵矩阵的特徵值会形成共軛复根, 其虚部即为w(=2*pi*f), 参见Ogata的书
有阻尼系统 Mx"+Cx'+Kx=0
1. x1=x, x2=x' => x1'=x'=x2 & x2'=x"=-inv(M)*K*x1-inv(M)*C*x2
=> A=[0,I;-inv(M)*K -inv(M)*C] 或 A=[0,I;-M\K -M\C]
2. eq4.6.11 of http://forum.vibunion.com/thread-44115-1-1.html
=> A=[C M;M 0]; B=[K 0;0 -M]; => lambda*A*q=-B*q (eqn 4.6.14)
|
评分
-
2
查看全部评分
-
|