如何定义一个二进制变量作为约束条件的优化问题(fmincon) ?

45视图(30天)
我在做一个优化问题,优化成本微型智能电网"包括电池存储单元。我使用了fmincon功能和写所有非线性不等式约束除了c (x)我表示如下。u_ch (t)是一个二进制变量,可以“1”时,电池充电或放电时是“0”。我需要知道电池充电或放电的时间所以我需要计算“u_ch (t)”。
问题是,我不能设法定义一个二进制变量fmincon Matlab和使用它。P_Batt_charge (t)和P_Batt_disharge (t)也决策变量。优化结束后,我还需要为每个t计算他们的价值观。有什么建议我如何写这些约束?
P_Batt_charge (t)≤150千瓦* u_ch (t)
P_Batt_disharge (t)≤180千瓦* (1-u_ch) (t))

接受的答案

艾伦·韦斯
艾伦·韦斯 2022年2月4日
编辑:艾伦·韦斯 2022年2月4日
fmincon 不接受二元约束,或任何整数约束。唯一的解决者,接受一个非线性目标函数或约束函数和整数约束 遗传算法 surrogateopt
通常可以使用线性近似的成本和约束目标和约束。如果你能做到这一点,您可以使用 intlinprog 解算器。一个能源相关的例子,看到 电力发电机优化调度:具体问题具体分析
艾伦·韦斯
MATLAB数学工具箱文档
7评论
穆罕默德turk TAKCI
穆罕默德turk TAKCI 2022年2月6日
你好,是的,我使用R2020b。所以,我需要安装R2021a以上使用所有类型的约束。好的,感谢所有信息。

登录置评。

更多的答案(0)

类别

找到更多的在代理优化帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!