lonelyeyes 发表于 2006-9-4 11:01

求解二维二阶的线性微分方程的问题

求解二维二阶的线性微分方程的问题,使用的是正弦激励(sin*omega*t),理论上是否应该使用任意激励频率,都能得到相应频率的响应,但分别使用了matlab的ode算法和simulink都未得到相应的结果,希望得到高手的指导,跪谢!!

toes 发表于 2006-9-4 11:23

ode的程序贴出来,大家帮你看看。

lonelyeyes 发表于 2006-9-4 15:41

ok 分为三段子函数:
f1:
function dx=f(t,x,fx,fy)
dx=zeros(4,1);
m=7.363;
dxx=1.9170;
dxy=1.5210;
dyx=1.5270;
dyy=6.2120;
kxx=1.2520;
kxy=-0.7709;
kyx=3.0730;
kyy=1.6790;
dx(1)=x(3);
dx(2)=x(4);
dx(3)=-(dxx*x(3)+dxy*x(4))/m-(kxx*x(1)+kxy*x(2))/m+4.97e-2*sin(50*pi*t)*2^0.5/m;
dx(4)=-(dyx*x(3)+dyy*x(4))/m-(kyx*x(1)+kyy*x(2))/m+4.97e-2*sin(50*pi*t)*2^0.5/m;

f2:
function dx=f(t,x,fx,fy)
%ts=1/5000;
dx=zeros(4,1);
m=7.363;
dxx=1.9170;
dxy=1.5210;
dyx=1.5270;
dyy=6.2120;
kxx=1.2520;
kxy=-0.7709;
kyx=3.0730;
kyy=1.6790;
dx(1)=x(3);
dx(2)=x(4);
dx(3)=-(dxx*x(3)+dxy*x(4))/m-(kxx*x(1)+kxy*x(2))/m+4.97e-2*sin(50*pi*t)*(-2^0.5)/m;
dx(4)=-(dyx*x(3)+dyy*x(4))/m-(kyx*x(1)+kyy*x(2))/m+4.97e-2*sin(50*pi*t)*2^0.5/m;

main
Ts=;
X_in=zeros(4,1)
=ode45(@f2,Ts,X_in,[]);
=ode45(@f1,Ts,X_in,[]);
Fa=4.97e-2*sin(50*pi*ta)*2^0.5;
Fb=4.97e-2*sin(50*pi*tb)*2^0.5;

toes 发表于 2006-9-4 16:55

怀疑是你的动力学方程有问题,解出来的结果是发散的。

可能是刚度矩阵的问题,我修改了刚度矩阵后能解出收敛的结果。

检查一下刚度矩阵是否有错。

个人意见,仅供参考。

siyanger 发表于 2006-9-5 09:33

原帖由 toes 于 2006-9-4 16:55 发表
怀疑是你的动力学方程有问题,解出来的结果是发散的。

可能是刚度矩阵的问题,我修改了刚度矩阵后能解出收敛的结果。

检查一下刚度矩阵是否有错。

个人意见,仅供参考。
你说的修改刚度矩阵是改变数值,还包括改变符号啊?因为我也遇到类似的情况 ,结果总是发散。

glise 发表于 2006-9-5 10:17

如果你的参数给的没问题的话,那应该是系统本身就是失稳的

一般情况下负刚度会导致系统失稳,你的方程中如果把交叉刚度置0,就不会发散了

toes 发表于 2006-9-5 10:40

原帖由 siyanger 于 2006-9-5 09:33 发表

你说的修改刚度矩阵是改变数值,还包括改变符号啊?因为我也遇到类似的情况 ,结果总是发散。

是的,改了数值和符号,改成一种自己能看懂的简单情况算了一下。

siyanger 发表于 2006-9-5 13:58

原帖由 glise 于 2006-9-5 10:17 发表
如果你的参数给的没问题的话,那应该是系统本身就是失稳的

一般情况下负刚度会导致系统失稳,你的方程中如果把交叉刚度置0,就不会发散了
什么叫交叉刚度啊?我觉得数值可以改改,但符号不好乱改。因为本身刚度矩阵是根据系统结构推导出来的,符号一般是和系统结构有关的吧。

MVH 发表于 2006-9-5 20:50

原帖由 siyanger 于 2006-9-5 13:58 发表

什么叫交叉刚度啊?我觉得数值可以改改,但符号不好乱改。因为本身刚度矩阵是根据系统结构推导出来的,符号一般是和系统结构有关的吧。


你这里的
kxy=-0.7709;
kyx=3.0730;
就是交叉刚度

siyanger 发表于 2006-9-6 06:03

原帖由 MVH 于 2006-9-5 20:50 发表



你这里的
kxy=-0.7709;
kyx=3.0730;
就是交叉刚度
那在更多自由度的系统中就是指确良 刚度矩阵中的非对角线上的元素了?

VibInfo 发表于 2006-9-6 07:41

原帖由 siyanger 于 2006-9-6 06:03 发表

那在更多自由度的系统中就是指确良 刚度矩阵中的非对角线上的元素了?

正解

siyanger 发表于 2006-9-7 19:22

与初值也有一定的关系吧?还有阻尼系数呢?多谢指导!

[ 本帖最后由 siyanger 于 2006-9-7 19:23 编辑 ]

NASA 发表于 2006-9-7 21:05

原帖由 siyanger 于 2006-9-7 19:22 发表
与初值也有一定的关系吧?还有阻尼系数呢?多谢指导!

对于线形系统而言,应该是和初值无关的

toes 发表于 2006-9-7 21:10

原帖由 feixue 于 2006-9-7 21:05 发表


对于线形系统而言,应该是和初值无关的

tong yi.

我看发散主要还是数学模型中刚度矩阵的问题。
以线性问题做练习也不用拿各发散的系统做对象吧。

lonelyeyes 发表于 2006-9-8 09:11

因为我做的是一个简单的仿真,思路是刚度和阻尼系数都是从书中直接取得,而且也是经过 检验的计算值,然后解出响应值,然后输入根据动力学方程建立的参数识别程序和原来预设的刚度和阻尼系数进行对比,但现在就是问题重重,都无法很稳定的得到各个激振频率下的稳态响应,就更淡不上参数识别了。
页: [1] 2
查看完整版本: 求解二维二阶的线性微分方程的问题