err(i)=1e10
遍历l3
abs(cos1)>1||abs(cos2)>1||abs(cos_th)>1
求出phi和th的误差err(i)=sqrt((phi_now-phi)^2+(th_now-theta)^2),储存
开始
表示出连杆、摇杆向量,求解gamma余弦值
三角形余弦公式求解当前phi和曲柄转角th,储存
求最小传动角
遍历th
解出gamma,储存
是
设定th遍历区间,预分配数组th2、th3、gamma
结束
abs(cos_g)>1
输入已知参数,为l1、β赋初值
设定l3遍历区间,预分配误差数组err
否
cos_g赋值为±1
求杆长
提取最小gamma,绘制传动角曲线
l2=l1+sqrt(l3^2+l4^2-2*l3*l4*cos(beta0))计算当前l2
逐点调用fsolve求解th2、th3
查找最小误差对应的下标,提取最优l3,得到当前机构杆长