|
- clear
- load Injection_data.mat
- % avgi_j 表示第i个转速注入第j个误差
- % 位置误差+3,+2,+1,0,-1,-2,-3
- % 转速300,450,600,750,900,1050
- % avg(i,1):Id' avg(i,2):Iq' avg(i,3):w机械 avg(i,7):Vd avg(i,8):Vq avg(i,9):位置角
- % avg(i,10):1/3或者1/5*T(存疑) avg(i,13):Id avg(i,14):Iq avg(i,15):误差角
- % is为25,50,80,120
- % 电位角1:2:39
- format long
-
- ro=1/60*4*2*pi;
-
- % GMA=atan(abs(avg1(:,1))./avg1(:,2));
- % for ii=1:length(GMA)
- % gamma=GMA(ii);
- % theta=0:2*0.001:2*pi;
- % mode=fix(6*(theta+gamma+pi/6)/pi/2);
- % angle=theta-mode*pi/3;
- % Dd=(2*sin(angle));
- % Dq=(2*cos(angle));
- % Tmd(ii)=mean(Dd); % DD
- % Tmq(ii)=mean(Dq); % DQ
- % end
-
-
- low=cat(3,avg1_1,avg1_2,avg1_3,avg1_4,avg1_5,avg1_6,avg1_7,avg2_1,avg2_2,avg2_3,avg2_4,avg2_5,avg2_6,avg2_7);
- medium=cat(3,avg3_1,avg3_2,avg3_3,avg3_4,avg3_5,avg3_6,avg3_7,avg4_1,avg4_2,avg4_3,avg4_4,avg4_5,avg4_6,avg4_7);
- high=cat(3,avg5_1,avg5_2,avg5_3,avg5_4,avg5_5,avg5_6,avg5_7,avg6_1,avg6_2,avg6_3,avg6_4,avg6_5,avg6_6,avg6_7);
-
- low3=low(:,:,[1,7,8,14]);
- low2=low(:,:,[2,6,9,13]);
- low1=low(:,:,[3,5,10,12]);
- low=low(:,:,[4,11]);
-
- medium3=medium(:,:,[1,7,8,14]);
- medium2=medium(:,:,[2,6,9,13]);
- medium1=medium(:,:,[3,5,10,12]);
- medium=medium(:,:,[4,11]);
-
- high3=high(:,:,[1,7,8,14]);
- high2=high(:,:,[2,6,9,13]);
- high1=high(:,:,[3,5,10,12]);
- high=high(:,:,[4,11]);
-
- is=[25;50;80;120];
- g=(1:2:39)'*pi/180;
-
- %% method1
-
- e=3*pi/180;
- T=[cos(e) sin(e);-sin(e) cos(e)];
-
- Ud_p=high3(:,7,1);
- Ud_n=high3(:,7,2);
- Uq_p=high3(:,8,1);
- Uq_n=high3(:,8,2);
- id_p=high3(:,13,1);
- id_n=high3(:,13,2);
- iq_p=high3(:,14,1);
- iq_n=high3(:,14,2);
- w_l=(high3(:,3,1)+high3(:,3,2))/2;
-
- A=(Uq_p-Uq_n).*(id_p+id_n)./(iq_p+iq_n);
- B=Ud_p-Ud_n+A;
-
- Ud_p1=high3(:,7,3);
- Ud_n1=high3(:,7,4);
- Uq_p1=high3(:,8,3);
- Uq_n1=high3(:,8,4);
- id_p1=high3(:,13,3);
- id_n1=high3(:,13,4);
- iq_p1=high3(:,14,3);
- iq_n1=high3(:,14,4);
- w_l1=(high3(:,3,3)+high3(:,3,4))/2;
-
- A1=(Uq_p1-Uq_n1).*(id_p1+id_n1)./(iq_p1+iq_n1);
- B1=Ud_p1-Ud_n1+A1;
-
- Ud_p2=medium3(:,7,1);
- Ud_n2=medium3(:,7,2);
- Uq_p2=medium3(:,8,1);
- Uq_n2=medium3(:,8,2);
- id_p2=medium3(:,13,1);
- id_n2=medium3(:,13,2);
- iq_p2=medium3(:,14,1);
- iq_n2=medium3(:,14,2);
- w_l2=(medium3(:,3,1)+medium3(:,3,2))/2;
-
- A2=(Uq_p2-Uq_n2).*(id_p2+id_n2)./(iq_p2+iq_n2);
- B2=Ud_p2-Ud_n2+A2;
-
- Ud_p3=medium3(:,7,3);
- Ud_n3=medium3(:,7,4);
- Uq_p3=medium3(:,8,3);
- Uq_n3=medium3(:,8,4);
- id_p3=medium3(:,13,3);
- id_n3=medium3(:,13,4);
- iq_p3=medium3(:,14,3);
- iq_n3=medium3(:,14,4);
- w_l3=(medium3(:,3,3)+medium3(:,3,4))/2;
-
- A3=(Uq_p3-Uq_n3).*(id_p3+id_n3)./(iq_p3+iq_n3);
- B3=Ud_p3-Ud_n3+A3;
-
- Ud_p4=low3(:,7,1);
- Ud_n4=low3(:,7,2);
- Uq_p4=low3(:,8,1);
- Uq_n4=low3(:,8,2);
- id_p4=low3(:,13,1);
- id_n4=low3(:,13,2);
- iq_p4=low3(:,14,1);
- iq_n4=low3(:,14,2);
- w_l4=(low3(:,3,1)+low3(:,3,2))/2;
-
- A4=(Uq_p4-Uq_n4).*(id_p4+id_n4)./(iq_p4+iq_n4);
- B4=Ud_p4-Ud_n4+A4;
-
- Ud_p5=low3(:,7,3);
- Ud_n5=low3(:,7,4);
- Uq_p5=low3(:,8,3);
- Uq_n5=low3(:,8,4);
- id_p5=low3(:,13,3);
- id_n5=low3(:,13,4);
- iq_p5=low3(:,14,3);
- iq_n5=low3(:,14,4);
- w_l5=(low3(:,3,3)+low3(:,3,4))/2;
-
- A5=(Uq_p5-Uq_n5).*(id_p5+id_n5)./(iq_p5+iq_n5);
- B5=Ud_p5-Ud_n5+A5;
-
- l=(B1-B)./(2*(w_l1-w_l)*ro*sin(e));
- L=mean(l);
- % L1=mean(l(40:80));
-
- l1=(B-B3)./(2*(w_l-w_l3)*ro*sin(e));
- L1=mean(l1);
- % L3=mean(l1(40:80));
-
- l2=(B3-B2)./(2*(w_l3-w_l2)*ro*sin(e));
- L2=mean(l2);
- % L5=mean(l2(40:80));
-
- l3=(B2-B5)./(2*(w_l2-w_l5)*ro*sin(e));
- L3=mean(l3);
- % L7=mean(l3(40:80));
-
- l4=(B5-B4)./(2*(w_l5-w_l4)*ro*sin(e));
- L4=mean(l4);
- % L9=mean(l4(40:80));
-
- % phi=2*(w_l1-w_l)*ro*sin(e);
- % Y=B1-B;
- % l=(phi'*phi)^-1*phi'*Y;
-
- % id=zeros(80,1);
- % iq=zeros(80,1);
- % for i=1:4
- % id=id+high3(:,1,i);
- % iq=iq+high3(:,2,i);
- % end
- % id=id/4;
- % iq=iq/4;
- % i=(iq_p+iq_n+iq_p1+iq_n1)/2;
- %
- % A=Uq_p-Uq_n;
- % A1=Uq_p1-Uq_n1;
- % Y=A1-A;
- % phi=-(w_l1-w_l)*sin(e).*i.*[ones(80,1) id iq id.*id id.*iq iq.*iq];
- % deta_L=(phi'*phi)^-1*phi'*Y;
- %
- % avg=[avg1_4;avg2_4;avg3_4;avg4_4;avg5_4;avg6_4];
- % Te1=[];
- % for i=1:6
- % lambda=L1;
- % Iq=avg((i-1)*80+1:i*80,2);
- % Id=avg((i-1)*80+1:i*80,1);
- % delta_L=[ones(80,1) Id Iq Id.*Id Id.*Iq Iq.*Iq]*deta_L;
- % Te1=[Te1;1.5*4*(lambda.*Iq+delta_L.*Id.*Iq)];
- % end
-
- % x=[1:480];
- % plot(x',3*avg(:,10),'r');
- % hold on
- % plot(x',Te1,'black');
-
-
- % 角度越大,速度大的估计越准
-
- %% method2
-
- % e=2*pi/180;
- % T=[cos(e) sin(e);-sin(e) cos(e)];
- %
- % Ud_p=high2(:,7,1);
- % Ud_n=high2(:,7,2);
- % Uq_p=high2(:,8,1);
- % Uq_n=high2(:,8,2);
- % Ud_z=high(:,7,1);
- % Uq_z=high(:,8,1);
- % id_p=high2(:,13,1);
- % id_n=high2(:,13,2);
- % iq_p=high2(:,14,1);
- % iq_n=high2(:,14,2);
- % w_l=(high2(:,3,1)+high2(:,3,2))/2;
- %
- % A=(Uq_p-Uq_n).*(id_p+id_n)./(iq_p+iq_n);
- % B=Ud_p-Ud_n-A;
- %
- % Ud_p1=high2(:,7,3);
- % Ud_n1=high2(:,7,4);
- % Uq_p1=high2(:,8,3);
- % Uq_n1=high2(:,8,4);
- % id_p1=high2(:,13,3);
- % id_n1=high2(:,13,4);
- % iq_p1=high2(:,14,3);
- % iq_n1=high2(:,14,4);
- % w_l1=(high2(:,3,3)+high2(:,3,4))/2;
- %
- % A1=(Uq_p1-Uq_n1).*(id_p1+id_n1)./(iq_p1+iq_n1);
- % B1=Ud_p1-Ud_n1-A1;
- %
- % l=(B1-B)./(2*(w_l1-w_l)*ro*sin(e));
- % L=mean(l(40:80));
-
-
-
- %% 之前的方法
-
- % ro=1/60*4*2*pi;
- % avg=[avg1_4;avg2_4;avg3_4;avg4_4;avg5_4;avg6_4];
- %
- %
- % GMA=atan(abs(avg1_4(:,1))./avg1_4(:,2));
- % for ii=1:length(GMA)
- % gamma=GMA(ii);
- % theta=0:2*0.001:2*pi;
- % mode=fix(6*(theta+gamma+pi/6)/pi/2);
- % angle=theta-mode*pi/3;
- % Dd=(2*sin(angle));
- % Dq=(2*cos(angle));
- % Tmd(ii)=mean(Dd); % DD
- % Tmq(ii)=mean(Dq); % DQ
- % end
- %
- % X1=[];
- % for i=1:80
- % Phi1=[];Y1=[];
- % for j=1:6
- % k=(j-1)*80+i;
- % Phi1=[Phi1;1 0 -avg(k,3)*ro 0;0 1 0 avg(k,3)*ro];
- % Y1=[Y1;avg(k,7);avg(k,8)];
- % end
- % X1(:,i)=(Phi1'*Phi1)^-1*Phi1'*Y1;
- % end
- %
- % Phi2=[];Y2=[];
- % for i=1:80
- % Phi2=[Phi2;avg1_4(i,1) Tmd(1,i);avg(i,2) Tmq(1,i)];
- % Y2=[Y2;X1(1,i);X1(2,i)];
- % end
- % X2=(Phi2'*Phi2)^-1*Phi2'*Y2; % R0和Vdead
- %
- % Phi3=[];Y3=[];
- % for i=1:80
- % Phi3=[Phi3;avg1_4(i,2) avg1_4(i,2)*avg1_4(i,1) avg1_4(i,2)^2 avg1_4(i,1)^2*avg1_4(i,2) avg1_4(i,2)^3 avg1_4(i,2)^2*avg1_4(i,1)];
- % Y3=[Y3;X1(3,i)];
- % end
- % X3=(Phi3'*Phi3)^-1*Phi3'*Y3; % Lq的参数
- %
- % Phi4=[];Y4=[];
- % for i=1:80
- % Phi4=[Phi4;avg1_4(i,1) avg1_4(i,1)^2 avg1_4(i,1)*avg1_4(i,2) avg1_4(i,1)^3 avg1_4(i,2)^2*avg1_4(i,1) avg1_4(i,1)^2*avg1_4(i,2) 1];
- % Y4=[Y4;X1(4,i)];
- % end
- % X4=(Phi4'*Phi4)^-1*Phi4'*Y4; % Ld的参数和lambda0
- %
- % Te1=[];
- % for i=1:6
- % lambda=X4(7,1);
- % Iq=avg((i-1)*80+1:i*80,2);
- % Id=avg((i-1)*80+1:i*80,1);
- % Ld=[ones(80,1) Id Iq Id.*Id Iq.*Iq Id.*Iq]*X4(1:6,1);
- % Lq=[ones(80,1) Id Iq Id.*Id Iq.*Iq Id.*Iq]*X3(:,1);
- % Te1=[Te1;1.5*4*(lambda.*Iq+(Ld-Lq).*Id.*Iq)];
- % end
- %
- % x=[1:480];
- % plot(x',3*avg(:,10),'r');
- % hold on
- % plot(x',Te1,'black');
|