数学建模社区-数学中国

标题: 求助:机械臂优化问题。半无限 [打印本页]

作者: 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) EL1sin(a)+L2cos(b)+L3=1288
! W. T3 L* U& L6 r/ I) UL1cos(a)-L2sin(b=50$ ?) J7 A$ I8 ]# R1 V9 q! S4 C
788<=L1sin(a)+L2cos(b)+L3<=12885 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: cfseminf是不是每个约束方程里只能有两个变量啊,如果有三个以上变量怎么解啊?比如
  l$ h  g6 R0 v! X- b4 y" Y) nL1sin(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 pLocal 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:                               05 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 pL1*@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& CL1*@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 sL1>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 p4 `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  u2 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