專利名稱:一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種窗數(shù)據(jù)的控制方法,尤其適用于電力系統(tǒng)電氣量采樣值數(shù)據(jù)的模擬/仿真控制。
背景技術(shù):
智能變電站和數(shù)字化變電站的應(yīng)用初期,對于數(shù)字化繼電保護、測控、計量及安全裝置類產(chǎn)品,人們更多的是關(guān)注電子式互感器和合并單元正常提供電氣量采樣值的前提下其保護邏輯、電能計量等,而對電子式互感器和合并單元工作異常帶來的報文丟幀、品質(zhì)位無效、同步位失步等異常情況下數(shù)字化產(chǎn)品的容錯、糾錯能力等重視不夠。隨著智能變電站和數(shù)字化變電站的應(yīng)用,電子式互感器、合并單元的異常情況導(dǎo)致智能設(shè)備誤動及拒動事故、計量誤差大時有發(fā)生及報道。為檢測智能設(shè)備的異常處理及容錯能力,要求能產(chǎn)生此類基于數(shù)據(jù)窗應(yīng)用的采樣值數(shù)據(jù),并能高效控制模擬報文丟幀、品質(zhì)位無效、同步位失步等異常情況。國外智能變電站建設(shè)目前處于試驗階段,相關(guān)檢測類設(shè)備還沒有面世。目前國內(nèi)檢測類設(shè)備已有相關(guān)功能,但功能單一,并且不具備用戶想要的更加貼近實際情況的隨機控制??萍计诳蛯@墨I中未發(fā)現(xiàn)相關(guān)實現(xiàn)技術(shù)報道。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)目的是克服現(xiàn)有技術(shù)中的問題,提供一種滿足不同需求特別是能實現(xiàn)更加貼近實際運行情況的隨機仿真、能盡可能小的消耗運算時間和存儲空間資源、可廣泛應(yīng)用于電力系統(tǒng)各類電氣量仿真及檢測設(shè)備的開發(fā)的組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法。為實現(xiàn)本發(fā)明的目的,本發(fā)明采用的技術(shù)方案為一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,包括如下步驟I)針對不同模擬/仿真需求,通過單選控制字方式提供連續(xù)、等間距、隨機三類控制方式,隨機控制方式分為全范圍等概率隨機控制方式和指定區(qū)間的不等概率隨機控制方式;2)設(shè)立運行、計算雙緩存區(qū),每運行累計一個窗數(shù)據(jù)長度N,則運行計數(shù)清零,同時切換運行、計算狀態(tài);3) a借助隨機函數(shù)srandO和rand O,通過特定算法實現(xiàn)不同窗數(shù)據(jù)長度N內(nèi)的等概率隨機數(shù);或b設(shè)立兩個一維數(shù)組aControl [M]和alndex [N],N表示窗數(shù)據(jù)長度,K表示隨機控制總次數(shù),當(dāng)K不大于N/2時,M=K,否則M=N-K,數(shù)組alndex [N]的各個元素初值分別為(0,1,2……N-1);通過調(diào)用遞減隨機數(shù)長度的等概率隨機函數(shù)產(chǎn)生不重復(fù)隨機數(shù)i,并經(jīng)過索引準確對aControl [O]元素值賦值;循環(huán)執(zhí)行M次得到aControl [M]中各個元素值;對數(shù)組aControl [M]各個元素值進行排序,通過移位指針及數(shù)據(jù)比較,從而確定窗數(shù)據(jù);或C從指定區(qū)間通過等概率隨機控制在區(qū)間內(nèi)每抽取一個隨機數(shù),就從區(qū)外隨機抽取一個數(shù)據(jù)來填充,實現(xiàn)不等概率分布的隨機控制。前述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟I)的連續(xù)控制方式具體為設(shè)定連續(xù)控制時間/次數(shù)M和窗長度N,起始時刻以命令下達時刻計時/數(shù),從區(qū)間O, N-M]中等概率產(chǎn)生起始點i或者從控制命令下達時刻“O”,并開始計時/次,累計控制時間/次數(shù)M后則本窗數(shù)據(jù)控制結(jié)束。前述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟I)的等間距控制方式具體為設(shè)定等間距時間/次數(shù)N,起始時刻以命令下達時刻計時/數(shù),從區(qū)間0,N-ι中等概率產(chǎn)生控制點i或者以控制命令下達時刻“O”為控制點,每執(zhí)行等間距時間/次數(shù)N,當(dāng)前點數(shù)據(jù)接受控制。如此循環(huán),直至控制結(jié)束。前述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟2)中設(shè)立窗數(shù)據(jù)執(zhí)行次數(shù)計數(shù)器Tl和運行累計次數(shù)計數(shù)器T2,每運行一個窗數(shù)據(jù)長度N,則Tl清零。 前述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟3)的a步適用于全范圍等概率隨機控制方式,a步具體過程為借助C庫隨機函數(shù)srandO和rand(), srandO參數(shù)選用系統(tǒng)實時時間time或T2,盡量使每次產(chǎn)生的種子不重復(fù);rand()的上限是RAND_MAX,分為兩種情況考慮(I)如果N〈RAND_MAX,則找到RAND_MAX范圍內(nèi)能被N整除的最大值R,再調(diào)用rand O函數(shù)產(chǎn)生隨機數(shù),如果大于R,則舍棄重新產(chǎn)生,否則通過i=rand O %N得到等概率的隨機數(shù)i ;(2)如果N彡RAND_MAX,考慮分段產(chǎn)生隨機數(shù),分成[N/ (RNAD_MAX+1)]段,先等概率得到段再得到每段內(nèi)的某個元素,得到的段包括整數(shù)段和余數(shù)段。前述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟3)中的b步適用于全范圍等概率隨機控制方式,具體步驟為(I)設(shè)立兩個一維數(shù)組aControl [M]和alndex [N],N表示窗數(shù)據(jù)長度,K表示隨機抽取控制總次數(shù);當(dāng)K不大于N/2時,M=K,否則M=N-K;數(shù)組alndex [N]的各個元素初值分別為(0,1,2……N-1);(2)首先調(diào)用等概率隨機函數(shù)在(O到N-1)范圍內(nèi)產(chǎn)生等概率隨機數(shù)i,并將產(chǎn)生的隨機數(shù)i作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[i]賦給 aContril [O],最后把 alndex[N-1]的值復(fù)制到 alndex[i];(3)調(diào)用等概率隨機函數(shù)在(O到N-2)范圍內(nèi)產(chǎn)生等概率隨機數(shù)j,并將產(chǎn)生的隨機數(shù)j作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[j]賦給aContril[l],其中j可以等于i,最后把aIndex[N_2]的值復(fù)制到alndex [j]; 以此類推,直到取出M個元素為止。(4)經(jīng)過上述步驟后,對aControl [M]數(shù)組進行排序,并設(shè)立一個數(shù)據(jù)訪問指針Pt ;指針初始為aControl首地址,即pt=aControl ;如果運行次數(shù)η與*pt相等,η指相對本次窗數(shù)據(jù)起始時刻的延時t與單位時間內(nèi)額定運行次數(shù)的乘積,本次操作被隨機抽中,同時Pt指針后移一步;否則本次操作未被抽中,按正常操作執(zhí)行。前述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,步驟3)中的c步適用于指定區(qū)間的不等概率控制方式,具體步驟如下(I)設(shè)立數(shù)組aControl [Μ]及alndex [N], N表示窗數(shù)據(jù)長度,K表示隨機抽取控制總次數(shù);當(dāng)K不大于N/2時,M=K,否則M=N-K;數(shù)組aIndex[N]的各個元素初值分別為(O,1,2……N-1),指定區(qū)間為[t,t+M],te [O,N-M),區(qū)間外長度S=N-M;(2)調(diào)用等概率隨機函數(shù)產(chǎn)生[t,t+M]區(qū)間中的隨機數(shù)i,并將產(chǎn)生的隨機數(shù)i作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[i]賦給aContril
,并將區(qū)間外的數(shù)據(jù)進行隨機抽取得到j(luò),把alndex[j]的值復(fù)制到alndex [i],k 力口 I ;(3)判斷k是否等于M,如果是,則執(zhí)行結(jié)束,如果不是,S減1,判斷S是否為零,如果是,則按等概率隨機控制方法完成剩下的工作;如果不是,則重復(fù)(2)步驟繼續(xù)執(zhí)行;(4)最后對aControl [M]數(shù)組進行排序,并設(shè)立一個數(shù)據(jù)訪問指針Pt ;指針初始為aControl首地址,即pt=aControl ;如果運行次數(shù)η與*pt相等,η指相對本次窗數(shù)據(jù)起始時刻的延時t與單位時間內(nèi)額定運行次數(shù)的乘積,即本次操作被隨機抽中,Pt指針后移一步;否則本次操作未被抽中,按正常操作執(zhí)行。 本發(fā)明支持連續(xù)、等間距及隨機(等概率或分布式)三類控制方式,實現(xiàn)不同長度的窗數(shù)據(jù)等概率隨機控制;在可窮盡的窗數(shù)據(jù)長度N的情況下,無論N大于32767還是小于32767,32767能否被N整除,產(chǎn)生的隨機數(shù)均能實現(xiàn)等概率,還可實現(xiàn)指定區(qū)間的不等概率隨機控制;消耗盡可能少的運算時間和存儲資源,時間復(fù)雜度為O (m),存儲空間為O(n+m)。本發(fā)明可廣泛應(yīng)用于電力系統(tǒng)各類電氣量仿真及檢測設(shè)備的開發(fā)。
具體實施例方式下面對本發(fā)明實施例進行詳細描述本實施例在本發(fā)明技術(shù)方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。組態(tài)控制窗數(shù)據(jù),首先通過單選控制字方式提供連續(xù)、等間距、隨機三類控制方式。其中隨機控制又提供兩類可選項全范圍等概率和指定區(qū)間的不等概率。設(shè)立運行、計算雙緩存區(qū),設(shè)立兩個計數(shù)器Tl和T2,每運行累計一個窗數(shù)據(jù)長度N,則計數(shù)器Tl清零,同時切換運行、計算狀態(tài)。一,對于連續(xù)方式,提供連續(xù)控制時間/次數(shù)M和窗長度N,起始時刻以命令下達時刻計時/數(shù),從區(qū)間0,N-M]中等概率產(chǎn)生起始點i或者從控制命令下達時刻“0”,并開始計時/次,累計控制時間/次數(shù)M后本次控制操作結(jié)束;二,對于等間隔方式,提供等間隔時間(次數(shù))N設(shè)定,起始時刻以命令下達時刻計時/數(shù),從區(qū)間0,N-1中等概率產(chǎn)生控制點i或者以控制命令下達時刻“O”為控制點,每執(zhí)行等間距時間/次數(shù)N,當(dāng)前點數(shù)據(jù)接受控制。如此循環(huán),直止本次控制操作結(jié)束;連續(xù)方式、等間隔方式與隨機控制的區(qū)別是占用的存儲空間只需要一個數(shù)據(jù)長度,即存儲起始點號。而隨機控制占用的存儲空間是M個數(shù)據(jù)長度(M為抽取的樣本數(shù))。窗數(shù)據(jù)長度既可指運行時間,又可指運行次數(shù)(運行時間乘以單位時間內(nèi)額定運行次數(shù)),運行狀態(tài)的數(shù)據(jù)由計算狀態(tài)的數(shù)據(jù)切換而來,不允許修改。計算狀態(tài)是根據(jù)當(dāng)前配置(是否丟點、同步、異常)產(chǎn)生運行狀態(tài)用數(shù)據(jù)。兩者采取乒乓機制,運行過程中相互切換。三,對于全范圍等概率隨機控制方式,思路主要分為如下兩部分I,等概率隨機數(shù)實現(xiàn)方法
借助C庫隨機函數(shù)srandO和rand O ,其中srand ()參數(shù)可選用系統(tǒng)實時時刻或者運行累計次數(shù)T2,從而保證每次產(chǎn)生的種子盡可能不重復(fù)。因為randO的上限是RAND_MAX,而一般情況下,RAND_MAX并不是窗數(shù)據(jù)長度N的整數(shù)倍,那么如果RAND_MAX%N=t,則O t之間的數(shù)值的概率就要大一些,而(t+Ι) (N-I)之間的數(shù)值的概率就要小一些。為實現(xiàn)全范圍等概率隨機控制,分如下兩種情況考慮a)如果N〈RAND_MAX,則先找到RAND_MAX范圍內(nèi)能被N整除的最大值R,其次調(diào)用rand O函數(shù)產(chǎn)生隨機數(shù),如果大于R,則舍棄重新產(chǎn)生,否則通過i=rand O %N得到等概率的隨機數(shù)i;R=RAND_MAX- (RAND_MAX+1) %N; // 去除尾數(shù)t=rand ();while (t>R) t=rand ();·i=t%N; //符合要求的隨機數(shù)b)如果N ^ RAND_MAX,考慮分段產(chǎn)生隨機數(shù),分成[N/ (RNAD_MAX+1)]段,先等概率得到段再得到每段內(nèi)的某個元素,分段實現(xiàn)時類似地也有一個尾數(shù)問題,即不是每次都剛好分到整數(shù)段,一定或多或少有一個余數(shù)段。選到余數(shù)段的數(shù)據(jù)拿出來選取,先進行一次選到余數(shù)段概率的事件發(fā)生,然后進行單獨選取r=N% (RAND_MAX+1) ; // 余數(shù)if (Probability ((double) r/N))// 選到余數(shù)段的概率result=N-r+random (r) ;//random 可以用情況 I 中的代碼實現(xiàn)elseresult=rand O +random(N/ (RAND_MAX+1)) * (RAND_MAX+1) ;// 如果選不到余數(shù)段再進行分段選取2,不重復(fù)隨機控制實現(xiàn)方法設(shè)立兩個一維數(shù)組aControl [M]和alndex [N], N表示窗數(shù)據(jù)長度,K表示隨機抽取控制總次數(shù)。當(dāng)K不大于N/2時,M=K,否則M=N-K;數(shù)組alndex [N]的各個元素初值分別為(0,1,2......N-1)。第一步首先調(diào)用等概率隨機函數(shù)在(O到N-1)范圍內(nèi)產(chǎn)生等概率隨機數(shù)i,并將產(chǎn)生的隨機數(shù)i作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[i]賦給 aContril
,即 aContorl
=alndex[i],最后把 alndex[N_l]的值復(fù)制至丨J alndex [i];第二步首先調(diào)用等概率隨機函數(shù)在(O到N-2)范圍內(nèi)產(chǎn)生等概率隨機數(shù)j,并將產(chǎn)生的隨機數(shù)j作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值 alndex [j]賦給 aContril [I],即 aContorl [I] =alndex [i] (j 可以等于 i),最后把alndex [N-2]白勺值復(fù)制到 alndex [j];以此類推,直到取出M個元素為止。經(jīng)過上述兩個步驟后,對aControl [M]數(shù)組進行排序,并設(shè)立一個數(shù)據(jù)訪問指針Pt。指針初始為aControl首地址即pt=aControl。如果運行次數(shù)η與*pt相等,即本次操作被隨機抽中,則本次操作按預(yù)設(shè)要求執(zhí)行窗數(shù)據(jù)控制,同時Pt指針后移一步。否則本次操作未被抽中,按正常操作執(zhí)行。
四,對于指定區(qū)間的不等概率隨機控制,實現(xiàn)過程如下設(shè)立數(shù)組aControl [M]及aIndex[N],N表示窗數(shù)據(jù)長度,K表示隨機抽取控制總次數(shù)。當(dāng)K不大于N/2時,M=K,否則M=N-K;數(shù)組aIndex[N]的各個元素初值分別為(0,1,2……N-1)。指定區(qū)間為[t, t+M], t G [O, N-M)。區(qū)間外長度 S=NHVL1,調(diào)用等概率隨機函數(shù)產(chǎn)生[t,t+M]區(qū)間中的隨機數(shù)i,并將產(chǎn)生的隨機數(shù)i作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[i]賦給aContril [O],即aContorl [O] =alndex[i],并將區(qū)間外的數(shù)據(jù)進行隨機抽取得到j(luò),把alndex [j]的值復(fù)制到 alndex [i], k加 I ;2,判斷k是否等于M,如果是,則執(zhí)行結(jié)束,如果不是,S減1,判斷S是否為零,如果是,則按等概率隨機控制方法完成剩下的工作;如果不是,則重復(fù)I步驟繼續(xù)執(zhí)行。最后對aControl [M]數(shù)組進行排序,并設(shè)立一個數(shù)據(jù)訪問指針Pt。指針初始為aControl首地址即pt=aControl。如果運行次數(shù)η與*pt相等,即本次操作被隨機抽中,貝1J 本次操作按預(yù)設(shè)要求執(zhí)行,同時Pt指針后移一步。否則本次操作未被抽中,按正常操作執(zhí)行。該方法實現(xiàn)的原理是先指定區(qū)間,在區(qū)間內(nèi)每產(chǎn)生一個隨機數(shù),就用區(qū)間外的數(shù)來補充,這樣既實現(xiàn)了隨機數(shù)的不重復(fù),又能實現(xiàn)指定區(qū)間內(nèi)的隨機數(shù)被抽中的概率較高,而后進入?yún)^(qū)間的數(shù)據(jù)被抽中的概率較低。以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其等效物界定。6.根據(jù)權(quán)利要求I所述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟3)中的b步適用于全范圍等概率隨機控制方式,具體步驟為(I)設(shè)立兩個一維數(shù)組aControl [M]和alndex [N],N表示窗數(shù)據(jù)長度,K表示隨機抽取控制總次數(shù);當(dāng)K不大于N/2時,M=K,否則M=N-K;數(shù)組alndex [N]的各個元素初值分別為(0,1,2……N-1);(2)首先調(diào)用等概率隨機函數(shù)在(O到N-1)范圍內(nèi)產(chǎn)生等概率隨機數(shù)i,并將產(chǎn)生的隨機數(shù)i作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[i]賦給 aContril
,最后把 alndex[N-1]的值復(fù)制到 alndex[i];(3)調(diào)用等概率隨機函數(shù)在(O到N-2)范圍內(nèi)產(chǎn)生等概率隨機數(shù)j,并將產(chǎn)生的隨機數(shù)j作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex [j]賦給aContril [I],其中j可以等于i,最后把alndex [N-2]的值復(fù)制到alndex [j];以此類推,直到取出M個元素為止;4)經(jīng)過上述步驟后,對aControl [M]數(shù)組進行排序,并設(shè)立一個數(shù)據(jù)訪問指針Pt ;指針初始為aControl首地址,即pt=aControl ;如果窗長度內(nèi)運行次數(shù)η與*pt相等,η指相對本次窗數(shù)據(jù)起始時刻的延時t與單位時間內(nèi)額定運行次數(shù)的乘積,本次操作被隨機抽中,同時Pt指針后移一步;否則本次操作未被抽中,按正常操作執(zhí)行。7.根據(jù)權(quán)利要求I所述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟3)中的c步適用于指定區(qū)間的不等概率控制方式,具體步驟如下(I)設(shè)立數(shù)組aControl [M]及alndex [N], N表示窗數(shù)據(jù)長度,K表示隨機抽取控制總次數(shù);當(dāng)1(不大于N/2時,M=K,否則M=N-K;數(shù)組aIndex[N]的各個元素初值分別為(0,1,2……N-1),指定區(qū)間為[t,t+M],te
區(qū)間中的隨機數(shù)i,并將產(chǎn)生的隨機數(shù)i作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[i]賦給aContril
,并將區(qū)間外的數(shù)據(jù)進行隨機抽取得到j(luò),把alndex[j]的值復(fù)制到alndex [i],k 力口 I ;(3)判斷k是否等于M,如果是,則執(zhí)行結(jié)束,如果不是,S減1,判斷S是否為零,如果是,則按等概率隨機控制方法完成剩下的工作;如果不是,則重復(fù)(2)步驟繼續(xù)執(zhí)行;(4)最后對aControl [M]數(shù)組進行排序,并設(shè)立一個數(shù)據(jù)訪問指針Pt ;指針初始為 aControl首地址,即pt=aControl ;如果運行次數(shù)η與*pt相等,η指相對本次窗數(shù)據(jù)起始時刻的延時t與單位時間內(nèi)額定運行次數(shù)的乘積,即本次操作被隨機抽中,Pt指針后移一步;否則本次操作未被抽中,按正常操作執(zhí)行。
權(quán)利要求
1.一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,包括如下步驟 1)針對不同模擬/仿真需求,通過單選控制字方式提供連續(xù)、等間距、隨機三類控制方式,隨機控制方式分為全范圍等概率隨機控制方式和指定區(qū)間的不等概率隨機控制方式; 2)設(shè)立運行、計算雙緩存區(qū),每運行累計一個窗數(shù)據(jù)長度N,則運行計數(shù)清零,同時切換運行、計算狀態(tài); 3)a借助隨機函數(shù)srandO和rand O,通過特定算法實現(xiàn)不同窗數(shù)據(jù)長度N內(nèi)的等概率隨機數(shù); 或b設(shè)立兩個一維數(shù)組aControl [M]和alndex [N],N表示窗數(shù)據(jù)長度,K表示隨機控制總次數(shù),當(dāng)K不大于N/2時,M=K,否則M=N-K,數(shù)組alndex [N]的各個元素初值分別為(0,1,2……N-1);通過調(diào)用遞減隨機數(shù)長度的等概率隨機函數(shù)產(chǎn)生不重復(fù)隨機數(shù)i,并經(jīng)過索引準確對aControl [O]元素值賦值;循環(huán)執(zhí)行M次得到aControl [M]中各個元素值;對數(shù)組aControl [M]各個元素值進行排序,通過移位指針及數(shù)據(jù)比較,從而確定窗數(shù)據(jù); 或c從指定區(qū)間通過等概率隨機控制在區(qū)間內(nèi)每抽取一個隨機數(shù),就從區(qū)外隨機抽取一個數(shù)據(jù)來填充,實現(xiàn)不等概率分布的隨機控制。
2.根據(jù)權(quán)利要求I所述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟I)的連續(xù)控制方式具體為設(shè)定連續(xù)控制時間/次數(shù)M和窗長度N,起始時刻以命令下達時刻計時/數(shù),從區(qū)間0,N-M]中等概率產(chǎn)生起始點i或者從控制命令下達時刻“0”,并開始計時/次,累計控制時間/次數(shù)M后則本窗數(shù)據(jù)控制結(jié)束。
3.根據(jù)權(quán)利要求I所述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟I)的等間距控制方式具體為設(shè)定等間距時間/次數(shù)N,起始時刻以命令下達時刻計時/數(shù),從區(qū)間0,N-1中等概率產(chǎn)生控制點i或者以控制命令下達時刻“O”為控制點,每執(zhí)行等間距時間/次數(shù)N,當(dāng)前點數(shù)據(jù)接受控制;如此循環(huán),直至控制結(jié)束。
4.根據(jù)權(quán)利要求I所述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟2)中設(shè)立窗數(shù)據(jù)執(zhí)行次數(shù)計數(shù)器Tl和運行累計次數(shù)計數(shù)器T2,每運行一個窗數(shù)據(jù)長度N,則Tl清零。
5.根據(jù)權(quán)利要求4所述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟3)的a步適用于全范圍等概率隨機控制方式,a步具體過程為 借助C庫隨機函數(shù)srandO和rand O , srand O參數(shù)選用系統(tǒng)實時時間time或T2,盡量使每次產(chǎn)生的種子不重復(fù);rand()的上限是RAND_MAX,分為兩種情況考慮 (1)如果N〈RAND_MAX,則找到RAND_MAX范圍內(nèi)能被N整除的最大值R,再調(diào)用randO函數(shù)產(chǎn)生隨機數(shù),如果大于R,則舍棄重新產(chǎn)生,否則通過i=rand()%N得到等概率的隨機數(shù)i ; (2)如果N彡RAND_MAX,考慮分段產(chǎn)生隨機數(shù),分成[N/(RNAD_MAX+1)]段,先等概率得到段再得到每段內(nèi)的某個元素,得到的段包括整數(shù)段和余數(shù)段。
6.根據(jù)權(quán)利要求I所述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟3)中的b步適用于全范圍等概率隨機控制方式,具體步驟為 (I)設(shè)立兩個一維數(shù)組aControl [M]和alndex [N], N表示窗數(shù)據(jù)長度,K表示隨機抽取控制總次數(shù);當(dāng)K不大于N/2時,M=K,否則M=N-K;數(shù)組aIndex[N]的各個元素初值分別為(0,1,2......N-1);(2)首先調(diào)用等概率隨機函數(shù)在(O到N-1)范圍內(nèi)產(chǎn)生等概率隨機數(shù)i,并將產(chǎn)生的隨機數(shù)i作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[i]賦給 aContril [O],最后把 alndex[N_l]白勺值復(fù)制到 alndex[i]; (3)調(diào)用等概率隨機函數(shù)在(O到N-2)范圍內(nèi)產(chǎn)生等概率隨機數(shù)j,并將產(chǎn)生的隨機數(shù)j作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[j]賦給aContril [I],其中j可以等于i,最后把alndex [N-2]的值復(fù)制到alndex [j]; 以此類推,直到取出M個元素為止; 4)經(jīng)過上述步驟后,對aControl [M]數(shù)組進行排序,并設(shè)立一個數(shù)據(jù)訪問指針pt ;指針初始為aControl首地址,即pt=aControl ;如果窗長度內(nèi)運行次數(shù)η與*pt相等,η指相對本次窗數(shù)據(jù)起始時刻的延時t與單位時間內(nèi)額定運行次數(shù)的乘積,本次操作被隨機抽中,同時Pt指針后移一步;否則本次操作未被抽中,按正常操作執(zhí)行。
7.根據(jù)權(quán)利要求I所述的一種組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,其特征在于步驟3)中的c步適用于指定區(qū)間的不等概率控制方式,具體步驟如下 (1)設(shè)立數(shù)組aControl[M]及alndex [N], N表示窗數(shù)據(jù)長度,K表示隨機抽取控制總次數(shù);當(dāng)K不大于N/2時,M=K,否則M=N-K;數(shù)組aIndex[N]的各個元素初值分別為(0,1,2……N-I),指定區(qū)間為[t, t+M], t e [O, N-M),區(qū)間外長度S=N-M ; (2)調(diào)用等概率隨機函數(shù)產(chǎn)生[t,t+M]區(qū)間中的隨機數(shù)i,并將產(chǎn)生的隨機數(shù)i作為數(shù)組alndex下標(biāo)索引找到數(shù)組的具體位置,然后把這個位置的元素值alndex[i]賦給aContril [O],并將區(qū)間外的數(shù)據(jù)進行隨機抽取得到j(luò),把alndex[j]的值復(fù)制到alndex[i], k 力口 I ; (3)判斷k是否等于M,如果是,則執(zhí)行結(jié)束,如果不是,S減1,判斷S是否為零,如果是,則按等概率隨機控制方法完成剩下的工作;如果不是,則重復(fù)(2)步驟繼續(xù)執(zhí)行; (4)最后對aControl[M]數(shù)組進行排序,并設(shè)立一個數(shù)據(jù)訪問指針pt ;指針初始為aControl首地址,即pt=aControl ;如果運行次數(shù)η與*pt相等,η指相對本次窗數(shù)據(jù)起始時刻的延時t與單位時間內(nèi)額定運行次數(shù)的乘積,即本次操作被隨機抽中,Pt指針后移一步;否則本次操作未被抽中,按正常操作執(zhí)行。
全文摘要
本發(fā)明涉及一種窗數(shù)據(jù)的控制方法,尤其適用于組態(tài)控制窗數(shù)據(jù)的實現(xiàn)方法,包括如下步驟1)提供連續(xù)、等間距、隨機三類控制方式;2)設(shè)立運行、計算雙緩存區(qū),每運行累計一個窗數(shù)據(jù)長度N,則運行計數(shù)清零,同時切換運行、計算狀態(tài);3)借助隨機函數(shù)實現(xiàn)不同窗數(shù)據(jù)長度N內(nèi)的等概率隨機數(shù);或設(shè)立兩個一維數(shù)組aControl[M]和aIndex[N],通過移位指針及數(shù)據(jù)比較,確定窗數(shù)據(jù);或從指定區(qū)間通過等概率隨機控制在區(qū)間內(nèi)每抽取一個隨機數(shù),就從區(qū)外隨機抽取一個數(shù)據(jù)來填充,實現(xiàn)不等概率分布的隨機控制。本發(fā)明產(chǎn)生的隨機數(shù)均能實現(xiàn)等概率,還可實現(xiàn)指定區(qū)間的不等概率隨機控制;消耗盡可能少的運算時間和存儲資源,時間復(fù)雜度為O(m),存儲空間為O(n+m)。
文檔編號G06F9/455GK102945184SQ201210458949
公開日2013年2月27日 申請日期2012年11月15日 優(yōu)先權(quán)日2012年11月15日
發(fā)明者周東頂, 湯漢松, 張煒, 羅強, 張耀宇, 莫漢宗 申請人:江蘇凌創(chuàng)電氣自動化股份有限公司