基于遗传算法的IEEE33节点配电网重构程序
一、配电网重构原理
配电网重构(Distribution Network Reconfiguration, DNR)是一项优化操作,旨在通过改变配电网中的开关状态,优化电力系统的运行状态,以达到降低网损、均衡负载、改善电压质量等目标。配电网重构的核心目标通常包括:
- 减少网损:配电网中的电能损耗(网损)是影响电网运行效率的关键因素,合理重构可以降低损耗,提高能源利用效率。
- 提高电压质量:通过优化网络拓扑结构,使电压分布更加均衡,提高供电质量。
- 增强系统可靠性:优化开关状态可提高系统的容错能力,增强应对故障的能力。
- 均衡负载:优化负荷分配,避免部分线路和变电站长期处于高负载状态,提高设备使用寿命。
1.1 典型的配电网重构方法
常见的配电网重构方法包括:
- 数学规划法:利用线性规划、非线性规划等优化技术求解最优开关组合。
- 启发式算法:如遗传算法(GA)、粒子群优化(PSO)、蚁群算法(ACO)等,适用于求解大规模非线性优化问题。
- 混合优化方法:结合数学优化方法和智能优化算法,提高求解效率。
二、程序介绍
本程序基于Matlab 2021b开发,采用**遗传算法(GA)进行IEEE33节点系统的配电网重构,以最小化网损为优化目标。
程序下载链接(需安装matpower才能运行):
基于遗传算法的配电网重构程序Matlab版本:Matlab2021b,有参考文献(非复现)和程序说明。一、程序功能:实现配电网重构(仅适用于IEEE33节点,非动态)二、优化算法:遗传算法三、目标个数:1(网损最小,可在object_fun程序里修改成其他的)四、自变量个数:5(因为IEEE33节点有5个联https://mbd.pub/o/bread/aJWam51rmatpower安装步骤:
最简单的方法教你装matpower_matpower怎么安装-CSDN博客https://blog.csdn.net/zhangkaikai36/article/details/123850992?ops_request_misc=%257B%2522request%255Fid%2522%253A%252238cbf4a280fbf73974ea368611611f5d%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=38cbf4a280fbf73974ea368611611f5d&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-123850992-null-null.142^v102^pc_search_result_base8&utm_term=matpower%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187
2.1 主要功能
- 适用于 IEEE33节点系统 进行配电网重构。
- 采用遗传算法 进行优化计算。
- 优化目标:默认以最小化网损 为目标,用户可在
object_fun
进行修改。 - 变量个数:由于IEEE33节点配电网中含有5个联络开关,优化问题的决策变量个数为5。
2.2 主要函数
本程序采用模块化编程,主程序调用各个子程序完成优化过程:
-
main.m
(主程序):- 负责调用各个模块,执行遗传算法,完成配电网重构优化计算。
-
initialize.m
(初始化种群):- 初始化种群(即生成初始开关状态组合)。
- 计算初始种群的适应度。
-
object_fun.m
(目标函数计算):- 计算适应度,即网损值。
- 用户可根据需要修改优化目标,例如:电压偏差最小化、负载均衡等。
-
select.m
(选择操作):- 采用适应度比例选择(Roulette Wheel Selection)等方法,选择适应度较高的个体进入下一代。
-
cross.m
(交叉操作):- 对选出的个体进行交叉操作,生成新的候选解。
-
mutation.m
(变异操作):- 通过随机变异,增强种群多样性,避免陷入局部最优。
-
Iteration.m
(迭代计算):- 负责控制遗传算法的迭代过程,记录优化结果。
-
test_1.m
(辐射性约束判断):- 负责检查生成的配电网是否保持辐射性(即无环结构)。
-
test_2.m
(连通性约束判断):- 负责检查配电网是否保持连通性,避免生成不可行解。
2.3 运行要求
- Matlab 2021b(其他版本也兼容)。
- Matpower工具箱(用于电力潮流计算)。
- 命令行窗口 提供优化结果展示,包括方案详情及迭代耗时。
三、程序运行流程
3.1 运行步骤
-
加载Matlab和Matpower:
- 运行
startup.m
加载Matpower工具箱。
- 运行
-
运行主程序
main.m
:- 运行
main.m
开始优化计算,程序会依次调用子模块。
- 运行
-
观察优化过程:
- 每次迭代会在命令行窗口显示当前最优解 和计算耗时。
-
获取最终结果:
- 程序最终输出最优的开关状态组合,并展示网损优化结果。
3.2 计算示例
假设初始IEEE33节点系统网损为 202.7 kW,通过遗传算法优化后,网损降低至 162.5 kW,实现了 19.8% 的损耗降低。
四、扩展与优化
4.1 目标函数扩展
除了网损最小化,该程序的目标函数 object_fun.m
可修改为:
-
电压偏差最小化:
min∑i=1N(Vi−Vref)2\min \sum_{i=1}^{N} (V_i - V_{\text{ref}})^2其中 ViV_i 是第 ii 个节点的电压,VrefV_{\text{ref}} 是参考电压。
-
负载均衡优化:
min∑i=1N∣Si−Savg∣\min \sum_{i=1}^{N} \left| S_{i} - S_{\text{avg}} \right|其中 SiS_i 为第 ii 个支路的负载功率,SavgS_{\text{avg}} 为平均负载。
4.2 适用于动态配电网重构
目前该程序仅适用于静态配电网重构,可扩展为:
- 时间序列分析:考虑每日负荷变化,不同时间段动态调整开关状态。
- 分布式电源(DG)接入:优化DG接入后的配电网结构,最大化可再生能源利用。
4.3 其他优化算法
虽然当前程序采用遗传算法(GA),但可替换为:
- 粒子群优化(PSO):收敛速度快,适合大规模配电网优化。
- 蚁群算法(ACO):适用于组合优化问题,如配电网动态重构。
五、运行结果及部分代码
5.1部分代码
%% 程序介绍
%-----------------------------------------------------------------%
%程序功能:配电网重构
%程序算法:遗传算法。
%程序适用:仅IEEE33节点,目标函数仅为1。
%目标:配电网有功损耗最小
%选择方法:轮盘赌选择法
%-----------------------------------------------------------------%
%参数说明
%f_num:目标函数个数
%x_num:控制量个数
%pop:种群数量
%individual:个体
%x_min,x_max:编码范围
%pc:交叉概率
%pm:变异概率
%max_gen:最大迭代次数
%-----------------------------------------------------------------%
%% 清空环境
close all;
clear;
clc;
%% 配电网参数
mpopt = mpoption;
mpopt = mpoption(mpopt, 'VERBOSE', 0, 'OUT_ALL', 0); %潮流算法及显示设置 %牛拉法
mpc = loadcase('case33bw'); %载入33节点数据,需要安装matpower
nbus = size(mpc.bus, 1); %节点数
nbranch = length(find(mpc.branch(:, 11) == 1)); %支路数
contactbranch = length(find(mpc.branch(:, 11) == 0)); %联络开关数
h1 = [2, 3, 4, 5, 6, 7, 18, 19, 20, 33]; %环网1 10个开关
h2 = [9, 10, 11, 12, 13, 14, 34]; %环网2 7个开关
h3 = [6, 7, 8, 15, 16, 17, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36]; %环网3 16个开关
h4 = [8, 9, 10, 11, 21, 33, 35]; %环网4 7个开关
h5 = [3, 4, 5, 22, 23, 24, 25, 26, 27, 28, 37]; %环网5 11个开关
result_previous = runpf(mpc, mpopt); %重构前潮流计算结果
ploss_previous_sum = sum(abs(result_previous.branch(:, 14) + result_previous.branch(:, 16))); %重构前配电网总有功损耗%% 遗传算法参数
pop = 500; %种群规模;可修改
max_gen = 50; %进化代数;可修改
pc = 0.7; %交叉概率;可修改
pm = 0.05; %变异概率;可修改
x_num = contactbranch; %自变量个数%% 生成所有开关组成的组合。86240种
tic;
a = cell(1, 5);
[a{:}] = deal(h1, h2, h3, h4, h5); %给元胞数组赋值row = 1; %行数
y = [];
global nnn; %组合序号
nnn = 1;
global H; %存放所有组合
H = {};for j = a{row} %aaa第一个元胞数组中的数循环y(row) = j;Iteration(a, row, x_num, y);
end
H = H';
H = cell2mat(H); %元胞数组转化为矩阵
disp('-----------------------------------------');
disp(['已生成所有开关组合,共 ' num2str(size(H, 1)) ' 种。']);
toc;
disp('-----------------------------------------');
%% 辐射性判断。55750种,判断是否有环路
tic;
individual = zeros(size(H));
for h1 = 1 : size(H, 1)individual(h1, :) = test_1(H(h1, :));
end
individual(all(individual == 0, 2), :) = []; %去掉0行,即重复开关
%去掉重复组合
individual = sort(individual, 2);
individual = unique(individual, 'rows', 'stable');
disp(['辐射性判断完成,剩余 ' num2str(size(individual, 1)) ' 种组合。']);
toc;
disp('-----------------------------------------');
%% 连通性判断。50751种,去除断路的情况
tic;
for h2 = 1 : size(individual, 1)[individual(h2, :), branch{h2, 1}] = test_2(individual(h2, :));
end
individual(all(individual == 0, 2), :) = []; %去掉0行,即不符合条件的
branch(cellfun(@isempty, branch)) = [];
disp(['连通性判断完成,剩余 ' num2str(size(individual, 1)) ' 种组合。']);
toc;
disp('-----------------------------------------');%% 初始化种群
tic;
% 从开关组合中随机选取pop种
chromo.individual = zeros(pop, x_num); %存储个体
chromo.branch = cell(pop, 1); %存储重构后branch矩阵信息
chromo.fitness = zeros(pop, 1); %存储适应度
% 生成种群
[chromo.individual, chromo.branch] = initialize(pop, individual, branch);
for i = 1 : pop[chromo.fitness(i), ~, ~ ] = object_fun(chromo.branch(i)); %计算个体适应度
end%找最好的染色体
[best_fitness, best_index] = min(chromo.fitness);
best_individual = chromo.individual(best_index, :); %最好的染色体
best_branch = cell2mat(chromo.branch(best_index)); %最好的拓扑图信息
% avg_fitness = sum(chromo.fitness) / pop; %染色体的平均适应度
disp('-------------------------------------')
disp('种群初始化完成。')
toc;
disp('-------------------------------------')
trace = zeros(max_gen, 1 + x_num); %存储最优fitness
every_best_branch = cell(max_gen, 1);%% 进化开始
gen = 0;
basetime = datetime('now');
while gen < max_gen% 选择操作chromo = select(chromo, pop);% 交叉操作chromo = cross(pop, pc, x_num, chromo);% 变异操作chromo = mutation(pop, pm, x_num, chromo);% 计算适应度for j = 1 : pop[chromo.fitness(j), ~, ~] = object_fun(chromo.branch(j));end%找到最小和最大适应度的染色体及它们在种群中的位置[new_best_fitness, new_best_index] = min(chromo.fitness);[worest_fitness, worest_index] = max(chromo.fitness); %worst最坏的% 代替上一次进化中最好的染色体if best_fitness > new_best_fitnessbest_fitness = new_best_fitness;best_individual = chromo.individual(new_best_index, :);best_branch = cell2mat(chromo.branch(new_best_index));endchromo.individual(worest_index, :) = best_individual;chromo.branch{worest_index, 1} = best_branch;chromo.fitness(worest_index) = best_fitness;trace(gen + 1, 1) = best_fitness; %记录每一代进化中最好的适应度trace(gen + 1, 2 : (2 + x_num - 1)) = best_individual; %记录每一代进化中最好的染色体every_best_branch{gen + 1, 1} = best_branch; %记录每一代进化中最好的支路信息gen = gen + 1;nowtime = datetime('now');disp(['第' num2str(gen ) '次迭代,时间已过' datestr(nowtime - basetime, 'HH:MM:SS.FFF')])
end
%进化结束%% 结果(网损、电压、开关)
%重构前
reconstruction_before_ploss = ploss_previous_sum; %有功损耗
reconstruction_before_voltage = result_previous.bus(:, 8); %电压
reconstruction_before_switch = [33, 34, 35, 36, 37]; %开关%重构后
reconstruction_after_ploss = trace(max_gen, 1); %有功损耗
[~, reconstruction_after_voltage, ~] = object_fun(every_best_branch(max_gen)); %电压
reconstruction_after_switch = trace(max_gen, 2 : end); %开关
%% 窗口显示
disp('---------------------------------------------------------------------')
disp(['配电网重构前:打开 ' num2str(reconstruction_before_switch), ' 开关,此时配电网总有功网损:' num2str(reconstruction_before_ploss) 'MW']);
disp('---------------------------------------------------------------------')
disp('---------------------------------------------------------------------')
disp(['配电网重构后:打开 ' num2str(reconstruction_after_switch), ' 开关,此时配电网总有功网损:' num2str(reconstruction_after_ploss) 'MW']);
disp('---------------------------------------------------------------------')
%% 绘图
figure(1)
grid on
hold on
plot((1 : max_gen)', trace(:, 1), 'b-');
title(['最优解迭代图 ' '终止代数=' num2str(max_gen)]);
xlabel('迭代次数', 'fontsize', 12);
ylabel('配电网总有功网损/MW');figure(2)
grid on
hold on
plot((1 : nbus)', reconstruction_before_voltage, 'b-o');
plot((1 : nbus)', reconstruction_after_voltage, 'r-o');
title('改造前后节点电压 ');
xlabel('节点', 'fontsize', 12);
ylabel('节点电压 p.u.');
legend('改造前节点电压', '改造后节点电压');
5.2运行结果
六、结论
本报告详细介绍了基于Matlab的IEEE33节点配电网重构程序,包括基本原理、程序结构、运行流程及优化扩展。该程序通过遗传算法 最小化网损,并严格遵循辐射性 和连通性 约束,提供了一种高效、模块化 的配电网优化工具。未来可进一步扩展至动态重构、多目标优化 及智能优化算法融合 领域,提高电网运行的智能化水平。
相关文章:
基于遗传算法的IEEE33节点配电网重构程序
一、配电网重构原理 配电网重构(Distribution Network Reconfiguration, DNR)是一项优化操作,旨在通过改变配电网中的开关状态,优化电力系统的运行状态,以达到降低网损、均衡负载、改善电压质量等目标。配电网重构的核…...
manus对比ChatGPT-Deep reaserch进行研究类学术相关数据分析!谁更胜一筹?
没有账号,只能挑选一个案例 一夜之间被这个用全英文介绍全华班出品的新爆款国产AI产品的小胖刷频。白天还没有切换语言的选项,晚上就加上了。简单看了看团队够成,使用很长实践的Monica创始人也在其中。逐渐可以理解,重心放在海外产…...
线程通信---java
线程 我们知道,线程是进程的最小执行单位,一个进程可以拥有多个线程,那么就会引入两个问题: 多个线程之间如何进行通信多个线程对同一个数据进行操作,如何保证程序正确执行,也就是线程安全问题 线程的常…...
python面试常见题目
1、python 有几种数据类型 数字:整形 (int),浮点型 (float)布尔 ( bool):false true字符串 (string)列表 (list)元组 (tuple)字典 &…...
Python中与字符串操作相关的30个常用函数及其示例
以下是Python中与字符串操作相关的30个常用函数及其示例: 1. str.capitalize() 将字符串的第一个字符大写,其余字符小写。 s "hello world" print(s.capitalize()) # 输出: Hello world2. str.lower() 将字符串中的所有字符转换为小写。…...
2025年渗透测试面试题总结-小某鹏汽车-安全工程师(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 小鹏汽车-安全工程师 一、XXE漏洞与SSRF漏洞 1. XXE(XML External Entity)漏洞…...
kafka + flink +mysql 案例
假设你有两个Kafka主题:user_activities_topic 和 product_views_topic,并且你希望将user_activities_topic中的数据写入到user_activities表,而将product_views_topic中的数据写入到product_views表。 maven <dependencies><!-- …...
Windows下配置Flutter移动开发环境以及AndroidStudio安装和模拟机配置
截止 2025/3/9 ,版本更新到了 3.29.1 ,但是为了防止出现一些奇怪的bug,我安装的还是老一点的,3.19,其他版本的安装同理。AndroidStudio用的是 2024/3/1 版本。 — 1 环境变量(Windows) PUB_H…...
【工具类】Springboot 项目日志打印项目版本和构建时间
博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
p5.js:模拟 n个彩色小球在一个3D大球体内部弹跳
向 豆包 提问:编写一个 p5.js 脚本,模拟 42 个彩色小球在一个3D大球体内部弹跳。每个小球都应留下一条逐渐消失的轨迹。大球体应缓慢旋转,并显示透明的轮廓线。请确保实现适当的碰撞检测,使小球保持在球体内部。 cd p5-demo copy…...
RISC-V医疗芯片工程师复合型转型的路径与策略
从RISC-V到医疗芯片:工程师复合型转型的路径与策略 一、引言 1.1 研究背景 在科技快速发展的当下,芯片技术已然成为推动各行业进步的核心驱动力之一。其中,RISC-V 架构作为芯片领域的新兴力量,正以其独特的优势迅速崛起,对整个芯片产业的格局产生着深远影响。RISC-V 架…...
HTML 文本格式化
HTML 文本格式化 在构建网页的过程中,文本的格式化是一个至关重要的环节。HTML(HyperText Markup Language)提供了丰富的标签和属性来帮助我们实现各种文本格式化的需求。本文将详细介绍HTML中常见的文本格式化方法,包括字体、颜…...
基于RNN+微信小程序+Flask的古诗词生成应用
项目介绍 平台采用B/S结构,后端采用主流的Flask框架进行开发,古诗词生成采用RNN模型进行生成,客户端基于微信小程序开发。是集成了Web后台开发、微信小程序开发、人工智能(RNN)等多个领域的综合性应用,是课…...
【算法】图论 —— Dijkstra算法 python
引入 求非负权边的单源最短路 时间复杂度 O( m l o g n mlogn mlogn) 模板 https://www.luogu.com.cn/problem/P4779 import heapq as hq def dijkstra(s): # dis表示从s到i的最短路 dis [float(inf)] * (n 1) # vis表示i是否出队列 vis [0] * (n 1) q [] dis[s…...
Java:LocalDatTime(代替Calendar)、ZoneDateTime(时区时间)
文章目录 Local(代替Calendar)方法:获取当前代码 LocalDate(年月日星期)LocalTime(时分秒纳秒)LocalDateTime(最常用:年月日时分秒纳秒)ZoneId 时区表示方法 ZoneDateTime(时区时间)方法世界标准时间&#…...
HOW - React 如何在在浏览器绘制之前同步执行 - useLayoutEffect
目录 useEffect vs useLayoutEffectuseEffectuseLayoutEffect主要区别总结选择建议注意事项 useLayoutEffect 使用示例测量 DOM 元素的尺寸和位置示例:自适应弹出框定位 同步更新样式以避免闪烁示例:根据内容动态调整容器高度 图像或 Canvas 绘制前的准备…...
PyTorch系列教程:编写高效模型训练流程
当使用PyTorch开发机器学习模型时,建立一个有效的训练循环是至关重要的。这个过程包括组织和执行对数据、参数和计算资源的操作序列。让我们深入了解关键组件,并演示如何构建一个精细的训练循环流程,有效地处理数据处理,向前和向后…...
VS2019,VCPKG - 为VS2019添加VCPKG
文章目录 VS2019,VCPKG - 为VS2019添加VCPKG概述笔记前置条件迁出vcpkg到本地验证库安装更新已经安装的库删除指定的包安装VS2019能用的boostvcpkg 2025.02.14 版本可以给VS2019用用VCPKG的好处备注END VS2019,VCPKG - 为VS2019添加VCPKG 概述 开源工程用到了VCPKG管理的包。…...
linux下 jq 截取json文件信息
背景:通过‘登录名‘ 获取该对象的其他个人信息如名字。 环境准备:麒麟操作系统V10 jq安装包 jq安装包获取方式:yum install jq 或 使用附件中的rpm 或 git自行下载 https://github.com/stedolan/jq/releases/download/ 实现过程介绍&am…...
测试大语言模型在嵌入式设备部署的可能性-ollama本地部署测试
前言 当今各种大语言模型百花齐放,为了方便使用者更加自由的使用大模型,将大模型变成如同棒球棍一样每个人都能用,并且顺手方便的工具,本地私有化具有重要意义。 本次测试使用ollama完成模型下载,过程简单快捷。 1、进…...
C语言基础系列【21】memcpy、memset
博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇…...
云曦春季开学考复现(2025)
Crypto 划水的dp和dq 下载附件后是简单的RSA算法题,之所以说简单是因为给了公钥e 趁热打铁,昨天刚学的RSA,既然有p有q,也有e,而np*q,可以算出欧拉函数值phi(p-1)*(q-1&…...
探秘 Netty 通信中的 SslHandler 类:保障网络通信安全的基石
引言 在当今数字化时代,网络安全是每一个应用程序都必须重视的关键因素。尤其是在数据传输过程中,防止数据被窃取、篡改至关重要。Netty 作为一个高性能的网络编程框架,为开发者提供了强大的功能来构建可靠的网络应用。其中,SslH…...
Llama factory微调后的模型怎么通过ollama发布
接上一篇博客:用Llama Factory单机多卡微调Qwen2.5时报torch.OutOfMemoryError: CUDA out of memory的解决办法_llama-factory cuda out of memory-CSDN博客 把Lora模块和其基模型merge到一起之后,就可以通过ollama之类的框架提供服务了。不过还是有些格式转换的工作要做: …...
ubuntu 20.04下ZEDmini安装使用
提前安装好显卡驱动和cuda,如果没有安装可以参考我的这两篇文章进行安装: ubuntu20.04配置YOLOV5(非虚拟机)_ubuntu20.04安装yolov5-CSDN博客 ubuntu20.04安装显卡驱动及问题总结_乌班图里怎么备份显卡驱动-CSDN博客 还需要提前…...
CmBacktrace的学习跟移植思路
学习移植CmBacktrace需要从理解其核心功能、适用场景及移植步骤入手,结合理论学习和实践操作。以下是具体的学习思路与移植思路: 一、学习思路 理解CmBacktrace的核心功能 CmBacktrace是针对ARM Cortex-M系列MCU的错误追踪库,支持自动诊断Har…...
Android Glide 缓存模块源码深度解析
一、引言 在 Android 开发领域,图片加载是一个极为常见且关键的功能。Glide 作为一款被广泛使用的图片加载库,其缓存模块是提升图片加载效率和性能的核心组件。合理的缓存机制能够显著减少网络请求,降低流量消耗,同时加快图片显示…...
蓝桥杯备赛:炮弹
题目解析 这道题目是一道模拟加调和级数,难的就是调和级数,模拟过程比较简单。 做法 这道题目的难点在于我们在玩这个跳的过程,可能出现来回跳的情况,那么为了解决这种情况,我们采取的方法是设定其的上限步数。那么…...
死锁问题分析工具
使用 gdb 调试 gdb ./your_program (gdb) run (gdb) thread apply all bt还可以分析pthread_mutex内部,查看owen字段分析哪个线程占用的锁,一个可能的 pthread_mutex 内部结构可以大致表示为: typedef struct pthread_mutex_t {int state; …...
装饰器模式--RequestWrapper、请求流request无法被重复读取
目录 前言一、场景二、原因分析三、解决四、更多 前言 曾经遇见这么一段代码,能看出来是把request又重新包装了一下,核心信息都不会改变 后面了解到这叫 装饰器模式(Decorator Pattern) :也称为包装模式(Wrapper Pat…...
MTK Android12 桌面上显示文件管理器图标
文章目录 需求解决 需求 在MTK平台上,Android12的文件管理器图标未显示在桌面,但在设置里面可以看到,文件管理器是安装的。根据客户要求,需要将文件管理器的图标显示在桌面上。解决 路径:packages/apps/DocumentsUI/…...
SpringBoot实现文件上传
1. 配置文件上传限制 application.yml spring:servlet:multipart:max-file-size: 10MBmax-request-size: 10MB2. 创建文件上传控制器 import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import…...
【开源免费】基于SpringBoot+Vue.JS青年公寓服务平台(JAVA毕业设计)
本文项目编号 T 233 ,文末自助获取源码 \color{red}{T233,文末自助获取源码} T233,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
django中视图作用和视图功能 以及用法
在 Django REST Framework(DRF)中,视图(View)是处理 HTTP 请求并返回响应的核心组件。DRF 提供了多种视图类,适用于不同的场景和需求。以下是 DRF 中常见的视图类及其作用、使用方法的详细说明: 一、DRF 视图的分类 DRF 的视图可以分为以下几类: 基于函数的视图(Func…...
大语言模型在患者交互任务中的临床使用评估框架
An evaluation framework for clinical use of large language models in patient interaction tasks An evaluation framework for clinical use of large language models in patient interaction tasks | Nature Medicine 2025.1 收到时间:2023 年 8 月 8 日 …...
Python—类class复习
Python——类(class)复习 根据类来创建对象的方法被称为实例化 因此学会使用类(class)来进行编程就是初步进入面向对象编程的大门 1.1 创建和使用类 首先编写一个小狗的简单类Dog,它表示的不是特定的小狗ÿ…...
QT | 信号与槽(超详解)
前言 对qt信号和槽的详细解释 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞&am…...
Codecraft-17 and Codeforces Round 391 E. Bash Plays with Functions 积性函数
题目链接 题目大意 定义函数 f r ( n ) f_r(n) fr(n) : 在 r 0 r0 r0时,为满足 p p p ⋅ \cdot ⋅ q n qn qn , 且 g c d ( p , q ) 1 gcd(p,q)1 gcd(p,q)1 的有序对 ( p , q ) (p,q) (p,q) 个数;在 r r r ≥ \geq ≥ 1 1 1时࿰…...
粉尘环境下的智能生产革命 ——助力矿山行业实现高效自动化作业
在矿山开采领域,运输系统是保障生产连续性的核心环节。然而,粉尘弥漫、环境恶劣、设备分散等问题,长期制约着矿山运输的效率与安全性。传统的集中式控制系统难以适应复杂工况,而远程分布式 IO 模块与 PLC 的深度融合,正…...
更新vscode ,将c++11更新到c++20
要在CentOS系统中安装最新版本的GCC,你可以使用SCL(Software Collections)仓库,它提供了开发工具的最新版本。以下是安装步骤: 1、 添加SCL仓库: 首先,添加CentOS的SCL仓库,该仓库…...
Numpy实训:读取并分析iris数据集中鸢尾花的相关数据
实训中相关数据集,请联系博主邮箱"1438077481qq.com",在邮箱内发送"iris.csv"即可快速获取,无任何套路,秉承开源精神! 1、导入模块 #导入模块 import numpy as np import csv 2、获取数据 iri…...
nats jetstream server code 分析
对象和缩写 jetstream导入两个对象:stream and consumer,在stream 之上构造jetstreamapi。在nats代码中,以下是一些常见的缩写 1.mset is stream 2.jsX is something of jetstream 3.o is consumer 代码分析 对于producer ,发送…...
德鲁伊连接池
德鲁伊连接池(Druid Connection Pool)是一个开源的Java数据库连接池项目,用于提高数据库连接的性能和可靠性。德鲁伊连接池通过复用数据库连接、定时验证连接的可用性、自动回收空闲连接等机制,有效减少了数据库连接的创建和销毁开…...
Python从入门到精通1:FastAPI
引言 在现代 Web 开发中,API 是前后端分离架构的核心。FastAPI 凭借其高性能、简洁的语法和自动文档生成功能,成为 Python 开发者的首选框架。本文将从零开始,详细讲解 FastAPI 的核心概念、安装配置、路由设计、请求处理以及实际应用案例&a…...
C语言经典案例-菜鸟经典案例
1.输入某年某月某日,判断这一天是这一年的第几天? //输入某年某月某日,判断这一天是这一年的第几天? #include <stdio.h>int isLeapYear(int year) {// 闰年的判断规则:能被4整除且(不能被100整除或…...
SpringBoot过滤器(Filter)的使用:Filter接口、FilterRegistrationBean类配置、@WebFilter注释
1、过滤器(Filter)的介绍 Spring Boot 的过滤器用于对数据进行过滤处理。通过 Spring Boot 的过滤器,程序开发人员不仅可以对用户通过 URL 地址发送的请求进行过滤处理(例如:过滤一些错误的请求或者请求中的敏感词等),而且可以对服务器返回的数据进行过滤处理(例如:压…...
采用内存局部性分配有什么好处?
内存分配时的局部性分配(Locality of Allocation)是指将相关的内存对象分配在相邻或相近的内存区域中。这种分配策略在现代计算机系统中具有显著的好处,主要体现在以下几个方面: 1. 提高缓存命中率 现代计算机系统依赖于多级缓存…...
一周热点-OpenAI 推出了 GPT-4.5,这可能是其最后一个非推理模型
在人工智能领域,大型语言模型一直是研究的热点。OpenAI 的 GPT 系列模型在自然语言处理方面取得了显著成就。GPT-4.5 是 OpenAI 在这一领域的又一力作,它在多个方面进行了升级和优化。 1 新模型的出现 GPT-4.5 目前作为研究预览版发布。与 OpenAI 最近的 o1 和 o3 模型不同,…...
分布式ETCD面试题及参考答案
目录 ETCD 适用的六大场景及其实现原理 ETCD 与 Redis 在分布式锁实现上的差异 解释 ETCD 的 Watch 机制及其应用场景 ETCD 如何实现服务发现?与 ZooKeeper 有何不同? ETCD 实现服务发现的方式 与 ZooKeeper 的不同 ETCD 的键值存储模型支持哪些操作? 为什么 ETCD 适…...
MySQL进阶-关联查询优化
采用左外连接 下面开始 EXPLAIN 分析 EXPLAIN SELECT SQL_NO_CACHE * FROM type LEFT JOIN book ON type.card book.card; 结论:type 有All ,代表着全表扫描,效率较差 添加索引优化 ALTER TABLE book ADD INDEX Y ( card); #【被驱动表】࿰…...