24小时热门版块排行榜    

查看: 1698  |  回复: 7

lynettecc

新虫 (初入文坛)

[求助] matlab程序出错调试 已有2人参与

我的程序出现问题,但是不知道原因请求各位高手帮忙,不胜感激!

function f = statefunction(xx)
global mu lam10 Tmp TmE
global n
x=xx(1:n);
x=reshape(x,n,1);
u=xx(end-1:end);
%x1=x(1),x2=x(2),x3=x(3),x4=x(4),x5=x(5),x6=x(6),x7=x(7),x8=x(8),x9=x(9),x10=x(10),x11=x(11),x12=x(12)
% lamb7'=x(13),lamb8'=x(14),lamb9'=x(15),lamb11'=x(16),lamb12'=x(17)
%控制变量u1,u2
u1=u(1);
u2=u(2);

%控制变量u3,u4
uu1=controlE1(x);
u3=uu1(1);
u4=uu1(2);



function y=controlE1(x)

%x1=x(1),x2=x(2),x3=x(3),x4=x(4),x5=x(5),x6=x(6),x7=x(7),x8=x(8),x9=x(9),x10=x(10),x11=x(11),x12=x(12)
% lamb7'=x(13),lamb8'=x(14),lamb9'=x(15),lamb11'=x(16),lamb12'=x(17)

%x1=x(1),x2=x(2),x3=x(3),x4=x(4),x5=x(5),x6=x(6),x7=x(7),x8=x(8),x9=x(9),x10=x(10),x11=x(11),x12=x(12)
%lamb1=x(13),lamb2=x(14),lamb3=x(15),lamb4=x(16),lamb5=x(17),lamb6=x(18),...
%lamb7=x(19),lamb8=x(20),lamb9=x(21),lamb10=x(22),lamb11=x(23),lamb12=x(24);
options = optimset('TolFun',1e-6,'TolCon',1e-8);
options = optimset(options,'Algorithm','sqp');
uuE = fmincon(@(xx) myfun1(xx,x),[0;0],[],[],[],[],[-pi;-pi],[pi;pi],@(xx) cons1(xx,x),options);
u3=uuE(1);
u4=uuE(2);

y=zeros(2,1);
y(1)=u3;
y(2)=u4;


function q=myfun1(p,x)
global TmE

u3=p(1);
u4=p(2);
a=TmE*cos(u4)/x(8)*(x(15)*cos(u3)-x(8)*x(14)*sin(u3));
b=-TmE*x(14)*sin(u4)*cos(u3)+TmE/x(8)*(x(17)*cos(u4)/cos(x(9))-x(15)*sin(u3)*sin(u4));
q=a^2+b^2;


function [c ceq]=cons1(p,x)
global TmE

u3=p(1);
u4=p(2);
H11=-TmE*cos(u4)/x(8)*(x(8)*x(14)*cos(u3)+x(15)*sin(u3));
H12=TmE*sin(u4)/x(8)*(x(8)*x(14)*sin(u3)-x(15)*cos(u3));
H22=-TmE*(1/x(8)*(x(15)*sin(u3)*cos(u4)+x(17)*sin(u4)/cos(x(9)))+x(14)*cos(u3)*cos(u4));
c=zeros(2,1);
c(1)=H11+H22;
c(2)=-(H11*H22-H12*H12);
ceq=[];


如上程序运行时报错,请问哪位高手知道哪里出错吗?
??? Error using ==> sqpLineSearch at 20
Objective function is undefined at initial point. Fmincon cannot continue.

Error in ==> fmincon at 816
    [X,FVAL,EXITFLAG,OUTPUT,LAMBDA,GRAD,HESSIAN] =
    sqpLineSearch(funfcn,X,full(A),full(B),full(Aeq),full(Beq), ...

Error in ==> controlE1 at 17
uuE = fmincon(@(xx) myfun1(xx,x),[0;0],[],[],[],[],[-pi;-pi],[pi;pi],@(xx) cons1(xx,x),options);

Error in ==> statefunction at 14
uu1=controlE1(x);



回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-11-07 10:24:22
??? Error using ==> sqpLineSearch at 20
Objective function is undefined at initial point. Fmincon cannot continue.

sqpLineSearch函数中,目标函数在初始点未定义.sqpLineSearch 这个函数体呢?

» 本帖已获得的红花(最新10朵)

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-11-06 16:43:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lynettecc

新虫 (初入文坛)

送鲜花一朵
引用回帖:
2楼: Originally posted by libralibra at 2012-11-06 16:43:04
??? Error using ==> sqpLineSearch at 20
Objective function is undefined at initial point. Fmincon cannot continue.

sqpLineSearch函数中,目标函数在初始点未定义.sqpLineSearch 这个函数体呢?

我没有编辑sqpLineSearch 这个函数体,他是fmincon函数体的一部分,这是matlab工具箱内自带的啊!

我只是调用fmincon函数,其内部怎么算我不了解!并且我的程序能运行一段时间,是中间突然报错的,百思不得其解
3楼2012-11-07 09:57:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

王婷530

铜虫 (初入文坛)


【答案】应助回帖

我不懂,但还是强烈的支持下以上的回复!
4楼2012-11-13 21:31:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nneerr123

禁虫 (小有名气)

本帖内容被屏蔽

5楼2013-07-16 09:37:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chaixj_hi

铜虫 (初入文坛)

【答案】应助回帖

看看过程变量里有没有出现复数,导致结果是复数?
6楼2015-01-13 19:18:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jgong

银虫 (初入文坛)

【答案】应助回帖

你的问题解决了么?我也碰到了类似的问题,不过我的约束函数出现了问题。
但是当我调试时,一步一步的去调试反而能继续优化下去,十分不解。。。
小青椒嘎嘎
7楼2015-11-08 11:51:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jgong

银虫 (初入文坛)

【答案】应助回帖

你的问题解决了么?我也碰到了类似的问题,不过我的约束函数出现了问题。
但是当我调试时,一步一步的去调试反而能继续优化下去,十分不解。。。
小青椒嘎嘎
8楼2015-11-08 11:52:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lynettecc 的主题更新
信息提示
请填处理意见