本發明涉及橋梁工程和人工智能交叉領域,具體涉及基于時序卷積-gan的斜拉橋火致斷索應力數據生成方法。
背景技術:
1、時序卷積網絡(temporal?convolutionalnetwork,tcn)作為深度學習中的一種重要模型,結合了卷積神經網絡(cnn)和長短期記憶網絡(lstm)的優勢,能夠有效處理二維圖像數據和一維序列數據,自動提取和學習特征,實現對復雜時間序列數據的精準預測與分析。然而,對于懸索橋梁拉索應力-應變數據的快速生成仍存在諸多挑戰。一方面,懸索橋梁拉索應力-應變數據具有時序性、非線性、高維性等特點,傳統的數據分析方法難以準確捕捉其內在規律;另一方面,由于環境因素,如突發火災事故等多種因素的影響,懸索橋梁拉索應力-應變數據具有較大的不確定性和波動性,進一步增加了數據生成的難度。
技術實現思路
1、針對上述存在的技術不足,本發明的目的是提供基于時序卷積-gan的斜拉橋火致斷索應力數據生成方法,其能夠克服突發事故火災下現有斜拉橋拉索張力與加勁梁等關鍵構件應力-應變數據獲取方式的局限性與受力性能評估難題,為橋梁多災害防控預警提供高效、精確數據支撐,促進橋梁工程與人工智能技術的深融與發展。
2、為解決上述技術問題,本發明采用如下技術方案:
3、本發明提供基于時序卷積-gan的斜拉橋火致斷索應力數據生成方法,包括以下步驟:
4、步驟1:利用軟件模擬大跨斜拉橋突發火災事故可能導致的不同位置、不同數量的拉索斷裂引起的拉索張力變化與加勁梁應力-應變重分布,采集各拉索斷裂工況沿橋長方向各拉索的張力、加勁梁應力-應變數據,對數據進行預處理,構建訓練gan網絡所需數據集;
5、步驟2:搭建融合時序卷積的gan網絡模型,包括數據生成器與判別器;
6、步驟3:輸入隨機向量和訓練集數據訓練所述融合時序卷積的gan網絡網絡,獲取生成網絡;
7、步驟4:利用融合時序卷積的gan網絡模型生成不同位置、不同數量的拉索斷裂后拉索張力或加勁梁應力數據,采用均方根誤差、平均絕對誤差和r2衡量數據生成質量,采用主成分分析和t-sne數據降維可視化技術評價真實數據與生成數據的分布差異。
8、優選地,步驟1中,構建訓練gan網絡所需數據集,具體包括:
9、步驟1.1:使用有限元分析軟件,建立斜拉橋1:1精細化數值模型,拉索以線單元模擬,其余主塔、鋼箱梁、主梁結構采用三維殼單元構建;拉索選用桁架單元,其余實體部分選用線性四邊形單元,總單元數量為46710;拉索與主塔、加勁梁使用mpc鉸接連接;在荷載預定義場中使用應力施加拉索預應力;使用靜力通用分析步進行分析計算;
10、步驟1.2:使用odb文件輸出導出關鍵網格應力-應變數據,保存為.csv格式;
11、步驟1.3:利用numpy數據庫中的read_csv函數讀取數據,并將其轉為字典類型,并進行歸一化處理,確保數據值在0到1之間;
12、步驟1.4:利用torch.tensor函數將字典數據轉為32位浮點運算的張量形式,便于網絡訓練讀取。
13、優選地,步驟2具體包括以下步驟:
14、步驟2.1:所述融合時序卷積的gan網絡包括4個不同參數的時序卷積神經網絡模塊,所述時序卷積神經網絡模塊包含2~3個一維卷積神經網絡、1個leakyrelu非線性激活函數、3層不同神經元數量的全連接層、1個relu和1個tanh非線性激活函數;
15、步驟2.1.1:利用pytorch庫中的nn.conv1d模塊單元搭建時序卷積神經網絡模塊;
16、步驟2.1.2:利用pytorch庫中的nn.linear模塊、nn.relu和nn.tanh非線性激活單元,依次搭建2個全連接層和2個非線性激活層;第一個全連接層的輸入、輸出通道數量分別為256和512,確保與第四個時序卷積神經網絡模塊的輸出通道數量保持一致,并銜接relu非線性激活函數;第二個全連接層輸入、輸出通道數為512和n,銜接tanh非線性激活函數,輸出生成數據;
17、步驟2.2:所述判別器包括3個時序卷積神經網絡模塊,2個全連接層以及1個relu非線性激活函數;
18、優選地,步驟2.1.1:利用pytorch庫中的nn.conv1d模塊單元搭建時序卷積神經網絡模塊;具體為:
19、第1個時序卷積神經網絡模塊的輸入通道、輸出通道、卷積核大小及膨脹率分別為n、512、3、1,n與輸入數據的維度保持一致;該時序卷積神經網絡模塊中共包含了3個一維卷積神經網絡和一個leakyrelu非線性激活函數;第1個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值分別為n、512、3、1、1;第2個一維卷積神經網絡與第1個一維卷積神經網絡順次連接,其輸入通道、輸出通道、卷積核大小、膨脹率、填充值分別為512、512、3、1、1;隨后再銜接leakyrelu非線性激活函數;需要指出的是,如果數據維度n≠512,則一維卷積神經網絡中還會多出一條殘差連接的分支,該分支連接了輸入數據與leakyrelu非線性激活函數的輸出參數,包含1個一維卷積神經網絡,其輸入、輸出通道、卷積核大小分別為n、512,1;
20、第2個時序卷積神經網絡模塊的輸入通道、輸出通道、卷積核大小及膨脹率分別為512、512、3、2;其中共包含2個一維卷積神經網絡和1個leakyrelu非線性激活函數層,兩個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值均分別為512、512、3、2、2;
21、第3個時序卷積神經網絡模塊的輸入通道、輸出通道、卷積核大小及膨脹率分別為512、256、3、4;共包含3個一維卷積神經網絡和一個leakyrulu非線性激活函數層,前兩個一維卷積神經網絡與leakyrulu非線性激活函數順次相連,第三個一維卷積神經網絡包含了殘差連接;第1個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值分別為512、256、3、4、4;第2個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值分別為256、256、3、4、4;第3個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小分別為512、256、3;
22、第4個時序卷積神經網絡模塊的輸入通道、輸出通道、卷積核大小及膨脹率分別為256、256、3、8;其中共包含2個一維卷積神經網絡和1個leakyrelu非線性激活函數,兩個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值均分別為256、256、3、8、8;
23、優選地,步驟2.2.1具體為:
24、第1個時序卷積神經網絡模塊的輸入通道、輸出通道、卷積核大小及膨脹率分別為n、512、3、1;該模塊中共包含了3個一維卷積神經網絡和一個leakyrelu非線性激活函數;第1個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值分別為n、512、3、1、1;第2個一維卷積神經網絡與第1個順次連接,其輸入通道、輸出通道、卷積核大小、膨脹率、填充值分別為512、512、3、1、1;隨后再銜接leakyrelu非線性激活函數;如果數據維度n≠512,第三個一維卷積神經網絡包含殘差連接,其輸入、輸出通道、卷積核大小分別為n、512,1;
25、第2個時序卷積神經網絡模塊的輸入通道、輸出通道、卷積核大小及膨脹率分別為512、512、3、2;其中共包含2個一維卷積神經網絡和1個leakyrelu非線性激活函數,兩個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值均分別為512、512、3、2、2;
26、第3個時序卷積神經網絡模塊的輸入通道、輸出通道、卷積核大小及膨脹率分別為512、256、3、4;共包含3個一維卷積神經網絡和一個leakyrulu非線性激活函數,前兩個一維卷積神經網絡與leakyrulu非線性激活函數順次相連,第三個一維卷積神經網絡為殘差連接;第1個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值分別為512、256、3、4、4;第2個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小、膨脹率、填充值分別為256、256、3、4、4;第3個一維卷積神經網絡的輸入通道、輸出通道、卷積核大小分別為512、256、3;
27、利用pytorch庫中的nn.linear模塊和nn.relu非線性激活函數,依次搭建2個全連接層和1個非線性激活函數;第一個全連接層的輸入、輸出通道數量分別為256和512,確保與判別網絡中的第3個時序卷積神經網絡模塊的輸出通道數量保持一致,并銜接relu非線性激活函數;第二個全連接層輸入、輸出通道數為512和1,輸出判別分數。
28、優選地,步驟3具體包括以下步驟:
29、步驟3.1:對生成器與判別器進行對抗訓練;采用pytorch庫中提供的torch.randn函數隨機初始化生成器與判別器網絡參數,并實例初始化adam優化器參數;
30、步驟3.2:利用生成數據與真實數據訓練判別器網絡;
31、步驟3.2.1:從訓練集中采樣一批數據,并初始化一組隨機變量,其維度與真實數據保持一致;
32、步驟3.2.2:將隨機變量輸入至生成器網絡,輸出生成的纜索張力數據;
33、步驟3.2.3:將生成的纜索張力數據和真實數據一同輸入至判別器網絡,輸出判別分數,對于真實數據,判別器的輸出分數會趨近于1,生成數據的判別分數則趨近于0,最終,判別器輸出的判別分數會趨近于0.5,即判別器無法區分輸入的是生成數據還是真實數據;
34、步驟3.2.4:通過wasserstein距離,計算判別器損失,并加入梯度懲罰項,以確保訓練過程的穩定,避免判別器產生梯度消失或爆炸現象,損失計算公式如下:
35、
36、式中,x為真實數據,z為隨機噪聲,pr為真實樣本分布,pz是隨機噪聲分布,d(x)是判別器輸出對真實數據的判別分數,g(z)是生成器輸出的生成數據,d(g(z))是判別器輸出對生成數據的判別分數,第三項是梯度懲罰項,用于強制判別器滿足lipschitz連續性條件,λ是懲罰系數,x`是真實樣本和生成樣本之間的插值,px`是插值分布;
37、步驟3.2.5:計算判別器損失值,通過反向傳播,將損失梯度傳播至判別器參數中;
38、步驟3.2.6:采用rmsprop優化器更新判別器參數,使其更好區分真實數據和生成數據;
39、步驟3.3:利用判別器網絡損失更新訓練生成器網絡;
40、步驟3.3.1:再初始化一組隨機變量輸入至生成器網絡,輸出生成數據,再送入所述判別器進行打分,輸出判別分數;
41、步驟3.3.2:生成器的損失函數會最大化判別分數,使生成器生成的數據盡可能接近真實數據,從而欺騙判別器,損失計算公式如下:
42、
43、式中各符號含義與步驟3.2.4判別器損失計算式一致;
44、步驟3.3.3:計算總損失,并通過梯度反向傳播方法,將損失傳遞至生成器中;
45、步驟3.3.4:采用adam優化器,根據損失值更新生成器網絡參數,使其能夠生成更加真實的數據,優化器中的參數β1和β2的取值分別為0.9和0.999;
46、步驟3.3.5:迭代以上訓練過程,當判別器輸出的判別分數趨近0.5時,表明生成器和判別器已經達到了一個相對平衡的狀態,訓練結束;
47、步驟3.4:共訓練10000輪,利用pytorch庫中的torch.save.state_dict函數每1000輪保存一次生成器網絡權重。
48、優選地,步驟4中,數據生成質量評價指標及數據可視化降維分析,具體包括以下步驟:
49、步驟4.1:利用pytorch庫中的torch.load.load_state_dict調用完成訓練的生成器模型,利用torch.rand函數生成隨機變量,并采用torch.tensor函數將其轉為向量形式,輸入至生成器,輸出生成的纜索張力數據,并對數據進行反歸一化和存儲;
50、步驟4.2:利用numpy庫中提供的sqrt和mean_squared_error函數計算生成數據與真實數據的均方根誤差,以.txt的形式保存誤差結果;
51、步驟4.3:利用numpy庫中提供的mean_absolute_error函數計算生成數據與真實數據間的平均絕對誤差,以.txt的形式保存誤差結果;
52、步驟4.4:利用numpy庫中提供的r2_score函數計算生成數據與真實數據間的r2,以.txt的形式保存誤差結果;
53、步驟4.5:利用sklearn庫中提供的pca函數計算生成數據與真實數據間的二維分布規律,利用matplotlib庫中的plt函數,以圖片的形式保存分析結果;
54、步驟4.6:利用sklearn庫中提供的tsne函數計算生成數據與真實數據間的二維分布規律,利用matplotlib庫中的plt函數,以圖片的形式保存分析結果。
55、本發明的有益效果在于:本方法在生成對抗網絡中引入了時序卷積神經網絡模塊,增大了模型的感受野,擴大了模型數據捕捉范圍,提升了數據生成質量,同時引入wasserstein距離損失函數,提高了模型訓練過程的穩定性,加速模型收斂。此技術的提出,旨在克服突發事故火災下現有斜拉橋拉索張力與加勁梁等關鍵構件應力-應變數據獲取方式的局限性與受力性能評估難題,為橋梁多災害防控預警提供高效、精確數據支撐,促進橋梁工程與人工智能技術的深融與發展。