模拟大规模电动车充电行为(Matlab实现)

news2024/11/24 14:26:41

目录

1 模拟大规模充电汽车充电行为

2 Matlab部分代码实现

3 Matlab代码实现


1 模拟大规模充电汽车充电行为

电动汽车EV(Electric Vehicle)具有清洁环保、高效节能的优点,不仅能缓解化石能源危机,而且能够有效地减少温室气体的排放。2015年10月,国务院发布加快EV充电基础设施建设的指导意见,指出到2020年充电基础设施能满足500万辆EV充电需求,预计未来几年我国EV的保有量将大幅增长。然而,规模化EV的无序充电会加大电网负荷的峰谷差,并对电力系统的规划、配电网的电能质量和经济运行以及稳定性带来显著的影响,反之.对EV的充电行为进行有序优化控制,充分发挥EV作为分布式储能元件的优势,能够实现削峰填谷、平抑可再生能源出力波动的功能,并为电网提供调峰、调频等辅助服务。

下图为大规模EV分散接入配电网的场景示意图。EV的管理框架分为配电网代理商、本地代理商和EV 3个层次。配电网代理商分布在高中压HVIMV(High VoltageMedium Voltage)变电层中,负责配电网的安全稳定控制以及EV的有序协调控制;本地代理商分布在中低压MVLV(Mediuim VoltageLow Voltage)变电层中,负责区域EV充电负荷的管控。充电站连接在配电变压器下,配电变压器下除了EV负荷EVL(EV Load)外,还有常规的居民负荷RL(Residential Load)。

EV进入充电站后,充电智能终端可以获取电池的总容量、荷电状态SoC(State Of Charge)等信息,并通过以太网或专用无线网络提交给本地代理商;用户设置取车时刻以及充电预期荷电状态,充电结束后按实际充电电量向本地代理商支付费用。本地代理商将EV的状态信息和电量需求信息汇集后上传给配电网代理商。配电网代理商采取分时段实时滚动优化的控制策略,当有新的EV接入电网时,更新EV的充电需求信息,执行优化,控制算法,并将充电计划分区下达给各个本地代理商,由本地代理商执行对管控区域内EV的充电控制。


2 Matlab部分代码实现

function [will_charge, best_prior, best_idx] = ...
        CalChargingPrior(is_necessary, cur_soc, arrMCost, ...
                        pindex_start, pindex_end)
    global TOU_EPrice
    global solutions
    global battery_features
    
    % debug by fei
    if (pindex_end - pindex_start + 1) < battery_features.fcharge_periods
        error
    end
    
    % 优先权重系数
    if solutions.start_charging == 4    %如果是组合策略,用上所有系数
        W = solutions.w_coeff;
        % 剩余SOC/最低SOC
        u_s = 1.5 - cur_soc / battery_features.lowest_soc;
    else
        W = zeros(1, 4);
        W(solutions.start_charging) = 1;
        W(4) = 1;
        
    end
    
    % 是否必须充电
        if is_necessary
            u_s = 10000;    %inf
        else
            u_s = 0;
        end
    
    
    nPrior = length(arrMCost);
    % 从某个时刻开始充电的平均电价:元/(瓦*时段)
    %arrMCost = [];
    % TOC平均电价:元/(瓦*时段)
    nMTOC = TOU_EPrice.mprice;
    % 充电需用时段
    nTch = single( battery_features.fcharge_periods );
    % 剩余空闲时段
    nTidle = pindex_end - pindex_start + 1;
    arrTidle = single(nTidle) : -1 : nTch;
    % 随机优先 [0 1]
    nRndPr = round(rand);
    arrRndPr = single( nRndPr * rand(1, nPrior) );
    
    % 计算不同时段的充电优先程度
    arrPrior = W(1)*arrRndPr + ...
                W(2)*(1.5 - arrMCost ./ nMTOC) + ...
                W(3)*(1.5 - nTch ./ arrTidle) + ...
                u_s + W(4);
    
    % 最优充电级别与时段
    [p, i] = max(arrPrior);
    best_prior = p;
    best_idx = pindex_start + i - 1;
    % 是否建议充电
    will_charge = (best_prior > 0.5);
end
% 根据不同策略,计算起始充电时段
function [start_cperiod, end_cperiod] = CalChargingPeriods(is_necessary, cur_soc, ...
										pindex_start, pindex_end)
    %global solutions
	global battery_features
	%global mc_params
	%global TOU_EPrice
    
	% 初始参数
    start_cperiod = 0;
	end_cperiod = 0;
    
    earliest = pindex_start;
    latest = pindex_end - battery_features.fcharge_periods + 1;
    
    % 计算从某一时段起充电所需平均电价
    arrMCost = CalChargePrices(earliest:latest);
    
    % 根据策略,计算每一时段充电优先级
    [will_charge, best_prior, best_idx] = ...
        CalChargingPrior(is_necessary, cur_soc, arrMCost, pindex_start, pindex_end);
    
    % 计算策略下的最佳充电起止时间
    if will_charge
        start_cperiod = best_idx;
        end_cperiod = start_cperiod + battery_features.fcharge_periods - 1;
    end
    
end
% m_w_load: 一天中电网各时段负荷平均值,periods_per_day X mean_load
% m_w_charged: 一天中EV各时段充电平均值,periods_per_day X mean_charge
% m_real_trv:一天中EV各时段出行次数平均值,periods_per_day X mean_real_travel
% m_plan_trv:一天中EV各时段计划出行次数平均值,periods_per_day X mean_plan_travel
function [Y, Rmp, Rsc, Rt] = CalIndices(m_w_load, m_w_charged, ...
                                        m_real_trv, m_plan_trv, is_print)
    global TOU_EPrice
    
%     W1 + W2 + W3 = 1.0
%     W1 * 0.275 = W2 * 0.440 = W3 * 0.975 = Si
% 
%     Mi = [0.275 0.440 0.975]
%     Wi = [0.5455    0.3409    0.1538]
%     Si = [0.15 0.15 0.15]
    
    % 指标统计范围 及 权重系数
    RAGmp = [0.05 0.25];	RAGsave=[0.15 0.75];	RAGtrip=[0.95 1.0];
    Wi = [0.4 0.3 0.3];
    
    % 谷峰比 = 充电谷值/充电峰值
%     nWValley = min(m_w_load);
%     nWPeak = max(m_w_load);
%     Rpv = nWValley / nWPeak;

    % 均峰比 = 充电均值/充电峰值
    nWMeanLoad = mean(m_w_load);
    nWPeakLoad = max(m_w_load);
    Rmp = nWMeanLoad / nWPeakLoad;

    % 用户节省电费率 = 1 - 实际电费/最高电费
    nRealCost = sum(m_w_charged .* TOU_EPrice.day_prices);
    nMaxCost = sum(m_w_charged .* max(TOU_EPrice.day_prices));
    Rsc = 1 - nRealCost / nMaxCost;
    
    % 顺利出行率 = 实际里程/计划里程
    nRealTrv = sum(m_real_trv);
    nPlanTrv = sum(m_plan_trv);
    Rt = nRealTrv / nPlanTrv;
    
%     Rmp = 0.218;
%     Rsc = 0.193;
%     Rt = 0.972;
    
    % 综合指标:均峰比,节能率,出行率
    Y = Wi(1) * (Rmp - min(RAGmp)) / (max(RAGmp) - min(RAGmp)) + ...
        Wi(2) * (Rsc - min(RAGsave)) / (max(RAGsave) - min(RAGsave)) + ...
        Wi(3) * (Rt - min(RAGtrip)) / (max(RAGtrip) - min(RAGtrip));
    
    if isnan(Y)
        Y = 0.0;
    end
    
    % 输出结果
    if is_print
        fprintf('----电网负荷:峰值= %d 瓦;均值= %d 瓦;均峰比= %f----\n', nWPeakLoad, nWMeanLoad, Rmp);
        fprintf('----居民用电费用:实际电费= %f 元;最高电费= %d 元;节省率= %f----\n', nRealCost, nMaxCost, Rsc);
        fprintf('----顺利出行情况:实际出行里程= %f 公里;计划出行里程= %d 公里;出行率= %f----\n', nRealTrv, nPlanTrv, Rt);
        fprintf('----综合指标:Y= %f----\n', Y);
    end
end
function [all_indices, mday_indices] = EVPowerLoad(varargin)
    global solutions
    global mc_params
    
    %% 初始化变量
    [nTerms, nEVs] = Initial(varargin);

    %% 模拟 n天 m辆电动汽车
    if ~mc_params.only_show_results
        for t=1:nTerms
%         	for ev_id=1:total_EV
                all_indices = Simulate(t);
%             end
        end
    end
    
    %% 结果统计: 峰谷差,出行受影响概率,充电价格,加入噪声出行等
    result = TempResult('load');
    [grid, ev_behaviour, mday_indices] = StatisticPowerLoad(result);
end


%% initial parameters
function [nTerms, nEVs] = Initial(params)
    
    %% 定义常量
    global mc_params            % MC 参数
    global battery_features     % 电池特性
    global pile_power           % 电桩特性
    global solutions            % 策略
    global behaviours           % 一天用户行为(EVs X Day_Periods)
	%global all_behaviours		% 所有统计时间的用户行为(EVs X All_Periods)
    global t_periods            % 所有统计时段
	global g2v_features			% 充电特性
	global TOU_EPrice			% 分时电价
    global PDF_Travel           % 服从一定概率分布的出行行为
    
    %% 指定参数运行
    if size(params, 2) > 0
        nTerms = params{1};
        nDaysPT = params{2};
        nEVs = params{3};
        chargingStrategy = params{4};
        chargingWCoeff = params{5};
        chargingMinSOC = params{6};
        isOutput = params{7};
        % 用于存储中间结果,而不用保存成文件
        saveResult = false;
        showResultOnly = false;
        
    else  % default values
        %     clear all
        clc
        close all
        
        % 自定义参数值
        nTerms = 4;
        nDaysPT = 25;
        nEVs = 240000;             %EV数量: 2800 5000 62500 240000
        chargingStrategy = 4;
        chargingWCoeff = [0.1512,0.7384,0.1105,0.0196];%ones(1, 4) * 0.25;
        chargingMinSOC = 0.5686;%0.2;
        isOutput = true;
        saveResult = true;         %default:true;
        showResultOnly = true;      %default:false;
        
        seed=15;
        randn('state',seed);
        rand('state',seed);
    end
    
    
    %% 初始化常量
    mc_params.output = isOutput;                            %是否输出结果
    mc_params.cur_day = 1;                                 %当前天数
    %mc_params.cur_ev = 1;                                   %当前汽车ID
    mc_params.periods_per_day = 96;                           %一天划分为若干时段
    mc_params.total_days = nDaysPT;                               %每期模拟天数
    mc_params.all_days = nTerms * mc_params.total_days;       %总共模拟天数
    mc_params.mins_per_period = (24 * 60) / ...
                                mc_params.periods_per_day;	%每个时段的时长
    mc_params.total_periods = mc_params.periods_per_day * ...
                                (mc_params.total_days + 1);       %时段总数
    mc_params.total_EVs = nEVs;
    
    mc_params.cperiod_start_id = 0;
    mc_params.cperiod_end_id = 0;
    mc_params.cperiods = [];
    
    mc_params.eday_soc = ones(nEVs, 1, 'single');          %初始所有EV的SOC为1.0
    
    mc_params.save_result = saveResult;
    mc_params.memory_result = [];                           %用于存储中间结果,而不用保存成文件
	mc_params.only_show_results = showResultOnly;           %只输出统计结果
    
    battery_features.capacity = 100;                        %电池容量
    battery_features.voltage = 230;                         %电池电压
    battery_features.power = battery_features.capacity * ...
                             battery_features.voltage;      %电池总能量
    battery_features.efficiency = 0.3;                      %充电效率
    battery_features.fcharge_duration = 5;                  %充满时间
    battery_features.full_soc = 0.9;                        %soc > 此状态,即认为电池充满
    battery_features.lowest_soc = chargingMinSOC;           %soc < 此状态,必须充电
    battery_features.power_consume_per_km = 0.125e3;        %耗能
	% 满充所需分钟数 及 时段数
    battery_features.fcharge_minutes = battery_features.fcharge_duration * 60;
    battery_features.fcharge_periods = ceil( battery_features.fcharge_minutes / mc_params.mins_per_period );
    
    pile_power = 15e3;                                      %充/放电功率
    solutions.start_charging = chargingStrategy;            %起始充电策略:1.随机充电;2.电价引导充电;3.停车即充电;4.组合策略
    solutions.w_coeff = chargingWCoeff;                     %各种充电影响因素的权重
    solutions.enable_discharge = false;                     %允许V2G的放电模式
    
    
    % 电动汽车类型
    %EV_type = {'bus', 'taxis', 'official_car', 'private_car'};
    
    
    % 1 X (模拟天数 * 每天时段数)
    t_periods = CreatePeriods();
	
	% 计算每时段电网耗用能量 (Wh)
    g2v_features.grid_w_consumed = mc_params.mins_per_period / 60 * pile_power;
    % 计算每时段EV所充能量 (Wh)
    g2v_features.ev_w_charged = g2v_features.grid_w_consumed * battery_features.efficiency;
	
	% 加载分时电价表
	TOU_EPrice = CreateEPriceList();
    
    % 清除结果数据
    if ~mc_params.only_show_results
        ClearResults();
    end
    
    % 加载概率密度函数
    load './data/fitness_travel.mat';
    PDF_Travel = pdf_travel;
end


%% simulate one day
function all_indices = Simulate(t)
    global mc_params
	global behaviours
    %global t_periods
    
    mc_params.cur_day = t;
    %mc_params.cur_ev = ev_id;
    %w_day = mod( (d-1), 7 );
    
	%% clear all behaviours
    ClearAllBehaviours();
	
    %fprintf('-----模拟第 %d 天-----\n', mc_params.cur_day);
    
    %% make the driving & charging plan for all days
    MakeDaysPlan();
    
    %% update all EVs
    UpdateEVs();
    
    %% formating data
    [grid, ev_behaviour, y_indices] = StatDataFormat();
    
	%% combine data of everyday
    all_indices = CombineData(grid, ev_behaviour, y_indices);
    
    %% update params
    UpdateMCParams();
end

function all_periods = CreatePeriods()
    global mc_params
    
    % construct the period array
    all_periods = int32( 0 : (mc_params.total_periods - 1) ) * ...
                    mc_params.mins_per_period;
end


function ClearAllBehaviours()
    global behaviours
    
    % init array for EV behaviours
    behaviours = [];
    behaviours.v_is_driving = logical([]);
    behaviours.v_plan_driving = logical([]);
    behaviours.v_driving_km_pp = single([]);
    behaviours.v_driving_cost_power = single([]);
    behaviours.v_able_charge = logical([]);
    behaviours.v_is_charging = logical([]);
	behaviours.v_ev_w_charged = single([]);
    behaviours.v_ev_w_discharged = single([]);
    behaviours.grid_power_load = single([]);
    behaviours.soc = single([]);
end

function ClearResults()
    global mc_params
    global solutions
    
    ndays = mc_params.all_days;
    
    % init & save temporary data
    result.grid.power_load = zeros(ndays, mc_params.periods_per_day, 'single');
    result.grid.power_charged = zeros(ndays, mc_params.periods_per_day, 'single');
    result.grid.power_V2G = zeros(ndays, mc_params.periods_per_day, 'single');
    
    result.ev_behaviour.trv_num_per_period = zeros(ndays, mc_params.periods_per_day, 'int32');
    result.ev_behaviour.plan_trv_num_per_period = zeros(ndays, mc_params.periods_per_day, 'int32');
    result.ev_behaviour.cha_num_per_period = zeros(ndays, mc_params.periods_per_day, 'int32');
    result.ev_behaviour.dischar_num_per_period = zeros(ndays, mc_params.periods_per_day, 'int32');
    
    result.y_indices = zeros(ndays, 1, 'single');
    
    TempResult('save', result);
    
    clear 'result';
end


function all_indices = CombineData(grid, ev_behaviour, y_indices)
	global behaviours
    %global all_behaviours
    global solutions
    global mc_params
	
    ndays = mc_params.all_days;
    cur_day = ((mc_params.cur_day - 1) * mc_params.total_days + 1) : ...
        mc_params.cur_day * mc_params.total_days;
    
	% 加载临时数据
    result = TempResult('load');
    
    % 合并每天的电网负荷及EV行为
    result.grid.power_load(cur_day, :) = grid.power_load;
    result.grid.power_charged(cur_day, :) = grid.power_charged;
    result.grid.power_V2G(cur_day, :) = grid.power_V2G;
    
    result.ev_behaviour.trv_num_per_period(cur_day, :) = ev_behaviour.trv_num_per_period;
    result.ev_behaviour.plan_trv_num_per_period(cur_day, :) = ev_behaviour.plan_trv_num_per_period;
    result.ev_behaviour.cha_num_per_period(cur_day, :) = ev_behaviour.cha_num_per_period;
    result.ev_behaviour.dischar_num_per_period(cur_day, :) = ev_behaviour.dischar_num_per_period;
    
    result.y_indices(cur_day, :) = y_indices;
    
    % save temporary data
    TempResult('save', result);
    
    % clear data from memory
    all_indices = result.y_indices;
    clear 'result';
end


function UpdateMCParams()
    global mc_params
    global behaviours
    
    % clear mc prams
    mc_params.total_periods = mc_params.periods_per_day * ...
                                (mc_params.total_days + 1);       %时段总数
    
    mc_params.cperiod_start_id = 0;
    mc_params.cperiod_end_id = 0;
    mc_params.cperiods = [];
    
    % record soc for all EVs when one day is ending
    mc_params.eday_soc = behaviours.soc(:, end);
end


function [is_necessary, soc_start] = IsNecessaryCharge(ev_id, pindex_start, pindex_end)
	%global behaviours
    global battery_features
    
    % soc低于0.2时必须充电
	soc_start = GetPreviousSOC(ev_id, pindex_start);
	is_necessary = (soc_start < battery_features.lowest_soc);
end

电动汽车EV(Electric Vehicle)具有清洁环保、高效节能的优点,不仅能缓解化石能源危机,而且能够有效地减少温室气体的排放。2015年10月,国务院发布加快EV充电基础设施建设的指导意见,指出到2020年充电基础设施能满足500万辆EV充电需求,预计未来几年我国EV的保有量将大幅增长。然而,规模化EV的无序充电会加大电网负荷的峰谷差,并对电力系统的规划、配电网的电能质量和经济运行以及稳定性带来显著的影响,反之.对EV的充电行为进行有序优化控制,充分发挥EV作为分布式储能元件的优势,能够实现削峰填谷、平抑可再生能源出力波动的功能,并为电网提供调峰、调频等辅助服务。

下图为大规模EV分散接入配电网的场景示意图。EV的管理框架分为配电网代理商、本地代理商和EV 3个层次。配电网代理商分布在高中压HVIMV(High VoltageMedium Voltage)变电层中,负责配电网的安全稳定控制以及EV的有序协调控制;本地代理商分布在中低压MVLV(Mediuim VoltageLow Voltage)变电层中,负责区域EV充电负荷的管控。充电站连接在配电变压器下,配电变压器下除了EV负荷EVL(EV Load)外,还有常规的居民负荷RL(Residential Load)。

3 Matlab代码实现

完整Matlab代码实现:
 

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

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

相关文章

设计模式之策略模式

Strategy design pattern 策略模式的概念、策略模式的结构、策略模式的优缺点、策略模式的使用场景、策略模式的实现示例、策略模式的源码分析 1、策略模式的概念 策略模式&#xff0c;即定义一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以相互替换&#…

Android平台GB28181接入模块技术接入说明

技术背景 今天&#xff0c;我们主要讲讲Android平台GB28181接入模块的技术对接&#xff0c;Android平台GB28181接入模块设计的目的&#xff0c;可实现不具备国标音视频能力的 Android终端&#xff0c;通过平台注册接入到现有的GB/T28181—2016服务&#xff0c;可用于如智能监控…

【Mitigating Voltage Attacks in Multi-Tenant FPGAs 论文笔记】

减轻多租户FPGA中的电压攻击摘要引言内容背景和相关工作INTEL STRATIX 10 FPGA上的PDN攻击Stratix 10 PDN特性定位电压下降片上监控和攻击抑制结论和未来工作结论&#xff1a;未来工作作者&#xff1a;GEORGE PROVELENGIOS, University of Massachusetts Amherst, MA, USADANIE…

Python学习-9.2 程序界面-sys库介绍

可以在Python标准库大全&#xff1a;https://docs.python.org/zh-cn/3/library/index.html中查找sys标准库的解释说明 sys标准库 本章对sys标准库中的重点函数进行讲解&#xff0c;sys库的作用主要是查看python解释器信息及传递信息给python解释器。 sys库的三个重要函数&…

JVM-------栈

栈&#xff1a; 早在数据结构的学习中&#xff0c;我们就知道了栈具有先进先出的特点&#xff0c;而数据结构是程序的一部分&#xff0c;那么栈的特点在java中是如何体现的呢? 比如&#xff1a;main函数先执行而后结束&#xff0c;就是利用了栈的特点。 在java中&#xff0c…

[附源码]计算机毕业设计Node.jsBuff饰品交易平台论文(程序+LW)

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

2022需求最大的8种编程语言排名

DevJobsScanner分析了过去14个月&#xff08;从2021 10月到2022年11月&#xff09;超过1200万开发人员的工作需求&#xff0c;并选择了明确需要编程语言的工作机会&#xff0c;获得了2022年最流行的八种编程语言。 市场上需求最高的前八种语言是&#xff1a; 1、 JavaScript/…

Appium基础 — Appium Inspector定位工具(二)

5、Appium Inspector工具的使用 &#xff08;1&#xff09;Inspector 定位控件界面的详细介绍 布局1&#xff1a;截图的手机界面 可以点击选择元素。 布局2&#xff1a;顶部操作栏 从左往右的按钮依次是 Select Element&#xff1a;选择元素。 Swipe By Coordinates&#xff…

json-server

安装node.js https://nodejs.org/zh-cn/download/剩下内容就是next&#xff0c;就默认安装在C盘好了。 WindowR:node -v 下面这种结果代表安装成功 还有 npm -v NPM 是什么 NPM描述 npm&#xff08;“Node 包管理器”&#xff09;是 JavaScript 运行时 Node.js 的默认程序包…

redis之数据倾斜如何处理

写在前面 我们在使用Redis分片集群时&#xff0c;集群最好的状态就是每个实例可以处理相同或相近比例的请求&#xff0c;但如果不是这样&#xff0c;则会出现某些实例压力特别大&#xff0c;而某些实例特别空闲的情况发生&#xff0c;本文就一起来看下这种情况是如何发生的以及…

基于Ubuntu + anaconda + tensorflow+jupyter的python深度学习开发环境配置

参考 基于Ubuntu anaconda tensorflowjupyter的python深度学习开发环境配置 - 云社区 - 腾讯云 1.激活Anaconda环境 下载anaconda并拷贝到安装目录中并解压&#xff0c;下载地址为&#xff1a; https://repo.anaconda.com/archive/Anaconda2-5.3.0-Linux-x86_64.sh 跳转…

如何在UnrealEngine虚幻引擎中加载Web页面

对于非游戏开发团队来讲&#xff0c;在面向非游戏领域的UE项目中嵌入Web页面并实现交互无疑能充分利用现有开发资源和流程&#xff0c;WebUI插件能提供完整的Web页面加载及交互手段&#xff0c;让团队中的UE开发工程师和Web开发工程师能够各司其职、紧密配合。 WebUI的安装配置…

互联网医疗领域月度观察——二十大报告明确提出健康中国建设目标,互联网医疗是建设重点

易观分析&#xff1a;在二十大报告中明确提及“把保障人民健康放在优先发展的战略位置&#xff0c;完善人民健康促进政策”“促进优质医疗资源扩容和区域均衡布局&#xff0c;坚持预防为主&#xff0c;加强重大慢性病健康管理&#xff0c;提高基层防病治病和健康管理能力”等有…

FLET简介:用Python构建Flutter应用

你知道可以用 Python 来构建 flutter 应用吗&#xff1f;&#x1f62e; Flutter 在软件研发领域是非常流行的&#xff0c;今年就让我们深入了解一下&#xff0c;用 Python 构建 flutter 应用程序的世界&#xff01;&#x1f642; 关于 FLET 梦想橡皮擦 在开始学习前&#xf…

【图像重建】正则化图像超分辨重建【含Matlab源码 1882期】

⛄一、正则化图像超分辨重建简介 图像超分辨率重建的非局部正则化模型与算法研究 利用图像非局部不连续性测度的概念,建立了面向图像超分辨的非局部正则化能量泛函和相应的变分框架.理论分析了该框架与目前关于双边滤波等一类广义邻域滤波器和经典的变分偏微分方程模型之间的…

[附源码]Nodejs计算机毕业设计焦作旅游网站Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

力扣(LeetCode)168. Excel表列名称(C++)

26进制 本题的数字从 111 开始&#xff0c;即 A1A1A1&#xff0c;Z26Z26Z26 。进制转化是依次提取数字从低到高的每一位&#xff0c;要求每一位从 000 开始 。对当前数字 −1-1−1 &#xff0c;等于进制最低位 −1-1−1 &#xff0c;也就是最低位看作 A0A0A0&#xff0c;Z25Z2…

Docker:Nacos的持久化和集群部署

目录 一、MySQL容器构建 二、单节点nacos容器外网部署 三、内网nacos多节点集群部署 四、外网Nginx负载内网nacos节点集群 一、MySQL容器构建 由于我们今天要启动的服务比较多&#xff0c;考虑到部分电脑可能会出现带不动的情况&#xff0c;我们可以先将之前的文件备份一下…

【教程】Anaconda安装

零、Anaconda介绍 Anaconda个人版是一个免费、易于安装的包管理器、环境管理器和Python发行版&#xff08;所以装了Anaconda就可以不用再另外装Python了&#xff09;&#xff0c;有提供非常多的开源包&#xff0c;用Anaconda来安装这些开源包相对来说方便一些&#xff0c;Anac…

jdk下载与安装教程(win10)

JAVA下载地址&#xff1a;Java Downloads 下载后直接点击安装程序&#xff0c;点击【运行】。 安装过程很简单&#xff0c;一直点击下一步就可以了。 安装完成后配置&#xff1a; 一、右键点击桌面【此电脑】&#xff0c;选择【属性】。 二、选择【高级系统设置】。 三、点击…