求助:机械臂优化问题。半无限
请教各位机械臂优化的问题L1、L2、L3为机械臂的杆长,a、b分别有L1杆和L2杆的转角目标函数:
Min(L1+L2+L3)
约束条件:
L1sin(a)+L2cos(b)+L3=1288
L1cos(a)-L2sin(b=50
788<=L1sin(a)+L2cos(b)+L3<=1288
-50<=L1cos(a)-L2sin(b)<=50
L1>122,L2>840,0<a<90,0<b<90
请问应该是用无约束方法fmincon解答还是用半无限方法fseminf解答啊。
fseminf是不是每个约束方程里只能有两个变量啊,如果有三个以上变量怎么解啊?比如
L1sin(a)+L2cos(b)+L3sin(c)<=1288 本帖最后由 splendid1987 于 2009-11-10 20:39 编辑
Min=L1+L2+L3;
用lingo很快就解决了。多多指教!
解出的L3=0,好像不太切合实际。我用LINGO求解得到的结果是:
Local optimal solution found.
Objective value: 1290.782
Extended solver steps: 0
Total solver iterations: 13
Variable Value Reduced Cost
L1 450.7815 0.000000
L2 840.0000 0.000000
L3 0.000000 0.6170491E-02
A 1.459649 0.000000
B 0.000000 93.17152
Row Slack or Surplus Dual Price
1 1290.782 -1.000000
2 0.000000 -0.9938295
3 0.000000 -0.1109185
4 500.0000 0.000000
5 0.000000 0.000000
6 100.0000 0.000000
7 0.000000 0.000000
8 328.7815 0.000000
9 0.000000 -0.6170491E-02
程序是:Min=L1+L2+L3;
L1*@sin(a)+L2*@cos(b)+L3=1288;
L1*@cos(a)-L2*@sin(b)=50;
L1*@sin(a)+L2*@cos(b)+L3>=788;
L1*@sin(a)+L2*@cos(b)+L3<=1288;
L1*@cos(a)-L2*@sin(b)>=-50;
L1*@cos(a)-L2*@sin(b)<=50;
L1>122;
L2>840;
@bnd(0,a,3.141592653/2);
@bnd(0,b,3.141592653/2);
end 回复 2# splendid1987
谢谢你的关注。不过,个人觉得好像有点问题。我用matlab的fmincon解过,但我觉得,结果中的a、b角度不应该是惟一值,而应该是个范围。好像属于“半无限”的优化问题。请问你对半无限问题了解吗? fmincon貌似就可以解吧
不过MATLAB老提出警告 回复 4# lgd0901
用fmincon的话,那么怎么处理a、b参数那?把它们当作约束变量好像不太对啊,那样的话解出来的a、b值是唯一值,也就是说在在特定的角度下min(l1+l2+l3)为最小,但实际情况是机器人在运动过程中各角度是变化量啊。那样的话是不是就不符合实际情况了呢? 回复 5# fighting0609
我感觉用fmincon求解的话,a、b可以作为约束变量,只不过目标函数没有它们了。
关于运动过程中变化量的问题,是不是可以多次采用fmincon计算,每次采用不同的边界值
只是一点个人看法,不一定对啊 回复 6# lgd0901
这个问题我也想过,但是,求出一次后各杆长就确定了,运动中的杆长是不变的啊,变化量只有角度,多次求fmincon的结果和意义是什么那? 回复 7# fighting0609
这周末我想找时间把你的那个问题求解一下,然后给你答复好吧
现在一下子确实想不明白 回复 8# lgd0901
那太好了,先谢下! 回复 9# fighting0609
兄弟,我搞不定了。不好意思啊。
页:
[1]
2