matlab 一个角度求解
我是通过th1角度变化求得一个位置S_1,这个关系式是有的,但现在想通过固定位置S_t(S_t与S_1是有关系的)来求解初始角度位置,由于关系比较复杂,没推导出来,所以采...
我是通过th1角度变化求得一个位置S_1,这个关系式是有的,但现在想通过固定位置S_t(S_t与S_1是有关系的)来求解初始角度位置,由于关系比较复杂,没推导出来,所以采用了循环替代的办法来找出这个初始角度th_1,但结果不对,不知道错在哪里,请大侠们指导一下,代码如下:
L1=106.3;
L2=773.64;
L3=230;
L4=799.67;
L5=199;
L6=360;
Xa=670;
Ya=270;
t=6;
th1=180:0.5:360;
A2=L1.*sin(th1*pi/180)-Xa;
B2=L1.*cos(th1*pi/180)-Ya;
C2=(A2.^2+B2.^2+L2^2-L3^2)/(2*L2);
th2=2.*atan((A2-sqrt(A2.^2+B2.^2-C2.^2))./(B2-C2))*180/pi;
A3=-L1.*sin(th1*pi/180)+Xa;
B3=-L1.*cos(th1*pi/180)+Ya;
C3=(A3.^2+B3.^2+L3^2-L2^2)/(2*L3);
th3=2.*atan((A3+sqrt(A3.^2+B3.^2-C3.^2))./(B3-C3))*180/pi;
th4=th2+acos((L4^2+L2^2-L5^2)/(2*L2*L4))*180/pi;
th5=180-(acos((L2^2+L5^2-L4^2)/(2*L2*L5))*180/pi-th2);
th6=asin((L4.*sin(th4*pi/180)+L1.*sin(th1*pi/180)-Xa)/L6)*180/pi;
S_1=L6.*cos(th6*pi/180)-L5.*cos(th5*pi/180)-L3.*cos(th3*pi/180);
S_1_max=max(S_1);
S_t=S_1_max-t;
for th_1=180:1:350
A2=L1.*sin(th_1*pi/180)-Xa;
B2=L1.*cos(th_1*pi/180)-Ya;
C2=(A2.^2+B2.^2+L2^2-L3^2)/(2*L2);
th_2=2.*atan((A2-sqrt(A2.^2+B2.^2-C2.^2))./(B2-C2))*180/pi;
A3=-L1.*sin(th_1*pi/180)+Xa;
B3=-L1.*cos(th_1*pi/180)+Ya;
C3=(A3.^2+B3.^2+L3^2-L2^2)/(2*L3);
th_3=2.*atan((A3+sqrt(A3.^2+B3.^2-C3.^2))./(B3-C3))*180/pi;
th_4=th_2+acos((L4^2+L2^2-L5^2)/(2*L2*L4))*180/pi;
th_5=180-(acos((L2^2+L5^2-L4^2)/(2*L2*L5))*180/pi-th_2);
th_6=asin((L4.*sin(th_4*pi/180)+L1.*sin(th_1*pi/180)-Xa)/L6)*180/pi;
S1=L6.*cos(th_6*pi/180)-L5.*cos(th_5*pi/180)-L3.*cos(th_3*pi/180);
if round(S1,2)==round(S_t,2)
break
end
end
th_1
th_2
th_6
目标通过for语句,找出在S_t点时,th1的角度值。 展开
L1=106.3;
L2=773.64;
L3=230;
L4=799.67;
L5=199;
L6=360;
Xa=670;
Ya=270;
t=6;
th1=180:0.5:360;
A2=L1.*sin(th1*pi/180)-Xa;
B2=L1.*cos(th1*pi/180)-Ya;
C2=(A2.^2+B2.^2+L2^2-L3^2)/(2*L2);
th2=2.*atan((A2-sqrt(A2.^2+B2.^2-C2.^2))./(B2-C2))*180/pi;
A3=-L1.*sin(th1*pi/180)+Xa;
B3=-L1.*cos(th1*pi/180)+Ya;
C3=(A3.^2+B3.^2+L3^2-L2^2)/(2*L3);
th3=2.*atan((A3+sqrt(A3.^2+B3.^2-C3.^2))./(B3-C3))*180/pi;
th4=th2+acos((L4^2+L2^2-L5^2)/(2*L2*L4))*180/pi;
th5=180-(acos((L2^2+L5^2-L4^2)/(2*L2*L5))*180/pi-th2);
th6=asin((L4.*sin(th4*pi/180)+L1.*sin(th1*pi/180)-Xa)/L6)*180/pi;
S_1=L6.*cos(th6*pi/180)-L5.*cos(th5*pi/180)-L3.*cos(th3*pi/180);
S_1_max=max(S_1);
S_t=S_1_max-t;
for th_1=180:1:350
A2=L1.*sin(th_1*pi/180)-Xa;
B2=L1.*cos(th_1*pi/180)-Ya;
C2=(A2.^2+B2.^2+L2^2-L3^2)/(2*L2);
th_2=2.*atan((A2-sqrt(A2.^2+B2.^2-C2.^2))./(B2-C2))*180/pi;
A3=-L1.*sin(th_1*pi/180)+Xa;
B3=-L1.*cos(th_1*pi/180)+Ya;
C3=(A3.^2+B3.^2+L3^2-L2^2)/(2*L3);
th_3=2.*atan((A3+sqrt(A3.^2+B3.^2-C3.^2))./(B3-C3))*180/pi;
th_4=th_2+acos((L4^2+L2^2-L5^2)/(2*L2*L4))*180/pi;
th_5=180-(acos((L2^2+L5^2-L4^2)/(2*L2*L5))*180/pi-th_2);
th_6=asin((L4.*sin(th_4*pi/180)+L1.*sin(th_1*pi/180)-Xa)/L6)*180/pi;
S1=L6.*cos(th_6*pi/180)-L5.*cos(th_5*pi/180)-L3.*cos(th_3*pi/180);
if round(S1,2)==round(S_t,2)
break
end
end
th_1
th_2
th_6
目标通过for语句,找出在S_t点时,th1的角度值。 展开
1个回答
上海华然企业咨询
2024-10-28 广告
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询