第一次论文研读:2009A
特等奖:
问题一:
针对(一)
代入已给数据;
问题二:
针对(二)
机械惯量=基础惯量+飞轮惯量之和
根据题意:基础惯量=10
飞轮惯量=30、60、120
机械惯量:10
10+30=40
10+60=70
10+60+30=100
10+120=130
10+120+30=160
10+120+60=190
10+120+60+30=220
等效转量惯距=电动机电流控制提供的转矩[-30,30]+机械惯量;
52 -42(舍) 10
12 40
-18 70
-38(舍) 100
问题三:
公式(3)-(9)显然
问题四:
>> x=load('zhuansu.txt');
h=0.01;
M=load('扭矩.txt');
n=load('转速.txt');
m=size(x);
w=2*n*pi/60;
w1=2*514.33*pi/60;
f1=w1*40;
w2=2*513.79*pi/60;
f2=w2*40;
W=(f1+f2)*h/2;
for i=2:m-1
w(i+1)=2*pi*n(i+1)/60;
f(i+1)=M(i+1)*w(i+1);
W=W+(f(i)+f(i+1))*h/2;
end
wr=W;
Wr=-wr
Wr =
-4.9242e+004
>>
问题五:
控制方法一:
假设角速度变化率是连续的:
(16)+(13)=(17)展开整理即可;
由式(11)代入从0-kT时刻,用小时段积分的方法得到(19);
由于小时段内M是不变的,因此整理出式(20);
控制方法二:
假设扭矩的变化率是连续的:
、
问题六(改进):
角速度补偿法:每个时间段的控制电流=原有控制电流+增加的补偿电流(当前角速度与理论角速度的差值);
改建方法一(减小误差,优化控制方法):
补偿电流来源:将每一段电流理想值与实际值的差作为下一时段的补偿电流;
作图x=0:0.1:5;
m=size(x);
w0=50/0.286;
Wr=0;
w=w0/50;
E=0;
for i=1:m-1
w(i)=w0-w*i;
Wr=Wr+(w(i)+w(i-1))/2*0.1*505;
Wz(i)=1/2*52*(w(i)^2-w0^2);
E(i)=-Wr-Wz(i);
e(i)=E(i)/(-Wr);
end
plot(x,E,'K');
J=52;
J0=40;
R=0.286;
w0=50/3.6/R;
M=w0/5*J;
x=0:0.1:5;
y=0.1:0.1:5;
w(1)=w0-M*0.1/J0;
w(2)=(2-J/J0)*w(1)+(J/J0-1)*w0-M*0.1/J0;
for k=3:50
w(k)=(2-J/J0)*w(k-1)+(J/J0-1)*w(k-2)-M *0.1/J0;
end
plot(y,abs(w-(w0-M/J*y)),'r');
clear;
J=52;
J0=40;
R=0.286;
w0=50/3.6/R;
M=w0/5*J;
T=0.1;
t=5;
x=0:T:t;
y=T:T:t;
w(1)=w0-M*T/J0;
w(2)=(1-(J-J0)/J0)*w(1)+(J-J0)/J0*w0-M*T/J0;
for k=3:t/T
w(k)=(1-(J-J0)/J0)*w(k-1)+(J-J0)/J0*w(k-2)-M*T/J0;
end
for k=1:t/T
E(k)=(w0/2+sum(w(1:k))-w(k)/2)*T*M;
Q(k)=J*(w0*w0-w(k)*w(k))/2;
F(k)=(E(k)-Q(k));
f(k)=(E(k)-Q(k))/Q(k)*100;
end
plot(y,abs(F),'+')
pause;
plot(y,abs(f),'+')
改进方法二:
clear;
J=52;
J0=40;
R=0.286;
w0=50/3.6/R;
M=w0/5*J;
T=0.1;
t=5;
x=0:T:t;
y=T:T:t;
w(1)=w0-M*T/J0;
for k=2:t/T
w(k)=w(k-1)-T/J*M
end
plot(y,abs(w-(w0-M/J*y)),'b*-')
clear;
J=52;
J0=40;
R=0.286;
w0=50/3.6/R;
M=w0/5*J;
T=0.1;
t=5;
x=0:T:t;
y=T:T:t;
w(1)=w0-M*T/J0;
for k=2:t/T
w(k)=w(k-1)-T/J*M
end
for k=1:t/T
E(k)=(w0/2+sum(w(1:k))-w(k)/2)*T*M;
Q(k)=J*(w0*w0-w(k)*w(k))/2;
F(k)=(E(k)-Q(k));
f(k)=(E(k)-Q(k))/Q(k)*100;
end
plot(y,-F,'o')
pause;
plot(y,-f,'o')
clear;
J=48;%等效转矩
J0=35;%机械转矩
%R=0.286;
w0=514*2*pi/60;%初始转速
Mz=load('扭矩.txt');%扭矩变化情况
Mz(1)=[];
Mz=Mz';
T=0.01;%时间间隔
t=length(Mz)*T;%最后一个时刻
x=0:T:t;%所有时刻,那0对应的时刻在哪里
y=T:T:t;%所要计算的时刻
z=1:10:t/T; %取每个0.1的点
Me(1)=0;%第一阶段的修正量为0,Me应该是修正量
%Mz=w0/5*J*ones(1,t/T);
w(1)=w0+T/J0*(-Mz(1)+Me(1));%第一阶段未有引入修正量
wh(1)=w(1);
wl(1)=w(1);
Me(2)=(2*J0/J-1)*Mz(1)-J0/T*(w(1)-w0);%第二个阶段修正后的转矩
w(2)=w(1)+T/J0*(-Mz(2)+Me(2));
wh(2)=wh(1)-Mz(2)*T/J;
wl(2)=wl(1)-Mz(2)*T/J0;
for k=3:t/T
wh(k)=wh(k-1)-Mz(k)*T/J;
wl(k)=wl(k-1)-Mz(k)*T/J0;
Me(k)=-(2*J0/J-1)*Mz(k-1)-J0/T*(w(k-1)-w(k-2));
w(k)=w(k-1)+T/J0*(-Mz(k)+Me(k));
%Me(k+1)=(2*J0/J-1)*Mz(k)-J0/T*(w(k)-w(k-1));
end
plot(y(z),wh(z),'-')
hold on
plot(y(z),wl(z),'-.')
plot(y(z),w(z),'+')
%sum(w'.*Mz)/100
value=Mz.*w;
result=(-value(1)/2+sum(value)-value(length(value))/2)/100
pause;
hold off;
plot(y,w-wh,'b*');
pause;
value=Mz.*w;
for k=1:t/T
E(k)=(sum(value(1:k)))*T;
Q(k)=J*(w0*w0-w(k)*w(k))/2;
F(k)=(E(k)-Q(k));
f(k)=(E(k)-Q(k))/Q(k)*100;
end
plot(y,F,'*')
pause;
plot(y(10:467),abs(f(10:467)),'-')
x=load('zhuansu.txt');
q=[];
q1=[];
q2=[];
w0=0;
w(1)=514*2*pi/60;
mc(2)=0;
w(2)=w(1)+0.01/35*(mc(2)-x(2,1));
mc(3)=(2*35/48-1)*x(2,1)-35*(w(2)-w(1))/0.01;
w(3)=w(2)+0.01/35*(mc(3)-x(3,1));
for i=4:468
mc(i)=-(2*35/48-1)*x(i-1,1)-35*(w(i-1)-w(i-2))/0.01;
w(i)=w(i-1)+0.01/35*(mc(i)-x(i,1));
end
for i=2:468
w1=0.5*48*(w(i)^2-w(1)^2);
q1=[q1;w1];
w0=w0+x(i,1)*w(i)*0.01;
q=[q;w0];
q2=[q2;(w0+w1)/w1];
end
for i=1:467
y(i)=i/100;
end
for i=1:10:467
y1(i)=i/100;
end
plot(y(50:467),abs(q2(50:467)*100),'b');
hold on
q=[];
q1=[];
q2=[];
q3=[];
w0=0;
f=0;
w(1)=514*2*pi/60;
mc(2)=0;
w(2)=w(1)+0.01/35*(mc(2)-x(2,1));
mc(3)=-(35/48-1)*x(2,1)+(48*(w(1)^2-w(2)^2)/2-x(2,1)*w(2)*0.01)/w(2)/0.01;
w(3)=w(2)+0.01/35*(mc(3)-x(3,1));
for i=4:468
f=0;
for n=2:i-1
f=f+x(n,1)*w(n);
end
mc(i)=-(35/48-1)*x(i-1,1)+(48*(w(1)^2-w(i-1)^2)/2-f*0.01)/w(i-1)/0.01;
w(i)=w(i-1)+0.01/35*(mc(i)-x(i,1));
end
for i=2:468
w1=0.5*48*(w(i)^2-w(1)^2);
q1=[q1;w1];
w0=w0+x(i,1)*w(i)*0.01;
q=[q;w0];
q3=[q3;(w0+w1)];
q2=[q2;(w0+w1)/w1];
end
for i=1:467
y(i)=i/100;
end
for i=1:10:467
y1(i)=i/100;
end
plot(y(10:467),abs(q2(10:467))*100,'b*')
5号论文:
电动机驱动电流调控:
制动器试验台的机械惯量+电动机提供的电惯量=路试上等效的转动惯量(以此来模拟路试的制动过程);
建立在理想状态下的制动器试验台系统的动力学模型;
扭矩的概念:在电动机中,力矩、扭矩和转矩是同一个意思;
模型准备:倒公式;
令t1=t2,
将上式代入
得到
—不需要电动机补偿电惯量情况下的机械惯量(即等效的转动惯量)
—需要电动机补偿电惯量情况下的机械惯量。
问题一(能量守恒定律):
简化问题,将制动时,单个前轮所受的载荷=车身对车轮的的垂直重力;
汽车的动能=汽车平移质量运动的能量+旋转机件旋转时所贮藏的动能;
汽车车桥(又称车轴)通过悬架与车架(或承载式车身)相连接,其两端安装车轮。作用:传递车架(或承载式车身)与车轮之间的各种作用力及其力矩。
问题二:
推算出转动惯量计算公式:
算出三个飞轮各自的惯量:
排列组合的方法推算机械惯量(机械惯量=基础惯量+飞轮惯量之和):
已知第一问的等效的转动惯量:52,考虑补偿范围[-30,30];
注意:负号代表发动机对主轴做负功;
环形的质量:
取任一半径为r,宽度为dr的薄圆环。它的转动惯量由物理中的定义得到:
+ =
由排列组合原理得知,机械惯量的组合有四类:
1仅仅包含基础惯量;
2基础惯量和任意一个飞轮的转动惯量之和;
3基础惯量和任意两个飞轮的转动惯量之和;
4基础惯量和三个飞轮的转动惯量之和。
即机械惯量的组合个数:
机械惯量:10
10+30=40
10+60=70
10+60+30=100
10+120=130
10+120+30=160
10+120+60=190
10+120+60+30=220
等效转量惯距=电动机电流控制提供的转矩[-30,30]+机械惯量;
52 -42(舍) 10
12 40
-18 70
-38(舍) 100
问题三:
第一部分(建立电动机驱动电流依赖于可观测量的数学模型):
当机械惯量=等效惯量时,电动机的驱动电流为0;
当两者不等时,
建立由可观测得到的瞬时扭矩推算下一时刻电动机驱动电流的模型
为减少误差,在建模过程中求角加速度时采用的是设定时间间隔的平均角加速度;
驱动电流的计算(制动减速度是常数 制动力矩是恒定的):
负号表示电流提供制动性质的扭矩;
根据时刻与时刻的扭矩预测出的瞬时扭矩,从而得到时刻的加速度(即时刻与时刻的平均加速度):
将上式代入 ,可以得到,
第二部分(理想状态下计算驱动电流即假设制动时为匀减速运动,与路试相符):
由于角加速度是恒定值,所以:
代入数据,
由式子,
电动机产生的扭矩:
—不需要电动机补偿电惯量情况下的机械惯量(即等效的转动惯量)
—需要电动机补偿电惯量情况下的机械惯量。
—制动器的制动力矩
试验台采用的电动机驱动电流与其产生的扭矩成正比;
电动机提供的驱动电流的大小:
(这种分析比较清晰)
(1)当等效的转动惯量,机械惯量时,驱动电流的大小是
这意味着电动机产生的是正向电流,为飞轮等试验装置提供拖力,从而补偿由于机械惯量不足而缺少的能量。
(2)当等效的转动惯量,机械惯量时,驱动电流的大小是
这意味着电动机产生的是反向电流,为飞轮等试验装置提供阻力,从而减小由于机械惯量过大而过多的能量。
问题四(对方法的执行效果进行评价):
在计算机控制方法(确定重要指标):能量误差 相对误差
计算机控制方法:
以为时间步长,将制动时间离散化为许多小的时间段;
将能量离散化来计算,即分别计算出每个时间段消耗的能量;
取所有时间段的能量之和作为实验台上制动器消耗的总能量。
能量误差:
设计的路试时的制动器在制动过程中消耗的能量-相对应的实验台上制动器在制动过程中消耗的能量:
路试时的制动器在制动过程中消耗的能量:
相对应的实验台上制动器在制动过程中消耗的能量:
(能量离散化)
用MATLAB编程结合excel中的数据可得:
>> M=load('扭矩.txt');
n=load('转速.txt');
W1=0.5*48*((514.33*2*pi/60)^2-(257.17*2*pi/60)^2);
W2=(2*514.33*pi/60+2*513.79*pi/60)/2*(40+40)/2*0.01;
for i=2:468
W2=W2+(M(i-1)+M(i))/2*(n(i-1)*2*pi/60+n(i)*2*pi/60)/2*0.01;
end
W2
E=abs(W2-W1)
K=E/W1
W2 =
4.9264e+004
E =
2.9527e+003
K =
0.0565
>>
问题五(根据前一个时间段观测的瞬时转速或瞬时扭矩设计本时段电流值的控制方法):
采用问题四中所给出的瞬时扭矩,以同样的时间间隔(即时间步长),计算出每一时段所需输入的电流值;
取相同时间间隔内的转速(连续数据离散化);
clc;
a=load('zhuansu.txt');
m=a(:,1);
w(1)=514.33*2*pi/60;
for n=1:468
if n==1
I(n)=1.5*m(1)*(48-35); 公式少除了48;
else
I(n)=1.5*(3*m(n)-m(n-1))/2/48*(48-35);
w(n)=w(n-1)-((m(n-1)+m(n))/2-I(n-1))/35*0.01;
y(n-1)=I(n-1)/1.5*(w(n-1)+w(n))/2*0.01;
end
end
L=0.5*48*((514/60*2*pi)^2-(257/60*2*pi)^2);
P=0.5*35*((514.33/60*2*pi)^2-(257.16/60*2*pi)^2); 似乎在模拟误差;
I;
abs(sum(y)+P-L)
ans =
750.9532 运行结果不负
相对误差:
问题六:
完善计算机控制方法:
将驱动电流的控制频率提高到可观测量测试频率的两倍(即为问题五中的两倍),从而减少产生的能量误差;
a=load('zhuansu.txt');
b(1:2:935,1)=a(1:468,1); %将b中的奇数行按顺序附上excel中扭矩的值
for h=1:467
if h==1
b(2,1)=(a(1,1)+a(2,1))/2; %使b中的第二行的值为(M1+M2)/2
else
b(2*h,1)=(3*a(h,1)-a(h-1,1))/2;%将b中的偶数行按顺序附上(3M(h)-M(h-1))/2即问题三中的导出公式
end
end
m=b;
w(1)=514.33*2*pi/60;
w(2)=513.92*2*pi/60;
for n=1:935
if n<3
I(n)=1.5*m(1)*(48-35); %与公式不合 少除了个J0
else
I(n)=1.5*(3*m(n)-m(n-1))/2/48*(48-35); %求I(n)时刻的电流值
w(n)=w(n-1)-((m(n-1)+m(n))/2-I(n-1))/35*0.005;%此处(m(n-1)+m(n))/2-I(n-1)不知公式来源
y(n-1)=I(n-1)/1.5*(w(n-1)+w(n))/2*0.005;%理论上是求解能量W,公式似乎源于问题四的最后一个公式,但I(n-1)/1.5此部分不符
end
end
I
L=0.5*48*((514/60*2*pi)^2-(257/60*2*pi)^2);
P=0.5*35*((514.33/60*2*pi)^2-(257.16/60*2*pi)^2);%似乎在用整数求解和小数求解中估算误差,以用于计算,但在论文中没有相应思想的体现
abs(sum(y)+P-L)
wi=sum(y)
L
P
ans =
560.8784
wi =
1.4636e+004
L =
5.2150e+004
P =
3.8076e+004
相对误差:
本文亮点,但没有实际应用,只是空壳子;
进一步改进(模糊自整定PID控制)模型评价:
模糊自整定PID控制
主要优点:稳定性高;
被控制量:w;
控制量:控制变频器输出频率的变化量设定值为理想条件制动轴的转速;
PID控制器的输入:计算得到的转速与理想制动轴的差值e;
转速插值的变化率ec;
PID控制器的输出:变频器的调节频率的变化量u;
主要控制算法: