发明名称 一种组态控制窗数据的实现方法
摘要 本发明涉及一种窗数据的控制方法,尤其适用于组态控制窗数据的实现方法,包括如下步骤1)提供连续、等间距、随机三类控制方式;2)设立运行、计算双缓存区,每运行累计一个窗数据长度N,则运行计数清零,同时切换运行、计算状态;3)借助随机函数实现不同窗数据长度N内的等概率随机数;或设立两个一维数组aControl[M]和aIndex[N],通过移位指针及数据比较,确定窗数据;或从指定区间通过等概率随机控制在区间内每抽取一个随机数,就从区外随机抽取一个数据来填充,实现不等概率分布的随机控制。本发明产生的随机数均能实现等概率,还可实现指定区间的不等概率随机控制;消耗尽可能少的运算时间和存储资源,时间复杂度为O(m),存储空间为O(n+m)。
申请公布号 CN102945184B 申请公布日期 2015.12.09
申请号 CN201210458949.7 申请日期 2012.11.15
申请人 江苏凌创电气自动化股份有限公司 发明人 周东顶;汤汉松;张炜;罗强;张耀宇;莫汉宗
分类号 G06F9/455(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 南京纵横知识产权代理有限公司 32224 代理人 董建林
主权项 一种组态控制窗数据的实现方法,包括如下步骤:1)针对不同模拟/仿真需求,通过单选控制字方式提供连续、等间距、随机三类控制方式,随机控制方式分为全范围等概率随机控制方式和指定区间的不等概率随机控制方式;2)设立运行、计算双缓存区,每运行累计一个窗数据长度N,则运行计数清零,同时切换运行、计算状态;3)a借助随机函数srand()和rand(),通过特定算法实现不同窗数据长度N内的等概率随机数;或b设立两个一维数组aControl[M]和aIndex[N],N表示窗数据长度,K表示随机控制总次数,M表示连续控制时间/次数,当K不大于N/2时,M=K,否则M=N‑K,数组aIndex[N]的各个元素初值分别为(0,1,2……N‑1);通过调用递减随机数长度的等概率随机函数产生不重复随机数i,并经过索引准确对aControl[0]元素值赋值;循环执行M次得到aControl[M]中各个元素值;对数组aControl[M]各个元素值进行排序,通过移位指针及数据比较,从而确定窗数据;或c从指定区间通过等概率随机控制在区间内每抽取一个随机数,就从区外随机抽取一个数据来填充,实现不等概率分布的随机控制;步骤3)的a步适用于全范围等概率随机控制方式,a步具体过程为:借助C库随机函数srand()和rand(),srand()参数选用系统实时时间time或T2,T2表示累计次数计数器,尽量使每次产生的种子不重 复;rand()的上限是RAND_MAX,分为两种情况考虑:(1)如果N<RAND_MAX,则找到RAND_MAX范围内能被N整除的最大值R,再调用rand()函数产生随机数,如果大于R,则舍弃重新产生,否则通过i=rand()%N得到等概率的随机数i;(2)如果N≥RAND_MAX,考虑分段产生随机数,分成[N/(RNAD_MAX+1)]段,先等概率得到段再得到每段内的某个元素,得到的段包括整数段和余数段;步骤3)中的c步适用于指定区间的不等概率控制方式,具体步骤如下:(1)设立数组aControl[M]及aIndex[N],N表示窗数据长度,K表示随机抽取控制总次数;当K不大于N/2时,M=K,否则M=N‑K;数组aIndex[N]的各个元素初值分别为(0,1,2……N‑1),指定区间为[t,t+M],t∈[0,N‑M),区间外长度S=N‑M;(2)调用等概率随机函数产生[t,t+M]区间中的随机数i,并将产生的随机数i作为数组aIndex下标索引找到数组的具体位置,然后把这个位置的元素值aIndex[i]赋给aContril[0],并将区间外的数据进行随机抽取得到j,把aIndex[j]的值复制到aIndex[i],K加1;(3)判断K是否等于M,如果是,则执行结束,如果不是,S减1,判断S是否为零,如果是,则按等概率随机控制方法完成剩下的工作;如果不是,则重复(2)步骤继续执行;(4)最后对aControl[M]数组进行排序,并设立一个数据访问指针pt;指针初始为aControl首地址,即pt=aControl;如果运行次 数n与*pt相等,n指相对本次窗数据起始时刻的延时t与单位时间内额定运行次数的乘积,本次操作被随机抽中,pt指针后移一步;否则本次操作未被抽中,按正常操作执行。
地址 212009 江苏省镇江市丁卯开发区经十二路高新技术创业园4号楼108室