【優化充電】基於matlab蒙特卡洛演算法求解電動汽車充電優化問題【含Matlab原始碼 1164期】

語言: CN / TW / HK

一、蒙特卡洛演算法簡介

1 蒙特卡洛演算法定義 蒙特卡洛(Monte Carlo)方法,在渲染中,我們經常聽到術語“蒙特卡洛”(通常縮寫為MC)。但是這是什麼意思?實際上,它所指的是一個非常簡單的想法,蒙特卡洛方法指的是一系列統計方法,這些方法本質上用於查詢事物的解決方案,例如計算函式的期望值,或者對由於沒有封閉形式而無法進行分析積分的函式進行積分。我們可以用該原理來解決不同的問題,並且針對這些問題中都可以關聯不同的技術或演算法。所有這些演算法的共同點是它們使用隨機(或隨機)取樣。

2 蒙特卡洛模擬法的原理 蒙特卡洛法(Monte Carlo)是統計試驗計算方法,高斯正太分佈的期望值µ決定函式分佈位置,標準差σ決定函式分佈幅度,其概率密度函式公式如下: 在這裡插入圖片描述 根據中心極限定理,當統計樣本足夠充足時,各獨立同分布隨機變數之和的分佈趨近於高斯正態分佈,且尺寸分佈符合伯努利大數定律。因此,蒙特卡洛模擬法計算中所求數學期望即可通過函式f(x)的積分獲取。

二、部分原始碼

```c clc; clear all; %本程式基於蒙特卡洛思想生成10000臺充電汽車充電負荷曲線

rate=[0.1 0.4 0.5]; %三種充電汽車比例 P_h=[1.4 1.9; 7.7 25.6;40 100];%三種充電功率取值範圍

M=10000; %10000輛車 r=0; Bh=zeros(M,96); % 10000輛車行,96個時間列 for i=1:M Ph=zeros(96,1); %96個時間行,1列 r=r+1; for j=1:96 T_star=get_star(); %充電開始時間 每15分鐘 qua=get_qua(); %充電電量 P_hi=get_i(rate,P_h); %充電功率 每小時 T_char=round(4*qua/P_hi(2)); %一小時有4個15分鐘 T_sum=T_star+T_char; %充電結束時間 if T_sum>96 %時間不能大於96 new_T_sum=T_sum-96; Ph(T_star:96)=P_hi(2); %從開始時間個數到96 放功率 Ph(1:new_T_sum)=P_hi(2); %從1到結束個時間 放功率 else Ph(T_star:T_sum)=P_hi(2); %開始到結束 功率 end end for i=1:96 Bh(r,i)=Ph(i); %每輛車功率放入每行 end end B=sum(Bh,1); %每列求和 %%%%%尋找最大功率值,最大同時充電數量%%%% max_P=max(B); %最大功率 Max_moun=zeros(96,1); %每時刻最大充電數量 96行 function P_hi=get_i(rate, P_h) %get_i 得到充電方式及其功率

P=rand();%隨機生成一個取值範圍在[0-1]的數字

if 0<=P&&P<rate(1) %充電汽車比例

P_hi=[1,(P_h(1,1)+P_h(1,2))/2];   %選擇第一種充電方式

elseif rate(1)<=P&&P<0.5

P_hi=[2,(P_h(2,1)+P_h(2,2))/2];  %選擇第二種充電方式

else

P_hi=[3,(P_h(3,1)+P_h(3,2))/2];%選擇第三種充電方式

end while 1 P=normrnd(12.94,11.8); if P<0 continue; %返回到while 否則 break end %只是個標誌 相當於括號 break;
end qua=P; ```

三、執行結果

在這裡插入圖片描述

四、matlab版本及參考文獻

1 matlab版本 2014a

2 參考文獻 [1] 包子陽,餘繼周,楊杉.智慧優化演算法及其MATLAB例項(第2版)[M].電子工業出版社,2016. [2]張巖,吳水根.MATLAB優化演算法原始碼[M].清華大學出版社,2017. [3]王鋒.基於蒙特卡洛模擬法的動車組裙板裝配優化研究[J].中國裝置工程. 2020,(06)

「其他文章」