2017 MathorCup 수학적 모델링 문제 A 공정 산업의 지능형 제조에 대한 전체 프로세스 문서 및 절차

2017년 제7회 MathorCup 대학 수학 모델링 챌린지

질문 A: 공정 산업의 지능형 제조

원작 제목 재현:

  '중국제조 2025'는 중국 제조업 업그레이드를 위한 국가 대전략이다. 기술의 핵심은 지능형 제조이며, 지능 수준은 "독일 인더스트리 4.0" 수준에 해당합니다. '메이드 인 차이나 2025'의 핵심 분야는 주요 장비 제조업뿐 아니라 신에너지·신소재 제조 등 공정산업도 포함된다.
  장치산업에서는 철강야금, 석유화학 등 산업이 국가경제의 대표적인 기간산업이다. 시스템 최적화 및 생산 공정의 지능형 제어의 목적 기능에는 에너지 절약, 고품질, 저소비 및 환경 보호와 같은 다목적 요구 사항이 포함됩니다. 이러한 최적화 목표를 달성하기 위해서는 생산 공정의 지능형 제어 핵심 기술이 기존의 피드백 제어에서 예측 제어로 더욱 업그레이드되어야 합니다. 즉, 생산공정 빅데이터의 사이버물리시스템(Cyber ​​​​Physical System) 모델링을 통해, 빅데이터 마이닝을 통해 생산공정의 최선의 방법과 최적의 매개변수 제어 범위를 결정하고, 생산공정 제어를 예측적이고 동적으로 조정한다. , 최고의 생산 효과를 얻으십시오.
  고로제련공정은 고품질의 용철을 제련하는 것을 예로 들면, 고로의 상부에서 광석, 코크스 등의 원료를 투입하고, 열풍을 공급하는 제련공정이다. 용광로 바닥에서 연속적으로 불어내고, 석탄분말을 주입하여 용광로 온도를 조절합니다. 제련기간은 로 상단에 원료를 투입한 시점부터 슬래그와 용선으로 제련하는 시간까지 6~8시간이다. 고로는 2시간마다 슬래그와 철을 태핑합니다. 그리고 이번 태핑에서 용철과 슬래그의 화학적 조성은 실험실 테스트를 통해 얻어졌습니다. 따라서 두 로의 실리콘 함량, 즉 로 온도 사이에는 상관관계가 있습니다. 제철 공정은 개별 투입, 연속 제련, 개별 출력의 복잡한 생산 공정입니다.
  제선과정의 메커니즘에는 열수지/물질수지에 의해 구속되는 화학반응과정뿐만 아니라 3상 유체역학적 혼합에 의한 물리적 운동과정도 포함된다. 따라서 제련공정의 전체 메커니즘 모델은 대수방정식과 편미분방정식으로 구성된 복잡한 수학적 모델이며, 모델방정식은 다음과 같다. 메커니즘
여기에 이미지 설명을 삽입하세요
  . 따라서 빅데이터 데이터 마이닝 기술을 통한 프로세스 최적화가 실현 가능한 솔루션입니다.
  제철과정에서 시간순으로 수집된 공정변수는 고차원 빅데이터 시계열이다. 수백 가지의 영향을 미치는 요소가 있습니다. 생산량, 에너지 소비, 용선 품질과 같은 최종 생산 지표는 제련 공정의 제어 중간 지표인 용광로 온도, 즉 용선 내 규소 함량[Si](용선 중 규소의 질량 백분율)과 밀접한 관련이 있습니다. 철). 2시간 또는 4시간 후 고로 온도의 상승 또는 하강 예측, 즉 [Si] 시계열의 예측은 고로의 다양한 조업 매개변수의 전류 제어 방향과 관련이 있다. 따라서 [Si]의 정확한 예측 제어 모델링은 제련 공정 최적화 및 예측 제어를 위한 핵심 기술이 되었습니다.
  문제를 단순화하기 위해 이 프로젝트에서는 수학적 모델링 분석 및 데이터 마이닝을 위한 기반으로 실리콘 함량[Si], 황 함량[S], 석탄 주입량 PML 및 폭발량 FL로 구성된 데이터베이스만 제공합니다. 일련번호 N은 데이터 시퀀스의 일련번호일 뿐만 아니라 고로 출탕 시간의 일련번호이기도 하다.
  본 프로젝트의 수학적 모델링 요구 사항은 다음과 같습니다.
  (1) 주어진 데이터 테이블의 [Si]-[S]-FL-PML 순서로 배열된 1000개의 용광로 생산 빅 데이터에서 독립적으로 학습 샘플과 알고리즘을 선택하고 구축합니다. [Si] ] 1단계 예측 모델 및 2단계 예측 모델을 포함한 동적 수학적 모델을 예측합니다. 수학적 모델링 아이디어에 대한 포괄적인 토론입니다.
  (2) 검증 샘플을 독립적으로 선택하여 수립한 수학적 모델의 예측 성공률을 검증합니다. 수치예측 성공률과 로 온도 상승 및 하강 방향 예측 성공률을 포함합니다. 그리고 동적 예측 제어의 타당성에 대해 논의합니다.
  (3) 품질지수 용철의 황 함량[S]을 예로 들면, 황 함량이 낮고 용철의 품질이 좋아 고품질의 철강과 고품질 설비를 생산할 수 있다. 품질 지수 [S]의 최적화 수학적 모델을 구축하고, 최적화 모델의 계산 결과에 따른 [Si] 예측 제어의 기대 효과에 대해 논의합니다.
  (4) 복잡한 산업 지능형 제어 빅데이터를 모델링한 경험에 대해 토론해 보세요.

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

전체 솔루션 프로세스 개요(요약)

  우리나라 제조업을 업그레이드하기 위한 "Made in China 2025" 국가 전략에 따라 고로 제철 공정을 예측 및 제어하기 위해 본 논문에서는 신경망 예측 모델과 혼돈 시계열 예측 모델을 구축하고 신경망을 개선했습니다. 유전자 알고리즘(GA)을 기반으로 한 네트워크 모델 황 함량[S]은 PSO(Particle Swarm Optimization)를 사용하여 최적화되었습니다.
  문제 1의 경우, 본 논문에서는 우선 첨부된 데이터를 전처리한 후 이상값을 제거하고 정규화하여 932개의 유효한 데이터를 얻는다. 이후 실리콘 함량[Si]을 예측하기 위한 BP 신경망 예측 모델을 구축하고, 실리콘 함량[Si], 황 함량[S], 폭발량 FL, 석탄 주입량 PML 간의 상관관계를 분석하였다. 둘째, 웨이블릿 신경망 예측 모델과 GA(Genetic Algorithm)에 의해 최적화된 BP 신경망 예측 모델을 확립하고, 세 가지의 장단점을 비교한다. 이후 훈련표본데이터 922그룹, 검증표본 데이터 10그룹을 선정한 결과, 유전알고리즘에 의해 최적화된 BP 신경망 예측 모델과 웨이블릿 신경망 예측 모델이 예측 효과가 더 좋은 것으로 나타났으나, BP 신경망 예측 모델이 더 나빴습니다. 마지막으로 본 논문에서는 혼돈 시계열 예측 모델을 확립하고, 실리콘 함량 [Si]에 대해 혼돈 국소 선형 1단계 예측과 2단계 예측을 수행한다.
  두 번째 질문에 대해서는 먼저 본 논문에서는 922세트의 데이터를 훈련 샘플로, 10세트의 데이터를 검증 샘플로 선택했다. 유전자 알고리즘 최적화 및 카오스 시계열 예측 모델은 각각 지난 10번의 히트에서 실리콘 함량[Si]의 결과를 예측하고 실제 값과 비교하여 BP 예측 성공률은 웨이블릿 예측 성공률의 20%로 계산됩니다. 는 70%, GA+BP는 60%, 카오스예측은 80%이다. 둘째, 마지막 10개 로의 실리콘 함량[Si]에 대한 결과를 서로 다른 모델로 예측하여 로의 온도 상승 및 하강 방향을 예측하여 계산 결과를 얻었다. BP 예측 성공률은 40%, 웨이블릿 예측은 100%, GA+BP 예측은 100%, 카오스 예측은 100%입니다. 마지막으로 카오스 시계열 예측을 위한 신경망 훈련 함수 선택, 신경망 성능 매개변수 설정 및 인접
반경 선택을 논의하여 동적 예측 제어의 타당성을 분석합니다.
  세 번째 질문에 대해, 첫째, 본 논문은 유전자 알고리즘(GA)에 따라 BP 신경망의 예측 모델을 최적화하고, 황 함량[S]을 예측하고, 황 함량[S]과 규소 함량[Si]을 알아낸다. 폭발량 FL과 석탄 주입량 PML 사이의 관계. 그리고 본 논문에서는 입자군집최적화알고리즘(PSO)을 이용하여 유황 함량[S]을 최적화하였으며, 폭발량을 FL=0.7012로 정규화하고 석탄 주입시 유황 함량[S]이 최소값을 갖는 것을 얻었다. 볼륨 PML=0.0809. 마지막으로 본 논문에서는 황 함량[S]의 최적 조건에서 실리콘 함량[Si]을 예측하고 제어할 때 기대되는 효과를 분석합니다.
  네 번째 질문에서는 모델링 배경, 모델을 해결하여 얻은 결과, 분석 결과에서 얻은 결론을 결합하고, 복합공정 산업에서 지능형 제어가 갖는 중요성을 바탕으로 모델링 경험에 대해 간략하게 이야기했습니다. 빅데이터 마이닝을 통해 우리는 최고의 생산 효과를 얻기 위한 생산 프로세스의 최선의 방법과 최상의 매개변수 범위를 결정할 수 있습니다.

모델 가정:

  (1) 카오스 로컬 선형 예측에서 이웃 ε의 선택은 객관적이고 정확하며 주관성이 작다고 가정합니다.
  (2) 카오스 로컬 선형 예측에서 로컬 속성은 전역 속성을 정확하게 나타낼 수 있다고 가정합니다.
  (3) 신경망 예측에서 입력 변수는 네트워크의 첫 번째 레이어로서 합리적으로 효율적이라고 가정합니다.
  (4) 부록에 제공된 데이터와 사용된 데이터는 사실이며 정확하다고 가정합니다.
  (5) 용선 중 규소 함량[Si], 황 함량[S], 석탄 주입량 PML, 고로 용적 FL로 구성된 데이터가 고로 제철 공정을 나타내고 고로 제철 특성을 반영할 수 있다고 가정한다.

문제 분석:

  질문 1 분석: 질문 1에서 제목은 주어진 데이터 테이블에서 [Si]-[S]-FL-PML 순서로 배열된 1000개의 용광로 생산 빅데이터에서 학습 샘플과 알고리즘을 독립적으로 선택하고 [ Si] 1단계 예측 모델 및 2단계 예측 모델을 포함한 동적 수학적 모델을 예측합니다. 1단계 예측 모델과 2단계 예측 모델은 예측 단계 길이가 각각 1과 2임을 의미하며, 두 화로의 실리콘 함량, 즉 화로 온도 사이에 상관관계가 있음을 의미한다. 여기서 학습 샘플은 1000개 배치의 생산 빅데이터가 모두 될 수 없습니다. 왜냐하면 문제 2에서 확립된 수학적 모델의 예측 성공률을 검증해야 하기 때문입니다. 따라서 모든 데이터를 학습용으로 선택할 수는 없고 데이터 중 일부만 학습용으로 선택할 수 있습니다. 학습과 훈련. 모델링 알고리즘은 문제 자체와 조합하여 선택해야 합니다.
  문제 2 분석: 문제 2에서는 수치예측 성공률, 노 온도 상승 및 하강 방향 예측 성공률 등 우리가 구축한 수학적 모델의 예측 성공률을 검증하기 위해 검증 샘플을 독립적으로 선택해야 하는 문제입니다. 그리고 동적 예측 제어의 타당성에 대해 논의합니다. 1000개 로의 생산 빅데이터에 남아있는 학습되지 않은 훈련 데이터 중에서 검증 샘플을 선택하고, [Si] 함량과 로 온도 상승 및 하강 방향을 포함한 성공률을 검증해야 합니다. 어려움은 동적 예측 제어의 타당성과 알고리즘의 예측 성공률을 향상시키는 방법을 논의하는 데 있습니다.
  문제 3 분석: 문제 3에서는 제목에서 용선 품질 지수의 황 함량[S]을 예로 들어야 하는데, 유황 함량이 낮고 용선 품질이 좋아 고순도 제품을 생산할 수 있습니다. 고품질 강철 및 고품질 장비. 품질 지수 [S]의 최적화 수학적 모델을 구축하고, 최적화 모델의 계산 결과에 따른 [Si] 예측 제어의 기대 효과에 대해 논의합니다. 빅데이터 마이닝을 통해 생산 공정의 최선의 방법과 최적의 매개변수 제어 범위를 결정하고, 생산 공정 제어를 예측적이고 동적으로 조정하고, 최고의 생산 효과를 얻고, 최적화 모델을 구축하고, [Si]의 예측 제어에 대해 논의합니다.
  질문 4 분석: 질문 4의 주제에서는 복잡한 공정 산업 지능형 제어 빅데이터 모델링 경험을 논의해야 하며, 이는 우리 모델의 결과 및 배경과 결합하여 논의되어야 합니다.

모델 구축 및 솔루션 전체 종이 썸네일

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

모든 논문은 아래 "QQ 명함만 모델링"을 참조하세요. QQ 명함을 클릭하세요.

프로그램 코드: (코드 및 문서는 무료가 아님)

실제 절차는 스크린샷에 나와 있습니다.

 1 def BP(sampleinnorm, sampleoutnorm,hiddenunitnum=3):                       
 2     # 超参数
 3     maxepochs = 60000                                       # 最大迭代次数
 4     learnrate = 0.030                                       # 学习率
 5     errorfinal = 0.65*10**(-3)                              # 最终迭代误差
 6     indim = 3                                               # 输入特征维度3
 7     outdim = 2                                              # 输出特征唯独2
 8     # 隐藏层默认为3个节点,1层
 9     n,m = shape(sampleinnorm)
10     w1 = 0.5*np.random.rand(hiddenunitnum,indim)-0.1        #8*3维
11     b1 = 0.5*np.random.rand(hiddenunitnum,1)-0.1            #8*1维
12     w2 = 0.5*np.random.rand(outdim,hiddenunitnum)-0.1       #2*8维
13     b2 = 0.5*np.random.rand(outdim,1)-0.1                   #2*1维
14 
15     errhistory = []
16 
17     for i in range(maxepochs):
18         # 激活隐藏输出层
19         hiddenout = sigmod((np.dot(w1,sampleinnorm).transpose()+b1.transpose())).transpose()
20         # 计算输出层输出
21         networkout = (np.dot(w2,hiddenout).transpose()+b2.transpose()).transpose()
22         # 计算误差
23         err = sampleoutnorm - networkout
24         # 计算代价函数(cost function)sum对数组里面的所有数据求和,变为一个实数
25         sse = sum(sum(err**2))/m                                
26         errhistory.append(sse)
27         if sse < errorfinal:                                    #迭代误差
28           break
29         # 计算delta
30         delta2 = err
31         delta1 = np.dot(w2.transpose(),delta2)*hiddenout*(1-hiddenout)
32         # 计算偏置
33         dw2 = np.dot(delta2,hiddenout.transpose())
34         db2 = 1 / 20 * np.sum(delta2, axis=1, keepdims=True)
35 
36         dw1 = np.dot(delta1,sampleinnorm.transpose())
37         db1 = 1/20*np.sum(delta1,axis=1,keepdims=True)
38 
39         # 更新权值
40         w2 += learnrate*dw2
41         b2 += learnrate*db2
42         w1 += learnrate*dw1
43         b1 += learnrate*db1
44 
45     return errhistory,b1,b2,w1,w2,maxepochs
import numpy as np
#定义激活函数
def sigmoid(x,deriv=False):
    if deriv == True:
        return x*(1-x)
    return 1/(1+np.exp(-x))
x = np.array([[0,0,0],[0,1,1],[1,0,1],[0,0,1],[0,0,1]])
print(x.shape)
#指定label值
y = np.array([[0],[1],[1],[0],[0]])
print(y.shape)
#指定随机化种子,使得每次随机值一样
np.random.seed(1)
#定义三层的神经网络
w0 = 2*np.random.random((3,4)) - 1
w1 = 2*np.random.random((4,1)) - 1
print(w0)
print(w1)
for j in range(6000):
    l0 = x
    l1 = sigmoid(np.dot(l0,w0))
    l2 = sigmoid(np.dot(l1,w1))
    #真实值-预测值
    l2_error = y - l2
    if j%1000 == 0 :
        print("error"+str(np.mean(np.abs(l2_error))))
    l2_delta = l2_error*sigmoid(l2,deriv=True)
    l1_error = l2_delta.dot(w1.T)
    l1_delta = l1_error*sigmoid(l1,deriv=True)
    #更新w0 w1
    w1 += l1.T.dot(l2_delta)
    w0 += l0.T.dot(l1_delta)

모든 논문은 아래 "QQ 명함만 모델링"을 참조하세요. QQ 명함을 클릭하세요.

추천

출처blog.csdn.net/weixin_43292788/article/details/129424796