赞
踩
能效优化问题:
优化目标为找到最小化J对应的u、v。
时间为从零点开始的24小时,每隔20分钟取一次值,不同时间段的u、v不同,最后得到的u、v为72维的向量。
fmincon解决的是形如下面问题的最优化问题:
在使用fmincon求解最优值的过程中,可以有以下所示的多种形式:
x = fmincon(fun,x0,A,b)
x = fmincon(fun,x0,A,b,Aeq,be)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
其中,fun为目标函数,x0为初始值,其他的都为约束条件
具体选择哪种形式,取决于问题的约束是什么类型的约束。
例如:如果约束只为一个线性不等式
min f(x)
x(1) + 2x(2) <= 1
将约束转化为矩阵表示,就为[1,2]*x <= 1
根据fmincon,令A=[1,2],b=1。
fun = @(x)100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
x0 = [-1,2];
A = [1,2];
b = 1;
x = fmincon(fun,x0,A,b)
u为72维向量,v为72维向量,变量x=[u;v]为144维向量。
为边界条件,可设置lb,ub
lb = zeros(144,1)
ub = [1800*ones(72,1);3*ones(72,1)]
线性不等书约束条件,可设置A,b
A = -ts*[ones(1,72),zeros(1,72)]
b = -10800
非线性约束,可设置
function [c,ceq] = nonfun(x)
x = x(1:72)
v = x(73:end)
c = [-u./(3.6*v
u./(3.6*v-177]
ceq = []
最终选择一个初值x0调用
fun = @cost %定义的J函数
nonlcon = @nonfun
x = fmincon(fun,x0,A,b,[],[],lb,ub,nonlcon)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。