数学建模社区-数学中国
标题:
求助:机械臂优化问题。半无限
[打印本页]
作者:
fighting0609
时间:
2009-11-6 14:21
标题:
求助:机械臂优化问题。半无限
请教各位机械臂优化的问题L1、L2、L3为机械臂的杆长,a、b分别有L1杆和L2杆的转角
$ R: ~- K% y( W" M6 e4 q+ Z6 G# j
目标函数:
1 }- _, @$ I9 R: S! F
Min(L1+L2+L3)
2 i0 l1 _, t5 |: N8 c& Y
约束条件:
" w. t5 x2 ?5 I& V, h
L1sin(a)+L2cos(b)+L3=1288
' e, w: A [5 G. }1 l" x6 o' l/ Y4 F( E
L1cos(a)-L2sin(b=50
; W/ {) \- `6 Z- I
788<=L1sin(a)+L2cos(b)+L3<=1288
4 M* D% f: w6 x2 C4 b3 r
-50<=L1cos(a)-L2sin(b)<=50
* n/ ]2 Q/ g8 z6 H+ |8 N" k
L1>122,L2>840,0<a<90,0<b<90
$ H2 _6 i& O% W# Z" I
请问应该是用无约束方法fmincon解答还是用半无限方法fseminf解答啊。
9 A1 a1 {; v/ M( N
fseminf是不是每个约束方程里只能有两个变量啊,如果有三个以上变量怎么解啊?比如
7 B; h5 ~ Y% F2 F9 t T
L1sin(a)+L2cos(b)+L3sin(c)<=1288
作者:
splendid1987
时间:
2009-11-6 18:23
本帖最后由 splendid1987 于 2009-11-10 20:39 编辑
, S) p) Q+ |% h @! t* I
# A" h& u! j! J' m( J* m
Min=L1+L2+L3;
# n7 C# I( H) }/ H; ?8 d" X5 @
用lingo很快就解决了。多多指教!
$ w: U" N+ ?/ X& y) \: c$ {1 T
解出的L3=0,好像不太切合实际。我用LINGO求解得到的结果是:
$ B/ K+ s% s1 |$ `- f
Local optimal solution found.
( ~1 G) j. T6 |/ C8 H
Objective value: 1290.782
& z9 G; v, F2 v, h/ |6 j9 N
Extended solver steps: 0
- n" E4 F& ~- `* i1 t
Total solver iterations: 13
: |9 U% |0 o. x+ Z% J
- _) v. W Z7 H
& I9 p3 U1 P6 L. m: _4 ^( Y
Variable Value Reduced Cost
1 S3 \( O1 y+ R$ L* z
L1 450.7815 0.000000
0 x( j# Q/ H% I# e( j
L2 840.0000 0.000000
/ D( I3 k9 u( U/ Y. j' T
L3 0.000000 0.6170491E-02
# P" J6 B' ~- L0 B! {* I
A 1.459649 0.000000
' f) s& x4 }. |$ P
B 0.000000 93.17152
5 J, Q x) g& \6 ^( J
( c2 C8 {: C- E4 d7 n m0 z
Row Slack or Surplus Dual Price
9 y3 d. }' k* E& Y6 \; c; D6 r$ ~, ^
1 1290.782 -1.000000
. I c0 ~) B9 B
2 0.000000 -0.9938295
p) X% n3 t. F0 Z
3 0.000000 -0.1109185
. a9 c2 T7 c$ t
4 500.0000 0.000000
. q0 ]: {+ ^( i. ~! G5 g
5 0.000000 0.000000
& p0 {; B: @5 }3 ?
6 100.0000 0.000000
; D! c7 n/ F, J; K
7 0.000000 0.000000
" x! u1 o R! k, t0 w
8 328.7815 0.000000
5 E7 s; x2 k- h5 {
9 0.000000 -0.6170491E-02
N8 P2 x; i, J7 e7 n7 L
. o% \ X J3 Q2 A T( N u+ M
程序是:Min=L1+L2+L3;
+ j/ m: x2 w2 N8 f
L1*@sin(a)+L2*@cos(b)+L3=1288;
, p9 ]9 {( j; J" P
L1*@cos(a)-L2*@sin(b)=50;
) d& e5 G+ ]4 I w- f) K0 _
L1*@sin(a)+L2*@cos(b)+L3>=788;
7 ~, f0 N$ F5 A! p5 ?2 v
L1*@sin(a)+L2*@cos(b)+L3<=1288;
0 M h( u4 G- ~% ]- D8 S1 H
L1*@cos(a)-L2*@sin(b)>=-50;
- m1 n+ @, ~. W# i
L1*@cos(a)-L2*@sin(b)<=50;
1 ^8 z5 G, t' q/ ?" K! J! q
L1>122;
9 c: R; o4 h; B& T# |
L2>840;
% m8 E) n. }" ~9 j" @; L
@bnd(0,a,3.141592653/2);
' }5 x7 g$ L1 a
@bnd(0,b,3.141592653/2);
5 n, h, Y$ O; t" H |( n! H
end
作者:
fighting0609
时间:
2009-11-8 14:52
回复
2#
splendid1987
+ ~1 D. ?$ q, s) j' a! ~
7 F( [$ |$ W3 M. N2 Z g
; P# v+ W/ P/ Z* l+ U
谢谢你的关注。不过,个人觉得好像有点问题。我用matlab的fmincon解过,但我觉得,结果中的a、b角度不应该是惟一值,而应该是个范围。好像属于“半无限”的优化问题。请问你对半无限问题了解吗?
作者:
lgd0901
时间:
2009-11-9 10:08
fmincon貌似就可以解吧
- G) j/ A# J$ j
不过MATLAB老提出警告
作者:
fighting0609
时间:
2009-11-9 14:11
回复
4#
lgd0901
: o: O* d2 z& k! l: w; s( f
/ ~$ d& ]7 N; y6 l, \: U
& R( V# N' x' t( U* R4 U( D% b
用fmincon的话,那么怎么处理a、b参数那?把它们当作约束变量好像不太对啊,那样的话解出来的a、b值是唯一值,也就是说在在特定的角度下min(l1+l2+l3)为最小,但实际情况是机器人在运动过程中各角度是变化量啊。那样的话是不是就不符合实际情况了呢?
作者:
lgd0901
时间:
2009-11-9 16:32
回复
5#
fighting0609
) f, q" W4 H. i0 }5 m
- ^$ o, }" f. \
* p, U: e; w6 l$ I: X
我感觉用fmincon求解的话,a、b可以作为约束变量,只不过目标函数没有它们了。
?: N) n( |! d$ l6 Z
关于运动过程中变化量的问题,是不是可以多次采用fmincon计算,每次采用不同的边界值
4 i* O y" Y' u7 D+ l7 D
只是一点个人看法,不一定对啊
作者:
fighting0609
时间:
2009-11-10 14:02
回复
6#
lgd0901
s0 `" E: |2 g; \! I2 Z+ s8 y
8 S w* b0 `1 X( L. D, u
7 V m% w9 }0 I4 l% j1 X
这个问题我也想过,但是,求出一次后各杆长就确定了,运动中的杆长是不变的啊,变化量只有角度,多次求fmincon的结果和意义是什么那?
作者:
lgd0901
时间:
2009-11-11 15:15
回复
7#
fighting0609
; X4 F. ~! Z7 Y4 P/ ?' M
' s- p: o1 F( u" ]: S1 ?
/ }6 y7 g# l7 q* C5 Y
这周末我想找时间把你的那个问题求解一下,然后给你答复好吧
" I {+ ]" }- t; L( V9 W1 \0 m2 F5 w
现在一下子确实想不明白
作者:
fighting0609
时间:
2009-11-12 09:00
回复
8#
lgd0901
( y! q" N" a2 D
# D4 q- s0 f' {; }+ a* I; J
. F) e b4 U2 e$ G6 L; r
那太好了,先谢下!
作者:
lgd0901
时间:
2009-11-13 09:43
回复
9#
fighting0609
% L& y6 Q! T- R3 Y3 @
5 k6 F( f( I1 n( e9 o3 v
! q6 J4 i! g8 Y# V( L* g
兄弟,我搞不定了。不好意思啊。
作者:
fighting0609
时间:
2009-11-15 19:53
回复
10#
lgd0901
4 n F7 Q7 W0 d; k3 N
* q- Q% V( R N* E5 c$ a
+ W2 x6 l1 }2 i1 J0 l$ `
没事。我再请教别人吧。还是要表示感谢。
作者:
lastfool
时间:
2010-1-19 16:49
学习中 呵呵 各位好强啊 努力啊。。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5