数学建模社区-数学中国
标题:
求助:机械臂优化问题。半无限
[打印本页]
作者:
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 V
Min(L1+L2+L3)
: V3 w a" Z. y7 q7 d( z" M
约束条件:
% G& L; t- `2 N* u
L1sin(a)+L2cos(b)+L3=1288
9 L: ]6 y ?4 }, ~& v5 I
L1cos(a)-L2sin(b=50
9 M% l# x0 s% ?4 h/ {8 Z
788<=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 l
L1>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 H
L1sin(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 O
Min=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.000000
3 ?- 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" V
L1*@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 Z
L1*@sin(a)+L2*@cos(b)+L3>=788;
) E( P5 O$ | i0 L5 k6 H
L1*@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* F
L1>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