一種計(jì)算機(jī)仿真模擬計(jì)算方法
【專(zhuān)利摘要】本發(fā)明提供了一種計(jì)算機(jī)仿真模擬計(jì)算方法。本發(fā)明方案將計(jì)算機(jī)仿真模塊劃分為主程序計(jì)算、狀態(tài)計(jì)算和渲染計(jì)算三個(gè)離散的計(jì)算模塊;采用循環(huán)迭代計(jì)算方式驅(qū)動(dòng)這三個(gè)模塊,來(lái)完成計(jì)算機(jī)仿真模擬計(jì)算的整個(gè)過(guò)程。以狀態(tài)變化來(lái)驅(qū)動(dòng)數(shù)據(jù)更新計(jì)算,而不需要服務(wù)計(jì)算主程序不停的輪詢(xún)每一個(gè)實(shí)體對(duì)象。從而解決了基于實(shí)體對(duì)象的模擬計(jì)算方法會(huì)造成資源的極大浪費(fèi)。
【專(zhuān)利說(shuō)明】一種計(jì)算機(jī)仿真模擬計(jì)算方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種計(jì)算機(jī)仿真模擬計(jì)算方法,特別是涉及一種適用于計(jì)算機(jī)仿真技術(shù)中的仿真模擬計(jì)算方法。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)仿真的不斷發(fā)展,對(duì)于計(jì)算機(jī)仿真模擬計(jì)算的要求越來(lái)越高。計(jì)算機(jī)仿真需要一個(gè)結(jié)構(gòu)清晰,功能完善,方便修改,安全性高的模擬計(jì)算方法來(lái)保證對(duì)用戶(hù)的響應(yīng)速度。而在現(xiàn)階段的計(jì)算機(jī)仿真技術(shù)中,并沒(méi)有一個(gè)公認(rèn)的最佳方法來(lái)進(jìn)行模擬計(jì)算。并且現(xiàn)有模擬計(jì)算技術(shù)大多采用基于實(shí)體的計(jì)算方法。
[0003]在基于實(shí)體的計(jì)算方法中,服務(wù)計(jì)算主程序啟動(dòng)后,需要不停的輪詢(xún)每一個(gè)實(shí)體對(duì)象,不論這些實(shí)體對(duì)象的狀態(tài)是否發(fā)生變化。在一個(gè)大型的分布式仿真中,這樣的實(shí)體對(duì)象成千上萬(wàn),每個(gè)實(shí)體對(duì)象對(duì)應(yīng)的狀態(tài)也相當(dāng)龐大的,這種情況下,基于實(shí)體對(duì)象的模擬計(jì)算方法會(huì)造成資源的極大浪費(fèi)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問(wèn)題是提供一種結(jié)構(gòu)清晰,功能完善,方便修改,安全性高,避免資源浪費(fèi)的計(jì)算機(jī)仿真模擬計(jì)算方法。
[0005]本發(fā)明采用的技術(shù)方案如下:一種計(jì)算機(jī)仿真模擬計(jì)算方法,具體方法為:將計(jì)算機(jī)仿真模塊劃分為主程序計(jì)算、狀態(tài)計(jì)算和渲染計(jì)算三個(gè)離散的計(jì)算模塊;采用循環(huán)迭代計(jì)算方式驅(qū)動(dòng)這三個(gè)模塊,來(lái)完成計(jì)算機(jī)仿真模擬計(jì)算的整個(gè)過(guò)程。
[0006]作為優(yōu)選,所述渲染計(jì)算由顯示計(jì)算模塊、刷新計(jì)算模塊和聲音計(jì)算模塊組成;所述狀態(tài)計(jì)算劃分為狀態(tài)進(jìn)入模塊、主菜單狀態(tài)模塊、運(yùn)行狀態(tài)模塊和退出狀態(tài)模塊。
[0007]作為優(yōu)選,完成計(jì)算機(jī)仿真模擬計(jì)算的整個(gè)過(guò)程的具體方法步驟為:步驟一、啟動(dòng)主程序計(jì)算模塊;步驟二、初始化主程序計(jì)算模塊;步驟三、渲染計(jì)算模塊依次初始化顯示計(jì)算模塊、刷新計(jì)算模塊和聲音計(jì)算模塊;步驟四、狀態(tài)計(jì)算模塊初始化狀態(tài)進(jìn)入模塊;步驟五、主程序計(jì)算模塊進(jìn)行分步迭替計(jì)算。
[0008]作為優(yōu)選,所述步驟一的具體方法為:主程序計(jì)算模塊依次啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊。
[0009]作為優(yōu)選,若主程序計(jì)算模塊與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊處于同一臺(tái)多處理器的服務(wù)器上,主程序計(jì)算模塊可以通過(guò)共享數(shù)據(jù)或進(jìn)程間通信機(jī)制來(lái)與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊通信;若主程序計(jì)算模塊與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊處于網(wǎng)絡(luò)相連的不同服務(wù)器上,主程序計(jì)算模塊可以通過(guò)消息傳遞機(jī)制或網(wǎng)絡(luò)通信機(jī)制來(lái)與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊通信。
[0010]作為優(yōu)選,所述步驟二的具體方法為:主程序計(jì)算模塊依次初始化狀態(tài)計(jì)算模塊和渲染計(jì)算模塊。
[0011]作為優(yōu)選,主程序計(jì)算模塊初始化狀態(tài)計(jì)算模塊和渲染計(jì)算模塊時(shí)將自己的模塊標(biāo)識(shí)傳遞給這兩個(gè)模塊。
[0012]作為優(yōu)選,所述步驟五中進(jìn)行分步迭替計(jì)算的具體方法步驟為:a、主程序計(jì)算模塊驅(qū)動(dòng)狀態(tài)計(jì)算模塊進(jìn)行狀態(tài)計(jì)算山、狀態(tài)計(jì)算模塊將得到的新?tīng)顟B(tài)投遞到渲染計(jì)算模塊,同時(shí)狀態(tài)計(jì)算模塊用新的狀態(tài)來(lái)刷新本模塊的狀態(tài)值;c、狀態(tài)計(jì)算模塊通知主程序計(jì)算模塊分步迭替計(jì)算完成;d、主程序計(jì)算模塊驅(qū)動(dòng)渲染計(jì)算模塊進(jìn)行刷新計(jì)算;e、渲染計(jì)算模塊刷新計(jì)算完成后,通知主程序計(jì)算模塊渲染計(jì)算完成;f、主程序計(jì)算模塊根據(jù)渲染計(jì)算模塊發(fā)過(guò)來(lái)的通知消息判斷單次迭替模擬計(jì)算是否完成,是,則直進(jìn)入到下一個(gè)迭代模擬計(jì)算,否則進(jìn)入下一步;g、判斷是否接到退出迭代模擬計(jì)算請(qǐng)求,是則退出迭代模擬計(jì)算,否則進(jìn)入到下一個(gè)迭代模擬計(jì)算。
[0013]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明方案以狀態(tài)變化來(lái)驅(qū)動(dòng)數(shù)據(jù)更新計(jì)算,而不需要服務(wù)計(jì)算主程序不停的輪詢(xún)每一個(gè)實(shí)體對(duì)象。從而解決了基于實(shí)體對(duì)象的模擬計(jì)算方法會(huì)造成資源的極大浪費(fèi)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0014]圖1為本發(fā)明其中一實(shí)施例的原理示意圖。
【具體實(shí)施方式】
[0015]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0016]本說(shuō)明書(shū)(包括任何附加權(quán)利要求、摘要和附圖)中公開(kāi)的任一特征,除非特別敘述,均可被其他等效或者具有類(lèi)似目的的替代特征加以替換。即,除非特別敘述,每個(gè)特征只是一系列等效或類(lèi)似特征中的一個(gè)例子而已。
[0017]如圖1所示,一種計(jì)算機(jī)仿真模擬計(jì)算方法,具體方法為:將計(jì)算機(jī)仿真模塊劃分為主程序計(jì)算、狀態(tài)計(jì)算和渲染計(jì)算三個(gè)離散的計(jì)算模塊;采用循環(huán)迭代計(jì)算方式驅(qū)動(dòng)這三個(gè)模塊,來(lái)完成計(jì)算機(jī)仿真模擬計(jì)算的整個(gè)過(guò)程。
[0018]將計(jì)算機(jī)仿真模擬計(jì)算的整個(gè)過(guò)程劃分為三個(gè)離散的計(jì)算模塊,每個(gè)計(jì)算模塊既可以運(yùn)行在同一臺(tái)多處理器的服務(wù)器上,也可以運(yùn)行在網(wǎng)絡(luò)相連的不同服務(wù)器上;它可以通過(guò)消息傳遞的方式進(jìn)行通信,也可以通過(guò)共享數(shù)據(jù)的方式通信;它同時(shí)支持時(shí)間上的并行和空間上的并行。
[0019]所述渲染計(jì)算由顯示計(jì)算模塊、刷新計(jì)算模塊和聲音計(jì)算模塊組成;所述狀態(tài)計(jì)算劃分為狀態(tài)進(jìn)入模塊、主菜單狀態(tài)模塊、運(yùn)行狀態(tài)模塊和退出狀態(tài)模塊。
[0020]完成計(jì)算機(jī)仿真模擬計(jì)算的整個(gè)過(guò)程的具體方法步驟為:步驟一、啟動(dòng)主程序計(jì)算模塊;步驟二、初始化主程序計(jì)算模塊;步驟三、渲染計(jì)算模塊依次初始化顯示計(jì)算模塊、刷新計(jì)算模塊和聲音計(jì)算模塊;步驟四、狀態(tài)計(jì)算模塊初始化狀態(tài)進(jìn)入模塊;步驟五、主程序計(jì)算模塊進(jìn)行分步迭替計(jì)算。
[0021]所述步驟一的具體方法為:主程序計(jì)算模塊依次啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊。
[0022]若主程序計(jì)算模塊與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊處于同一臺(tái)多處理器的服務(wù)器上,主程序計(jì)算模塊可以通過(guò)共享數(shù)據(jù)或進(jìn)程間通信機(jī)制來(lái)與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊通信;若主程序計(jì)算模塊與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊處于網(wǎng)絡(luò)相連的不同服務(wù)器上,主程序計(jì)算模塊可以通過(guò)消息傳遞機(jī)制或網(wǎng)絡(luò)通信機(jī)制來(lái)與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊通信。
[0023]所述步驟二的具體方法為:主程序計(jì)算模塊依次初始化狀態(tài)計(jì)算模塊和渲染計(jì)算模塊。
[0024]主程序計(jì)算模塊初始化狀態(tài)計(jì)算模塊和渲染計(jì)算模塊時(shí)將自己的模塊標(biāo)識(shí)傳遞給這兩個(gè)模塊。
[0025]所述步驟五中進(jìn)行分步迭替計(jì)算的具體方法步驟為:a、主程序計(jì)算模塊驅(qū)動(dòng)狀態(tài)計(jì)算模塊進(jìn)行狀態(tài)計(jì)算山、狀態(tài)計(jì)算模塊將得到的新?tīng)顟B(tài)投遞到渲染計(jì)算模塊,同時(shí)狀態(tài)計(jì)算模塊用新的狀態(tài)來(lái)刷新本模塊的狀態(tài)值;C、狀態(tài)計(jì)算模塊通知主程序計(jì)算模塊分步迭替計(jì)算完成;d、主程序計(jì)算模塊驅(qū)動(dòng)渲染計(jì)算模塊進(jìn)行刷新計(jì)算;e、渲染計(jì)算模塊刷新計(jì)算完成后,通知主程序計(jì)算模塊渲染計(jì)算完成;f、主程序計(jì)算模塊根據(jù)渲染計(jì)算模塊發(fā)過(guò)來(lái)的通知消息判斷單次迭替模擬計(jì)算是否完成,是,則直進(jìn)入到下一個(gè)迭代模擬計(jì)算,否則進(jìn)入下一步;g、判斷是否接到退出迭代模擬計(jì)算請(qǐng)求,是則退出迭代模擬計(jì)算,否則進(jìn)入到下一個(gè)迭代模擬計(jì)算。
[0026]本發(fā)明方案以狀態(tài)變化來(lái)驅(qū)動(dòng)數(shù)據(jù)更新計(jì)算,而不需要服務(wù)計(jì)算主程序不停的輪詢(xún)每一個(gè)實(shí)體對(duì)象。從而解決了基于實(shí)體對(duì)象的模擬計(jì)算方法會(huì)造成資源的極大浪費(fèi)。
【權(quán)利要求】
1.一種計(jì)算機(jī)仿真模擬計(jì)算方法,具體方法為:將計(jì)算機(jī)仿真模塊劃分為主程序計(jì)算、狀態(tài)計(jì)算和渲染計(jì)算三個(gè)離散的計(jì)算模塊;采用循環(huán)迭代計(jì)算方式驅(qū)動(dòng)這三個(gè)模塊,來(lái)完成計(jì)算機(jī)仿真模擬計(jì)算的整個(gè)過(guò)程。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)仿真模擬計(jì)算方法,所述渲染計(jì)算由顯示計(jì)算模塊、刷新計(jì)算模塊和聲音計(jì)算模塊組成;所述狀態(tài)計(jì)算劃分為狀態(tài)進(jìn)入模塊、主菜單狀態(tài)模塊、運(yùn)行狀態(tài)模塊和退出狀態(tài)模塊。
3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)仿真模擬計(jì)算方法,完成計(jì)算機(jī)仿真模擬計(jì)算的整個(gè)過(guò)程的具體方法步驟為:步驟一、啟動(dòng)主程序計(jì)算模塊;步驟二、初始化主程序計(jì)算模塊;步驟三、渲染計(jì)算模塊依次初始化顯示計(jì)算模塊、刷新計(jì)算模塊和聲音計(jì)算模塊;步驟四、狀態(tài)計(jì)算模塊初始化狀態(tài)進(jìn)入模塊;步驟五、主程序計(jì)算模塊進(jìn)行分步迭替計(jì)算。
4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)仿真模擬計(jì)算方法,所述步驟一的具體方法為:主程序計(jì)算模塊依次啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊。
5.根據(jù)權(quán)利要求4所述的計(jì)算機(jī)仿真模擬計(jì)算方法,若主程序計(jì)算模塊與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊處于同一臺(tái)多處理器的服務(wù)器上,主程序計(jì)算模塊可以通過(guò)共享數(shù)據(jù)或進(jìn)程間通信機(jī)制來(lái)與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊通信;若主程序計(jì)算模塊與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊處于網(wǎng)絡(luò)相連的不同服務(wù)器上,主程序計(jì)算模塊可以通過(guò)消息傳遞機(jī)制或網(wǎng)絡(luò)通信機(jī)制來(lái)與啟動(dòng)狀態(tài)計(jì)算模塊和渲染計(jì)算模塊通信。
6.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)仿真模擬計(jì)算方法,所述步驟二的具體方法為:主程序計(jì)算模塊依次初始化狀態(tài)計(jì)算模塊和渲染計(jì)算模塊。
7.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)仿真模擬計(jì)算方法,主程序計(jì)算模塊初始化狀態(tài)計(jì)算模塊和渲染計(jì)算模塊時(shí)將自己的模塊標(biāo)識(shí)傳遞給這兩個(gè)模塊。
8.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)仿真模擬計(jì)算方法,所述步驟五中進(jìn)行分步迭替計(jì)算的具體方法步驟為:a、主程序計(jì)算模塊驅(qū)動(dòng)狀態(tài)計(jì)算模塊進(jìn)行狀態(tài)計(jì)算;b、狀態(tài)計(jì)算模塊將得到的新?tīng)顟B(tài)投遞到渲染計(jì)算模塊,同時(shí)狀態(tài)計(jì)算模塊用新的狀態(tài)來(lái)刷新本模塊的狀態(tài)值、狀態(tài)計(jì)算模塊通知主程序計(jì)算模塊分步迭替計(jì)算完成;d、主程序計(jì)算模塊驅(qū)動(dòng)渲染計(jì)算模塊進(jìn)行刷新計(jì)算;e、渲染計(jì)算模塊刷新計(jì)算完成后,通知主程序計(jì)算模塊渲染計(jì)算完成;f、主程序計(jì)算模塊根據(jù)渲染計(jì)算模塊發(fā)過(guò)來(lái)的通知消息判斷單次迭替模擬計(jì)算是否完成,是,則直進(jìn)入到下一個(gè)迭代模擬計(jì)算,否則進(jìn)入下一步;g、判斷是否接到退出迭代模擬計(jì)算請(qǐng)求,是則退出迭代模擬計(jì)算,否則進(jìn)入到下一個(gè)迭代模擬計(jì)算。
【文檔編號(hào)】G06F9/455GK103699426SQ201310686090
【公開(kāi)日】2014年4月2日 申請(qǐng)日期:2013年12月11日 優(yōu)先權(quán)日:2013年12月11日
【發(fā)明者】吳小偉, 莫世鋒, 陳恩博, 羅浩, 文靜 申請(qǐng)人:四川九洲電器集團(tuán)有限責(zé)任公司