raojiang 发表于 2009-10-26 10:32:17

关于二阶微分方程组的求解

本帖最后由 raojiang 于 2009-10-28 10:23 编辑

四个变量:x,y,p,q
四个方程组,如下:
其它符号均为常数。
1)m*D2x+(Cf+Cr)*Dx+(b*Cr-a*Cf)*Dy-Cf*Dp-Cr*Dq+(Kf+Kr)*x+(-a*Kf+b*Kr)*y-Kf*p-Kr*q=0,
2)I*D2y+(b*Cr-b*Cf)*Dx+(b*b*Cr+a*a*Cf)*Dy+a*Cf*Dp-b*Cr*Dq+(a*Kf-b*Kr)*x+(-a*a*Kf-b*b*Kr)*y-a*Kf*p+b*Kr*q=0,
3)mu*D2p-Cf*Dx+a*Cf*Dy+Cf*Dp-Kf*x+a*Kf*y+(Kf+Ku)*p=0,
4)mu*D2q-Cr*Dx-b*Cr*Dy+Cr*Dq-Kr*x-b*Kr*y+(Kr+Ku)*q=0;

试问该如何解呀,急问,各位大侠伸出援助之手吧,最好说得详细点,小弟MATLAB刚入门。如果直接贴答案那更是感激不尽了。谢谢~!:)

TBE_Legend 发表于 2009-10-26 10:35:18

本帖最后由 TBE_Legend 于 2009-10-26 10:38 编辑

你只要解析解? 要数值的话,把常数具体值贴出来。

D2y 的意思是 D对y的二阶导数吗?

你这是ODE还是PDE啊?

raojiang 发表于 2009-10-26 10:43:14

你只要解析解? 要数值的话,把常数具体值贴出来。

D2y 的意思是 D对y的二阶导数吗?

你这是ODE还是PDE啊?
TBE_Legend 发表于 2009-10-26 10:35 http://forum.simwe.com/images/common/back.gif
事实上我是用要用x,y,p,q几个数据来求优化的,这里求微分方程组是想把x,y,p,q几个值的表达示求出来,然后再用(Cf,Cr,Kf,Kr)做为变量进行优化。不知道有没有说清楚?

raojiang 发表于 2009-10-26 10:44:50

你只要解析解? 要数值的话,把常数具体值贴出来。

D2y 的意思是 D对y的二阶导数吗?

你这是ODE还是PDE啊?

TBE_Legend 发表于 2009-10-26 10:35 http://forum.simwe.com/images/common/back.gif
D2y 的意思是 D对y的二阶导数吗?
--------
是的!

你这是ODE还是PDE啊?
---------
我不懂这两个是什么,呵呵!

TBE_Legend 发表于 2009-10-26 10:45:51

本帖最后由 TBE_Legend 于 2009-10-26 10:49 编辑


D2y 的意思是 D对y的二阶导数吗?
--------
是的!

你这是ODE还是PDE啊?
---------
我不懂这两个是什么,呵呵!
raojiang 发表于 2009-10-26 10:44 http://forum.simwe.com/images/common/back.gif

要说清楚那些是自变量,那些事应变量。

你的意思是: 自变量:x,y,p,q; 应变量:就一个D(x,y,p,q) ?

D(x,y)? D(x)? 即常微分还是偏微分方程组?

raojiang 发表于 2009-10-26 11:00:30



要说清楚那些是自变量,那些事应变量。

你的意思是: 自变量:x,y,p,q; 应变量:就一个D(x,y,p,q) ?

D(x,y)? D(x)? 即常微分还是偏微分方程组?
TBE_Legend 发表于 2009-10-26 10:45 http://forum.simwe.com/images/common/back.gif
谢谢,我似乎有点明白了。我的微分方程组里没有自变量。
那我把原意再描述一下吧。

上图中就是我的二阶微分方程组,自变量应该是yf,yr,它们是路面输入,是时间t的函数,表达式应该为yf=Asin(wt),yr=Asin(wt+θ)。
然后Z里面的四个值就是我要求出来的应变量。希望用其它的参数把这四个应变量的值表达出来,希望得到的是符号的表达示。不知道能不能求?

messenger 发表于 2009-10-26 11:13:43

你这个方程组求出解析解很困难,还是考虑数值求解吧

raojiang 发表于 2009-10-26 11:22:43

你这个方程组求出解析解很困难,还是考虑数值求解吧
messenger 发表于 2009-10-26 11:13 http://forum.simwe.com/images/common/back.gif
谢谢~
不过求数值的话,后面的工作很难做了呀,因为我要对其中Cf,Cr,Kf,Kr进行多目标优化。
如果只求数值的话,simulink应该可以解这个,不知对否?
谢谢!

TBE_Legend 发表于 2009-10-26 12:28:52

本帖最后由 TBE_Legend 于 2009-10-26 12:31 编辑


谢谢~
不过求数值的话,后面的工作很难做了呀,因为我要对其中Cf,Cr,Kf,Kr进行多目标优化。
如果只求数值的话,simulink应该可以解这个,不知对否?
谢谢!
raojiang 发表于 2009-10-26 11:22 http://forum.simwe.com/images/common/back.gif

数值解,解析解都行。都能做你后续的优化。数值解的话,把整个求解ode的过程做成个函数或子程序就可以了。

你的问题描述不清楚啊。

你给的方程组里面那些是函数,那些是常数? 似乎yf(t),yr(t)是系统的输入?这不是方程组的自变量,你的方程组的自变量似乎是时间t。

所有的应变量:yf(t),yr(t),X(t),theta(t),Xu(t),Xr(t)。其他都是常数? 对吗?

如果是这样的话,问题很一般,晚上我给你试试解析解。你先把所有的常数给个大概的值,方便我给你算数值解。

raojiang 发表于 2009-10-26 14:01:44

本帖最后由 raojiang 于 2009-10-26 14:07 编辑



数值解,解析解都行。都能做你后续的优化。数值解的话,把整个求解ode的过程做成个函数或子程序就可以了。

你的问题描述不清楚啊。

你给的方程组里面那些是函数,那些是常数? 似乎yf(t),yr(t)是系统的 ...
TBE_Legend 发表于 2009-10-26 12:28 http://forum.simwe.com/images/common/back.gif
谢谢!
自变量是时间t,方程组里的yf,yr是系统输入,是时间的关系函数。我给的yr=Asin(t)只是为了描述这个问题,现实中yf,yr比这个复杂(附件中有yf,yr随时间的变化关系)。
应变量就是矩阵Z中的四个值(x,theta,xf,xr),最后要得到的也是这四个值的表达示,如x=f(t)。
总之:(1)自变量是时间t,但是在方程组里面没办法写成函数,只有数据。所以一开始我没有写出来。
(2)方程组里涉及到参数的值为:
m=133;I=420000000;mu=87.5;Cf=0.6;Cr=0.87;Kf=10.6;Kr=33.6;a=631;b=659;Ku=310;

TBE_Legend 发表于 2009-10-27 02:13:26

本帖最后由 TBE_Legend 于 2009-10-27 02:16 编辑


谢谢!
自变量是时间t,方程组里的yf,yr是系统输入,是时间的关系函数。我给的yr=Asin(t)只是为了描述这个问题,现实中yf,yr比这个复杂(附件中有yf,yr随时间的变化关系)。
应变量就是矩阵Z中的四个值(x,theta, ...
raojiang 发表于 2009-10-26 14:01 http://forum.simwe.com/images/common/back.gif

yf,yr你可以通过拟合来得到函数。

解析解似乎得不到,mmtc算了几分钟,没结果,我就停了。

因为是常系数,所以数值解很容易得到,simulink也应该很容易解这种方程组的。

下面选取了一些参数,不到1s就可以得到结果。Clear["Global`*"]

m=133;
ip=420000000;
mu=87.5;

cf=0.6;
cr=0.87;

kf=10.6;
kr=33.6;
ku=310;

a=631;
b=659;

yf=Sin;
yr=Cos;



所用IC:

x == 0, theta == 0, xf == 0, xr == 0,
x‘==0,theta'==0,xf'==0,xr'==0

raojiang 发表于 2009-10-27 08:57:59

本帖最后由 raojiang 于 2009-10-28 10:22 编辑



yf,yr你可以通过拟合来得到函数。

解析解似乎得不到,mmtc算了几分钟,没结果,我就停了。

因为是常系数,所以数值解很容易得到,simulink也应该很容易解这种方程组的。

下面选取了一些参数,不到1s就可 ...
TBE_Legend 发表于 2009-10-27 02:13 http://forum.simwe.com/images/common/back.gif
非常感谢,我看了下结果图,各数值的范围还是很合理的。
不知道您是否可以将源码发给我?
ps:不知你用的是哪个软件呀?
再次感谢!
---------------------------

raojiang 发表于 2009-10-29 12:13:14

12# raojiang
继续悲剧,问题不断~
在前面TBE_Legend 提到yf,yr可以通过曲线拟合得到,但具体怎么加还是很迷茫。
我的做法如下,但是很遗憾行不通。
function dydt = f(t,y,yf,yr)
dydt = [
y(2)
...(略)
-(-0.6*y(2)+378.6*y(4)+0.6*y(6)-10.6*y(1)+6688.6*y(3)+343.6*y(5)-310*yf(t))/87.5
y(8)
-(-0.87*y(2)-573.33*y(4)+0.87*y(8)-33.6*y(1)-22142.4*y(3)+343.6*y(7)-310*yr(t))/87.5
    ];
其中:
xi=0:0.02:20;
yf=interp1(MK(:,1),MK(:,2),xi,'linear');
yr=interp1(MK(:,1),MK(:,3),xi,'linear');
但是提示错误:
Subscript indices must either be real positive integers or logicals.

-----------
另:有个问题很迷惑:粉红色标的地方,yf,yf本来是用sin(t),cos(t)表示的,可以求出数值解,如果有曲线拟合出来的表达示它实际上只是一维数组yf=,和一sin(t)是完全不同的概念呀,连自变量都没有。试问yf该如何表达才会与sin(t)等价?

谢谢。

raojiang 发表于 2009-11-2 10:56:06

'试问yf该如何表达才会与sin(t)等价?'
---------------------
貌似没人回答呀,再解释一下:
yf(t)是类似白噪声的随机曲线,用一般的公式无法拟合。
所以想用yf(t)函数表达;
试问,该如何解决。
请各位大侠给点提示吧。

caoer 发表于 2009-11-24 12:20:37

很明显有4个独立变量阿x,theta,x_u,x_v,
需要有两个求解器,二阶的t偏导可以考虑用newmarks solver
既然yf(t)是noise,就用随机函数代替呗,控制好幅值即可。
这是一个再普通不过的瞬态pde方程

guozhijie 发表于 2010-11-16 12:45:23

楼主的问题怎么解决的?我也遇到一个类似问题。
在常微分方程组中含有已知的函数yf,而yf没有解析表达式,仅有yf(t)对应的一组离散数值。
比如:yf(t)=,t是在中,1/300递增。
这种微分方程组怎么求啊
页: [1]
查看完整版本: 关于二阶微分方程组的求解