Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-07-24
年龄: 39
帖子: 2
声望力: 0 ![]() |
![]()
minf=-36962.04*cos(a)+15868.3*cos(a+b)-3385*cos(a+b+r)
s.t. g1=762.5*cos(a+b+r)-1260*cos(a)-1182.5*cos(a+b)+511.5-h=0; g2=1260*sin(a)-1182.5*sin(a+b)+762.5*sin(a+b+r)+1400=0; g3=a-60>=0; g4=a-180<=0; g5=b-64>=0; g6=b-180<=0; g7=r-64>=0; g8=r-180<=0; a,b,r的初始值为:a=160.06,b=64.94,r=147.5. h=150:50:3500,h每给一下值计算一次,以每次算出的解,即a,b,r,做为下次计算的初值,迭代计算。 关键是那个非线性等式约束中的h该如何处理,问了很多人都做不来,还望高手多多指点呀!!!!谢了先。 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-07-03
年龄: 47
帖子: 16
声望力: 17 ![]() |
![]()
主程序
clc clear p0=[160.06 64.94 147.5]; a=[]; b=[]; aeq=[]; beq=[]; xl=[60 64 64]; xu=[180 180 180]; i=1; global h for h=150:50:3500 [p,fmin]=fmincon(@obcon,p0,a,b,aeq,beq,xl,xu,@constraint); c(i,1:3)=p; p0=p; i=i+1; end c 子程序 function [g u]=constraint(x) global h g=[]; u=762.5*cos(x(1)+x(2)+x(3))-1260*cos(x(1))-1182.5*cos(x(1)+x(2))+511.5-h+1260*sin(x(1))-1182.5*sin(x(1)+x(2))+762.5*sin(x(1)+x(2)+x(3))+1400; end function y=obcon(x) y=-36962.04*cos(x(1))+15868.3*cos(x(1)+x(2))-3385*cos(x(1)+x(2)+x(3)); |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-07-24
年龄: 39
帖子: 2
声望力: 0 ![]() |
![]()
先谢谢这位哥们了,很高兴你能回帖
不过,为什么运行的时候前面会出现很多警告,而且用两个非线性等式约束为什么要加在一起,我看书上好像是用分号隔开的! |
![]() |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
Inside MATLAB Objects in R2008a | TechnicalArticles | MATLAB技术文章 | 0 | 2008-10-22 02:59 |
人脸识别分类的问题 | feiyan2000000 | MATLAB论坛 | 0 | 2008-06-06 11:43 |
【求助】新手请教,谢谢 | zhugeping | MATLAB论坛 | 0 | 2007-07-15 16:01 |
【求助】走遍了所有的Matlab社区都没人能够解答的一个小问题 | TD——SCDMA | MATLAB论坛 | 2 | 2007-05-19 12:56 |