请问一下楼主,是怎么解决的啊,我也有同样的问题
function dcwp = run()
%参数设置
%机械振源激励
Q0=[1,1,1,1,0];
%几何尺寸
lc=0.8;bc=0.3;hc=0.3;ec=2.01e11;miuc=0.3;etac=0.005;pc=7850;
lb=1.0;bb=0.5;hb=0.006;eb=2.01e11;miub=0.3;etab=0.005;pb=7850;
lj=0.045;bj=0.051;hj=0.219;ej=2.254e7;miuj=0.44;etaj=0.47;pj=1103;
%刚体质量
mc=lc*bc*hc*pc;
%刚体转动惯量
Ixx=(mc/12)*(bc^2+hc^2);
Iyy=(mc/12)*(lc^2+hc^2);
Iyx = 0; Ixy = Iyx;
%刚体的质量矩阵
Mc=[mc,0,0,0,0;0,mc,0,0,0;0,0,mc,0,0;0,0,0,Ixx,Ixy;0,0,0,Iyx,Iyy];
%计算Kj,Rtj,Rbj
%m=1;n=1;
%隔振器的顶端与刚体的连接点的坐标为
x0j=[300,300,-300,-300];y0j=[120,-120,120,-120];z0j=[-150,-150,-150,-150];
%第j个隔振器的弹性矩阵
Kxj=ej*bj*hj/lj;Kyj=ej*lj*hj/bj;Kzj=ej*lj*bj/hj;
G=ej/2*(1+miuj);
Gxj=G;Gyj=G;
Kj=[Kxj,0,0,0,0;0,Kyj,0,0,0;0,0,Kzj,0,0;0,0,0,Gxj,0;0,0,0,0,Gyj]*(1+i*etaj);
%薄板的复抗弯曲刚度
D = eb*hb^3/(12*(1-miub^2))*(1+1i*etab);
%定义Six,Siy以求Rbj
function Six=six(ii,x,y,l)
m=1;n=ii;
Six = m*pi/l*cos(m*pi*x/l)*sin(n*pi*y/l);
end
function Siy=siy(ii,x,y,l)
m=1;n=ii;
Siy = m*pi/l*sin(m*pi*x/l)*cos(n*pi*y/l);
end
function Si=si(ii,x,y,lx,ly)
m=1;n=ii;
Si = sin(m*pi*x/lx)*sin(n*pi*y/ly);
end
%计算基座第j阶模态质量
function Mi=mi(ii)
m=1 ;n=ii;
syms xx yy;
Mi = pb*hb*int(int((sin(m*pi*xx/lb)*sin(n*pi*yy/bb))^2,xx,[0,lb]),yy,[0,bb]);
end
%第i阶模态圆频率
function W = solvew(i)
m=1;n=i;
W = ((m*pi/lb)^2+(n*pi/bb)^2)*sqrt(D/pb/hb);
end
%频率
for w = 10:1:2000
%第j个隔振器上部的力分布矩阵
%Rtj=[1,0,0,0,0;0,1,0,0,0;0,0,1,0,0;0,-z0j,y0j,1,0;-z0j,x0j,0,0,1];
%第j个隔振器下端在坐标系XYZ下的力分布矩阵Rbj
%Rbj=
%Zp(非耦合特征值矩阵)
Zp = [mi(1)*(solvew(1)^2+1i*etab*solvew(1)^2-w^2),0,0;0,mi(2)*(solvew(2)^2+1i*etab*solvew(2)^2-w^2),0;0,0,mi(2)*(solvew(2)^2+1i*etab*solvew(2)^2-w^2)];
sumaa=0;sumab=0;sumba=0;sumbb=0;
for nn = 1:1:4
Rtj = [1,0,0,0,0;0,1,0,0,0;0,0,1,0,0;0,-z0j(nn),x0j(nn),1,0;-z0j(nn),x0j(nn),0,0,1];
Rbj = [-(h/2)*six(1,x0j(nn),y0j(nn),lb),-(h/2)*siy(1,x0j(nn),y0j(nn),bb),si(1,x0j(nn),y0j(nn),lb,bb),siy(1,x0j(nn),y0j(nn),bb),-six(1,x0j(nn),y0j(nn),lb);
-(h/2)*six(2,x0j(nn),y0j(nn),lb),-(h/2)*siy(2,x0j(nn),y0j(nn),bb),si(2,x0j(nn),y0j(nn),lb,bb),siy(2,x0j(nn),y0j(nn),bb),-six(2,x0j(nn),y0j(nn),lb);
-(h/2)*six(3,x0j(nn),y0j(nn),lb),-(h/2)*siy(3,x0j(nn),y0j(nn),bb),si(3,x0j(nn),y0j(nn),lb,bb),siy(3,x0j(nn),y0j(nn),bb),-six(3,x0j(nn),y0j(nn),lb);];
sumaa = sumaa+Rtj*Kj*Rtj';
sumab = sumab-Rtj*Kj*Rbj';
sumba = sumba-Rbj*Kj*Rtj';
sumbb = sumbb+Rbj*Kj*Rbj';
end
A11 = -w^2*Mc+sumaa;
A12 = sumab;
A21 = sumba;
A22 = Zp+smbb;
syms DcWp;
dcwp = solve([A11,A12;A21,A22]*[DcWp] == [Q0,0]);
end
%定义Six,Siy以求Rbj
end
错误使用 assignin
尝试将 "xx" 添加到静态工作区。
有关详细信息,请参阅“MATLAB 编程”、“变量赋值限制”。
出错 syms (line 66)
assignin('caller',x,sym(x));
出错 run0/mi (line 45)
syms xx yy;
求问谢谢