声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1220|回复: 0

[编程技巧] 关于多目标优化中的目标达到法的问题

[复制链接]
发表于 2013-1-14 21:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我是新手,最近需要算有关双层隔振平台参数优化的东西,见下
function f=objfun(x)                                                                    %目标方程
m1=10;%m2=x(1);k1=x(2);k2=x(3);c1=x(4);c2=x(5);g1=x(6);g2=x(7);g3=x(8);g4=x(9);
A=[0 0 1 0;0 0 0 1;-x(2)/m1   x(2)/m1   -x(4)/m1   x(4)/m1;x(2)/x(1)   -(x(2)+x(3))/x(1)   x(4)/x(1)   -(x(4)+x(5))/x(1)];
B1=[0;0;1/m1;0];
B2=[0;0;-1/m1;1/x(1)];
E=[0 x(3) 0 x(5)];
F=[0 0 1 0];
I=eye(4);
G=[x(6) x(7) x(8) x(9)];
syms w
D=inv(1i*I*w-(A+B2*G));
f(1)=int(abs(E*D*B1),w,1,1000);
f(2)=int(abs(F*D*B1),w,1,1000);
f(3)=G*G';
function [c,ceq]=confun(x)                      %约束方程
m1=10;%m2=x(1);k1=x(2);k2=x(3);c1=x(4);c2=x(5);
a0=x(2)*x(3);
a1=(x(4)*x(3)+x(5)*x(2))/(m1*x(1));
a2=(x(2)*m1+x(2)*x(1)+x(3)*m1+x(4)*x(5))/(m1*x(1));
a3=(x(4)*m1+x(4)*x(1)+x(5)*m1)/(m1*x(1));
a4=1;
b1=a0;
b2=(a3*a2-a4*a1)/a3;
c1=(b2*a1-a3*b1)/b2;
c=[-b2;-c1];
ceq=[];
x0=[1;1;1;1;1;1;1;1;1];                             %利用goalattain算法计算
lb=[1;1;1;1;1;1;1;1;1];
ub=[100;10^8;10^8;1000;1000;10000;10000;10000;10000];
goal=1;
weight=1;
[x,fval]=fgoalattain(@objfun1,x0,goal,weight,[],[],[],[],lb,ub,@confun);
计算之后会出现如下报错
Warning: Explicit integral could not be found.
> In sym.int at 64
  In objfun at 12
  In goalcon at 62
  In fgoalattain at 402
  In opt at 6
??? Error using ==> fgoalattain at 402
Size of GOAL must be equal to the size of F returned by FUN.

Error in ==> opt at 6
[x,fval]=fgoalattain(@objfun,x0,goal,weight,[],[],[],[],lb,ub,@confun);
急呀,不知道怎么回事,哪位高手能帮我解决下
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 07:21 , Processed in 0.060194 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表