matlab static 函数,MATLAB编写函数的时候运行出错Attempt to add "x" to a static workspace

stellari 发表于 2013-10-23 11:39 bbd016eb636182ff59f287f6e5567aa8.gif

意思是说在函数当中,所有的变量的创建都必须直接写在可执行语句当中,也就是让MATLAB在还没有运行这个程序 ...

我还是不知道我的是哪里出了问题呢,呵呵。代码如下:

function [x1,x2,x3,x4,x5,x6]=six_freedom_reverse_answer(x0)

syms x1 x2 x3 x4 x5 x6 h h1 h2 h3

syms d4 d5 d6  d7 d8 d9 theta1 theta2 alpha1 beta1 gamma1 X Y Z

%拉杆各个上球铰在风洞坐标系中的坐标(相当于静坐标系)

B_U1=[x1,-d4+h1*sin(theta1),-h+h1*cos(theta1)];

B_U2=[x2,-d4+h1*sin(theta1),-h+h1*cos(theta1)];

B_U3=[x3,-d4+h2*sin(theta1)-d5*cos(theta1),-h+d5*sin(theta1)+h2*cos(theta1)];

B_U4=[x4,d4-h1*sin(theta1),-h+h1*cos(theta1)];

B_U5=[x5,d4-h1*sin(theta1),-h+h1*cos(theta1)];

B_U6=[x6,d4-h2*sin(theta1)+d5*cos(theta1),-h+d5*sin(theta1)+h2*cos(theta1)];

B_U=[B_U1;B_U2;B_U3;B_U4;B_U5;B_U6];

%拉杆各个下球铰在机体坐标系中的坐标(相当于动坐标系)

B_D1=[d6,-d9,-h3];

B_D2=[-d6-d7*cos(theta2),-d8,-h3-d7*sin(theta2)];

B_D3=[-d6,-d9,-h3];

B_D4=[d6,d9,-h3];

B_D5=[-d6-d7*cos(theta2),d8,-h3-d7*sin(theta2)];

B_D6=[-d6,d9,-h3];

%拉杆各个下球铰在风洞坐标系中的坐标

B_D11=[(cos(beta1))*(cos(alpha1))*d6+(sin(beta1))*(cos(gamma1))*d9-(cos(beta1))*(sin(alpha1))*(sin(gamma1))*d9-(sin(beta1))*(sin(gamma1))*h3-(cos(beta1))*(sin(alpha1))*(cos(gamma1))*h3+X;

(sin(beta1))*(cos(alpha1))*d6-(cos(beta1))*(cos(gamma1))*d9-(sin(beta1))*(sin(alpha1))*(sin(gamma1))*d9+(cos(beta1))*(sin(gamma1))*h3-(sin(beta1))*(sin(alpha1))*(cos(gamma1))*h3+Y;

-(sin(alpha1))*d6-(cos(alpha1))*(sin(gamma1))*d9-(cos(alpha1))*(cos(gamma1))*h3+Z];

B_D111=B_D11';

B_D44=[(cos(beta1))*(cos(alpha1))*d6-(sin(beta1))*(cos(gamma1))*d9+(cos(beta1))*(sin(alpha1))*(sin(gamma1))*d9-(sin(beta1))*(sin(gamma1))*h3-(cos(beta1))*(sin(alpha1))*(cos(gamma1))*h3+X;

(sin(beta1))*(cos(alpha1))*d6+(cos(beta1))*(cos(gamma1))*d9+(sin(beta1))*(sin(alpha1))*(sin(gamma1))*d9+(cos(beta1))*(sin(gamma1))*h3-(sin(beta1))*(sin(alpha1))*(cos(gamma1))*h3+Y;

-(sin(alpha1))*d6+(cos(alpha1))*(sin(gamma1))*d9-(cos(alpha1))*(cos(gamma1))*h3+Z];

B_D444=B_D44';

B_D22=[-(cos(beta1))*(cos(alpha1))*d6-(cos(beta1))*(cos(alpha1))*(cos(theta2))*d7+(sin(beta1))*(cos(gamma1))*d8-(cos(beta1))*(sin(alpha1))*(sin(gamma1))*d8-(sin(beta1))*(sin(gamma1))*h3-(sin(beta1))*(sin(gamma1))*(sin(theta2))*d7-(cos(beta1))*(sin(alpha1))*(cos(gamma1))*h3-(cos(beta1))*(sin(alpha1))*(cos(gamma1))*(sin(theta2))*d7+X;

-(sin(beta1))*(cos(alpha1))*d6-(sin(beta1))*(cos(alpha1))*(cos(theta2))*d7-(cos(beta1))*(cos(gamma1))*d8-(sin(beta1))*(sin(alpha1))*(sin(gamma1))*d8+(cos(beta1))*(sin(gamma1))*h3+(cos(beta1))*(sin(gamma1))*(sin(theta2))*d7-(sin(beta1))*(sin(alpha1))*(cos(gamma1))*h3-(sin(beta1))*(sin(alpha1))*(cos(gamma1))*(sin(theta2))*d7+Y;

(sin(alpha1))*d6+(sin(alpha1))*(cos(theta2))*d7-(cos(alpha1))*(sin(gamma1))*d8-(cos(alpha1))*(cos(gamma1))*h3-(cos(gamma1))*(cos(alpha1))*(sin(theta2))*d7+Z];

B_D222=B_D22';

B_D55=[-(cos(beta1))*(cos(alpha1))*d6-(cos(beta1))*(cos(alpha1))*(cos(theta2))*d7-(sin(beta1))*(cos(gamma1))*d8+(cos(beta1))*(sin(alpha1))*(sin(gamma1))*d8-(sin(beta1))*(sin(gamma1))*h3-(sin(beta1))*(sin(gamma1))*(sin(theta2))*d7-(cos(beta1))*(sin(alpha1))*(cos(gamma1))*h3-(cos(beta1))*(sin(alpha1))*(cos(gamma1))*(sin(theta2))*d7+X;

-(sin(beta1))*(cos(alpha1))*d6-(sin(beta1))*(cos(alpha1))*(cos(theta2))*d7+(cos(beta1))*(cos(gamma1))*d8+(sin(beta1))*(sin(alpha1))*(sin(gamma1))*d8+(cos(beta1))*(sin(gamma1))*h3+(cos(beta1))*(sin(gamma1))*(sin(theta2))*d7-(sin(beta1))*(sin(alpha1))*(cos(gamma1))*h3-(sin(beta1))*(sin(alpha1))*(cos(gamma1))*(sin(theta2))*d7+Y;

(sin(alpha1))*d6+(sin(alpha1))*(cos(theta2))*d7+(cos(alpha1))*(sin(gamma1))*d8-(cos(alpha1))*(cos(gamma1))*h3-(cos(gamma1))*(cos(alpha1))*(sin(theta2))*d7+Z];

B_D555=B_D55';

B_D33=[-(cos(beta1))*(cos(alpha1))*d6+(sin(beta1))*(cos(gamma1))*d9-(cos(beta1))*(sin(alpha1))*(sin(gamma1))*d9-(sin(beta1))*(sin(gamma1))*h3-(cos(beta1))*(sin(alpha1))*(cos(gamma1))*h3+X;

-(sin(beta1))*(cos(alpha1))*d6-(cos(beta1))*(cos(gamma1))*d9-(sin(beta1))*(sin(alpha1))*(sin(gamma1))*d9+(cos(beta1))*(sin(gamma1))*h3-(sin(beta1))*(sin(alpha1))*(cos(gamma1))*h3+Y;

(sin(alpha1))*d6-(cos(alpha1))*(sin(gamma1))*d9-(cos(alpha1))*(cos(gamma1))*h3+Z];

B_D333=B_D33';

B_D66=[-(cos(beta1))*(cos(alpha1))*d6-(sin(beta1))*(cos(gamma1))*d9+(cos(beta1))*(sin(alpha1))*(sin(gamma1))*d9-(sin(beta1))*(sin(gamma1))*h3-(cos(beta1))*(sin(alpha1))*(cos(gamma1))*h3+X;

-(sin(beta1))*(cos(alpha1))*d6+(cos(beta1))*(cos(gamma1))*d9+(sin(beta1))*(sin(alpha1))*(sin(gamma1))*d9+(cos(beta1))*(sin(gamma1))*h3-(sin(beta1))*(sin(alpha1))*(cos(gamma1))*h3+Y;

(sin(alpha1))*d6+(cos(alpha1))*(sin(gamma1))*d9-(cos(alpha1))*(cos(gamma1))*h3+Z];

B_D666=B_D66';

B_D=[B_D111;B_D222;B_D333;B_D444;B_D555;B_D666];

%固定参数的初始化,L[]分别为六根杆长的理论值

L=sym('[900,720,900,900,720,900]');

%x1=876.847;

%x2=304.387;

%x3=-906.348;

%x4=876.847;

%x5=304.387;

%x6=-906.348;

%拉杆上端球铰坐标与下端球铰坐标之差即各个拉杆长度值,这样就建立了一个等式

B_UD=B_U-B_D;

for i=1:6

M(i)=B_UD(i,1)*B_UD(i,1)+B_UD(i,2)*B_UD(i,2)+B_UD(i,3)*B_UD(i,3);

end

%M(i)为实际的杆长值,L(i)为理论的杆长值,二者之差为误差,即趋近于0的数值解

for i=1:6

Error(i)=M(i)-L(i)^2;

end

%数值的置换

subs(Error,{h,h1,h2,h3,d4,d5,d6,d7,d8,d9,theta1,theta2},{1423.7727,55.3417,55.3417,838.467,267.1744,198,175.374,145.916,93.314/2,242.415/2,30/180*pi,57.9397/180*pi});

E=[Error(1);Error(2);Error(3);Error(4);Error(5);Error(6)];

x=[x1 x2 x3 x4 x5 x6];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值