2023년 천부배 전국 대학생 수학적 모델링 대회 및 "상온 초전도 특별 대회"에 대한 심층 분석

문제 재진술

여기에 이미지 설명을 삽입하세요.

최근 몇 년 동안 상온 초전도 물질에 대한 연구는 에너지 전송 및 저장 분야에서 중요한 획기적인 발전을 이루었습니다. LK66에 대한 연구에서는 해당 물질이 상온에서 전류의 저항이 0인 전송을 달성할 수 있다고 주장합니다. 동시에 재생 가능 에너지의 사용은 계속해서 증가하고 있지만 간헐성과 불안정성으로 인해 전송 및 저장이 여전히 어려운 문제입니다. 본 공모전은 효율적이고 안정적인 에너지 전송 및 저장을 달성하기 위해 상온 초전도 물질을 재생에너지 전송에 적용하는 방법을 탐구하는 것을 목표로 합니다. 플레이어는 다음 문제를 해결하기 위해 주어진 시나리오를 기반으로 수학적 모델과 최적화 계획을 설계해야 합니다.

Q1) 상온 초전도체의 전송경로를 합리적으로 나누어 전체 에너지 손실을 최소화하는 방법은 무엇입니까?

Q2) 전력망의 안정적인 운영을 전제로, 송전효율을 극대화할 수 있는 신재생에너지 송전계획을 어떻게 조정해야 합니까?

Q3) 상온 초전도체 생산비용과 신재생에너지 발전비용을 고려하면서 경제적, 환경적 이익의 균형을 이루는 종합적인 최적화 전략은 어떻게 개발할 수 있나요?

질문 1: 전체 에너지 손실을 최소화하기 위해 상온 초전도체의 전송 경로를 합리적으로 나누는 방법은 무엇입니까? 총 에너지 손실을 최소화하기 위해 상온 초전도 물질의 전송 경로를 합리적으로 분할하는 수학적 모델:

기호 설명:

나, 지, 제이,j : 발전부지 지수
ttt : 기간의 인덱스
dij d_{ij}ij: 발전현장 ii나는 jj사이트로j 의 전송 거리는
E it E_{it}이자형나는 t: 기간 tttii발전 현장i P ijt P_{ijt}에서 생성된 에너지
ij t: 기간 ttt 내의 사이트ii jj사이트로 이동해j E ijt E_{ijt}의 에너지
이자형ij t: 기간 ttt 내의 사이트ii jj사이트로 이동해j 의 총 에너지 (전송 손실 고려)
eta \etaeta : 상온초전도체의 전송효율
P max P_{\text{max}}최대: 상온초전도체
C prod C_{\text{prod}} 의 최대 전송전력자극: 상온초전도물질 생산비용
C renew C_{\text{renew}}갱신: 재생에너지 발전비용
C trans C_{\text{trans}}트랜스: 전력망 송전 비용
의 제약 및 정량화 에는 다음이 포함됩니다.
목적 함수:
Minimize ∑ i , j , t ( E it − E ijt ) + C trans \text{Minimize } \sum_{i,j,t} (E_{it } - E_{ijt}) + C_{\text{trans}}최소화 나는 , j , t( E나는 t-이자형ij t)+트랜스

각 발전 현장에서 생산된 에너지는 다른 현장으로 전송되는 총 에너지와 같습니다∑
j P ijt = E it , ∀ i , t \sum_j P_{ijt} = E_{it}, \quad \forall i, tjij t=이자형나는 t,,

각 발전 현장 에서 전송되는 에너지는 해당 기간 P ijt ≤ E it , ∀ i , j , t P_{ijt} \leq E_{it}, \quad \forall i, j, t에서 생성되는 에너지를 초과할 수 없습니다 .
ij t이자형나는 t,,제이 ,

각 전송 경로의 에너지는 상온 초전도체의 최대 전송 전력을 초과할 수 없다
∑ t P ijt ≤ P max , ∀ i , j \sum_t P_{ijt} \leq P_{\text{max}}, \quad \ 나, j 모두에게ij t최대,,제이

총 전송 에너지는 실내 온도 제한 하에서 최대 전송 전력 ∑ i , j , t P ijt ≤ P max \sum_{i,j,t} P_{ijt} \leq P_{\text{max}}를 초과할 수 없습니다. 초전도 재료
나는 , j , tij t최대

상온 초전도체의 전송 효율을 고려하여 사이트 ii 에서 계산합니다.나는 jj사이트로j등가 E ijt = ( 1 − eta ) dij ⋅ P ijt , ∀ i , j , t E_{ijt} = (1 - \eta)^{d_{ij}} \cdot P_{ijt}, \ quad
이자형ij t=( 1-)ijij t,,제이 ,

각 전송 경로의 에너지는 음수가 아닌 숫자여야 합니다.
P ijt ≥ 0 , ∀ i , j , t P_{ijt} \geq 0, \quad \forall i, j, tij t0 ,,제이 ,

선형 계획법과 비용 흐름을 사용하여 문제를 해결하기 위해 포괄적인 분석의 관점을 사용할 수 있습니다.

선형 계획법은 선형 목적 함수 및 선형 제약 조건이 있는 문제를 해결하는 데 적합한 수학적 최적화 방법입니다. 이 경우 대부분의 목적 함수와 제약 조건은 선형이지만 정수 변수(예: 전송 전력)가 존재하므로 혼합 정수 선형 계획법을 사용해야 합니다.

다음은 혼합 정수 선형 프로그래밍을 사용하여 최적의 전송 경로 솔루션을 찾는 일반적인 단계입니다.

목적함수 설정: 최소화해야 하는 에너지 손실과 전송 비용의 합으로 목적함수를 표현합니다.
제약 조건 설정: 문제 설명의 제약 조건을 기반으로 에너지 균형, 전송 전력 제한 및 기타 제약 조건을 선형 제약 조건으로 변환합니다.
변수 정의: 전송 전력 등 최적화가 필요한 변수를 정의합니다.
최적화 알고리즘 선택: Gurobi, CPLEX 등과 같은 적절한 혼합 정수 선형 프로그래밍 솔버를 선택합니다.
Solve: 목적 함수, 제약 조건, 변수를 솔버에 입력하고 솔버를 실행하여 총 에너지 손실과 전송 비용을 최소화하는 최적의 전송 경로 방식을 찾습니다.
min-cost max-flow 알고리즘은 네트워크에 흐르는 트래픽이 최소 총 비용으로 최대 값에 도달해야 하는 플로우 네트워크의 문제를 해결하는 데 사용할 수 있습니다. 해당 시나리오에서 발전 현장은 네트워크의 노드로 간주되고 전송 경로는 에지로 간주되며 유량은 에너지 전송을 나타내고 비용은 전송 비용을 나타냅니다.

구체적으로 해당하는 간략한 단계는 다음과 같습니다.

흐름 네트워크 구축: 각 발전 현장이 노드이고 전송 경로가 유향 모서리인 유향 그래프를 생성합니다. 각 엣지의 용량은 상온초전도체의 최대 전송전력이며, 비용은 전송비용이다.
소스 및 싱크 정의: 모든 재생에너지 발전 현장에 가상 소스 포인트를 연결하고, 모든 발전 사이트를 가상 싱크 포인트에 연결합니다. 이런 방식으로 문제를 흐름 네트워크의 소스에서 싱크까지의 최소 비용 최대 흐름을 찾는 것으로 변환할 수 있습니다.
목적 함수 설정: 목표는 총 비용을 최소화하면서 소스에서 싱크까지의 흐름을 최대화하는 것입니다.
최소 비용 최대 흐름 해결: Dijkstra 알고리즘, Bellman-Ford 알고리즘 등과 같은 최소 비용 최대 흐름 알고리즘을 사용하여 소스 지점에서 싱크 지점까지의 최소 비용 최대 흐름을 찾습니다.
디코딩 결과: 최소 비용 최대 흐름을 디코딩하여 전송 경로와 해당 에너지 전송을 얻습니다.
선형 프로그래밍과 비용 흐름을 기반으로 종합적인 분석을 수행하여 할당 계획을 선택하고 처리합니다.

import networkx as nx
import pulp

# Given data 
num_generators = 4
num_time_periods = 3
P_max = 50 # Maximum transmission power
eta = 0.95 # Transmission efficiency
E = [
  [10, 15, 20],
  [25, 20, 15],
  [15, 10, 5],
  [20, 25, 15]
]
d = [
  [0, 20, 25, 0],
  [20, 0, 15, 30],
  [25, 15, 0, 25],
  [0, 30, 25, 0]
]

# Create a directed graph
G = nx.DiGraph()

P = {}  # Dictionary to hold variables
for i in range(num_generators):
    for j in range(num_generators):
        for t in range(num_time_periods):
            P[(i, j, t)] = pulp.LpVariable(f"P_{i}_{j}_{t}", lowBound=0, upBound=P_max, cat=pulp.LpContinuous)

# Define objective function
objective = pulp.lpSum((E[i][t] - (1 - eta) ** d[i][j] * P[(i, j, t)]) for i in range(num_gene## rators) for j in range(num_generators) for t in range(num_time_periods))
model += objective

# Add constraints
for i in range(num_generators):
    for t in range(num_time_periods):
        model += pulp.lpSum(P[(i, j, t)] for j in range(num_generators)) == E[i][t]

# Add transmission power limits
for i in range(num_generators):
    for j in range(num_generators):
        model += pulp.lpSum(P[(i, j, t)] for t in range(num_time_periods)) <= P_max

# Solve the problem
model.solve()

#完整详细请进入内容里观看


# Add nodes for generators and sink/source
for i in range(num_generators):
  G.add_node(f"generator_{i}")
G.add_node("source")
G.add_node("sink")

# Add edges with capacities and costs
for i in range(num_generators):
  G.add_edge("source", f"generator_{i}", capacity=E[i][0], weight=0) # Replace with appropriate time period
  G.add_edge(f"generato r ## _{i}", "sink", capacity=E[i][0], weight=0)  # Replace with appropriate time period
  for j in range(num_generators):
    if i != j:
      for t in range(num_time_periods):
        cost = (1 - eta) ** d[i][j] * E[i][t] * C_trans # Calculate cost based on transmission efficiency
        G.add_edge(f"generator_{i}", f"generator_{j}", capacity=P_max, weight=cost) # Add edge with capacity and cost

# Find minimum cost maximum flow
flowCost, flowDict = nx.netwo## rk_simplex(G)

# Print results
print("Total cost:", flowCost)
for edge, flow in flowDict.items():
  print(edge, flow)

#完整详细请进入内容里观看 进行了部分打码处理w

자세한 내용은 다음에서 확인할 수 있습니다.

완전한 아이디어 + 기사: 2023 Tianfu Cup 전국 대학생 수학 모델링 대회 및 "상온 초전도 특별 대회"에 대한 심층 분석 - CSDN Blog

Supongo que te gusta

Origin blog.csdn.net/qq_25834913/article/details/132547916
Recomendado
Clasificación