追梦人1101 发表于 2013-1-26 19:23

matlabd的fsolve函数求解方程组

function fun=Untitled6(x)
theta=pi/18;
k=0.97; %k为万向节的传输效率
R=13; %R为轮子的半径
r=4;
D=250;
fr=0.2; %fr为轮子的滚动摩阻
mu=0.4; %mu为轮与有机玻璃的摩擦系数
Wf=5; %Wf为电线所产生的负载
G1=5;
G2=80; %G2为电机,导向装置和加工头的重力和N
alpha=11.5*pi/180;
beta=33.5*pi/180;
gamma=45*pi/180;
rho=1.205;%rho为气体密度kg/m3
V=300;%V为气体速度m/s
d=10;
Q=V*pi*d^2/4;%Q为气体流量

f1=x(1);
%f1为轮与管壁之间的滚动摩擦
f2=x(2);
%f2为轮与轮轴之间的摩擦
Fp=x(3);
% Hx为由于周向力引起的滑动趋势的摩擦力
Fx=x(4);
%Hy为由于G和W引起的沿管道轴线方向滑动趋势的摩擦力
Fy=x(5);
%Fx为轴对轮的周向分力
Fz=x(6);
%Fy为轴对轮沿管道轴线的分力
Hx=x(7);
%Fz为轴对轮沿管道径向的分力
Hy=x(8);
%Fp为牵引力分布在每个导向轮上的力
Nz=x(9);
Tm=x(10);


%Nx=x(9);
%Nx为轴对轮的周向分力
%Ny=x(10);
%Ny为W和G在管道轴向的分力与滚动摩擦的和
%f=x(11);
%f为由电机扭转和气体冲量引起的滚动趋势的摩擦力

fun(1)=Hy+(f1+f2)*sin(theta)-Fy;
fun(2)=(f1+f2)*cos(theta)+Fx-Hx;
fun(3)=Hy*sin(theta)*R+f1*R-Hx*R*cos(theta)+f2*r;
fun(4)=Hx^2+Hy^2-(mu*Fz)^2;
fun(5)=k*Tm-3*Hx*D/2+3*f1*cos(theta)*D/2;
fun(6)=k*Tm-3*Fx*D/2;
fun(7)=Fp-(G2*cos(gamma)/6+Nz*fr/R+Wf/6);
fun(8)=(Tm+3*rho*Q*V*D/2)/(D*6/2)-mu*Nz;
fun(9)=2*Fp/cos(alpha)+G1*cos(beta)/3-Fy;
fun(10)=3/2*D*Fx/k-Tm;


在求解时,matlab显示:
"Solver stopped prematurely.
fsolve stopped because it exceeded the function evaluation limit,
options.MaxFunEvals = 1000 (the default value)."
即超过了fsolve函数的迭代次数限制(1000),该怎么解决呢?

o晴o 发表于 2017-8-26 10:08

{:3_61:}{:3_61:}{:3_61:}{:3_61:}{:3_61:}

2249039642 发表于 2017-11-12 16:49

这个算的是啥问题,我觉得matlab解非线性真心不怎么行
页: [1]
查看完整版本: matlabd的fsolve函数求解方程组