这是方程组
m*x''+c11*x'+k11*x+k14*ey=Fx+Fxump
m*y''+c22*y'+k22*x-k23*ex=Fy+Fyump
Jd*ex''+H*ey'-k32*y+k33*ex=Mumpx
m*ey''-H*ex'+k41*x+k44*ey=Mumpy
这是调用函数
function [dydt] =weifen(t,y)
%=================参数设置===============
m=18.15; %质量
a=5*10^-4; %偏心距
f=50; %频率
c11=81.9; %阻尼系数
c22=c11; %阻尼系数
r=0.0059;
k11=1.7692*10^6; %刚度系数
k22=k11;
k33=1.474*10^5;
k44=k33;
k32=-2.949*0^5;
k23=k32;
k41=k32;
k14=k32;
w=2*pi*f; %角速度
fex=m*a*w^2*cos(2*w*t);%离心力
fey=m*a*w^2*sin(2*w*t);
Jd=(m*r^2)/4;
Jp=2*Jd;
H=Jp*w;
%==================列方程==================
fun=@(dy)[dy(1)*m+c11*y(2)+k11*y(1)+k14*y(7)-(312.006-...
344.027*cos(2*w*t)-460.286*sin(2*w*t)+fex);
dy(2)*m+c22*y(4)+k22*y(3)-k23*y(5)-(-12230.2-460.286*cos(2*w*t)...
+344.027*sin(2*w*t)+fey);
dy(3)*Jd+H*y(8)-k32*y(3)+k33*y(5)-(-152.733+72.5859*cos(2*w*t)...
+5.39735*sin(2*w*t));
dy(4)*Jd-H*y(6)+k41*y(1)+k44*y(7)-179.405+5.39735*cos(2*w*t)...
-72.5859*sin(2*w*t)];
options=optimset('display','off');
dyzero=fsolve(fun,y([1,3,5,7]),options);
dydt=[y(2),dyzero(1),y(4),dyzero(2),y(6),dyzero(3),y(8),dyzero(4)];
end
这是运行函数
tspan=[0,0.5]; %时间
y0=[-0.000132,0,0,0,0.016,0,0.016,0]'; %初值[原值,导数值,原值,导数值...]
[t,y]=ode45(@weifen,tspan,y0);
这是错误提示
错误使用 vertcat
串联的矩阵的维度不一致。
出错
weifen>@(dy)[dy(1)*m+c11*y(2)+k11*y(1)+k14*y(7)-(312.006-344.027*cos(2*w*t)-460.286*sin(2*w*t)+fex);dy(2)*m+c22*y(4)+k22*y(3)-k23*y(5)-(-12230.2-460.286*cos(2*w*t)+344.027*sin(2*w*t)+fey);dy(3)*Jd+H*y(8)-k32*y(3)+k33*y(5)-(-152.733+72.5859*cos(2*w*t)+5.39735*sin(2*w*t));dy(4)*Jd-H*y(6)+k41*y(1)+k44*y(7)-179.405+5.39735*cos(2*w*t),-72.5859*sin(2*w*t)]
(line 24)
fun=@(dy)[dy(1)*m+c11*y(2)+k11*y(1)+k14*y(7)-(312.006-...
出错 fsolve (line 217)
fuser = feval(funfcn{3},x,varargin{:});
出错 weifen (line 33)
dyzero=fsolve(fun,y([1,3,5,7]),options);
出错 odearguments (line 87)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
出错 Untitled2 (line 3)
[t,y]=ode45(@weifen,tspan,y0);
原因:
Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue.
求大神帮忙下 谢谢了
m*x''+c11*x'+k11*x+k14*ey=Fx+Fxump
m*y''+c22*y'+k22*x-k23*ex=Fy+Fyump
Jd*ex''+H*ey'-k32*y+k33*ex=Mumpx
m*ey''-H*ex'+k41*x+k44*ey=Mumpy
这是调用函数
function [dydt] =weifen(t,y)
%=================参数设置===============
m=18.15; %质量
a=5*10^-4; %偏心距
f=50; %频率
c11=81.9; %阻尼系数
c22=c11; %阻尼系数
r=0.0059;
k11=1.7692*10^6; %刚度系数
k22=k11;
k33=1.474*10^5;
k44=k33;
k32=-2.949*0^5;
k23=k32;
k41=k32;
k14=k32;
w=2*pi*f; %角速度
fex=m*a*w^2*cos(2*w*t);%离心力
fey=m*a*w^2*sin(2*w*t);
Jd=(m*r^2)/4;
Jp=2*Jd;
H=Jp*w;
%==================列方程==================
fun=@(dy)[dy(1)*m+c11*y(2)+k11*y(1)+k14*y(7)-(312.006-...
344.027*cos(2*w*t)-460.286*sin(2*w*t)+fex);
dy(2)*m+c22*y(4)+k22*y(3)-k23*y(5)-(-12230.2-460.286*cos(2*w*t)...
+344.027*sin(2*w*t)+fey);
dy(3)*Jd+H*y(8)-k32*y(3)+k33*y(5)-(-152.733+72.5859*cos(2*w*t)...
+5.39735*sin(2*w*t));
dy(4)*Jd-H*y(6)+k41*y(1)+k44*y(7)-179.405+5.39735*cos(2*w*t)...
-72.5859*sin(2*w*t)];
options=optimset('display','off');
dyzero=fsolve(fun,y([1,3,5,7]),options);
dydt=[y(2),dyzero(1),y(4),dyzero(2),y(6),dyzero(3),y(8),dyzero(4)];
end
这是运行函数
tspan=[0,0.5]; %时间
y0=[-0.000132,0,0,0,0.016,0,0.016,0]'; %初值[原值,导数值,原值,导数值...]
[t,y]=ode45(@weifen,tspan,y0);
这是错误提示
错误使用 vertcat
串联的矩阵的维度不一致。
出错
weifen>@(dy)[dy(1)*m+c11*y(2)+k11*y(1)+k14*y(7)-(312.006-344.027*cos(2*w*t)-460.286*sin(2*w*t)+fex);dy(2)*m+c22*y(4)+k22*y(3)-k23*y(5)-(-12230.2-460.286*cos(2*w*t)+344.027*sin(2*w*t)+fey);dy(3)*Jd+H*y(8)-k32*y(3)+k33*y(5)-(-152.733+72.5859*cos(2*w*t)+5.39735*sin(2*w*t));dy(4)*Jd-H*y(6)+k41*y(1)+k44*y(7)-179.405+5.39735*cos(2*w*t),-72.5859*sin(2*w*t)]
(line 24)
fun=@(dy)[dy(1)*m+c11*y(2)+k11*y(1)+k14*y(7)-(312.006-...
出错 fsolve (line 217)
fuser = feval(funfcn{3},x,varargin{:});
出错 weifen (line 33)
dyzero=fsolve(fun,y([1,3,5,7]),options);
出错 odearguments (line 87)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
出错 Untitled2 (line 3)
[t,y]=ode45(@weifen,tspan,y0);
原因:
Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue.
求大神帮忙下 谢谢了


