马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我是用matlab优化工具箱的fmincon函数进行优化,在vc中显示优化结果。m文件代码如下:
function [X,FVAL,EXITFLAG]=optimize
x0=[5.264 2.942 1.688 1.0 0.694]';%初值
A=[1 -1.8 0 0 0
0 0 0 -1 1.5]; %线性不等式约束
b=[0 0]';
Aeq=[0 0 0 1 0]; %线性等式约束4挡传动比为1
beq=[1];
lb=[0 0 0 0 0];
ub=[];
% g=9.8;
options=optimset('Algorithm','active-set','Display','off'); % run active-set algorithm
[X,FVAL,EXITFLAG]=fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mynonlcon,options); %优化函数
用mcc编译成动态链接库供vc调用:mcc -W cpplib:liboptimize -T link:lib optimize.m 。
现在遇到的问题是在vc中编译没问题,一运行到调用optimize()函数就会出错,因为以前多次用到这样混合编程都没问题,只是以前我只是用matlab做计算,用vc显示计算结果,这次是用matlab优化,怀疑是不是因为matlab函数中调用fmincon的问题,于是mcc编译m文件时又加上了fmincon.m可还是不行,纠结了好几天了依然无法解决,那位高人指点我一下啊,不胜感激! |