知识分享|分段函数线性化及matlab测试

目录

[1 使用0-1变量将分段函数转换为线性约束](#1 使用0-1变量将分段函数转换为线性约束)

[2 连续函数采用分段线性化示例](#2 连续函数采用分段线性化示例)

[3 matlab程序测试](#3 matlab程序测试)

[4 matlab测试结果说明](#4 matlab测试结果说明)

[5 分段线性化应用](#5 分段线性化应用)


1 使用0-1变量将分段函数转换为线性约束

2 连续函数采用分段线性化示例

3 matlab程序测试

复制代码
clc;clear all;gn=10;tn=1;x_pf=sdpvar(1, tn,'full');Pgone=8;gw1=sdpvar(gn+1,tn,'full');gz1=binvar(gn, tn,'full');gl1=10/gn;for i=1:1gl2(i,:)=0:gl1:10;endcon=[];con = [con, x_pf(1,:)==gl2(1,:).^2*gw1];con = [con, gw1(1,:)<=gz1(1,:)];for i=2:gn    con = [con, gw1(i,:)<=gz1(i-1,:)+gz1(i,:)];endcon = [con, gw1(gn+1,:)<=gz1(gn,:)];con = [con, sum(gw1)==ones(1,tn)];con = [con, sum(gz1)==ones(1,tn)];con = [con, Pgone(1,:)==gl2(1,:)*gw1];​con = [con, gw1>=0];f=1;ops=sdpsettings('solver','cplex');result=optimize(con,f,ops);

4 matlab测试结果说明

在上述测试程序中,Pgone是平方之前的变量,x_pf是平方项,为了测试运算效果,目标函数采用定值,这样就能验证约束是不是严格限制,上述程序将Pgone取值为8,最终得到x_pf得64,将Pgone改成5,则x_pf得25,可以看出,此分段线性化模型严格约束。

大家在测试过程中,可以调节gn的值,该值代表的是分段数量,调节该值能够发现,随着分段数量增多,分段线性化的精度也会越来越高,如,当Pgone=5,gn=3时,x_pf=27.78,随着gn增大,x_pf值也就更加精确。

5 分段线性化应用

在电力系统中,常规机组的成本涉及到机组功率的平方项,这时候就可以采用分段线性化,如日前日内多阶段多时间尺度源荷储协调调度(matlab代码)考虑源荷两侧不确定性的含风电电力系统低碳调度等程序中均有应用。

相关推荐
NoteStream13 分钟前
MATLAB绘制带置信区间的折线散点图(科研绘图模板)
开发语言·matlab
简简单单做算法1 小时前
基于遗传算法和贝叶斯联合优化的BiLSTM(GA-BO-BiLSTM)一维时间序列预测算法matlab仿真
matlab·一维时间序列预测·ga-bo-bilstm·遗传和贝叶斯联合优化
程高兴14 小时前
三相两电平光伏MPPT定步长扰动观察法Simulink
matlab
CAE3201 天前
BPM-Matlab光束传播法光学仿真
matlab·bpm·光束传播法
Evand J2 天前
【MATLAB例程,车联网8】MPC网联车辆节能跟驰控制:速度跟踪、间距约束与能耗优化。附MATLAB完整代码的下载链接
开发语言·matlab·车联网·调度·mpc·节能·车辆控制
阿 才2 天前
Matlab(Simulink)使用详解
运维·网络·matlab
Evand J2 天前
【MATLAB例程,车联网12】基于模型预测控制(MPC)的网联车辆交叉口生态驾驶动态优化仿真分析。附完整代码的下载链接
物联网·matlab·车联网·mpc·模型预测控制·车辆·网联车辆
民乐团扒谱机2 天前
【微实验】线性代数之——奇异值分解 SVD:穿透数据迷雾的“X光机”,附 MATLAB 全流程仿真
线性代数·算法·matlab
majorArcs3 天前
MATLAB 绘制论文级双重饼图:2024 高教社杯 C 题实战
matlab
ClouGence3 天前
自动化测试实战:手把手教你用 AI Agent 实现版本打包自动化
人工智能·ai编程·测试