本發(fā)明屬于但不限于材料,尤其涉及一種面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化方法與系統(tǒng)。
背景技術(shù):
1、隨著材料科學和工程技術(shù)的不斷發(fā)展,材料的微觀結(jié)構(gòu)研究越來越受到重視。特別是在晶體材料的研究中,了解其晶粒的取向和旋轉(zhuǎn)對于材料的性能優(yōu)化至關(guān)重要。晶粒的取向和旋轉(zhuǎn)可以直接影響材料的機械性能、電學性能和熱學性能。因此,開發(fā)出一種能夠?qū)崟r可視化和分析晶粒旋轉(zhuǎn)的系統(tǒng),對于材料科學研究和工程應用具有重要意義。
2、目前,許多先進的材料表征技術(shù),如電子背散射衍射(ebsd)、透射電子顯微鏡(tem)和原子力顯微鏡(afm)等,已經(jīng)能夠提供高分辨率的晶粒取向信息。然而,這些技術(shù)通常需要復雜的樣品制備和昂貴的設備,且無法實現(xiàn)實時觀察和動態(tài)分析。因此,開發(fā)一種能夠?qū)崟r三維可視化晶粒旋轉(zhuǎn)的方法和系統(tǒng),不僅可以彌補現(xiàn)有技術(shù)的不足,還能夠為材料科學研究提供更加便捷和高效的工具。
3、在現(xiàn)有技術(shù)中,一些軟件工具可以對晶體材料的微觀結(jié)構(gòu)進行三維可視化,但這些工具往往缺乏實時性,無法實現(xiàn)動態(tài)的晶粒旋轉(zhuǎn)可視化。此外,這些工具大多針對一般的晶體結(jié)構(gòu),而沒有專門針對面心立方體(fcc)材料的晶粒旋轉(zhuǎn)可視化方法。面心立方體材料廣泛應用于航空航天、汽車、電子等領(lǐng)域,其晶粒取向的控制和優(yōu)化對提升材料性能具有重要意義。目前,已有的一些技術(shù)和方法,如基于python和matplotlib的三維繪圖工具,可以實現(xiàn)簡單的晶粒旋轉(zhuǎn)可視化,但這些方法通常需要較高的編程技能,且缺乏用戶友好的界面,不利于非專業(yè)用戶的使用。此外,現(xiàn)有的可視化方法多為靜態(tài)圖像,無法實時動態(tài)地展示晶粒的旋轉(zhuǎn)過程,限制了其在動態(tài)材料表征和分析中的應用。
4、因此,亟需一種專門針對面心立方體材料的實時三維晶粒旋轉(zhuǎn)可視化方法和系統(tǒng),能夠提供用戶友好的界面,易于操作,并且可以動態(tài)展示晶粒的旋轉(zhuǎn)過程,以滿足材料科學研究和工程應用的需求。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)存在的問題,本發(fā)明提供了一種面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化方法與系統(tǒng)。
2、本發(fā)明是這樣實現(xiàn)的,一種面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化方法,該方法包括:
3、s1:采用圖形用戶界面工具庫tkinter庫三維晶粒旋轉(zhuǎn)可視化方法與系統(tǒng),通過圖形用戶界面工具庫tkinter建立歐拉角數(shù)據(jù)輸入框、調(diào)用pandas庫讀取文件數(shù)據(jù)和工具庫tkinter創(chuàng)建歐拉角滑動條,實現(xiàn)對特定歐拉角數(shù)據(jù)和任意歐拉角數(shù)據(jù)的輸入;
4、s2:采用三維繪圖庫matplotlib實現(xiàn)fcc面心立方體晶粒和坐標軸的繪制;
5、s3:通過輸入的歐拉角根據(jù)公式(1)計算晶粒的旋轉(zhuǎn)矩陣,確認晶粒在三維空間中的旋轉(zhuǎn)狀態(tài)的轉(zhuǎn)換;所述旋轉(zhuǎn)矩陣的計算公式如下所示:
6、
7、其中,g表示旋轉(zhuǎn)矩陣,φ1是章動角,φ是旋進角,φ2是自轉(zhuǎn)角。
8、s4:通過輸入的歐拉角根據(jù)公式(1)晶粒的密勒指數(shù),確認晶粒在三維空間內(nèi)的晶面或晶向分布;
9、
10、其中,(u,v,w)是旋轉(zhuǎn)前的晶體取向向量的分量,(r,s,t)是旋轉(zhuǎn)過程中中間步驟的晶體取向向量分量,(h,k,l)是旋轉(zhuǎn)后的晶體取向向量的分量。
11、s5:采用事件監(jiān)聽技術(shù)實現(xiàn)歐拉角、旋轉(zhuǎn)矩陣和米勒指數(shù)的實時更新;
12、s6:通過s3和s5實時計算得到的旋轉(zhuǎn)矩陣,通過公式(3)將這些頂點坐標與旋轉(zhuǎn)矩陣相乘,計算出旋轉(zhuǎn)后的新頂點坐標,再調(diào)用matplotlib庫的即時渲染功能,在晶粒旋轉(zhuǎn)角度毫秒級內(nèi)的重新繪制,實現(xiàn)晶粒旋轉(zhuǎn)的實時更新;
13、rotated_vertices=g·vertices?(3)
14、其中,g表示由歐拉角φ1,φ,φ2計算得到的旋轉(zhuǎn)矩陣,用于描述晶粒的旋轉(zhuǎn)狀態(tài),vertices表示晶體初始的頂點坐標,rotated_vertices是一個包含所有頂點坐標的矩陣或數(shù)組,表示經(jīng)過旋轉(zhuǎn)矩陣g變換后的頂點坐標。
15、s7:通過輸入描述晶體學中晶面方向的密勒指數(shù),采用公式(4)計算出對應的歐拉角,使得晶粒的空間方向與米勒指數(shù)一致;同時,調(diào)用接收函數(shù)接收從密勒指數(shù)計算得到的歐拉角,通過s3s6更新晶粒的旋轉(zhuǎn)角度,并繪制旋轉(zhuǎn)后的晶粒;
16、
17、φ=arccos(l)
18、
19、其中,φ1是章動角,φ是旋進角,φ2是自轉(zhuǎn)角。w表示晶面方向向量在z軸方向上的分量,h表示晶面方向向量在x軸方向上的分量。k表示晶面方向向量在y軸方向上的分量。l表示晶面方向向量在新的z軸方向上的分量。
20、s8:遍歷歐拉角輸入框,通過tkinter的entry小部件的get()方法提取每個晶粒的歐拉角數(shù)據(jù),存儲到pandas的dataframe對象中;采用tkinter的asksaveasfilename方法打開文件保存對話框,調(diào)用pandas的to_csv或to_excel方法將dataframe對象保存為對應格式的文件;同時,使用tkinter的asksaveasfilename方法打開文件保存對話框,利用matplotlib庫的savefig方法,將當前繪制的圖形保存為指定格式的圖像文件。
21、進一步,所述圖形用戶界面工具庫tkinter庫三維晶粒旋轉(zhuǎn)可視化方法與系統(tǒng)主要包括主窗口和各個控件;
22、所述主窗口通過tkinter的tk()方法實例化,并設置窗口標題和大??;所述主窗口內(nèi)包含多個框架(frame),每個框架負責不同的功能區(qū)域,主要包括歐拉角輸入、數(shù)據(jù)信息實時更新、晶粒角度實時旋轉(zhuǎn)、密勒指數(shù)輸入等功能區(qū)域。
23、進一步,所述s2具體包括:
24、首先,定義立方體的八個頂點的坐標:
25、
26、然后,定義立方體的六個面,每個面由四個頂點組成:
27、faces=[[0,1,2,3],[4,5,6,7],[0,1,5,4],[2,3,7,6],[1,2,6,5],[4,7,3,0]]
28、通過遍歷每個面并繪制面上的邊,使用matplotlib的plot函數(shù),結(jié)合三維軸對象axes3d,在三維空間中繪制立方體和坐標軸;為了顯示旋轉(zhuǎn)效果,將旋轉(zhuǎn)矩陣應用到每個頂點坐標上,得到旋轉(zhuǎn)后的頂點坐標,然后重新繪制立方體。
29、進一步,所述s5具體包括:
30、主要通過捕捉滑動條的移動和數(shù)值輸入的變化事件,實現(xiàn)對歐拉角變化的監(jiān)聽,當歐拉角的值發(fā)生變化時,事件監(jiān)聽器捕捉到該變化,并立即調(diào)用numpy數(shù)據(jù)庫,在毫秒級內(nèi)重新計算旋轉(zhuǎn)矩陣和米勒指數(shù)。
31、本發(fā)明另一目的在于提供一種基于所述面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化方法的面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化系統(tǒng),該系統(tǒng)具體包括:
32、數(shù)據(jù)輸入模塊,采用圖形用戶界面工具庫tkinter庫三維晶粒旋轉(zhuǎn)可視化方法與系統(tǒng),通過圖形用戶界面工具庫tkinter建立歐拉角數(shù)據(jù)輸入框、調(diào)用pandas庫讀取文件數(shù)據(jù)和工具庫tkinter創(chuàng)建歐拉角滑動條,實現(xiàn)對特定歐拉角數(shù)據(jù)和任意歐拉角數(shù)據(jù)的輸入;
33、繪制模塊,采用三維繪圖庫matplotlib實現(xiàn)fcc面心立方體晶粒和坐標軸的繪制;
34、旋轉(zhuǎn)矩陣計算模塊,與數(shù)據(jù)輸入模塊、繪制模塊連接,通過輸入的歐拉角根據(jù)公式(1)計算晶粒的旋轉(zhuǎn)矩陣,確認晶粒在三維空間中的旋轉(zhuǎn)狀態(tài)的轉(zhuǎn)換;所述旋轉(zhuǎn)矩陣的計算公式如下所示:
35、
36、其中,g表示旋轉(zhuǎn)矩陣,φ1是章動角,φ是旋進角,φ2是自轉(zhuǎn)角。
37、確認模塊,與旋轉(zhuǎn)矩陣計算模塊連接,通過輸入的歐拉角根據(jù)公式(1)晶粒的密勒指數(shù),確認晶粒在三維空間內(nèi)的晶面或晶向分布;
38、
39、其中,(u,v,w)是旋轉(zhuǎn)前的晶體取向向量的分量,(r,s,t)是旋轉(zhuǎn)過程中中間步驟的晶體取向向量分量,(h,k,l)是旋轉(zhuǎn)后的晶體取向向量的分量。
40、實時更新模塊,與數(shù)據(jù)輸入模塊、旋轉(zhuǎn)矩陣計算模塊連接,采用事件監(jiān)聽技術(shù)實現(xiàn)歐拉角、旋轉(zhuǎn)矩陣和米勒指數(shù)的實時更新;通過實時計算得到的旋轉(zhuǎn)矩陣,通過公式(3)將這些頂點坐標與旋轉(zhuǎn)矩陣相乘,計算出旋轉(zhuǎn)后的新頂點坐標,再調(diào)用matplotlib庫的即時渲染功能,在晶粒旋轉(zhuǎn)角度毫秒級內(nèi)的重新繪制,實現(xiàn)晶粒旋轉(zhuǎn)的實時更新;
41、rotated_vertices=g·vertices?(3)
42、其中,g表示由歐拉角φ1,φ,φ2計算得到的旋轉(zhuǎn)矩陣,用于描述晶粒的旋轉(zhuǎn)狀態(tài),vertices表示晶體初始的頂點坐標,rotated_vertices是一個包含所有頂點坐標的矩陣或數(shù)組,表示經(jīng)過旋轉(zhuǎn)矩陣g變換后的頂點坐標。
43、晶粒繪制模塊,與確認模塊連接,通過輸入描述晶體學中晶面方向的密勒指數(shù),采用公式(4)計算出對應的歐拉角,使得晶粒的空間方向與米勒指數(shù)一致;同時,調(diào)用接收函數(shù)接收從密勒指數(shù)計算得到的歐拉角,通過s3s6更新晶粒的旋轉(zhuǎn)角度,并繪制旋轉(zhuǎn)后的晶粒;
44、
45、φ=arccos(l)
46、
47、其中,φ1是章動角,φ是旋進角,φ2是自轉(zhuǎn)角。w表示晶面方向向量在z軸方向上的分量,h表示晶面方向向量在x軸方向上的分量。k表示晶面方向向量在y軸方向上的分量。l表示晶面方向向量在新的z軸方向上的分量。
48、圖像保存模塊,與晶粒繪制模塊連接,遍歷歐拉角輸入框,通過tkinter的entry小部件的get()方法提取每個晶粒的歐拉角數(shù)據(jù),存儲到pandas的dataframe對象中;采用tkinter的asksaveasfilename方法打開文件保存對話框,調(diào)用pandas的to_csv或to_excel方法將dataframe對象保存為對應格式的文件;同時,使用tkinter的asksaveasfilename方法打開文件保存對話框,利用matplotlib庫的savefig方法,將當前繪制的圖形保存為指定格式的圖像文件。
49、本發(fā)明另一目的在于提供一種計算機設備,所述計算機設備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述計算機程序被所述處理器執(zhí)行時,使得所述處理器執(zhí)行所述面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化方法的步驟。
50、本發(fā)明另一目的在于提供一種計算機可讀存儲介質(zhì),存儲有計算機程序,所述計算機程序被處理器執(zhí)行時,使得所述處理器執(zhí)行所述面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化方法的步驟。
51、本發(fā)明另一目的在于提供一種信息數(shù)據(jù)處理終端,所述信息數(shù)據(jù)處理終端用于實現(xiàn)所述面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化系統(tǒng)。
52、結(jié)合上述的技術(shù)方案和解決的技術(shù)問題,本發(fā)明所要保護的技術(shù)方案所具備的優(yōu)點及積極效果為:
53、第一、針對上述現(xiàn)有技術(shù)的缺陷和不足,本發(fā)明提供了一種面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化方法與系統(tǒng),具有顯著優(yōu)點。首先,本發(fā)明采用基于python的tkinter圖形用戶界面和matplotlib三維繪圖庫,實現(xiàn)了實時動態(tài)的晶粒旋轉(zhuǎn)可視化。通過實時更新的圖形界面,用戶能夠直觀地觀察晶粒在三維空間中的旋轉(zhuǎn)變化,這極大地提高了實驗和研究的效率。此外,用戶可以通過輸入歐拉角、拖動進度條或直接使用鼠標拖動三種方式來控制晶粒的旋轉(zhuǎn),這種多樣化的交互方式使得操作更加便捷,滿足了不同用戶的需求。
54、在具體實現(xiàn)上,本發(fā)明通過高效的數(shù)學計算方法,將歐拉角轉(zhuǎn)換為旋轉(zhuǎn)矩陣,并實時更新晶粒的旋轉(zhuǎn)狀態(tài),確保了系統(tǒng)的高性能和穩(wěn)定性。相比于傳統(tǒng)的靜態(tài)展示方法,本發(fā)明能夠動態(tài)展示晶粒的旋轉(zhuǎn)過程,有助于用戶更深入地理解晶粒的運動規(guī)律和內(nèi)部結(jié)構(gòu)變化。此外,本發(fā)明還具有成本低、結(jié)構(gòu)簡單的優(yōu)點。系統(tǒng)的實現(xiàn)主要依賴于開源的python庫,降低了開發(fā)成本和維護難度。其用戶界面設計簡潔明了,操作直觀,無需專業(yè)培訓即可上手使用,大大提高了使用的便利性。
55、綜上所述,本發(fā)明在實時性、操作便捷性、系統(tǒng)性能以及成本控制等方面均具備顯著優(yōu)勢,能夠有效彌補現(xiàn)有技術(shù)的不足,顯著提升面心立方體材料晶粒旋轉(zhuǎn)可視化的效率和效果。
56、第二,作為本發(fā)明的權(quán)利要求的創(chuàng)造性輔助證據(jù),還體現(xiàn)在以下幾個重要方面:
57、(1)本發(fā)明的技術(shù)方案轉(zhuǎn)化后的預期收益和商業(yè)價值為:
58、本發(fā)明的技術(shù)方案提供了一種面心立方體材料實時三維晶粒旋轉(zhuǎn)可視化方法與系統(tǒng),能夠顯著提升材料科學研究的效率和精確度。通過實時可視化晶粒的旋轉(zhuǎn),研究人員可以更直觀地觀察和分析晶粒取向?qū)Σ牧闲阅艿挠绊?,從而加速材料開發(fā)和優(yōu)化過程。
59、(2)本發(fā)明的技術(shù)方案填補了國內(nèi)外業(yè)內(nèi)技術(shù)空白:
60、目前,許多材料表征技術(shù)雖然能夠提供高分辨率的晶粒取向信息,但缺乏實時性和動態(tài)分析能力。本發(fā)明提出的實時三維晶粒旋轉(zhuǎn)可視化方法與系統(tǒng),彌補了現(xiàn)有技術(shù)在動態(tài)觀察和實時分析方面的不足,特別是針對面心立方體材料的專門設計,填補了國內(nèi)外在該領(lǐng)域的技術(shù)空白,為材料科學研究提供了全新的解決方案。
61、(3)本發(fā)明的技術(shù)方案解決了人們一直渴望解決、但始終未能獲得成功的技術(shù)難題:
62、材料科學研究中,實時觀察和分析晶粒旋轉(zhuǎn)對材料性能的影響一直是一個難題?,F(xiàn)有技術(shù)難以實現(xiàn)動態(tài)、實時的晶粒旋轉(zhuǎn)可視化。本發(fā)明通過結(jié)合python的tkinter圖形用戶界面和matplotlib三維繪圖功能,成功實現(xiàn)了實時動態(tài)的晶粒旋轉(zhuǎn)可視化,解決了這一長期存在的技術(shù)難題,使得研究人員可以更加便捷地進行材料性能分析和優(yōu)化。
63、(4)本發(fā)明的技術(shù)方案克服了技術(shù)偏見:。
64、傳統(tǒng)的晶粒旋轉(zhuǎn)可視化方法大多為靜態(tài)圖像,且需要較高的編程技能,限制了其在非專業(yè)用戶中的應用。本發(fā)明采用簡潔明了的用戶界面設計,通過拖動滑動條或直接使用鼠標拖動等方式實現(xiàn)晶粒的旋轉(zhuǎn),降低了使用門檻,克服了傳統(tǒng)方法對用戶技能的高要求。此外,本發(fā)明還通過實時更新和動態(tài)展示晶粒旋轉(zhuǎn)過程,提供了更高效、直觀的觀察方式,克服了傳統(tǒng)靜態(tài)展示方法的局限性,提高了系統(tǒng)的實用性和用戶體驗。
65、第三,本發(fā)明的技術(shù)方案在產(chǎn)業(yè)應用中解決了現(xiàn)有技術(shù)在面心立方體材料三維晶粒旋轉(zhuǎn)可視化方面的多項技術(shù)問題,尤其是在材料科學、金屬加工、晶體生長等領(lǐng)域的工業(yè)應用中具有顯著的進步。
66、現(xiàn)有技術(shù)的問題:
67、1)實時性差:傳統(tǒng)的晶粒旋轉(zhuǎn)可視化方法通常依賴于離線計算和靜態(tài)展示,難以實現(xiàn)對晶粒旋轉(zhuǎn)狀態(tài)的實時更新。這在需要動態(tài)調(diào)整和快速反饋的工業(yè)應用中,往往無法滿足生產(chǎn)過程中的實時監(jiān)控需求。
68、2)可視化精度不足:在實際應用中,晶粒的取向和旋轉(zhuǎn)狀態(tài)對材料性能有重要影響?,F(xiàn)有技術(shù)中,由于旋轉(zhuǎn)矩陣和密勒指數(shù)的計算不夠精確,導致可視化結(jié)果與實際情況有偏差,影響了工業(yè)過程中的質(zhì)量控制和產(chǎn)品一致性。
69、3)操作復雜:現(xiàn)有技術(shù)中的三維晶??梢暬到y(tǒng)往往操作復雜,界面不夠友好,導致在工業(yè)生產(chǎn)中推廣和應用的難度較大,特別是在需要對大量數(shù)據(jù)進行處理和分析時,效率低下。
70、本發(fā)明的技術(shù)進步:
71、1)實時動態(tài)監(jiān)控:本發(fā)明通過集成事件監(jiān)聽技術(shù),實現(xiàn)了晶粒旋轉(zhuǎn)狀態(tài)的實時更新和可視化。這種實時性對于工業(yè)應用至關(guān)重要,特別是在材料加工、金屬成形和晶體生長過程中,能夠提供即時反饋,幫助操作者及時調(diào)整工藝參數(shù),從而提高產(chǎn)品質(zhì)量和生產(chǎn)效率。
72、2)高精度可視化:本發(fā)明采用精確的歐拉角、旋轉(zhuǎn)矩陣和密勒指數(shù)計算方法,確保了三維晶粒旋轉(zhuǎn)的準確模擬和可視化。這種高精度的展示對于材料科學研究和工業(yè)檢測具有重要意義,有助于更好地理解材料內(nèi)部結(jié)構(gòu)的變化,提高工藝控制的精度。
73、3)簡化操作流程:通過使用tkinter庫和matplotlib庫,本發(fā)明提供了一個用戶友好的圖形界面,使得復雜的三維晶粒旋轉(zhuǎn)操作變得簡單直觀。工業(yè)用戶可以通過簡單的輸入和調(diào)整,實時觀察到晶粒的旋轉(zhuǎn)狀態(tài),極大地降低了技術(shù)門檻,有助于在生產(chǎn)線上的廣泛應用。
74、4)集成化工具:本發(fā)明不僅實現(xiàn)了晶粒的實時旋轉(zhuǎn)可視化,還集成了數(shù)據(jù)輸入、存儲和圖像保存等功能。這種集成化的工具為工業(yè)用戶提供了一個高效的解決方案,不僅提高了生產(chǎn)過程中的數(shù)據(jù)處理效率,還簡化了質(zhì)量控制和追溯過程,助力智能制造的發(fā)展。
75、通過本發(fā)明,工業(yè)用戶在晶粒取向和旋轉(zhuǎn)的可視化過程中實現(xiàn)了從離線分析到實時監(jiān)控的轉(zhuǎn)變,從低精度到高精度的跨越,以及從復雜操作到簡化操作的優(yōu)化。這些進步顯著提升了材料科學與工程領(lǐng)域的研究和應用能力,同時推動了高端制造業(yè)的技術(shù)創(chuàng)新和生產(chǎn)效率的提升,具有廣泛的產(chǎn)業(yè)應用前景和經(jīng)濟價值。