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

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

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:1
gl2(i,:)=0:gl1:10;
end
con=[];
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,:)];
end
con = [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代码)考虑源荷两侧不确定性的含风电电力系统低碳调度等程序中均有应用。

相关文章
|
9天前
|
测试技术 索引 Python
Python接口自动化测试框架(基础篇)-- 函数与内置函数
本文详细介绍了Python中的函数概念,包括自定义函数、参数传递、局部与全局变量,以及内置函数的使用,还扩展了匿名函数、return和yield、exec()、vars()、iter()、map()、zip()、reversed()和sorted()等高级函数和概念。
11 1
Python接口自动化测试框架(基础篇)-- 函数与内置函数
|
9天前
|
存储 测试技术 数据库
Python接口自动化测试框架(练习篇)-- 函数编程(一)
本文通过实际的编程练习,讲解了面向过程编程的概念和应用,包括如何定义函数、处理文件读写以及实现用户注册功能,最终将这些过程封装成函数,体现了Python作为脚本语言的面向过程编程特性。
12 2
|
9天前
|
测试技术 Python
Python接口自动化测试框架(练习篇)-- 函数编程(二)
本文通过具体的编程练习,深入探讨了Python中的函数编程,包括如何定义函数、使用参数和返回值,以及函数式编程的技巧和应用,如使用lambda表达式和递归函数解决实际问题。
11 1
|
17天前
|
数据建模 Python
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数(上)
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数
21 7
|
17天前
|
算法 数据建模 Python
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数(下)
MATLAB - mpcobj = mpc(model,ts,P,M,W,MV,OV,DV) 函数
24 3
|
17天前
|
存储
MATLAB - 使用 MPC Designer 线性化 Simulink 模型
MATLAB - 使用 MPC Designer 线性化 Simulink 模型
10 1
|
2天前
|
JavaScript 前端开发 测试技术
顺藤摸瓜🍉:用单元测试读懂 vue3 watch 函数
顺藤摸瓜🍉:用单元测试读懂 vue3 watch 函数
|
29天前
|
算法 5G vr&ar
基于1bitDAC的MU-MIMO的非线性预编码算法matlab性能仿真
在现代无线通信中,1-bit DAC的非线性预编码技术应用于MU-MIMO系统,旨在降低成本与能耗。本文采用MATLAB 2022a版本,深入探讨此技术,并通过算法运行效果图展示性能。核心代码支持中文注释与操作指导。理论部分包括信号量化、符号最大化准则,并对比ZF、WF、MRT及ADMM等算法,揭示了在1-bit量化条件下如何优化预编码以提升系统性能。
|
26天前
|
Python
【Python】实现MATLAB中计算两个矩形相交面积的rectint函数
Python中实现MATLAB中rectint函数的方法,该函数用于计算两个矩形相交区域的面积,并通过定义Rectangle类和calc_area函数展示了如何计算两个矩形的交集面积。
18 1
|
17天前
|
自然语言处理
一级倒立摆控制 - 非线性 MPC 控制及 MATLAB 实现
一级倒立摆控制 - 非线性 MPC 控制及 MATLAB 实现
16 0

热门文章

最新文章

下一篇
云函数