函数中涉及到for循环的多矩阵数值按顺序调用时,内部函数有i ,被赋值函数也要有i , 否则,程序不能识别。
Z1_return=zeros(3,num1); dZ1_return=zeros(3,num1); % 预定义
D_bk=zeros(3,num1);
g_bk=zeros(3*num1,3);
f_bk=zeros(3,num1);
u_bk=zeros(3,num1);
for j=1:1:num1;
Z1_return(:,j)=[z(j,1);z(j,2);z(j,3)];
dZ1_return(:,j)=[z(j,4);z(j,5);z(j,6)];
g_bk(3*j-2:3*j,:)=[1/Ix,sin(z(j,1))*tan(z(j,2))/Iy,cos(z(j,1))*tan(z(j,2))/Iz;0,cos(z(j,1))/Iy,-sin(z(j,1))/Iz;0,sin(z(j,1))/(cos(z(j,2))*Iy),cos(z(j,1))/(cos(z(j,2))*Iz)];
f_bk(:,j)=[z(j,4)*z(j,5)*tan(z(j,2))+z(j,5)*z(j,6)/cos(z(j,2));-z(j,4)*z(j,6)*cos(z(j,2));z(j,4)*z(j,5)*cos(z(j,2))+z(j,5)*z(j,6)*tan(z(j,2))];
u_bk=inv(g_bk(3*j-2:3*j,:))*(-A1*dZ1_return(:,j)-A2*dZ1_return(:,j)-A2*A1*Z1_return(:,j)-Z1_return(:,j)-f_bk(3,j)); % 被赋值函数中没有循环变量,程序只会执行一次,
但是,期望的u是3*2001次。
函数报错-变量未定义
Undefined function or variable ‘v_0’.
Error in ft5_19_funASC (line 96)
v_0=-3*L^(1/3)*abs(v_0-q1d)^(2/3)*sign(v_0-q1d)+x(15);
提示:函数或者变量没有定义。
源代码:
v_0=-3*L^(1/3)*abs(v_0-q1d)^(2/3)*sign(v_0-q1d)+x(15);
v_1=-1.5*L^(1/2)*abs(x(15)-v_0)^(1/2)*sign(x(15)-v_0)+x(16);
原因:放在 = (赋值号)右面的变量必须是在这行语句前面有定义,如果在前面没有定义就直接使用程序就不能识别。。。