数学建模社区-数学中国

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

作者: fighting0609    时间: 2009-11-6 14:21
标题: 求助:机械臂优化问题。半无限
请教各位机械臂优化的问题L1、L2、L3为机械臂的杆长,a、b分别有L1杆和L2杆的转角
% F2 M6 _3 h4 c0 y9 ?: h目标函数:
; `9 H/ \- V# R2 @) }  z. h4 VMin(L1+L2+L3)
: V3 w  a" Z. y7 q7 d( z" M约束条件:
% G& L; t- `2 N* uL1sin(a)+L2cos(b)+L3=1288
9 L: ]6 y  ?4 }, ~& v5 IL1cos(a)-L2sin(b=50
9 M% l# x0 s% ?4 h/ {8 Z788<=L1sin(a)+L2cos(b)+L3<=1288/ c: A# T) \/ w4 R2 w/ b
-50<=L1cos(a)-L2sin(b)<=50
2 v' Z8 E6 ?9 x- t& T0 lL1>122,L2>840,0<a<90,0<b<90$ q; w6 p( I* ]8 ~0 j5 C# `3 K) j' ]
请问应该是用无约束方法fmincon解答还是用半无限方法fseminf解答啊。1 y7 X; @" i) ?: A& c% _
fseminf是不是每个约束方程里只能有两个变量啊,如果有三个以上变量怎么解啊?比如
% c$ t* Q! h( M! n: `; h7 HL1sin(a)+L2cos(b)+L3sin(c)<=1288
作者: splendid1987    时间: 2009-11-6 18:23
本帖最后由 splendid1987 于 2009-11-10 20:39 编辑
3 p  Z( s2 K( k: U$ T, P( t
0 [2 t3 T) }  ^6 OMin=L1+L2+L3;
0 A" N, P0 e" R- j2 v用lingo很快就解决了。多多指教!5 u3 ?% p% m# z8 u3 _, s
解出的L3=0,好像不太切合实际。我用LINGO求解得到的结果是:
7 g: f- M7 B: u& {# A) {Local optimal solution found.# a& A1 ~) `4 H
   Objective value:                              1290.782
. g' R/ N8 W" k0 h! d5 [   Extended solver steps:                               0! g# P1 F+ l% Z! S6 B( k
   Total solver iterations:                            13
: ?3 b+ o0 ]" H" t& j$ b% p
4 i9 m& ~" K% I* K6 c1 S* C4 r  [1 H; K) B
                       Variable           Value        Reduced Cost
* w5 K$ t, _8 k7 R& f9 h7 P# {                             L1        450.7815            0.000000
% F; \" T, w) i% I                             L2        840.0000            0.000000
- ]# [# t4 ^+ b' [: p3 F                             L3        0.000000           0.6170491E-02: C5 u9 b' K% r: u9 G3 Q
                              A        1.459649            0.000000
7 l: O/ U" C9 Z3 d. G                              B        0.000000            93.17152
; P3 e# B; P$ \# u
9 N# [/ R& [. J$ ]( Z( p* |                            Row    Slack or Surplus      Dual Price
8 j1 w, {/ D! c+ g3 \                              1        1290.782           -1.000000
4 s; h" U2 ]8 ^& ^7 p: @                              2        0.000000          -0.9938295' `- Y; `$ _/ `# ?2 ~& c/ r
                              3        0.000000          -0.1109185( M& a: r1 z5 |8 H) c  H/ p; U/ R
                              4        500.0000            0.000000
) m+ W1 e, j( y                              5        0.000000            0.000000% Z! m. ^. K* R! h" d8 U
                              6        100.0000            0.000000
7 r" G  c  v7 M0 e  D                              7        0.000000            0.0000003 ?- f3 x* t1 H7 o! |
                              8        328.7815            0.000000
' d7 R: P& h% p4 b+ Q                              9        0.000000          -0.6170491E-02. ?" \+ g3 n$ O# O, U/ w; t

7 Y" O# p. l/ W( P, N! u- N" P程序是:Min=L1+L2+L3;
1 o: }9 W* x9 M" VL1*@sin(a)+L2*@cos(b)+L3=1288;- a) A2 I6 Q  ?/ a1 t: r/ ?
L1*@cos(a)-L2*@sin(b)=50;
$ W% V! q" d8 ZL1*@sin(a)+L2*@cos(b)+L3>=788;
) E( P5 O$ |  i0 L5 k6 HL1*@sin(a)+L2*@cos(b)+L3<=1288;8 \  l9 G6 Q3 f+ j! k
L1*@cos(a)-L2*@sin(b)>=-50;$ L! t3 [/ Z0 v
L1*@cos(a)-L2*@sin(b)<=50;
9 I  z7 p5 ?  e* FL1>122;' Y" f4 b$ O3 s
L2>840;
: O, p& u. w: ~( m) t@bnd(0,a,3.141592653/2);
; ]/ ~" g1 c2 E5 `@bnd(0,b,3.141592653/2);6 n  L) c4 p- _9 H: {. W0 I: s' ^
end
作者: fighting0609    时间: 2009-11-8 14:52
回复 2# splendid1987
# i8 ^- a3 u. ]7 K9 I2 @
' x9 `# E( N# r% m, Z; `9 K! W
- H* L- i" |5 r, e0 H    谢谢你的关注。不过,个人觉得好像有点问题。我用matlab的fmincon解过,但我觉得,结果中的a、b角度不应该是惟一值,而应该是个范围。好像属于“半无限”的优化问题。请问你对半无限问题了解吗?
作者: lgd0901    时间: 2009-11-9 10:08
fmincon貌似就可以解吧
1 r" |; r1 W2 v7 b# Q6 ~8 S不过MATLAB老提出警告
作者: fighting0609    时间: 2009-11-9 14:11
回复 4# lgd0901 0 `5 q+ L' f9 r& u* \9 D
- l2 |! G- i' L9 q  S

, B# ?0 a! t6 K- K3 A) i    用fmincon的话,那么怎么处理a、b参数那?把它们当作约束变量好像不太对啊,那样的话解出来的a、b值是唯一值,也就是说在在特定的角度下min(l1+l2+l3)为最小,但实际情况是机器人在运动过程中各角度是变化量啊。那样的话是不是就不符合实际情况了呢?
作者: lgd0901    时间: 2009-11-9 16:32
回复 5# fighting0609
+ E$ ]7 c1 @' Z" Y$ ]# S  l
& b' h4 e9 E3 [- ?% m2 @0 l' v% _! D1 {! z
    我感觉用fmincon求解的话,a、b可以作为约束变量,只不过目标函数没有它们了。
. d' j7 z. w& ?/ B5 ?8 Q    关于运动过程中变化量的问题,是不是可以多次采用fmincon计算,每次采用不同的边界值8 ^  T5 A; G, Q: D
    只是一点个人看法,不一定对啊
作者: fighting0609    时间: 2009-11-10 14:02
回复 6# lgd0901 6 A( z) X8 I% L5 a1 x* g! e- s# U

0 u# c2 _; W: R1 V: l
+ v8 U6 p* `  \. ]. c/ f9 {    这个问题我也想过,但是,求出一次后各杆长就确定了,运动中的杆长是不变的啊,变化量只有角度,多次求fmincon的结果和意义是什么那?
作者: lgd0901    时间: 2009-11-11 15:15
回复 7# fighting0609 4 b! w! n+ o- d8 h& }  {- L4 l
* x. u9 [; u( }& M. y* t

2 S  q* W( Q9 ?+ c, J( }    这周末我想找时间把你的那个问题求解一下,然后给你答复好吧
, _! n, F) S9 }. _) H5 j, R# ^    现在一下子确实想不明白
作者: fighting0609    时间: 2009-11-12 09:00
回复 8# lgd0901
/ m; n/ ^) Q$ @! d" l, l# ]) }/ w' {! M4 ?8 H) [
' O4 w" @* r2 m4 ~# \
    那太好了,先谢下!
作者: lgd0901    时间: 2009-11-13 09:43
回复 9# fighting0609 , H: g, g0 U  v0 d% J0 W* {8 ?/ e9 A
) ?: @/ x5 l; m! ~! s  N( X: P

( }% S5 \+ q" P5 N( \    兄弟,我搞不定了。不好意思啊。
作者: fighting0609    时间: 2009-11-15 19:53
回复 10# lgd0901
" G" x9 J/ v5 z- [/ N- c' `& Y6 v! F0 R) Q# Q, J# {; a
$ G8 @* S8 t3 ^, U; Z
    没事。我再请教别人吧。还是要表示感谢。
作者: lastfool    时间: 2010-1-19 16:49
学习中 呵呵 各位好强啊 努力啊。。




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5