MATLB|改进遗传算法优化微电网调度(考虑环境)

news2024/10/6 5:35:31

 💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者
📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以免费的关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

 👨‍🎓博主课外兴趣:中西方哲学,送予读者:

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。在我这个专栏记录我有空时的一些哲学思考和科研笔记:科研和哲思。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

📋📋📋本文目录如下:⛳️⛳️⛳️

目录

1 概述

2 运行结果展现

2.1 情况一

 2.2 情况二

 2.3 情况三

2.4 情况四 

3 Matla代码实现


1 概述

微电网是自给自足的配电系统。为了自给自足,系统需要一个智能控制器来确定电源的来源。本文将使用改进遗传算法实现微电网调度。将对两种类型的生存方法和两种类型的繁殖方法进行分析和比较,以确定哪种方法的解决方案组合可以提供最佳结果。将使用的繁殖方法是变异和交叉。将使用的生存方法是精英主义和随机选择。

微电网控制很复杂。使用改进遗传算法创建孤岛微电网模型和系统发电的优化。将通过在24小时内模拟该微电网模型的控制来测试该模型。

2 运行结果展现

2.1 情况一

           

运行结果:

 

 2.2 情况二

        

 2.3 情况三

   

 

 

 

2.4 情况四 

 

 这个运行时间要长点,我就不等着运行了,直接上代码了。

部分代码:


%% MATLB|改进遗传算法优化微电网调度(考虑环境)

clear
clc
close all


pop=100;            % 种群数量
m_rate = .1;        % 突变率
c_pt = 2;           % 交叉点
good_enough = .08;  % 何时停止
weights = [1, .6, .4];
%% 染色体
power = 1;
cost = 2; 
emission = 3;
source_1 = [20, .02, .01];
source_2 = [120, .20, .05];
source_3 = [15, .01, .02];
source_4 = [50, .02, .04];
sources = [source_1; source_2; source_3; source_4];

%=====定义范围===========
[num_sources, num_genes] = size(sources);
boundaries = zeros(num_genes, 2);
boundaries(1,:) = [15, 100];        %功率范围
boundaries(2,:) = [.15, 6.55];      % 获得最大功率的最低成本
boundaries(3,:) = [.15, 3.75];      % 获得最大功率的最小排放量

%% 选择策略
disp('Choose a Reproduction Method');
r = input(' 1 - Mutation\n 2 - Crossover\n ');
while r > 2 || r < 1
    r = input(' \nInput a valid number\n 1 - Mutation\n 2 - Crossover\n ');
end
disp('' );
disp('Choose a Survival Method');
s = input('1 - Random Selection\n 2 - Elitism\n ');
while s > 2 || s < 1
    s = input(' \nInput a valid number\n 1 - Random Selection \n 2 - Elitism\n ');
end
disp('');


if r == 1
    reproduction = @mass_mutate;
else
    reproduction = @crossover;
end

if s == 1
    survival = @random_selection;
else
    survival = @elitism;
end

%% 负荷序列
load = TimeSeries();

%% 生成初始代
chromosomes = chromosome_gen(pop, sources);


vector = zeros(24, num_sources);    % 最佳染色体的初始化向量
econ = zeros(24, 1);                % 为经济因素初始化向量
enviro = zeros(24, 1);              % 环境初始化向量
time = zeros(24, 1);                % 存储时间的向量
for i = 1:length(load)
    tic;

    % 得到适应度向量
    fit = fitness(chromosomes, sources, boundaries, weights, load(i));
    [best, best_i] = min(fit);

    % 循环直至找到合适的染色体
    while(~stop_condition(fit, good_enough))

        % 用选定的方法繁殖
        chromosomes = reproduction(chromosomes, pop, sources, boundaries, m_rate, c_pt);
        fit = fitness(chromosomes, sources, boundaries, weights, load(i));

        % 存活
        chromosomes = survival(pop, chromosomes, fit);

        % 适应度
        fit = fitness(chromosomes, sources, boundaries, weights, load(i));
        [best,best_i]=min(fit);
        
        % 去除NaN
        if(isnan(best))
            best = 1;
        end
    end

    %存储经过的时间
    elapsed = toc; 
    time(i) = elapsed;

    % 将染色体存储在向量中
    vector = store_best(vector, fit, chromosomes, i);
    
    %  储存经济因子
    econ(i) = econ_fitness(chromosomes(best_i, :), sources, boundaries, weights);

    % 储存环境因子
    enviro(i) = enviro_fitness(chromosomes(best_i, :), sources, boundaries, weights);
end

%% 可视化
enviro_plot(enviro);
econ_plot(econ);
power_plot(vector, load);
calculation_plot(time);

%% 输出
get_data(load, vector, sources)

3 Matla代码实现

博客主页:电气辅导帮

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/81515.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 高可用之持久化

Redis 高可用之持久化Redis 高可用什么是高可用Redis的高可用技术Redis持久化持久化的功能Redis提供两种方式进行持久化&#xff1a;RDB持久化触发条件bgsave执行流程启动时加载AOF持久化&#xff08;支持秒级写入&#xff09;开启AOF执行流程启动时加载RDB和AOF的优缺点RDB持久…

CSC7261M

CSC7261M是一款内置高压MOS的高性能、多工作模式的PWM控制芯片&#xff0c;内置多种保护机制。当系统为空载和轻载时&#xff0c;芯片采用Burst和Green控制模式可有效地减少了空载和轻载时的损耗。当系统为中载和重载时&#xff0c;CSC7261M芯片采用CCM模式可有效提升电源系统的…

校招面试中常见的算法题整理【长文】

⭐️我叫恒心&#xff0c;一名喜欢书写博客的研究生在读生。 原创不易~转载麻烦注明出处&#xff0c;并告知作者&#xff0c;谢谢&#xff01;&#xff01;&#xff01; 这是一篇近期会不断更新的博客欧~~~ 有什么问题的小伙伴 欢迎留言提问欧。 文章目录前言一、链表问题1 合并…

Anaconda安装详细教程

一、Anaconda下载 &#xff08;1&#xff09;方式一&#xff1a;Anaconda官网 不推荐使用官网下载&#xff1a; &#xff08;1&#xff09;官网下载速度非常慢&#xff0c;需要使用国内源下载 &#xff08;2&#xff09;官网下载的是最新版本&#xff0c;可能使用时会出现意料…

基于java+springboot+mybatis+vue+mysql的地方废物回收机构管理系统

项目介绍 地方废物回收机构管理系统能够通过互联网得到广泛的、全面的宣传&#xff0c;让尽可能多的用户了解和熟知地方废物回收机构管理系统的便捷高效&#xff0c;不仅为用户提供了服务&#xff0c;而且也推广了自己&#xff0c;让更多的用户了解自己。对于地方废物回收机构…

【 SQLite3移植到ARM Linux教程】

SQLite3移植到ARM Linux教程1 下载 SQLite3源码2 复制并解压源码包3 配置编译选项4 编译5 去除调试信息6 复制文件7 运行测试sqlite3SQLite 是一款轻型的数据库&#xff0c;是遵守ACID的关联式数据库管理系统&#xff0c;它的设计目标是嵌入式的&#xff0c;而且目前已经在很多…

MyBatis如何处理表关联

实体类 学生表 添加对应对象 - 教师 private Teacher teacher; 2. Mapper添加对应结果集映射 collection 一对多 学科表 对 学生表 1. 实体类 学科 添加对应集合 – 学生 private List<Student> stuList; 2. Mapper添加对应结果集映射 使用ResultType实现结果多表映…

[附源码]Python计算机毕业设计Django云南美食管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Redis配置、优化以及相命令

目录 一、关系数据库和非关系型数据库 1、关系型数据库 2、非关系型数据库 二、关系型数据库和非关系型数据库区别 1、数据存储方式不同 1.1 关系型数据 1.2 非关系型数据库 2、扩展方式不同 2.1 SQL数据库 2.2 NoSQL数据库 3、对事务性的支持不同 3.1 SQL数据库 …

全网最详细的HTTP协议学习笔记

目录 一、HTTP简介 相关词语 HTTP请求过程 二、HTTP详解 1.在TCP/IP协议中的位置 2.Request(请求消息) 3.Response(响应消息) 4.HTTP状态码 5.HTTP请求方法 6.其他 三、练习自测 四、总结 五、重点&#xff1a;配套学习资料和视频教学 一、HTTP简介 全称&#…

[附源码]Python计算机毕业设计大学生兼职管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

[附源码]Python计算机毕业设计宠物短期寄养平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

R语言无监督学习:PCA主成分分析可视化

总览 在监督学习中&#xff0c;我们通常可以访问n个 观测值的p个 特征 集 &#xff0c;并 在相同观测值上测得的 Y。 无监督学习是一组没有相关的变量 Y的方法。在这里&#xff0c;我们重点介绍两种技术… 主成分分析&#xff1a;用于数据可视化或在其他监督学习方法之…

面试官:你说说Springboot的启动过程吧(5.4万字分析启动过程)

文章目录前言一、Springboot是什么二、启动流程2.1 构建Spring Boot项目2.2 启动的日志2.3 启动流程分析说明2.3.1 第一部分&#xff1a;SpringApplication的构造函数A、webApplicationType&#xff08;web应用类型&#xff09;B、引导注册初始化器C、设置初始化器D、设置监听器…

[附源码]Python计算机毕业设计大学生二手物品交易网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

锁存器和触发器

大多数数字系统中,除了需要具有逻辑运算和算术运算功能的组合逻辑电路外,还需要具有存储功能的电路。组合电路与存储电路结合构成时序逻辑电路,简称时序电路。 本文将讨论实现存储功能的两种逻辑单元电路∶锁存器和触发器,着重讨论其工作原理与电路结构,以及所实现的不同逻…

手写js——继承

原型链继承 所谓 函数 也就是 函数 Father其本身&#xff0c;也叫作构造函数 &#xff0c;当一个函数被创建的同时&#xff0c;也会为其创建一个 prototype 属性&#xff0c;而这个属性&#xff0c;就是用来指向 函数原型&#xff0c;的我们可以把 prototype 理解为 Father的一…

用 Numba 加速 Python 代码,变得像 C++ 一样快

1. 介绍 Numba 是 python 的即时&#xff08;Just-in-time&#xff09;编译器&#xff0c;即当你调用 python 函数时&#xff0c;你的全部或部分代码就会被转换为“即时”执行的机器码&#xff0c;它将以你的本地机器码速度运行&#xff01;它由 Anaconda 公司赞助&#xff0c…

SpringMVC初配置解析?

在springMVC-servlet中 在web.xml中 SpringMVC常用注解 Controller 负责注册一个bean 到spring 上下文中 RequestMapping 注解为控制器指定可以处理哪些 URL 请求 RequestBody 该注解用于读取Request请求的body部分数据&#xff0c;使用系统默认配置的HttpMessageConverter进行…

CentOS7安装Cockpit网页版图像化服务管理工具

不经意间看到CentOS8说是默认集成了Cockpit——网页版图像化服务管理工具&#xff0c;出于为了更好的管理自己的服务器&#xff0c;于是参考一些资料在自己的服务器CentOS7上也安装了一个。 一、Cockpit是什么 github 地址&#xff1a; https://github.com/cockpit-project/c…