2023年國賽高教杯數學建模A題定日鏡場的優化設計解題全過程文檔及程序

2023年國賽高教杯數學建模

A題 定日鏡場的優化設計

原題再現

??構建以新能源為主體的新型電力系統,是我國實現“碳達峰”“碳中和”目標的一項重要措施。塔式太陽能光熱發電是一種低碳環保的新型清潔能源技術[1]。
??定日鏡是塔式太陽能光熱發電站(以下簡稱塔式電站)收集太陽能的基本組件,其底座由縱向轉軸和水平轉軸組成,平面反射鏡安裝在水平轉軸上。縱向轉軸的軸線與地面垂直,可以控制反射鏡的方位角。水平轉軸的軸線與地面平行,可以控制反射鏡的俯仰角,定日鏡及底座示意圖見圖 1。兩轉軸的交點(也是定日鏡中心)離地面的高度稱為定日鏡的安裝高度。塔式電站利用大量的定日鏡組成陣列,稱為定日鏡場。定日鏡將太陽光反射匯聚到安裝在鏡場中吸收塔頂端上的集熱器,加熱其中的導熱介質,并將太陽能以熱能形式儲存起來,再經過熱交換實現由熱能向電能的轉化。太陽光并非平行光線, 而是具有一定錐形角的一束錐形光線,因此太陽入射光線經定日鏡任意一點的反射光線也是一束錐形光線[2]。定日鏡在工作時,控制系統根據太陽的位置實時控制定日鏡的法向,使得太陽中心點發出的光線經定日鏡中心反射后指向集熱器中心。集熱器中心的離地高度稱為吸收塔高度。
在這里插入圖片描述
??現計劃在中心位于東經 98.5°,北緯 39.4°,海拔 3000 m,半徑 350 m 的圓形區域內建設一個圓形定日鏡場(圖 2)。以圓形區域中心為原點,正東方向為 𝑥 軸正向,正北方向為 𝑦 軸正向,垂直于地面向上方向為 z 軸正向建立坐標系,稱為鏡場坐標系。
??規劃的吸收塔高度為 80 m,集熱器采用高 8 m、直徑 7 m 的圓柱形外表受光式集熱器。吸收塔周圍 100 m 范圍內不安裝定日鏡,留出空地建造廠房,用于安裝發電、儲能、控制等設備。定日鏡的形狀為平面矩形,其上下兩條邊始終平行于地面,這兩條邊之間的距離稱為鏡面高度,鏡面左右兩條邊之間的距離稱為鏡面寬度,通常鏡面寬度不小于鏡面高度。鏡面邊長在 2 m 至8 m 之間,安裝高度在 2 m 至 6 m 之間,安裝高度必須保證鏡面在繞水平轉軸旋轉時不會觸及地面。由于維護及清洗車輛行駛的需要,要求相鄰定日鏡底座中心之間的距離比鏡面寬度多 5 m以上。
??為簡化計算,本問題中所有“年均”指標的計算時點均為當地時間每月 21 日 9:00、10:30、12:00、13:30、15:00。

在這里插入圖片描述
??請建立模型解決以下問題:
??問題 1 若將吸收塔建于該圓形定日鏡場中心,定日鏡尺寸均為 6 m×6 m,安裝高度均為4 m,且給定所有定日鏡中心的位置(以下簡稱為定日鏡位置,相關數據見附件),請計算該定日鏡場的年平均光學效率、年平均輸出熱功率,以及單位鏡面面積年平均輸出熱功率(光學效率及輸出熱功率的定義見附錄)。請將結果分別按表 1 和表 2 的格式填入表格。
??問題 2 按設計要求,定日鏡場的額定年平均輸出熱功率(以下簡稱額定功率)為 60 MW。若所有定日鏡尺寸及安裝高度相同,請設計定日鏡場的以下參數:吸收塔的位置坐標、定日鏡尺寸、安裝高度、定日鏡數目、定日鏡位置,使得定日鏡場在達到額定功率的條件下,單位鏡面面積年平均輸出熱功率盡量大。請將結果分別按表 1、2、3 的格式填入表格,并將吸收塔的位置坐標、定日鏡尺寸、安裝高度、位置坐標按模板規定的格式保存到 result2.xlsx 文件中。
??問題 3 如果定日鏡尺寸可以不同,安裝高度也可以不同,額定功率設置同問題 2,請重新設計定日鏡場的各個參數,使得定日鏡場在達到額定功率的條件下,單位鏡面面積年平均輸出熱功率盡量大。請將結果分別按表 1、表 2 和表 3 的格式填入表格,并將吸收塔的位置坐標、各定日鏡尺寸、安裝高度、位置坐標按模板規定的格式保存到 result3.xlsx 文件中。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

整體求解過程概述(摘要)

??塔式太陽能光熱發電是一種較為理想的、技術發展相對成熟的大規模利用太陽能發電的技術,定日鏡是其收集太陽能的重要基本組件,通過數學建模對定日鏡場的各項參數進行優化設計,使得單位鏡面面積年平均輸出熱功率最大具有重大的現實意義也是我們亟待解決的問題。
??針對問題一,我們構建了定日鏡場年平均輸出熱功率模型。首先,求解太陽高度角和太陽方位角來確定每一時刻太陽所在位置;接著,通過定日鏡的工作原理,由某一時刻入射光線和反射光線的方向推得定日鏡在該時刻的法向,進而推得其俯仰角和方位角;然后,基于上述信息計算每一塊定日鏡在該時刻的光學效率,包括鏡面反射率、大氣透射率、余弦效率、陰影遮擋效率以及集熱器截斷效率,其中陰影遮擋效率由投影法求出,集熱器截斷效率由蒙特卡洛算法求出;最后,結合法向直接輻射照度以及定日鏡場輸出熱功率的計算公式,代入定日鏡的光學效率等數據我們求出了定日鏡場在不同時刻的輸出熱功率,進而得到年平均輸出熱功率以及單位面積鏡面年平均輸出熱功率。最終我們得到了定日鏡場的年平均光學效率為0.6275,年平均輸出熱功率為38.295MW,單位鏡面面積年平均輸出熱功率為06096kW/㎡,其余結果詳見表1表2。
??針對問題二,我們構建了定日鏡場統一優化設計的單目標優化模型。我們以單位鏡面面積的年平均輸出熱功率最大為目標函數,以定日鏡場中吸收塔的位置坐標、定日鏡的統一尺寸和統一安裝高度、定日鏡的個數以及定日鏡的位置等參數作為決策變量,以定日鏡場的年平均額定輸出功率、相鄰定日鏡之間應滿足的距離等要求確定了多個約束條件,建立起單目標優化模型。由于決策變量的數量很多,因此我們采用遺傳算法對該單目標優化模型進行求解,最終求得了單位鏡面面積年平均輸出熱功率最大為0.7139kW/㎡,此時年平均輸出熱功率為60.373MW,定日鏡的分布為一圈圈同心圓,其余定日鏡場的最優設計參數詳見表3及result2xlsx。
??針對問題三,我們構建了定日鏡場非統一優化設計的單目標優化模型。相較于問題二,問題三中各個定日鏡的尺寸和安裝高度并不統一,決策變量的數量進一步增多,為了簡化模型,我們參考問題二中求得的結論,認為在問題三中定日鏡仍按照同心圓的方式進行排布,又因為同心圓具有各項同性,所以我們可以假設每一圈同心圓上的所有定日鏡的尺寸和安裝高度相同,因此新增的決策變量減少為每一圈同心圓對應的定日鏡的尺寸和安裝高度,其余目標函數和約束條件均與第二問相同。在求解時,我們在同心圓排布的基礎上采用變步長的方式進行遍歷求解,最終求得了單位鏡面面積年平均輸出熱功率最大為0.7551KW/㎡,此時年平均輸出熱功率為60.359MW,定日鏡的整體分布近似為一個拋物面,其余定日鏡場的最優設計參數詳見表 6及result3.xlsx。

模型假設:

??1、假設天氣一直保持晴朗,太陽光線不會被云層遮蓋
??2、假設不發生光的散射
??3、假設鏡面反射率可以取為常數
??4、假設每條反射光線攜帶的能量是相同的

問題分析:

??問題一的分析
??問題一要求我們求解給定條件下定日鏡場的年平均光學效率、年平均輸出熱功率以及單位鏡面面積年平均輸出熱功率。首先,我們可以通過求解太陽高度角和太陽方位角來確定每一時刻太陽所在位置;接著,通過定日鏡的工作原理我們可以由某一時刻入射光線和反射光線的方向推得定日鏡在該時刻法向,進而推得其俯仰角和方位角然后,基于上述信息我們可以計算每一塊定日鏡在該時刻的陰影遮擋效率、余弦效率、大氣透射率、集熱器截斷效率以及鏡面反射率,從而得出定日鏡的光學效率,將不同時刻不同定日鏡的光學效率求和取平均即可得到年平均光學效率:最后,再結合法向直接輻射照度DNI以及定日鏡場的輸出熱功率的計算公式,通過代入定日鏡的光學效率等數據我們就可以求出定日鏡場在不同時刻的輸出熱功率,進而求出年平均輸出熱功率以及單位面積鏡面年平均輸出熱功率。

??問題二的分析
??問題二要求我們對,使得定日鏡場的年平均輸出熱功率在達到額定功率60MV的條件下,單位鏡面面積的年平均輸出熱功率盡可能大。我們將其理解為一個單目標優化問題,因此我們以單位鏡面面積的年平均輸出熱功率最大為目標函數,以定日鏡場中吸收塔的位置坐標、定日鏡的統一尺寸和統一安裝高度、定日鏡的個數以及定日鏡的位置等參數作為決策變量,再根據題意確立多個約束條件,建立起單目標優化模型。由于要求解的決策變量的數量很多,傳統的遍歷算法顯然是行不通的,因此我們可以采用遺傳算法對該單目標優化模型進行求解。
?
??問題三的分析
??相較于問題二,問題三中各個定日鏡的尺寸和安裝高度并不統一,這導致了決策變量的數量進一步增多,為了簡化模型,我們可以參考問題二中求得的結論,認為在問題三中定日鏡仍按照同心圓的方式進行排布,又因為同心圓具有各項同性,所以我們可以假設每一圈同心圓上的所有定日鏡的尺寸和安裝高度相同,因此新增的決策變量減少為每一圈同心圓對應的定日鏡的尺寸和安裝高度,其余目標函數和約束條件均與第二問相同。在求解時,我們可以在定日鏡同心圓排布的基礎上對每圈定日鏡的尺寸及安裝高度以及位置坐標采用變步長的方式進行遍歷求解。

模型的建立與求解整體論文縮略圖

在這里插入圖片描述
在這里插入圖片描述

全部論文請見下方“ 只會建模 QQ名片” 點擊QQ名片即可

程序代碼:(代碼和文檔not free)

%遺傳算法
function f=canshul(x)
%目標函數N=2739;H-4;lw=6;1=6;w=6;x0=0;y0=-250;ST=[9,10.5,12,13.5,15];D=[306,337,0,31,61,92,122,153,184,214,245,275];xyz=[x(1:N)',x(N+1:2*N)',zeros(N,1)+x(3)];e2=zeros(12,5);for i-1:5for j=1:12[A,B]=SUN(ST(i),D(j));e2(j,i)=f2(xyz,N,x0,y0,A,B);endendSe2=mean(e2.'al1')f=Se2;
end
%計算陰影遮擋效率function el=fl(xyz,1,w,N,A,B,x0,y0)Z0=84;a=[sind(B)*cosd(A),cosd(B)*cosd(A),sind(A)];tt=zeros(length(xyz),5);for i=1:size(xyz,1)m=sgrt(xyz(i,1)^2+xyz(1,1)^2+xyz(1,3));r=[-xyz(i,1)+x0,-xyz(i,2)+y0,-xyz(i,3)+z0]/sqrt((xyz(i,1)-x0)^2+(xyz(i,2)-y0)^2+(xyz(i,3)-z0)^2)n=real((r-a)/norm(r-a));An-acos(n(3));Bn=atan(n(1)/n(2));ss=[cosd(Bn],sind(Bn)*sind(An],-sind(Bn]*cosd(An];-sind(Bn],cosd(Bn)*sind	(An],-cosd(Bn)*cosd(An];0,cosd(An),sind[An];];v1=[ss*[-0.5*1,-0.5*w,o]']+xyz(i,:};v2=[ss*[0.5*1,-0.5w,0]"]'+xyz(i,:);v3=[ss*[-0.51,0.5*w,0]"]'+xyz(i,:);tt[i,1)=v1(1);tt[i,2)=v1(2);tt[i,4)=real(abs[sum[(v1-v2).*a)));tt[i,3)-real(abs[sum(v1-v3).*a)));endnum . size(tt, 1);for i = i:numareas=0;for j = i+1:numarea = rectint(tt(i,:),tt(j,:));areas = areas + area;endtt(1,5)-areas;
endSSS-(88/tand(A)-100)*7;if sss<0sss=0;
ende1=1-(sum(tt(:,5))+SSS)/N/1/w;
end
function [e2,SS]=f2(xyz,N,x0,y0,A,B)
%余弦效率z0=84;SS=zeros(length(xyz),1);for i=1:Nb=(xyz(i,1)=x0,xyz(i,2)=y0,xyz(i,3)=z0);%反射光線b=-1.*b;a=[sind(B)*cosd(A],cosd(B]*cosd(A],sind(A]];&入射光線ta = acosd(dot{a,b)/(normla]*norm(b)));入射光線與反射光線夾角SS(i)=real(cosd(ta/2)];ende2=mean(ss);
end
全部論文請見下方“ 只會建模 QQ名片” 點擊QQ名片即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215239.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ES6-import后是否有{}的區別

在ES6中&#xff0c;import語句用于導入其他模塊中的變量、函數、類等。在使用import語句時&#xff0c;可以選擇是否使用花括號{}來包裹導入的內容&#xff0c;這會影響導入的內容的使用方式。 1.使用花括號{}&#xff1a; 當使用花括號{}時&#xff0c;表示只導入指定的變量…

【Fastadmin】根據Fieldlist鍵值組件做一個等級配置的完整示例

目錄 1.效果展示&#xff1a; ?編輯 2.建表&#xff1a; 3.html頁面 4.controller控制器 5.js 6.model 1.效果展示&#xff1a; 2.建表&#xff1a; 表名&#xff1a;fa_xxfb_config /*Navicat Premium Data TransferSource Server : rootSource Server Type …

深入Docker命令行:探索常用命令和實用技巧

Docker命令行界面是每個容器開發者的得力工具。在這篇文章中&#xff0c;將深入探討一系列常用的Docker命令&#xff0c;以及一些實用技巧&#xff0c;通過更豐富的示例代碼&#xff0c;幫助大家更全面地理解和運用Docker命令行工具。 1. Docker基本命令 1.1 鏡像操作 深入了…

用 CSS 寫一個漸變色邊框的輸入框

Using_CSS_gradients MDN 多漸變色輸入框&#xff0c;群友問了下&#xff0c;就試著寫了下&#xff0c;看了看 css 漸變色 MDN 文檔&#xff0c;其實很簡單&#xff0c;代碼記錄下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta ch…

使用FFMPEG轉碼,轉單聲道,轉標準WAV,轉PCM

本文為使用FFMPEG命令行的方式處理音頻&#xff0c;來獲取想要得到的音頻文件。 零、使用命令行查看編碼封裝信息 格式&#xff1a;ffprobe.exe -show_format inputfile 例子&#xff1a;ffprobe.exe -show_format .\stereo_44_16bit.wav 運行結果為下圖&#xff1a; 如圖可…

C# Channel實現線程間通信

C# Channel實現線程間通信 同步方式實現&#xff1a; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Channels; using System.Threading.T…

【JavaFX】實現計算器小程序

下面是一個簡單的JavaFX計算器示例: import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.…

西南科技大學數字電子技術實驗四(基本觸發器邏輯功能測試及FPGA的實現)預習報告

一、計算/設計過程 說明:本實驗是驗證性實驗,計算預測驗證結果。是設計性實驗一定要從系統指標計算出元件參數過程,越詳細越好。用公式輸入法完成相關公式內容,不得貼手寫圖片。(注意:從抽象公式直接得出結果,不得分,頁數可根據內容調整) (1)D觸發器 特征方程: Q…

往adobe illustrator中添加latex字體

找到如下字體所在路徑 /path/to/miktex/type1\public\amsfonts\cm然后copy相應的字體文件 cmmi10.pfb將相應的pfb文件復制到Adobe illustrator字體文件夾: /path/to/illustrator/Support Files/Required/Fonts然后重啟即可。

ChatGPT/GPT4應用:文本、論文、編程、繪圖等,提高工作效率及科研項目開發能力

2023年隨著OpenAI開發者大會的召開&#xff0c;最重磅更新當屬GPTs&#xff0c;多模態API&#xff0c;未來自定義專屬的GPT。微軟創始人比爾蓋茨稱ChatGPT的出現有著重大歷史意義&#xff0c;不亞于互聯網和個人電腦的問世。360創始人周鴻祎認為未來各行各業如果不能搭上這班車…

排序-選擇排序與堆排序

文章目錄 一、選擇排序二、堆排序三、時間復雜度四、穩定性 一、選擇排序 思想&#xff1a; 將數組第一個元素作為min&#xff0c;然后進行遍歷與其他元素對比&#xff0c;找到比min小的數就進行交換&#xff0c;直到最后一個元素就停止&#xff0c;然后再將第二個元素min&…

【單調棧】【二分查找】LeetCode: 2454.下一個更大元素 IV

作者推薦 【動態規劃】【廣度優先】LeetCode2258:逃離火災 本文涉及的基礎知識點 二分查找算法合集 單調棧 題目 給你一個下標從 0 開始的非負整數數組 nums 。對于 nums 中每一個整數&#xff0c;你必須找到對應元素的 第二大 整數。 如果 nums[j] 滿足以下條件&#xff…

音視頻技術開發周刊 | 323

每周一期&#xff0c;縱覽音視頻技術領域的干貨。 新聞投稿&#xff1a;contributelivevideostack.com。 Meta牽頭組建開源「AI復仇者聯盟」&#xff0c;AMD等盟友800億美元力戰OpenAI英偉達 超過50家科技大廠名校和機構&#xff0c;共同成立了全新的人工智能聯盟。以開源為旗號…

RocketMQ的架構是什么樣的?

RocketMQ&#xff0c;作為一款強大的分布式消息中間件&#xff0c;廣泛應用于各種大規模分布式系統中&#xff0c;為異步消息通信提供了可靠的解決方案。本文將深入探討RocketMQ的核心組件&#xff0c;包括Producer、Broker、Consumer和NameServer&#xff0c;以及它們在整個架…

高中物理電學總結之穩恒電流篇

高中物理電學總結之穩恒電流篇 電流電流的定義對電流的微觀分析 電阻歐姆定律電阻的串并聯電阻定律 電源的電動勢電源電動勢 閉合電路歐姆定律閉合電路閉合電路歐姆定律 電流做功與焦耳定律電流做功電功率焦耳定律電源效率 電表改裝 電流 電流的定義 電解質溶液中的自由電荷是…

ACwing算法備戰藍橋杯——Day30——樹狀數組

定義&#xff1a; 樹狀數組是一種數據結構&#xff0c;能將對一個區間內數據進行修改和求前綴和的這兩種操作的最壞時間復雜度降低到O(logn); 實現所需變量 變量名變量數據類型作用數組a[]int存儲一段區間數組tr[]int表示樹狀數組 主要操作 函數名函數參數組要作用lowbit()int…

Linux-RedHat系統-安裝 中間件 Tuxedo

安裝步聚 一、中間件安裝包&#xff1a; tuxedo121300_64_Linux_01_x86 Tuxedo下載地址&#xff1a; Oracle Tuxedo Downloads 二、新建用戶&#xff1a; &#xff08;創建Oracle用戶時&#xff0c;需要root權限操作&#xff09; 創建用戶&#xff1a; # useradd oracle …

es6從url中獲取想要的參數

第一種方法 很古老&#xff0c;通過 split 方法慢慢截取&#xff0c;可行是可行但是這個方法有一個弊端&#xff0c;因為 split 是分割成數組了&#xff0c;只能按照下標的位置獲取值&#xff0c;所以就是參數位置一旦發生變化&#xff0c;那么獲取到的值也就錯位了 let user…

利用python將data:image/jpg; base64,格式數據轉化下載為圖片

在做爬蟲爬取圖片時&#xff0c;發現有的圖片url是用“data:image/jpg;base64” 開頭的&#xff0c;例如下圖 部分開頭樣式如下&#xff1a; 1、data:image/jpg; base64, 2、data:image/png; base64, 3、data:image/webp;base64, 利用python進行代碼進行圖片下載&#xff0c;…

面向對象設計與分析40講(22)罪惡的單例模式?

單例模式曾經被認為是一種重要的設計模式&#xff0c;但現在已經失去了很多開發者的青睞。雖然單例模式可能仍然適用于某些場景&#xff0c;但它的使用已經不再像過去那樣普遍了。 單例模式是創建型設計模式的一種&#xff0c;它限制了一個類的實例化只能為一個實例&#xff0…