RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在SaberRD中導(dǎo)出FMU的步驟詳解

冬至子 ? 來源:KINGBOL ? 作者:Nano ? 2023-12-06 13:47 ? 次閱讀

FMI聯(lián)合仿真為聯(lián)合仿真環(huán)境中仿真工具的耦合提供了接口標(biāo)準(zhǔn)。子系統(tǒng)之間的數(shù)據(jù)交換僅限于離散的通信點(diǎn)。在兩個通信點(diǎn)之間的時間內(nèi),子系統(tǒng)由各自的求解器獨(dú)立求解。主要算法控制子系統(tǒng)之間的數(shù)據(jù)交換和所有仿真求解器(子)的同步。

使用工具耦合方法進(jìn)行聯(lián)合仿真:在工具耦合方法中,F(xiàn)MU實(shí)現(xiàn)將FMI函數(shù)調(diào)用包裝到仿真工具提供的API調(diào)用中。除了FMU之外,還需要仿真工具來運(yùn)行一個聯(lián)合仿真,如圖1所示。

圖片

*Figure 1 *Cosimulation with tool coupling on a single computer

01

FMU的導(dǎo)出

1. 在SaberRD中創(chuàng)建設(shè)計

在將Saber設(shè)計導(dǎo)出到FMU之前,必須在SaberRD中創(chuàng)建Saber原理圖設(shè)計。有關(guān)如何創(chuàng)建Saber原理圖設(shè)計的信息,請參見SaberRD設(shè)計創(chuàng)建用戶指南中的創(chuàng)建設(shè)計。

2. 為輸入和輸出添加分層端口

*為了將Saber設(shè)計導(dǎo)出到FMU,必須在設(shè)計中至少定義一個分層端口。您必須在需要導(dǎo)出為FMU中的輸入/輸出端口的節(jié)點(diǎn)上附加一個層次結(jié)構(gòu)端口,如圖2所示。

圖片

*Figure 2 *Adding hierarchical ports on schematic

*從部件庫中的Schematic Connectors類別中選擇適當(dāng)?shù)亩丝诜?,并將其連接到需要導(dǎo)出到FMU的原理圖節(jié)點(diǎn)。如果是離散端口和模擬控制端口,請將分級輸入連接器連接到輸入端口,將分級輸出連接器連接到輸出端口。對于物理模擬端口,如電氣和液壓端口,連接分層模擬連接器。
*注意:將錯誤的層次連接器連接到節(jié)點(diǎn)將導(dǎo)致FMU導(dǎo)出失敗。在原理圖中添加端口連接器的順序很重要,因?yàn)樵趯?dǎo)出的FMU的modelDescription.xml中定義FMU端口時也使用相同的順序。

3. 在原理圖中增加設(shè)計參數(shù)(可選)

*對于任何需要作為設(shè)計參數(shù)暴露給父模擬器以便在聯(lián)合模擬開始時對其進(jìn)行修改的模型參數(shù),都應(yīng)該在原理圖上添加設(shè)計參數(shù)。選擇需要作為模型屬性網(wǎng)格上的參數(shù)導(dǎo)出的屬性,并將其值更改為所需的名稱,該名稱將在創(chuàng)建層次符號時用作層次參數(shù)。如圖3所示。

圖片

*Figure 3 *Adding design parameters on schematic

*注意:只有標(biāo)量、整數(shù)和字符串類型的屬性可以導(dǎo)出為FMU參數(shù)。復(fù)合類型的模型參數(shù),如MAST結(jié)構(gòu)、數(shù)組、VHDL-AMS記錄和向量不允許作為FMU導(dǎo)出的設(shè)計參數(shù)。

4.為Saber原理圖創(chuàng)建層次符號

*一旦Saber設(shè)計的層次原理圖準(zhǔn)備好了,在將其導(dǎo)出到FMU之前,需要使用它的層次符號。
*要創(chuàng)建分層符號,右鍵單擊原理圖打開原理圖編輯器Schematic Editor彈出菜單,單擊Create下拉菜單,選擇分層符號Hierarchical Symbol。
*注意:層次符號的名稱必須與Saber設(shè)計相同。

圖片

*Figure 4 *Creating hierarchical symbol for schematic

** 5.編輯層次符號(可選 )**

*如果分層設(shè)計有任何設(shè)計參數(shù)或物理模擬端口,生成的符號需要手動更新,如下所示:在分層符號上添加設(shè)計參數(shù):
*打開符號編輯器并加載生成的符號。在符號屬性網(wǎng)格上,添加之前在原理圖中添加的所有設(shè)計參數(shù),并為它們分配適當(dāng)?shù)闹担鐖D5所示。這些屬性可以在父模擬器開始共同模擬時被更改。

圖片

Figure 5**Add design parameters on symbol

*更新分層符號上的物理端口方向和類型:對于離散和模擬控制端口,在創(chuàng)建Saber設(shè)計原理圖時,在端口連接器上定義輸入/輸出信息。這些類型的端口不需要進(jìn)一步處理。但是,模擬物理端口能量保守,如電氣或液壓端口有兩個組成部分,單個端口上的通過變量和跨變變量。而且,它們沒有方向信息。
*為了能夠?qū)⑽锢矶丝趯?dǎo)出到FMU,必須提供物理端口的方向和類型信息。
要提供方向和類型信息,請在符號編輯器中打開符號并選擇物理端口。
*單擊“ Properties”窗格上的“Add a behavior property”圖標(biāo),在Property Name字段中,輸入因果關(guān)系causality,在Initial Value中,提供其方向和類型信息,用空格分隔,如下所示:

*指定模擬端口方向:第一個值指定端口方向,可以是輸入,也可以是輸出。輸入意味著端口從父模擬器讀取值,而輸出意味著端口將數(shù)據(jù)發(fā)送到父模擬器。默認(rèn)情況下,方向被設(shè)置為輸出,這意味著所有物理端口都將數(shù)據(jù)發(fā)送到父模擬器。
模擬端口類型:第二個值表示物理端口的數(shù)據(jù)類型。要么跨過要么穿過。value, across表示端口與父模擬器交換它的across值,而through表示端口與父模擬器交換它的through值。您還可以使用在MAST或VHDL-AMS中定義的物理單元來指定端口類型。
*添加因果方式的方法如圖6所示:

圖片

Figure 6**Adding causality

*下表給出了幾個定義物理端口因果關(guān)系causality的例子:
1.jpg

*更新后的物理端口causality屬性如圖7所示:

圖片

*Figure 7 **Adding causality *on physical port on symbol

6.驗(yàn)證SaberRD設(shè)計

*當(dāng)Saber設(shè)計就緒時,在將其導(dǎo)出到FMU之前,驗(yàn)證它在SaberRD中正確工作。
這可以通過創(chuàng)建一個Saber測試來完成,如下所示:
在層次符號的輸入端口上應(yīng)用刺激,并將適當(dāng)?shù)呢?fù)載連接到層次符號的輸出端口。
運(yùn)行直流和瞬態(tài)分析。
確保在模擬過程中沒有錯誤。
如果模擬成功,請檢查模擬結(jié)果是否正確。
如果仿真結(jié)果正確,Saber設(shè)計就可以導(dǎo)出到FMU。

7.導(dǎo)出一個Saber設(shè)計到FMU

在SaberRD中選擇“File > Export”,選擇“Function Mockup Interface (FMI)....”系統(tǒng)彈出“Export Data To Functional Mockup Interface (FMU) Format”對話框,如圖8所示。

圖片

Figure 8**Saber FMU export

“Export Data To Functional Mockup Interface (FMU) Format”對話框:

Design Symbol: 指定要導(dǎo)出的Saber設(shè)計的層次符號名稱,包括其位置路徑。符號必須是等級符號。與符號相關(guān)聯(lián)的原理圖文件也應(yīng)該在同一目錄中。這個字段是強(qiáng)制性的,因?yàn)閷哟畏柺恰皩aber設(shè)計導(dǎo)出到FMU”所必需的。
Platform:指定EMU導(dǎo)出到的系統(tǒng)。支持的系統(tǒng)為win64,win32, linux64, linux32。可以任意選擇其中一個平臺,默認(rèn)是win64。
Additional Design Data Files:除了模型( .sin, .vhdl), symbols ( .ai_sym)和schematic (
.ai_sch),可在此指定所有其他文件,例如TLU(table Look-up)模型的外部數(shù)據(jù)文件(
.ai_dat),這些文件需要使用SaberHDL模擬器運(yùn)行模擬。如果不需要其他設(shè)計數(shù)據(jù)文件,該字段可以留空。
*stopTime: 指定FMI聯(lián)合仿真的停止時間。默認(rèn)值是1.0秒。
*stepSize:指定聯(lián)合仿真期間的通信步長。它必須小于stopTime。默認(rèn)值是0.001秒。
*Timeout:指定了在共同模擬中完成以下所有任務(wù)的最大時間限制,在此時間之后,如果沒有完成,父模擬器將失敗。

*在父模擬器和子模擬器之間建立連接。
*完成一個單獨(dú)的溝通步驟,包括以下任務(wù):
*父模擬器將輸入數(shù)據(jù)發(fā)送給子模擬器。
*子模擬器完成給定步長的模擬。
*子模擬器將輸出數(shù)據(jù)發(fā)送回父模擬器。
注意:

1默認(rèn)值為60秒。2.建議增加復(fù)雜Saber設(shè)計的超時值,以避免在協(xié)同仿真過程中出現(xiàn)不必要的故障,因?yàn)橥瓿梢粋€時間點(diǎn)的仿真可能需要更長的時間。
  • Simulator Settings:指定SaberHDL模擬器設(shè)置。該字段是可選的,默認(rèn)模擬器設(shè)置,如tniter(目標(biāo)迭代數(shù))和集成順序從SaberHDL模擬器。

在以下情況下,需要指定模擬器設(shè)置:

*特定模擬器設(shè)置以獲得更好的收斂性:在一些復(fù)雜的Saber設(shè)計中,可能需要一些特定的高級模擬器設(shè)置以獲得更好的收斂性。在將設(shè)計導(dǎo)出到FMU之前,需要設(shè)置這樣的模擬器設(shè)置。在協(xié)同仿真過程中使用這些設(shè)置來提高收斂性能。例如: dc; tr -tend 1 -tstep 1 us -tniter 10 -order 1
*Saber設(shè)計沒有直流解決方案:如果Saber設(shè)計沒有直流解決方案,并且需要-trip zero選項(xiàng)來啟動瞬態(tài)模擬,則可以在模擬器設(shè)置中指定。例如tr -tend 1-tstep 1 ms-trip zero。選項(xiàng) -trip zero允許導(dǎo)出的FMU在共同模擬期間跳過直流分析。
*保存SaberHDL結(jié)果:大多數(shù)FMI模擬器刪除FMU解壓縮的臨時目錄。默認(rèn)情況下,SaberHDL在這個臨時目錄下的resources子目錄中運(yùn)行模擬,在共同模擬完成后,SaberHDL結(jié)果將被刪除。如果您想保存SaberHDL模擬結(jié)果,可以使用選項(xiàng)-wdir保存SaberHDL結(jié)果。例如,如果你想將Saber結(jié)果保存在一個名為saber_results的目錄中,設(shè)置應(yīng)該是:dc;Tr-tend 1-tstep 1u-wdir saber_results。
*在FMU中創(chuàng)建默認(rèn)實(shí)驗(yàn):如果你想在modelDescription.xml中創(chuàng)建默認(rèn)實(shí)驗(yàn)定義,那么可以使用模擬器設(shè)置。例如,如果你想創(chuàng)建一個stopTime=5.0, stepSize=0.01的默認(rèn)實(shí)驗(yàn)定義,那么模擬器設(shè)置應(yīng)該是: dc; tr -tend 5.0 -tstep 0.001.。注意,通信步長是模擬器設(shè)置中初始時間步長的10倍。
*Communication Port:指定在共同模擬期間父模擬器和子模擬器之間用于通信的TCP/IP端口。默認(rèn)值是0,當(dāng)使用它時,導(dǎo)出的FMU自動找到下一個可用端口。但是,可以指定一個特定的端口來建立通信。

02

限制

以下是FMI 2.0 Co-Simulation接口下FMU導(dǎo)出的限制:

*導(dǎo)出的Saber FMU僅支持win64、win32、linux64和linux32平臺。
*FMU中只支持將標(biāo)量數(shù)字、MAST中的字符串、real、integer和VHDL-AMS中的字符串類型的參數(shù)導(dǎo)出為參數(shù)。
*只有一些預(yù)定義的離散端口,如MAST中的state nu, state logic_4, state fmi_boolean和VHDL-AMS中的signal std_logic支持導(dǎo)出到FMU。
*只有一些連續(xù)的因果端口,如MAST中的輸入,ref nu, output, var nu和VHDL-AMS中的quantity in/out real支持導(dǎo)出到FMU。
*僅支持以下預(yù)定義物理端口導(dǎo)出到FMU。
*頭文件中定義的所有物理引腳.sin在MAST語言中: electrical, magnetic,thermal_k,thermal_c,rotational_vel,rotational_ang,translational_pos,translational_vel,light,hyd_mks,pneumatic.
*VHDL-AMS中定義的性質(zhì): electrical, magnetic, rotational, rotational_velocity, translational, translational_v, fluidic, thermal, thermal_c, radiant.
*物理端口默認(rèn)只導(dǎo)出一個組件到FMU。物理端口有兩個組件,跨變量和通過變量。但是,默認(rèn)情況下,只有一個組件被導(dǎo)出到FMU。這是通過在符號端口上添加因果關(guān)系行為來實(shí)現(xiàn)的,例如,交叉輸入或通過輸出。如果您希望將兩個組件都導(dǎo)出到FMU,在導(dǎo)出FMU之前,請使用ai_conversion庫中的域轉(zhuǎn)換模型將跨變量和通過變量轉(zhuǎn)換為Saber設(shè)計中的控制變量端口。這將跨組件和通過組件導(dǎo)出到FMU。
*沒有提供源代碼。
*導(dǎo)出的FMU不提供輸出變量的導(dǎo)數(shù)。
*在一個設(shè)計中只能實(shí)例化一個Saber FMU。
*導(dǎo)出的FMU不能序列化FMU狀態(tài)。
*導(dǎo)出的FMU不能使用內(nèi)存管理功能。

03

Saber FMU實(shí)例

Saber FMU實(shí)例概述

圖9顯示了三相整流器的Saber設(shè)計示例。

設(shè)計可以在SaberRD安裝目錄examples/OtherExamples/FMI2.0/export_cs/ precfier_3p中找到。

本設(shè)計有兩個設(shè)計參數(shù):

*von:六個開關(guān)器件的導(dǎo)通壓降。默認(rèn)值是0.7V。
load:輸出級的電阻性負(fù)載。默認(rèn)為0.5歐姆。

本設(shè)計有三個電壓輸入接口:

*va,vb,vc:這三個輸入都是物理電結(jié)點(diǎn),沒有方向。我們希望從父模擬器獲得這些端口的跨接電壓輸入。因此,在這三個符號端口上需要一個屬性,與輸入值之間的因果關(guān)系。

本設(shè)計有四個輸出端口:

*ia,ib,ic:這三個節(jié)點(diǎn)將相電流發(fā)送回父模擬器。它們是連續(xù)的模擬輸出,具有輸出的因果關(guān)系,不需要在這些符號端口上添加特定的因果關(guān)系
*v_dc:這個節(jié)點(diǎn)是整流器的輸出電壓,它已經(jīng)從兩個差分電壓轉(zhuǎn)換成一個控制信號。它有輸出的方向,所以不需要為它定義因果關(guān)系

圖片

Figure9**Three-Phase Rectifier Example

輸出Saber 示例設(shè)計到FMU

要將Saber示例設(shè)計導(dǎo)出到FMU,請執(zhí)行以下步驟:

1.將rectifier_3p示例從安裝文件夾復(fù)制到本地目錄。
2.調(diào)用SaberRD并打開這個設(shè)計。

3.導(dǎo)出rectifier_3p_saberhdl.fmu。

*選擇File->Export,選擇Functional Mockup Interface (FMI)....系統(tǒng)彈出“Export Data To Functional Mockup Interface (FMU) Format”對話框。
*選擇rectifier_3p.ai_sym為Design Symbol。
*Simulation Settings設(shè)置為:dc;tr -tend 10-tstep 1u -wdir saber。
*單擊Export,rectifier_3p saberhdl.fmu在同一目錄下生成

圖片

Figure 10**Export Data To Functional Mockup Interface (FMU) Format

仿真導(dǎo)出的Saber FMU

*任何FMI模擬器都可以用來測試導(dǎo)出的FMU,rectifier_3p. fmu。
*在FMI標(biāo)準(zhǔn)頁面上有許多可用的工具:https://fmi-standard.org/download
*在這個例子中,使用了一個免費(fèi)的模擬器fmuChecker。
*要運(yùn)行這個示例,請執(zhí)行以下步驟:

1.將環(huán)境變量SABER_FMU_SOLVER設(shè)置為Saber的安裝路徑。例如,C:SynopsysSaberRD64P-2019.06.
2.運(yùn)行64位版本的fmuChecker: fmuCheck.win64.exe -e log.txt -i v_3p.csv -o result.csv -s 2 -h 1e-3 -n 0 rectifier_3p_saberh.fmu

它運(yùn)行瞬態(tài)模擬2秒,通信步長為1e-3。輸出信息保存在log.txt文件中,仿真結(jié)果保存在result.csv文件中。

3.在任何兼容的波形查看器(如Scope)中打開result.csv文件。

*結(jié)果如圖11所示。

圖片

*Figure 11 *Three-Phase Rectifier Results

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 連接器
    +關(guān)注

    關(guān)注

    98

    文章

    14476

    瀏覽量

    136424
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1017

    瀏覽量

    83720
  • VHDL語言
    +關(guān)注

    關(guān)注

    1

    文章

    113

    瀏覽量

    18001
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    874

    瀏覽量

    43207
  • AMS
    AMS
    +關(guān)注

    關(guān)注

    10

    文章

    212

    瀏覽量

    87018
收藏 人收藏

    評論

    相關(guān)推薦

    如何在Protel軟件中導(dǎo)出元件清單

    如何在Protel軟件中導(dǎo)出元件清單 用Protel軟件打開PCB文件,選擇 Edit-----Export to spread。彈出圖中選擇如下內(nèi)容: 之后導(dǎo)出清單。用Exc
    發(fā)表于 03-21 18:26 ?1.1w次閱讀
    如何在Protel軟件<b class='flag-5'>中導(dǎo)出</b>元件清單

    SaberRD導(dǎo)入FMU步驟概述

    簡介功能模擬單元(Functional Mock-up Unit, FMU)是一種模擬模型,它描述了由微分方程、代數(shù)方程和離散時間方程構(gòu)成的動態(tài)系統(tǒng)。
    的頭像 發(fā)表于 12-06 16:29 ?1438次閱讀
    <b class='flag-5'>SaberRD</b>導(dǎo)入<b class='flag-5'>FMU</b>的<b class='flag-5'>步驟</b>概述

    matlab中導(dǎo)出數(shù)據(jù)為txt文件~~ 怎么導(dǎo)出二維數(shù)組中的一列

    matlab中導(dǎo)出數(shù)據(jù)為txt文件~~ 怎么導(dǎo)出二維數(shù)組中的一列~~ 如數(shù)值A(chǔ)(1000,10000),我只想取出A(100,:)放入txt文件 ,不知道怎么操作???
    發(fā)表于 04-12 11:23

    如何在Protel軟件中導(dǎo)出元件清單

    如何在Protel軟件中導(dǎo)出元件清單
    發(fā)表于 08-20 19:21

    關(guān)于PCB EDITOR 中導(dǎo)入DXF文件的問題

    關(guān)于PCB EDITOR 中導(dǎo)入DXF文件的問題我使用的版本是Cadence 16.3,電路板布線完成,未鋪地,還需要添加漢字,以下是我的操作步驟:1:從PCB EDITOR中導(dǎo)出DXF文件,我只
    發(fā)表于 04-28 07:14

    怎樣從PCB中導(dǎo)出原理圖和元件庫

    怎樣從PCB中導(dǎo)出原理圖和元件庫?
    發(fā)表于 08-30 10:54

    怎么從一個項(xiàng)目的文件中導(dǎo)出原理圖庫和pcb庫

    怎么從一個項(xiàng)目的文件中導(dǎo)出原理圖庫和pcb庫新手?。。。。?我要用這么項(xiàng)目了封裝 求解怎么辦 不想畫封裝。換句話說:我想重復(fù)利用項(xiàng)目的封裝,但是不知道怎么從一個項(xiàng)目的文件中導(dǎo)出原理圖庫和pcb庫,你有什么好的建議嗎?
    發(fā)表于 12-02 22:10

    如何使用VSCODE編輯Keil中導(dǎo)出的代碼

    VSCODE提供了豐富實(shí)用的插件,可以大幅提升編寫代碼的體驗(yàn)和效率。下面簡單說明如何使用VSCODE編輯Keil中導(dǎo)出的代碼(僅編輯),消除惱人的報錯,將上述Keil目錄結(jié)構(gòu)拖動到VSCODE打開
    發(fā)表于 08-23 08:41

    如何從keil中導(dǎo)出內(nèi)存數(shù)據(jù)到matlab中?

    如何從keil中導(dǎo)出內(nèi)存數(shù)據(jù)到matlab中?
    發(fā)表于 11-19 08:07

    如何從PADS-LAYOUT中導(dǎo)出BOM清單方法

    如何從PADS-LAYOUT中導(dǎo)出BOM清單方法最近很多朋友問我關(guān)于如何如何從PADS-LAYOUT中出BOM清單。今把方法寫下來好讓有需要的朋友做個參考。利用PADS-LAYOUT的Basic script向?qū)Чδ?
    發(fā)表于 09-19 08:18 ?0次下載

    如何從Protel99文件中導(dǎo)出坐標(biāo)數(shù)據(jù)

    從 Protel99 文件中導(dǎo)出坐標(biāo)數(shù)據(jù)的操作流程:用Edit菜單中的Origin項(xiàng)Set就可以直接設(shè)定原點(diǎn),
    發(fā)表于 08-04 10:27 ?0次下載
    如何從Protel99文件<b class='flag-5'>中導(dǎo)出</b>坐標(biāo)數(shù)據(jù)

    LabVIEW中導(dǎo)出波形圖或圖表至文件

    LabVIEW中導(dǎo)出波形圖或圖表至文件LabVIEW中導(dǎo)出波形圖或圖表至文件LabVIEW中導(dǎo)出波形圖或圖表至文件
    發(fā)表于 02-18 11:44 ?209次下載

    基于ALLEGRO導(dǎo)出PROE文件步驟

    本文檔內(nèi)容接受啊了基于ALLEGRO導(dǎo)出PROE文件步驟,供參考。
    發(fā)表于 02-08 11:43 ?18次下載

    OrCAD將原理圖中導(dǎo)出并保存至器件庫的詳細(xì)步驟

    近期研究FPGA System Planner的過程中,發(fā)現(xiàn)在調(diào)用原理圖符號時需要指定一個原理圖器件庫,而本人設(shè)計中使用的FPGA符號與之前創(chuàng)建的不太一樣,為了精準(zhǔn)無誤地進(jìn)行設(shè)計,需要將FPGA從原理圖中導(dǎo)出并保存至器件庫。本文將這個方法分享給讀者。
    發(fā)表于 06-30 09:17 ?3.2w次閱讀
    OrCAD將原理圖<b class='flag-5'>中導(dǎo)出</b>并保存至器件庫的詳細(xì)<b class='flag-5'>步驟</b>

    如何通過簡單的步驟將視頻從Final Cut Pro中導(dǎo)出到MP4格式

    如何通過簡單的步驟將視頻從Final Cut Pro中導(dǎo)出到MP4格式 ? Final Cut Pro是否支持MP4?是的!Final Cut Pro X支持MP4格式。完成所有編輯和特殊效果后
    的頭像 發(fā)表于 12-08 15:17 ?8w次閱讀
    RM新时代网站-首页