一、参考链接

https://blog.csdn.net/zhangxd212489/article/details/122263798?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165452789216781483756181%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165452789216781483756181&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-122263798-null-null.142v11pc_search_result_control_group,157v13new_style&utm_term=%E5%B9%B3%E6%96%B9%E7%BA%BF%E6%80%A7%E5%8C%96&spm=1018.2226.3001.4187

已查阅的资料,并不完全适合我,我也没看到合适的代码,所以自己写了个。。。。

二、实际论文的平方线性化过程

三、应用场景

①平方项的约束(若只有目标函数里有平方,那么大概率可以不用线性化)
例:热电联产的碳排放、成本等
②折线分段函数
例:阶梯碳交易等

四、本人的实现流程

首先,可以发现P2是平方项,与P阶数不同,因此需要线性化。
线性化过程如下:
其他地方约束照旧,用P方便的就直接用P
当已知0<=P<=500时,我们可以将其分为数段,我50一段,
因此,断点的x分别为[0, 50 ,100 ,150 ,200 …… 450 500 ]
对应y值是:[ 0 2500 …… 250000 ];
区段只有10个,落点位置标识10个,因此呢,需要将断点11个分成【下限10,上限10】
下限:down =[0, 50 ,100 , 150 ,200 …… 450 ];
上限:up =[50 ,100 ,150 ,200 …… 500 ];
将下限与上限拼成一个210的矩阵down_up。
(4)引入落点位置标识的辅助变量B = binvar(10,1 )
易知:只有一个落点在某个区段,因此:约束1:sum(B)==1;
判断P落在哪一个区段:约束2:down
B <= P <=upB
利用错位相减法,把各个区段的k = [k1 k2 …… k10 ],至于 b = [b1 b2 …… b10 ]不用求,可以用down0^2
B + dita_PkB去替代P^2
dita_P = P - down0B; %%第一个难点,BKB式子,如果B相同,仅有一个1,那么大概率可以去掉一个B
(6)其中再次出现变量相乘:sdpvar
binvar,因此需要进一步线性化:

类比可知,B相当于X1 ,P相当于 X2 ,PB相当于 y ,火电机组出力范围也刚好是[0, u=500 ]
因此可以直接套用为以下约束:
y = sdpvar(10,1)
y<=u
B
y<=P
y>=P-u(1-B)
0<=y<=P
%%第二个难点,dita_PkB式子,k间隔是不行的,需要替换位置成,kB dita_P,但是这样就出现了sdpvarbinvar不再是[1×1] [1×1],而是[10×1]* [1×1],因此需要注意思考其可行
%%第三个难点,X1与Y都必须推广到[N×1]个变量,那么此时的P2可替代为down02B + kY =[1×N]* [N×1] 去替代

(7)综上:a1+b1P +c1P^2 = a1+b1P+c1( down0^2B + ky )
至此,仅仅实现了1个火电机组1个时刻出力的P^2的线性化

五、推广到N台机组T个时刻

见视频配套程序包,我做了两个推广
(1)1台机组T个时刻的出力
(2)M台机组T个时刻的出力:这个推广的较为冗杂,相当于每台机组,需要一段代码,但是我没法继续推广,将N台机组公用一个矩阵,因为,仅仅1台机组T个时刻的出力,就已经出现了构造m*n的矩阵,若是N台机组T个时刻的出力就需要构造三维矩阵,那个我不熟悉,有大神会的,可以给我私发,有偿

六、快速查找替换方法的演示,见视频最后

(1)全m文件替换
(2)选中某区域内进行替换(无法实现,有大神会的,可以给我私发,有偿)
(3)从某行开始逐一替换

七、注意点

(1)只是目标函数里有变量平方大概率可以不用线性化,
(2)约束条件里有变量平方,且所在等式里同时含有1阶和2阶的,必须要线性化
P^2线性化到底有没有用。
文中程序,线性化正确性的验证。线性化后的9.1076与9.099相近且略大,验证正确与。

Y>=0必须要写。

八、程序在我个人B站里进行了详细的解释

https://space.bilibili.com/211568434?spm_id_from=333.1007.0.0

感谢阅读!!!

0057____火电厂aP^2+bP+c (平方或折线分段函数) 的线性化相关推荐

  1. 手机芯片的AP、BP和CP

    AP(application process):手机中的应用处理器CPU.操作系统.用户界面和应用程序都在AP上执行. BP(baseband):基带处理器.即手机中的modem,运行手机射频通讯控制 ...

  2. android系统开发 AP 和 BP 简要说明

    手机的AP和BP根据上下文可以指代硬件和软件两种意思.    1) 大多数的手机都含有两个处理器.操作系统.用户界面和应用程序都在Application Processor(AP)上执行,AP一般采用 ...

  3. Android AP 和 BP的概念

    Android AP 和 BP的概念 AP:Application Processor,即应用芯片: BP:Baseband Processor,即基带芯片: FCC(美国联邦通信委员会)认证要求将A ...

  4. 安卓中的AP、BP、NV是什么意思?

    安卓中的AP.BP.NV是什么意思? 参考链接:https://blog.csdn.net/baidu_27196493/article/details/78217927 1.大多数的手机都含有两个处 ...

  5. 手机里面的AP与BP

    高通的芯片里面又分AP.BP, AP与BP分别表示什么? AP:Application Processor,即应用芯片 BP:Baseband Processor,即基带芯片 双核,四核,八核主要指的 ...

  6. Android中AP和BP概念

    AP和BP 大多数的手机都含有两个处理器.操作系统.用户界面和应用程序都在Application Processor(AP)上执行,AP一般采用ARM芯片的CPU.而手机射频通讯控制软件,则运行在另一 ...

  7. [转载] android系统开发 AP 和 BP 简要说明

    转自 https://blog.csdn.net/zhanghao_hulk/article/details/8468621 手机的AP和BP根据上下文可以指代硬件和软件两种意思.    1) 大多数 ...

  8. Android手机系统开发中的AP和BP是什么

    现在大部分的手机都含有两个处理器. 操作系统,应用程序都会在Application Processor上运行,即AP上运行,AP一般残影ARM芯片cpu,也是我们平常认为的cpu. 手机射频通讯控制软 ...

  9. 手机端AP和BP的含义

    词语解释: Applicationprocessor (AP) = CPU + GPU Cellularprocessor (CP) = Cellular modem Graphical Proces ...

最新文章

  1. 线性求[1,P-1]的逆元
  2. 离散傅里叶变换(DFT)(为了使用而学习的DFT)
  3. Design Pattern - Bridge(C#)
  4. java8 LocalDate 日期比较大小
  5. 0100-Same Tree(相同的树)
  6. php语言难点,PHP知识难点TOP3,挑战一下你
  7. oracle in 索引_Oracle 性能优化总结
  8. Java ——异常处理
  9. C# 指针操作图像 细化处理
  10. string类有可以调换方向的函数吗_关于String类的split()方法
  11. Web App开发入门
  12. android模拟器命令行,夜神安卓模拟器命令行整理贴
  13. 计算机书籍每周销量排行榜
  14. iOS Segue使用
  15. Go避免使用大堆造成的高GC开销
  16. 深信服SSL远程接入与深信服行为审计同步登陆用户信息
  17. Jenkins编辑或替换All view
  18. Jfinal-Controller层注入Service空指针异常
  19. Python matplotlib 批量绘图内存不够问题(Out of memory)
  20. QQ邮箱 接受 天气查询 阿里云自动运行学习记录

热门文章

  1. 几种常见的寄存器作用
  2. MySQL 语法整理
  3. Mysql出现which is not functionally dependent on columns in GROUP BY clause的解决办法
  4. 水平接近病理学家!人工智能快速解码脑癌基因组
  5. 科技论文写作之冠词的使用
  6. chrome on mac
  7. Request获取请求信息的方法
  8. 印加奇普——令人惊叹的结绳记事法
  9. 利用Excel计算耦合度及耦合协调度
  10. 关于Python的mock