数学建模社区-数学中国
标题:
求助:机械臂优化问题。半无限
[打印本页]
作者:
fighting0609
时间:
2009-11-6 14:21
标题:
求助:机械臂优化问题。半无限
请教各位机械臂优化的问题L1、L2、L3为机械臂的杆长,a、b分别有L1杆和L2杆的转角
6 k6 v/ l) C4 S' U
目标函数:
) K2 l1 x7 v3 e+ i" R
Min(L1+L2+L3)
1 z( D# j7 C/ h+ ~' g; v
约束条件:
+ ]2 J% j6 v) E
L1sin(a)+L2cos(b)+L3=1288
! W. T3 L* U& L6 r/ I) U
L1cos(a)-L2sin(b=50
$ ?) J7 A$ I8 ]# R1 V9 q! S4 C
788<=L1sin(a)+L2cos(b)+L3<=1288
5 H- R% r6 W0 Y
-50<=L1cos(a)-L2sin(b)<=50
; H# Z% K8 Y) I# g, C
L1>122,L2>840,0<a<90,0<b<90
) M+ f- ~( i) G; e- S+ u
请问应该是用无约束方法fmincon解答还是用半无限方法fseminf解答啊。
: D" Z- G# G. u7 F: c
fseminf是不是每个约束方程里只能有两个变量啊,如果有三个以上变量怎么解啊?比如
l$ h g6 R0 v! X- b4 y" Y) n
L1sin(a)+L2cos(b)+L3sin(c)<=1288
作者:
splendid1987
时间:
2009-11-6 18:23
本帖最后由 splendid1987 于 2009-11-10 20:39 编辑
' D$ M+ C/ M) U1 [ Y- J) T
' n' @( i: m: z2 Y! L
Min=L1+L2+L3;
" o* g( t O C+ L6 h$ c# y, d: }
用lingo很快就解决了。多多指教!
* S4 N6 b* A- a* G( @- z% M3 n' x
解出的L3=0,好像不太切合实际。我用LINGO求解得到的结果是:
( T3 I m* D) a0 J2 F9 p
Local optimal solution found.
; s3 K5 m( A' n Z' I8 x
Objective value: 1290.782
: n4 B1 O; V( v) g8 r5 ^
Extended solver steps: 0
5 C- Q. z& f$ J" q
Total solver iterations: 13
\8 \; b- j( A+ O) z: a' z! V
E7 E1 C% v) _! I" d5 C- V
z2 x! I, F6 ^% L' z& J, @7 l* p
Variable Value Reduced Cost
% i$ F [; P7 j, L+ m
L1 450.7815 0.000000
. J" z: N. g6 f2 u5 m/ P4 P2 z3 ^
L2 840.0000 0.000000
/ {" a) X, I( S/ X2 T# {/ ^+ W n
L3 0.000000 0.6170491E-02
: k4 Z( g/ O7 ~0 @4 S, l, o
A 1.459649 0.000000
5 N- s3 e- n6 R/ U! N0 h/ n4 d K0 Y+ @
B 0.000000 93.17152
0 N1 _4 A |: }
8 o4 m# X% h4 u
Row Slack or Surplus Dual Price
: ]; I q( k) d3 l/ U
1 1290.782 -1.000000
( [; ^ O% b* F: P3 H
2 0.000000 -0.9938295
* c) V- P) e2 D4 E
3 0.000000 -0.1109185
. l. C* I' R& Z9 F9 O, l
4 500.0000 0.000000
7 ?6 n9 i! [! d& m5 W
5 0.000000 0.000000
% l0 |3 s7 Z% F; x/ d' a; \4 X/ D
6 100.0000 0.000000
% a- @4 k3 R5 O6 a: j( v1 w
7 0.000000 0.000000
. [: s& D- A4 M8 u. f1 R% W
8 328.7815 0.000000
& K. G9 U1 M4 z/ `
9 0.000000 -0.6170491E-02
# L: C8 X; D3 X- ~7 h
9 h2 u- U/ x+ Y3 N9 `' T: V
程序是:Min=L1+L2+L3;
3 l4 i( g" H% ~0 A5 p
L1*@sin(a)+L2*@cos(b)+L3=1288;
) F) Y5 b$ n' k( S" T$ ]" T
L1*@cos(a)-L2*@sin(b)=50;
6 z4 [% W+ @6 l" b" e- Z, r3 R& B
L1*@sin(a)+L2*@cos(b)+L3>=788;
y b. f4 R- B' w% ?+ I# g0 [
L1*@sin(a)+L2*@cos(b)+L3<=1288;
# Y1 J+ J5 |" J! a# { I+ J* p; o& C
L1*@cos(a)-L2*@sin(b)>=-50;
! m2 d/ e# T B. l& z1 A( b1 D+ [
L1*@cos(a)-L2*@sin(b)<=50;
' d* m+ I3 U* F+ n3 i& Z1 s
L1>122;
) [" q3 V( O, d X3 ~) v, @" S7 z1 M
L2>840;
+ u" `. S; t; ]8 R1 w% F y
@bnd(0,a,3.141592653/2);
) R5 R n$ n6 V! t' f" r$ o
@bnd(0,b,3.141592653/2);
- Y# p5 B- q2 k! W) M5 }
end
作者:
fighting0609
时间:
2009-11-8 14:52
回复
2#
splendid1987
* a+ `2 x! n& i; X4 e
7 x/ X$ L8 p- n; s" m3 \0 p
4 `3 J( s, f' }) C: n i
谢谢你的关注。不过,个人觉得好像有点问题。我用matlab的fmincon解过,但我觉得,结果中的a、b角度不应该是惟一值,而应该是个范围。好像属于“半无限”的优化问题。请问你对半无限问题了解吗?
作者:
lgd0901
时间:
2009-11-9 10:08
fmincon貌似就可以解吧
5 ~+ X/ G$ I: `2 |2 k7 n' I6 d
不过MATLAB老提出警告
作者:
fighting0609
时间:
2009-11-9 14:11
回复
4#
lgd0901
% [6 D; {, B7 L( D4 j# L
" ^3 `7 ~, I( t( X8 L) E8 y
( J- ~. O A% u
用fmincon的话,那么怎么处理a、b参数那?把它们当作约束变量好像不太对啊,那样的话解出来的a、b值是唯一值,也就是说在在特定的角度下min(l1+l2+l3)为最小,但实际情况是机器人在运动过程中各角度是变化量啊。那样的话是不是就不符合实际情况了呢?
作者:
lgd0901
时间:
2009-11-9 16:32
回复
5#
fighting0609
" z M9 Z9 j3 m7 y. T
$ G" x0 H: m# w
- J2 B2 N8 M. b: |6 E# d
我感觉用fmincon求解的话,a、b可以作为约束变量,只不过目标函数没有它们了。
6 A( w% @# F7 T' }& X9 [
关于运动过程中变化量的问题,是不是可以多次采用fmincon计算,每次采用不同的边界值
7 q$ S, R: a2 ]/ w" R
只是一点个人看法,不一定对啊
作者:
fighting0609
时间:
2009-11-10 14:02
回复
6#
lgd0901
, }( l; o( u, L4 ^) h0 m. k9 w
* s. d$ o: }6 M1 a1 }+ G2 @5 B
; k. `# @! m- @! Q- P$ O
这个问题我也想过,但是,求出一次后各杆长就确定了,运动中的杆长是不变的啊,变化量只有角度,多次求fmincon的结果和意义是什么那?
作者:
lgd0901
时间:
2009-11-11 15:15
回复
7#
fighting0609
6 s; L+ o+ ^) H% S& E
* W9 m: R1 F8 j' D; c' x8 V* _$ K; P
% c' F% W: m( F0 e, b' N
这周末我想找时间把你的那个问题求解一下,然后给你答复好吧
. v0 t" Z) u3 V# r
现在一下子确实想不明白
作者:
fighting0609
时间:
2009-11-12 09:00
回复
8#
lgd0901
6 q( \2 ~& d( m R( N" q Q; i& ]
4 a9 J4 i: B0 A [9 v
" r9 _6 b" A R7 u- V( h
那太好了,先谢下!
作者:
lgd0901
时间:
2009-11-13 09:43
回复
9#
fighting0609
8 g- C N' }' w( e0 z8 E# Z
9 N% o" v/ w V" p u
2 A, I) z. E, b, _+ X1 i2 |: ~4 T
兄弟,我搞不定了。不好意思啊。
作者:
fighting0609
时间:
2009-11-15 19:53
回复
10#
lgd0901
, Q5 e* i- E% [$ H8 ^ @
/ n# b- x2 i2 L
M/ K W% g; y3 \% w6 a
没事。我再请教别人吧。还是要表示感谢。
作者:
lastfool
时间:
2010-1-19 16:49
学习中 呵呵 各位好强啊 努力啊。。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5