请问我这个程序出现‘带有下标的赋值维度不匹配’的问题该怎么解决 - 爱问答

(爱问答)

请问我这个程序出现‘带有下标的赋值维度不匹配’的问题该怎么解决

% The model parameters are from Ref.[130]

close all

clear all

clc

tic

%the model parameters

N=2; % number of teeth

Kt=6e8; % tangential cutting force coefficient (N/m^2)

Kn=2e8; % normal cutting force coefficient (N/m^2)

w0=922*2*pi; % angular natural frequency (rad/s)

zeta=0.011; % relative damping (1)

m_t=0.03993; % mass (kg)

aD=0.1; % radial immersion ratio a/D

up_or_down=-1; % 1:up-milling, -1:down-milling

if up_or_down==1 % up-milling

fist=0; % start angle

fiex=acos(1-2*aD); % exit angle

elseif up_or_down==-1 % down-milling

fist=acos(2*aD-1); % start angle

fiex=pi; % exit angle

end

stx=200; % steps of spindle speed

sty=100; % steps of depth of cut

w_st=0e-3; % starting depth of cut (m)

w_fi=10e-3; % final depth of cut (m)

o_st=5e3; % starting spindle speed (m)

o_fi=25e3; % final spindle speed (rpm)

RVA=0.05; % RVA

RVF=0.1; % RVF

k=40*N/RVF; % number of discretization interval over one period

syms t

for i=1:k

c_i=k/(2*pi)*quadl('sin',(i-1)*2*pi/k,(i)*2*pi/k); % Eq. (3-26)

m(i)=floor(k*RVF*(1-RVA*c_i)/N+0.5); % Eq. (3-24)

wb(i)=k*RVF*(1-RVA*c_i)/N+0.5-m(i); % Eq. (3-27)

wa(i)=m(i)+0.5-k*RVF*(1-RVA*c_i)/N; % Eq. (3-27)

end

% the computational parameters

M=max(m); % Eq. (3-4)

D=zeros(3*M+6,3*M+6); % matrix D

d=ones(3*M+3,1);

d(1:6)=0;

D=D+diag(d,-3);

D(7,1)=1;

D(8,2)=1;

D(9,3)=1;

% discretization of the specific cutting force coefficient h(t)

for i=1:k+1

hxx(i)=0;

hxy(i)=0;

hxz(i)=0;

hyx(i)=0;

hyy(i)=0;

hyz(i)=0;

hzx(i)=0;

hzy(i)=0;

hzz(i)=0;

u(i)=2*pi/60*(i*60/k/RVF+60*RVA/(RVF*2*pi)*(1-cos(i*2*pi/k)));

for j=1:N % loop for tooth j

fi(j)=u(i)+(j-1)*2*pi/N; % Eq.(3-6)

fi(j)=mod(fi(j),2*pi);

if (fi(j)>=fist)*(fi(j)<=fiex)

g=1; % tooth is in the cut

else

g=0; % tooth is out of cut

end

hxx(i)=hxx(i)+g*(Kt*cos(fi(j))+Kn*sin(fi(j)))*sin(fi(j));

hxy(i)=hxy(i)+g*(Kt*cos(fi(j))+Kn*sin(fi(j)))*cos(fi(j));

hxz(i)=hxz(i)+g*(-Kt*sin(fi(j))+Kn*cos(fi(j)))*sin(fi(j));

hyx(i)=hyx(i)+g*(-Kt*sin(fi(j))+Kn*cos(fi(j)))*cos(fi(j));

hyy(i)=hyy(i)+g*(Kt*cos(fi(j))+Kn*sin(fi(j)))*sin(fi(j));

hyz(i)=hyz(i)+g*(Kt*cos(fi(j))+Kn*sin(fi(j)))*cos(fi(j));

hzx(i)=hzx(i)+g*(-Kt*sin(fi(j))+Kn*cos(fi(j)))*sin(fi(j));

hzy(i)=hzy(i)+g*(-Kt*sin(fi(j))+Kn*cos(fi(j)))*cos(fi(j));

hzz(i)=hzz(i)+g*(-Kt*sin(fi(j))+Kn*cos(fi(j)))*cos(fi(j));

end

end

A=zeros(9,9);

A(1,1)=-zeta*w0;

A(1,4)=1/m_t;

A(1,7)=2/m_t;

A(2,2)=-zeta*w0;

A(2,5)=1/m_t;

A(2,8)=3/m_t;

A(3,3)=2*m_t*w0^2*(zeta^2-1);

A(3,6)=zeta*w0;

A(3,9)=3*m_t*w0^2*(zeta^2-1);

A(4,1)=m_t*w0^2*(zeta^2-1);

A(4,4)=-zeta*w0;

A(4,7)=-2*zeta*w0;

A(5,2)=zeta*w0;

A(5,5)=2/m_t;

A(5,8)=5/m_t;

A(6,3)=-zeta*w0;

A(6,6)=1/m_t;

A(6,9)=8/m_t;

A(7,1)=3*m_t*w0^2*(zeta^2-1);

A(7,4)=-zeta*w0;

A(7,7)=2*zeta*w0;

A(8,2)=3*zeta*w0;

A(8,5)=7/m_t;

A(8,8)=6/m_t;

A(9,3)=2*zeta*w0;

A(9,6)=2/m_t;

A(9,9)=5/m_t;

I=eye(size(A));

invA=inv(A); % invA=(A_0)^(-1)

% start of computation

for x=1:stx+1 % sweeping spindle speeds

o=o_st+(x-1)*(o_fi-o_st)/stx; % the spindle speed W

T=60/RVF/o; % time period T

dt=T/k; % time step Dt

% the end of calculation of F_0, F_1, F_2, F_3

Fi0=expm(A*dt); % F_0 in Eq. (3-10)

Fi1=invA*(Fi0-I); % F_1 in Eq. (3-10)

Fi2=invA*(Fi1-dt*I); % F_2 in Eq. (3-10)

Fi3=invA*(2*Fi2-dt*dt*I); % F_3 in Eq. (3-10)

for y=1:sty+1 % sweeping depth of cuts

w=w_st+(y-1)*(w_fi-w_st)/sty; % the depth of cut w

Fi=eye(3*M+6,3*M+6); % construct transition matrix Fi

for i=1:k

    B0i=[0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;-w*hxx(i),-w*hxy(i),-w*hxz(i),0,0,0,0,0,0;-w*hyx(i),-w*hyy(i),-w*hyz(i),0,0,0,0,0,0;-w*hzx(i),-w*hzy(i),-w*hzz(i),0,0,0,0,0,0];

    B1i=[0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,0;-w*hxx(i),-w*hxy(i),-2*w*hxz(i),0,0,0,0,0,0;-w*hyx(i),-3*w*hyy(i),-w*hyz(i),0,0,0,0,0,0;-w*hzx(i),-w*hzy(i),-w*hzz(i),0,0,0,0,0,0];

F_i=(Fi1-2*Fi2/dt+Fi3/dt^2)*B0i+...

(Fi2/dt-Fi3/dt^2)*B1i; % F_i in Eq. (3-9)

P_i=(Fi2/dt-Fi3/dt^2)*B0i+...

(Fi3/dt^2)*B1i; % P_i in Eq. (3-9)

R_i=(Fi1-Fi2/dt)*B0i+(Fi2/dt)*B1i; % R_i in Eq. (3-9)

Hi1=inv(I-P_i);

D(1:6,1:6)= Hi1*(Fi0+F_i); % Eq.(3-12)

D(1:6,(3*m(i)+1):(3*m(i)+2),(3*m(i)+3):(3*m(i)+4))=-Hi1*wa(i)*R_i(1:6,1:3);

D(1:6,(3*m(i)+5):(3*m(i)+6),(3*m(i)+7):(3*m(i)+8))=-Hi1*wb(i)*R_i(1:6,1:3);

Fi=D*Fi;

D(1:6,(3*m(i)+1):(3*m(i)+2),(3*m(i)+3):(3*m(i)+4))=0';

D(1:6,(3*m(i)+5):(3*m(i)+6),(3*m(i)+7):(3*m(i)+8))=0';

end

ss(x,y)=o; % matrix of spindle speeds

dc(x,y)=w; % matrix of depth of cuts

ei(x,y)=max(abs(eig(Fi))); % matrix of eigenvalues

end % End of sweeping depth of cuts

stx+1-x

end % End of sweeping spindle speeds

% the end of the proposed mtheod

toc

figure;

contour(ss/10^3,dc/10^(-3),ei,[1,1],'b'),xlabel('Omega_0(Krpm)'),ylabel('w(mm)')


这里的代码非常混乱,算了半天,没看出矩阵D的作用,而且结果ss,dc,ei都是一个数值,怎么能画图呢?请提供相关文献以及源代码出处。

下一篇:为什么神州K650D打开荒野行动会出现D3D错误

上一篇:问题显示不出来

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?