1曲柄连杆结构参数识别Word格式.docx
《1曲柄连杆结构参数识别Word格式.docx》由会员分享,可在线阅读,更多相关《1曲柄连杆结构参数识别Word格式.docx(16页珍藏版)》请在冰点文库上搜索。
2d(p
分为旋转和往复惯性扭矩两局部;
往复惯性扭矩
巧(卩)=加尸/(卩廿(炉切+g@〞2
旋转惯性扭矩
单缸发动机气力扭矩如下
Tp©
)=pMApRf((p)
对于N缸发动机按照发火相位的总和气力扭矩
S=A誹土@)/(卩-孤)]
2
惯性扭矩为
7;
(卩)=“尸工酚@一卩J+卩2g(e-0j]/(e-©
J}
1
其中如=年依-1),人〞为转动局部惯量。
根据扭矩平衡关系得到
J(^)=Te^)=TP-Tr-TL-Tf(6)
其中摩擦扭损失圧力
从而得岀摩擦扭矩为
=上5*tfinep*A〞*/?
*f〔〔p〕
将上面儿个式子带入〔6〕
八叫畅+{〃屮・
专=九/^戸%〞@-狹〕]-7—〔7〕
得到二阶转速动力学模型为
&
=6
2L[/〔m-s〕g〔m-s〕]①尺瓦A"
}Mf〔<p一吻〕]一乙一Tf
<x2=x}+〔8〕
y=勺
〔8〕式是一个关于t的非线性二阶微分方程直接求解较为困难,将其转化为关于角度的函数
设e=卩,角域内的e和时域内的0相等,贝〔J
讽/〕=〃呼〕】==欽©
〕〔9〕;
at
沛蝕=如.住=如创〕=丄止迹〔10〕,
dtdtpdtd〔p"
2〔P
令He〕=巩0〕,
把〔10〕,〔9〕带入〔7〕得到一阶非齐次线性微分方程
^-+P〔<p〕x〔<p〕=Q〔〔p〕〔11〕
其中
用matlab求求微分方程表达式
symsoRJLApmTLplp2p3p4y;
f=sin(o)+R*sin(2*o)/(2*(LA2-(R*sin(o))A2)A.5);
fori=l:
4
a(i/:
)=(subs(f,o/o-(i-l)*pi))A2;
end;
fsum=sum(a);
g=diff(f,o);
fori=l:
fg(i/:
)=subs(f,o/o-(i-l)*pi)*subs(g/o/o-(i-l)*pi);
fgsum=sum(馆);
fl=f;
f2=subs(to,o-pi);
P=2*m*RA2*馆sum/(J+m*RA2沐fsum);
Q=2*(Ap*R*((pl+p3)*fl+(p2+p4)*f2)-TL)/(J+m*RA2*fsum);
dyl=Q-P*y;
dyl=((RA2*sin(o)A2-LA2)*(2*TL+y*((-8*m*cos(o)*LA2*RA2*sin(o)+32*m*cos(o)*RA4*sin(o)A3-8*m*cos(o)*RA4*sin(o)+2*J*cos(o)*RA2*sin(o))/(RA2*sin(o)A2-LA2)+(2*RA2*cos(o)*sin(o)*(4*m*LA2*RA2*sin(o)A2+J*LA2-8*m*RA4*sin(o)A4+4*m*RA4*sin(o)A2-j*RA2*sin(o)A2))/(RA2*sin(o)A2-LA2)A2)-2*Ap*R*((pl+p3)*(sin(o)+(R*sin(2*o))/(2*(LA2-RA2*sin(o)A2)A(l/2)))-(p2+p4)*(sin(o)-(R*sin(2*o))/(2*(LA2-RA2*sin(o)A2)A(l/2))))))/(4*m*LA2*RA2*sin(o)A2+J*LA2-8*m*RA4*sin(o)A4+4*m*RA4*sin(o)A2-J*RA2*sin(o)A2)
然后令k(l)=R;
k
(2)=L;
k(3)=Ap;
k(4)=J;
k(5)=m;
k(6)=TL
functiondydo=simMmodel(o,y,k,pl/p2,p3,p4)
dydo=-(2*k(6)・2*k⑶*k(l)*((pl+p3)*(sin(o)+(k(l)*sin(2*o))/(2*(k
(2)A2-k(l)A2*sin(o)A2)A(l/2)))-(p2+p4)*(sin(o)-(k(l)*sin(2*o))/(2*(k
(2)人2・k⑴人2*sin(o)A2)A(〞2)))))/(k(4)・(4*k(l)A2*k(5)*sin(o)A2*(k
(2)A2+cos(2*o)*k(l)A2))/(k(l)A2*sin(o)A2-k
(2)A2)H2*k(l)A2*k(5)*y*(2*k
(2)A4*sin(2*o)+(5*k(l)A4*sin(2*o))/4-k(l)A4*sin(4*o)+(k(l)A4*sin(6*o))/4-2*k
(2)A2*k(l)A2*sin(2*o)+2*k
(2)八2你⑴A2*sin(4*o)))/((k⑴A2*sin(o)A2-k
(2)A2)A2*(k(4H4*k(l)A2*k(5)*sin(o)A2*(k
(2)A2+cos(2*o)*k(l)A2))/(k(l)A2*sin(o)A2-k
(2)A2)));
functionw=cal-speed_value(k/x)
globalplp2p3p4;
y0=(76.9280)A2;
yy=yo;
tspan=x;
fori=l:
length(tspan)-l[t,y]=ode45(@sim_model/[tspan(i)/tspan(i+l)],y0/[]/k,pl(i)/p2(i),p3(i)/p4(i));
yO=y(endz:
);
yy=[yy;
yO];
end
w=yy.A0.5;
用求解微分方程的方法识别曲柄连杆结构参数
真实值:
R=0.0485;
%曲柄半径m
L=0.1410;
%连杆长度m
Ap=O・0058;
劇舌塞【何积mA2
J=0.23;
%转动惯量kg*M2,带负载或者冷启动时,转动惯量稍人-些,到达0.38-0.4m=0.33;
%单个缸往复质量kg
TL=17.8;
%随不同工况变动
1.3.1利用ll8fc据
clear;
data=xlsread(,,);
pdata=data(:
/5:
8);
pll=pdata(203:
400,l);
p22=pdata(203:
400,4);
p33=pdata(203:
400,3);
p44=pdata(203:
400,2);
pl=(pll+31・4346)895e3;
p2=(p22+31・0164)*6.895e3;
p3=(p33+29.3030)丹6・895e3;
p4=(p44+21・1333)*6・895e3;
owdata=data(:
/2:
3);
xdata=(owdata(203:
400,l)-owdata(203))*pi/180;
ydata=owdata(203:
400,2);
lb=[0.02,0.034,0.003,0.15,0.15,10);
ub=[0.1,0.35,0.02,1,2,100];
kO=[400,400,400,400,400,120]"
;
options=optimset(,TolFun,,le-20,,TolX,/le-20/,MaxFunEvalsl/200/,Algorithm,/,trust-reg
ion-reflective'
/Display1,Iter1);
kp=lsqcurvefit(@caLspeed_value,kO,xdata,ydata,lb,ub,options)
kpl=[o.0485;
0.14;
0.0058;
0.25;
0.15;
74]
wl=cal_speed_value(kpl,xdata);
plot(xdata,ydata/r,/xdata/wl,,b,);
1.3.2利用1数据
data=xlsread(1nenorm・xls1);
pdata=data(:
z5:
pll=pdata(363:
363+228-1,1);
p22=pdata(363:
363+228-1,2);
p33=pdata(363:
363+228-1,3);
p44=pdata(363:
363+228-1,4);
pl=(pll+15.8812+14・5)★6・895e3;
p2=(p22+l3・8540+14・5)895e3;
p3=(p33+l
2・7006+14・5)*6・895e3;
p4=(p44+5.7273+14・5)*6・895e3;
owdata=da,ta(:
2:
4);
xdata=(owdata(363:
363+228-1,1)-owdata(363,1))*pi/180;
ydata=owdata(363:
363+228-1,2);
lb=[0.03,0.034,0.003,0.15,0.15,10];
ub=[0.1,0.35,0.02,1,2,40];
kO=[0.04,0.14,0.06,03,03,30];
options=optimset(,TolFun,,le-20z,TolX,/le-20/,MaxFunEvals,/100,,Algorithm,/,trust-region-reflective'
/Display1,^ter1);
kp=lsqcurvefit(@cal_speed_value,kO,xdata/ydata,lb,ub/options)
%
wl=cal_speed_value(kp,xdata);
plotfxdata^data/r^xdata^l/b1);
13.3利用
data=xlsread(,l);
towdata=data(:
/l:
4);
owdata=data(—2:
xdata=(owdata(224:
1000,1)-owdata(224,1))*pi/180;
ydata=owdata(224:
1000,2);
pll=pdata(224:
1000/l);
p22=pdata(224:
1000/2);
p33=pdata(224:
1000/3);
p44=pdata(224:
1000/4);
pl=(pll+l6.4886)*6.895e3;
p2=(p22+14.6024)»
6.895e3;
p3=(p33+13.2834)*6.895e3;
p4=(p44+4.
5723)*6.895e3;
lb=[0.03,
0.034,
0.003,
0.15,
10];
ub=[0.1,
0.35,
乙
1,
2,
40];
z
0.06,
03
0.3,
30];
options=optimset(,TolFun,,le-20/,TolX,/le-20/,MaxFunEvalsI/100,,Algorithm,/,trust-reg
ion-reflective^^isplay1,'
iter1);
kp=lsqcurvefit(@cal_speed_value,kO,xdata/ydata,lb,ub/options)
利用自己改进的扭矩模型进行识别。
1.5finalmodel
Tf采用ofunctiony=Tf_model__nevz211(k,o)
y=(k(l)+k
(2)*sin(o)+k(3)*sin(2*o)+k(4)*sin(3*o)+k(5)*sin(4*o))+k(6)*sin(o)・A2+k(7)*sin(2*o)・A2+k(8)*sin(3*o)・A2+k(9)*sin(4*o)・A2;
functiondydo=sim_model_Tfl(o/y/k/pl/p2/p3/p4)
dydo=-(2*((k(6)+k(7)*sin(o)+k(8)*sin(2*o)+k(9)*sin(3*o)+k(10)*sin(4*o))+k(ll)*sin(o).A2+k(12)*sin(2*o).A2+k(13)*sin(3*o).A2+k(14)*sin(4*o).A2)-2*k(3)*k(l)*((pl+p3)*(sin(o)+(k(l)*sin(2*o))/(2*(k
(2)A2-k(l)A2*sin(o)A2)A(l/2)))-(p2+p4)*(sin(o)-(k(l)*sin(2*o))/(2*(k
(2)A2-k(l)A2*sin(o)A2)A(l/2)))))/(k(4)-(4*k(l)A2*k(5)*sin(o)A2*(k
(2)A2+cos(2*o)*k(l)A2))/(k(l)A2*sin(o)A2-k
(2)A2))-(2*k(l)A2*k(5)*y*(2*k
(2)A4*sin(2*o)+(5*k(l)A4*sin(2*o))A-k(l)A4*sin(4*o)+(k(l)A4*sin(6*o))/4-2*k
(2)A2*k(l)A2*sin(2*o)+2*k
(2)A2*k(l)A2*sin(4*o)))/((k(l)A2*sin(o)A2-k
(2)A2)A2*(k(4H4*k(l)A2*k(5)*sin(o)A2*(k
(2)A2+cos(2*o)*k(l)A2))/(k(l)A2*sin(o)A2-k
(2)A2)));
functionw=cal__speed_value__Tf1(kzx)
giobalplp2p3p4;
y0=(71・6349)A2;
yy=y°
;
fori=1:
length(tspan)-1
[t,y]=ode45(Qsim_mode1_Tf,[tspan(i),tspan(i+1)],yOz[],kzpl(i),p2(i),p3(i)/P4(i));
yO=y(end,:
w=yy・人0・5;
data=xlsread(Ine_norm.xls"
5:
pll=pdata(363:
1000,l);
p33=pdata(363:
1000,3);
p44=pdata(363:
1000,4);
pl=(pll+15.8812)*6.895e3;
p2=(p22+13.8540)*6.895e3;
p3=(p33+12.7006)*6.895e3;
p4=(p44+5.7273)*6.895e3;
2:
1000,l)-owdata(363,l))*pi/180;
ydata=owdata(363:
1000z2);
kO二[0.0485,0.14,0.0058,0.23,0.4,
1,g1,1];
-io,
0.1,
-1A
lb=[0.02,0.034,0.003,0,
o,
-le2,
-le3,
-100,
■100,
-100,-100,-100,-100];
ub=[0.1,0.35,0.026,1,
le2,
le3,
le3
100,
100,100,le2,100];
options=optimset(,TolFun,,le-20z,TolX,/le-20/,MaxFunEvals,,400z,Algorithm,/,trust-region-reflective'
/Display'
'
iter1);
[kpzresnorm]=lsqcurvefit(@cal_speed_value_Tfl/kO,xdata/ydata/lb/
9.19262.73780.3356-0.8043-0.777720.96801.0000];
resnorm=15.6801;
wl=cal_speed_value_Tfl(kp,xdata);
plot(xdata,ydata/r,,xdata/wl/b,);
2只识别J,m两个参数
2・1把Tf当做常数识别(效果不好)
functiondydo=two_para_model(o,y/k/pl/p2,p3/p4)
R=48・5己-3;
%曲柄半径皿
L=141e-3;
Ap=0・0058;
新舌塞【何积mA2
dydo=-(2*k(3)-2*Ap*R*((pl+p3)*(sin(o)+(R*sin(2*o))/(2*(LA2-RA2*sin(o)A2)A(V^))Hp2+p4)*(sin(o)-(R*sin(2*o))/(2*(LA2-RA2*sin(o)A2)A(l/2)))))/(k(l)-(4*RA2*k
(2)*sin(o)A2*(LA2+cos(2*o)*RA2))/(RA2*sin(o)A2-LA2)H2*RA2*k
(2)*y*(2*LA4*sin(2*o)+(5*RA4*sin(2*o))A-RA4*sin(4*o)+(RA4*sin(6*o))A-2*LA2*RA2*sin(2*o)+2*LA2*RA2*sin(4*o)))/((RA2*sin(o)A2-LA2)A2*(k(l)-(4*RA2*k
(2)*sin(o)A2*(LA2+cos(2*o)*RA2))/(RA2*sin(o)A2-LA2)));
functionw=cal_speed_value_two(k,x)
y0=(71.6349)A2;
length(tspa
[t,y]=ode45(@sim-model,[tspan(i)/tspan(i+l)]/y0,[]/k/pl(i),p2(i),p3(i)/p4(i));
y0=y(end,:
y0];
data=xlsread(1ne__norm・xls1);
pdata=data(:
363+228-1,1);
3
63+228-1,3);
pl=(pll+15.8812)895e3;
p2=(p22+l3・8540)*6・895e3;
p3=(p33+12.7006)*6・895e3;
p4=(p44+5・7273)*6・895e3;
k0=[0.3,0.3,30];
lb=[-1,-2,-100];
ub=[l,2,100];
options=optimset(,TolFun,,le-20,,TolX,/le-20/,MaxFunEvals,/100,,Algorithm,/,trust-region-reflective1,'
Display1,^ter1);
kp=lsqcurvefit(@caLspeed_value_two,kO,xdata,ydata,lb,ub,options)wl=cal_speed_value_two(kp,xdata);
plot(xdata/ydata/,r,/xdata/wl,,b,);
方法2・2把Tf用自己所建立的模型(效果也不好)
Tf采用。
functiony=Tf_model_new211(kzo)
y=((k(3)+k(4)*sin(o)+k(5)*sin(2*o)+k(6)*sin(3*o)+k(7)*sin(4*o))+k(8)*sin(o)A2+k(9)*sin(2*o)A2+k(10)*sin(3*o)A2+k(ll)*sin(4*o)A2);
functiondydo=two_para_model_Tf(o,y,kppbp2,p3pp4)
新舌塞【fii积mA2
dydo=-(2*((k(3)+k(4)*sin(o)+k(5)*sin(2*o)+k(6)*sin(3*o)+k(7)*sin(4*o))+k(8)*sin(o)A2+k⑼*sin(2*o)A2+k(10)*sin(3*o)A2+k(ll)*sin(4*o)A2)-2*Ap*R*((pl+p3)*(sin(o)+(R*sin(2*o))/(2*(LA2-RA2*sin(o)A2)A(l/2)))-(p2+p4)*(sin(o)-(R*sin(2*o))/(2*(LA2-RA2*sin(o)A2)A(l/2)))))/(k(l)-(4*RA2*k
(2)*sin(o)A2*(LA2+cos(2*o)*RA2))/(RA2*sin(o)A2-LA2))-(2*RA2*k
(2)*y*(2*LA4*sin(2*o)+(5*RM*sin(2*o))A-RA4*sin(4*o)+(RA4*sin(6*o))A-2*LA2*RA2*sin(2*o)+2*LA2*RA2*sin(4*o)))/((RA2*sin(o)A2-LA2)A2*(k(l)-(4*RA2*k
(2)*sin(o)A2*(LA2+cos(2*o)*RA2))/(RA2*sin(o)A2-LA2)));
functionw=cal_speed_vaIue_two_Tf(k,x)
y