数据选择器

2024-09-12

数据选择器(共9篇)

数据选择器 篇1

摘要:每年有12个月,大月31天,小月30天和二月28天(闰年29天)。利用中规模集成电路数据选择器,设计出自动调整日历表中月份和日数的控制电路。

关键词:数据选择器,日历表,设计

自动日历表已进入千家万户,极大地方便了人们的生活,自动日历表的种类多种多样,功能也不尽相同,但其核心部件都是单片机,基本功能就是显示年、月、日、时、分、秒等。本文介绍的是利用中规模集成电路数据选择器设计的自动日历表,由于篇幅的限制,只介绍自动日历表中月份、日数部分控制电路的设计。我们知道每年有12个月,大月31天,小月30天和二月28天(闰年29天)。而数据选择器具有从多个输入数据中选择一个数据输出的功能,因此利用它可方便地实现月份、日数的自动转换。

1、数据选择器的功能

数据选择器基本逻辑功能:在n个选择输入信号的控制下,从2n个数据输入信号中选择一个,作为输出,若n=2,则有2个选择输入信号,4个数据输入信号,称为四选一数据选择器[1]。如双四选一数据选择器74LS153,就是在一块集成芯片上有两个4选1数据选择器,每个数据选择器有四路输入数据D0~D3,通过选择控制信号A1、A0从四路数据中选择某一路数据送至输出端Q。其逻辑功能如表1所示[2]。

2、月、日历自动控制电路的设计

利用两块CC40192计数器构成日十位、日个位,利用数据选择器根据月份的情况分别构成31进制、30进制、28进制(闰年29进制)的加法计数器。利用两块CC40192计数器构成12进制加法计数器表示月十位和月个位。可利用CC40192相应的输出分别经译码显示器进行显示月份和日数。

2.1 N进制电路

对于具有异步置数功能的计数器,应将Si+N状态反馈,作为置数控制信号[3](即)。本电路是利用置数法实现12进制、31进制、30进制、29进制和28进制加法计数器。因为CC40192是集成十进制同步可逆计数器[4],具有双时钟输入,并具有异步清除和异步置数等功能,如果十位输出用Q7Q6Q5Q4表示,个位输出用Q3Q2Q1Q0表示,则有:

对于12进制(反馈状态为S1+12):

对于31进制(反馈状态为S1+31):

对于30进制(反馈状态为S1+30):

对于29进制(反馈状态为S1+29):

对于28进制(反馈状态为S1+28):

2.2 月份判别与地址控制电路

由图1得出A0的表达式为:

由图2得出A1的表达式为:

而第二块数据选择器的地址可用一块CC40193(组成四进制计数器)根据年数计数输出提供。

本电路经电路仿真和制作PCB电路板,均可正常工作。其仿真逻辑电路如图3所示。

3、结语

本文只是设计出一种利用74LS153数据选择器自动调整月份和日数的控制电路。如果加上年、时、分、秒显示控制电路和秒脉冲产生电路,就是一台完整的自动日历表,当然,如果加上预置校正电路、整点报时电路,则该自动日历表的功能就更加齐全完善。

参考文献

[1]张申科,岳备.数字电路与逻辑设计[M].上海:同济大学出版社,2005:98.

[2]蒋黎红,黄培根,朱维婷.模电数电基础实验及Multisim 7仿真[M].杭州:浙江大学出版社,2007:182.

[3]华成英.数字电子技术基础[M].北京:高等教育出版社,2004:316.

[4]余孟尝.数字电子技术基础简明教程[M].北京:高等教育出版社,2009:325-326.

数据选择器 篇2

Oracle的优化器共有3种:

a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性),

设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS 。你当然也在SQL句级或是会话(session)级对其进行覆盖。

为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性。

如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关。如果table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器。

在缺省情况下,Oracle采用CHOOSE优化器, 为了避免那些不必要的全表扫描(full table scan), 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器。

2. 访问Table的方式

Oracle 采用两种访问表中记录的方式:

a. 全表扫描:

全表扫描就是顺序地访问表中每条记录。Oracle采用一次读入多个数据块(database block)的方式优化全表扫描。

b. 通过ROWID访问表:

你可以采用基于ROWID的访问方式情况,提高访问表的效率, ROWID包含了表中记录的物理位置信息。Oracle采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系。通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高。

3. 共享SQL语句

为了不重复解析相同的SQL语句,在第一次解析之后, Oracle将SQL语句存放在内存中.这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享。因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同, Oracle就能很快获得已经被解析的语句以及最好的执行路径。Oracle的这个功能大大地提高了SQL的执行性能并节省了内存的使用。

可惜的是Oracle只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询,

数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性也就越大了。

当你向Oracle 提交一个SQL语句,Oracle会首先在这块内存中查找相同的语句。

这里需要注明的是,Oracle对两者采取的是一种严格匹配,要达成共享,SQL语句必须完全相同(包括空格,换行等)。

共享的语句必须满足三个条件:

A. 字符级的比较:

当前被执行的语句和共享池中的语句必须完全相同。

例如:

SELECT * FROM EMP;

和下列每一个都不同:

SELECT * from EMP;

Select * From Emp;

SELECT * FROM EMP;

B. 两个语句所指的对象必须完全相同:

例如:

用户 对象名 如何访问

Jack sal_limit private synonym

Work_city public synonym

Plant_detail public synonym

Jill sal_limit private synonym

Work_city public synonym

Plant_detail table owner

考虑一下下列SQL语句能否在这两个用户之间共享。

C. 两个SQL语句中必须使用相同的名字的绑定变量(bind variables):

例如:

第一组的两个SQL语句是相同的(可以共享),而第二组中的两个语句是不同的(即使在运行时,赋于不同的绑定变量相同的值)。

a.

select pin , name from people where pin = :blk1.pin;

select pin , name from people where pin = :blk1.pin;

b.

select pin , name from people where pin = :blk1.ot_ind;

生物选择器与污泥膨胀控制 篇3

关键词:污泥膨胀,厌氧选择器,缺氧选择器,好氧选择器

自从1914年Aldern和Lockett发明推流式活性污泥处理方法,其成为城市污水处理主流工艺。传统活性污泥由推流式经历了渐减曝气,吸附再生,完全混合型,序批式等多种变形。活性污泥早期形式为简单充放式和活塞流池子,20世纪50年代出现完全混合活性污泥,二十世纪六七十年代活性污泥运行装置是以连续式完全混合为主,污泥膨胀大量发生,膨胀导致泥水难以分离使处理不达标,甚至系统崩溃,严重困扰着活性污泥工艺。1973年Chuduoba提出选择性理论后,转向了对传统活塞流反应器和间歇式反应器形式研究,提出了选择器活性污泥工艺,70年代初出现了第一个污泥膨胀研究热点[1,2,3,4];20世纪80年代脱氮除磷工艺引入,掀起了活性污泥膨胀研究又一高潮[4,5,6]。

1 污泥膨胀控制方法

早期污泥膨胀控制方法主要是通过投加硅藻土、黏土、厌氧污泥、金属盐类、混凝剂和加氯等无选择性对微生物有毒害作用的化学药剂来实现,无法彻底解决污泥膨胀问题。环境调控使曝气池中生态环境选择性发展菌胶团细菌,应用生物竞争机制抑制丝状菌过度繁殖[7]。

1.1 常规污泥膨胀控制方法

1)污泥再生法:Chuduoba将回流污泥在单独设置曝气池内曝气,使具有最大吸附和贮存能力的菌胶团细菌,氧化体内贮存物获得能量迅速增殖,克服膨胀。工艺流程为接触池和再生池,美国和原苏联污水工艺采用高负荷运行方式,设置再生工艺,很少有污泥膨胀现象发生。2)投加填料控制法:接触氧化法利用丝状菌在填料上附着生长,避免污泥膨胀,填料池相当于一个选择器,将丝状菌固着于填料上在第一个池子中选择性生长,不进入活性污泥絮体中。絮状菌在第二个池内生长,作用是降低有机负荷。填料上的微生物量增加了系统中总生物量,有机负荷降低。3)射流曝气和其他机械方式:研究认为射流对污泥絮体剪切破碎作用不利于丝状菌,特别是球衣细菌,采用机械快速搅拌回流污泥可控制膨胀;但射流器中被吸入的空气和主体流量同时被强烈剪切粉碎,减少了污泥絮体尺寸,大大增加了空气和基质接触界面,加速了基质向细胞内传递,提高了微生物代谢速率,DO处于超饱和状态,减缓了供氧限制,加快了污泥活性限制。4)微生物生态学控制:利用原生动物对丝状菌捕食来控制污泥膨胀,日本苏口健和桥本礼在曝气池中观察到纤毛虫类增加,丝状菌急剧减少,SVI值降低。

1.2 生物选择器控制

1.2.1 生物选择器原理

1973年Chuduoba等提出了动力学选择性准则,理论是基于不同种属微生物Monod方程中Ksμmax参数不相同,且对于不同基质,其生长速率常数也不同[1]。按照Chuduoba理论,具有低Ksμmax值微生物,在混合培养曝气池中,当基质浓度很低时具有高生长速率占优势,在高基质浓度下恰好相反(见图1)。Chuduoba选择理论统一了丝状菌膨胀理论,开发了选择器控制污泥膨胀的新途径。

生物选择器就是应用生物竞争机制抑制丝状菌过度增殖,做法是在完全混合或推流曝气池前加一个停留时间比曝气池小得多的池,在生物选择器内,起始主体溶液中基质浓度很高,局部提高F/M,菌胶团细菌迅速增殖。

1.2.2 各类型生物选择器

1)好氧选择器。

本质是具有推流特点的曝气池,起始F/M很高,菌胶团细菌迅速摄取,转化并贮存大部分可溶性有机物,夺取丝状菌营养,后续曝气池中,丝状菌营养缺乏受抑制,好氧选择器设计关键是尺寸,选择器过大,起始F/M不高,造成首端基质浓度适合丝状菌生长;过小,则对基质吸收利用不够,使没有降解基质泄漏进入后续曝气池,利于丝状菌生长。选择器停留时间一般在5 min~30 min[8]。

2)缺氧选择器。

1931年Goudey发现,在曝气池首端设置缺氧选择器,与其说是控制污泥膨胀,不如说是起脱氮作用。WilliamL.Martin对Beloit.Landis等5个污水厂缺氧选择器运行效果分析中认为缺氧区F/M负荷,好氧池SRT是主要影响参数,当F/M为0.7 kg BOD5/(kg MLSS·d)~1.2 kg BOD5/(kg MLSS·d),SRT在8 d~12 d时可控制膨胀,温度升高,可适当缩短SRT,提高F/M,并提出用缺氧选择器中固体停留时间作为控制参数调整系统。吴凡松等认为进水中可溶性COD较多时,缺氧池中F/M为1.2 kg BOD5/(kg MLSS·d)~1.7 kg BOD5/(kg MLSS·d)较合适[9]。

缺氧选择器多用于带有硝化的系统,除了与好氧选择器一样保持高浓度梯度外,菌胶团细菌在缺氧条件下有比丝状菌高两个数量级的基质利用率和硝酸盐还原率,说明缺氧选择器对丝状菌抑制是由于菌胶团细菌可以利用硝酸盐中化合态氧降解有机物,丝状菌缺乏这种能力且在后续曝气池中缺乏营养生长受到抑制。足够的硝酸盐是缺氧选择器的必要条件;其次是停留时间选择,停留时间过长,缺氧段缺乏硝酸盐无法控制丝状菌。丝状菌与菌胶团参数比较见表1。

缺氧选择器用于污泥膨胀控制,同时具备动力学和代谢两种选择机制。此外,A/O和A2/O,UCT等脱氮除磷对工艺中的缺氧池以脱氮为目的。而缺氧选择器是控制丝状菌膨胀,停留时间相对短;浮游球衣菌、诺卡氏等丝状菌属也具有脱氮功能,硝酸盐还原菌是否为絮凝菌有待研究。

3)厌氧选择器。

活性污泥厌氧池运转可以追溯到1952年A.B.Dvidson对酿造工业废水处理,试验表明采用厌氧—好氧交替操作可很好控制污泥膨胀,但未得到重视,直至1974年Heide和Pasveer在氧化沟里采用了厌氧—好氧操作以及后来发展的Barnard流程,Phoredox流程及1980年出现的A2/O流程之后才进一步认识了活性污泥厌氧—缺氧—好氧运转在控制污泥膨胀上的重要意义。Spector在1975年发现,当负荷在0.2 kg BOD5/(kg MLSS·d),进水中BOD/TN>4~5的A/O工艺可有效控制污泥膨胀。

B.Chamber认为,厌氧处理后,聚磷菌释磷,后续好氧段污泥吸磷量增大,污泥含磷量较高,P/C比值上升,SVI值降低,聚磷菌在厌氧过程中能迅速吸收COD转化为PHAs,好氧时PHAs分解获得能量,厌氧下丝状菌生长,具有较低的多聚磷酸盐释放速率。1987年J.Wanner也发现021N型菌和球衣细菌在厌氧条件下,由于较低的磷酸盐释速率被抑制生长,控制了污泥膨胀。厌氧区目的重在释磷,要求VFAs过剩,与进水水质中可溶性有机物量有关。水解时间长,则厌氧区容积大,可降解基质含量高时,HRT为1.5 d,VFAs占污水中等比例时,HRT取0.5 d~1.5 d,难降解成分含量高时,HRT取2.5 d~3 d,厌氧选择器用于污泥膨胀控制容积小。

2 结语

在污泥膨胀这一污水生物处理遇到的问题起源,发展背景下,分析生物选择器提出的历史情况,基础理论,应用状况来显现其在污泥膨胀控制方面的地位。而污泥膨胀的微生物动力学机理复杂,加上丝状菌种类繁多,生理特性各异,有待于深入研究。

参考文献

[1]Chuduoba J,Blaha J,Madera V.Control of activated sludge fil-amentous bulking-ⅢEffect of sludge loading[J].Water Re-search,1974,8(3):18-19.

[2]Palm J C,Jenkins D,Parker D S.Relationship between organicloading,dissolved oxygen concentration and sludge settlebilityin the completed mixed activated sludge process[J].JournalWPCF,1979,52(10):34.

[3]Sezgin M,Jenkins D,Parker D S.A unified theory of filamen-tous activated sludge bulking[J].Journal WPCF,1978,50(90):362-368.

[4]Kjaer Andreasen,Lars Sigvarden.Experiments with sludge set-tleability in different process alternatives for nutrient removal[J].Wat Sci Tech,1996,33(12):137-146.

[5]Takashi Mino.Survey of filamentous microorganisms in activat-ed sludge process in Bangkok,Tailand[J].Wat Sci Tech,1995,31(9):193-202.

[6]Jaapj,vamder Waarde,Bert Geurkink,et al.Detection of fila-mentous and nitrifying bacteria in activated sludge with 16srRNA probes[J].Wat Sci Tech,1998,37(4):475-479.

[7]王凯军.高负荷活性污泥膨胀控制的试验研究[J].给水排水,1999,25(11):30-33.

[8]李彩斌,李京.生物选择器的作用机理和设计方法[J].中国给水排水,2003,19(4):69-70.

[9]吴凡松.生物选择器与脱氮除磷[J].给水排水,2003(12):34-35.

数据选择器 篇4

本文的目的:

1、说一说Oracle的Optimizer及其相关的一些知识。

2、回答一下为什么有时一个表的某个字段明明有索引,当观察一些SQL的执行计划时,发现确不走索引的问题。

3、如果你对 FIRST_ROWS、ALL_ROWS这两种模式有疑惑时也可以看一下这篇文章。

开始吧:

Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。相信你一定会用Pl/sqlDeveloper、Toad等工具去看一个语句的执行计划,不过你可能对Rule、Choose、First rows、All rows这几项有疑问,因为我当初也是这样的,那时我也疑惑为什么选了以上的不同的项,执行计划就变了?

1、优化器的优化方式

Oracle的优化器共有两种的优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO)。

A、RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。

B、CBO方式:依词义可知,它是看语句的代价(Cost)了,这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小 、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是你在做analyze后才出现的,很多的时侯过期统计信息会令优化器做出一个错误的执行计划,因些我们应及时更新这些信息。在Oracle8及以后的版本,Oracle列推荐用CBO的方式。

我们要明了,不一定走索引就是优的,比如一个表只有两行数据,一次IO就可以完成全表的检索,而此时走索引时则需要两次IO,这时对这个表做全表扫描(full table scan)是最好的。

2、优化器的优化模式(Optermizer Mode)

优化模式包括Rule,Choose,First rows,All rows这四种方式,也就是我们以上所提及的。如下我解释一下:

Rule:不用多说,即走基于规则的方式。

Choolse:这是我们应观注的,默认的情况下Oracle用的便是这种方式。指的是当一个表或或索引有统计信息,则走CBO的方式,如果表或索引没统计信息,表又不是特别的小,而且相应的列有索引时,那么就走索引,走RBO的方式。

First Rows:它与Choose方式是类似的,所不同的是当一个表有统计信息时,它将是以最快的方式返回查询的最先的几行,从总体上减少了响应时间。

All Rows:也就是我们所说的Cost的方式,当一个表有统计信息时,它将以最快的方式返回表的所有的行,从总体上提高查询的吞吐量,

没有统计信息则走基于规则的方式。

3、如何设定选用哪种优化模式

a、Instance级别

我们可以通过在init.ora文件中设定OPTIMIZER_MODE=RULE、OPTIMIZER_MODE=CHOOSE、OPTIMIZER_MODE=FIRST_ROWS、OPTIMIZER_MODE=ALL_ROWS去选用3所提的四种方式,如果你没设定OPTIMIZER_MODE参数则默认用的是Choose这种方式。

B、Sessions级别

通过SQL>ALTER SESSION SET OPTIMIZER_MODE=;来设定。

C、语句级别

这些需要用到Hint,比如:

SQL>SELECT /*+ RULE */ a.userid,  2   b.name,  3   b.depart_name  4   FROM tf_f_yhda a,  5  tf_f_depart b  6   WHERE a.userid=b.userid;

4、为什么有时一个表的某个字段明明有索引,当观察一些语的执行计划确不走索引呢?如何解决呢?

A、不走索引大体有以下几个原因:

♀你在Instance级别所用的是all_rows的方式;

♀你的表的统计信息(最可能的原因);

♀你的表很小,上文提到过的,Oracle的优化器认为不值得走索引。

B、解决方法:

♀可以修改init.ora中的OPTIMIZER_MODE这个参数,把它改为Rule或Choose,重起数据库。也可以使用4中所提的Hint;

♀删除统计信息SQL>analyze table table_name delete statistics;

♀表小不走索引是对的,不用调的。

5、其它相关

A、如何看一个表或索引是否是统计信息

SQL>SELECT * FROM user_tables  2  WHERE table_name= 3 AND num_rows is not null;    SQL>SELECT * FROM user_indexes  2  WHERE table_name= 3   AND num_rows is not null;

b、如果我们先用CBO的方式,我们应及时去更新表和索引的统计信息,以免生形不切合实的执行计划。

SQL>ANALYZE TABLE table_name COMPUTE STATISTICS;  SQL>ANALYZE INDEX index_name ESTIMATE STATISTICS;

具体的ANALYZE语句请参照Oracle8i/9i 的refrence文档。

客户转账销账数据管理器建设 篇5

电费回收是电力企业回笼资金,缩短企业资金周转周期,提高企业经济效益的重要环节,因此,及时进行电费销账以及优化销账流程成为了加强电费回收的关键。现阶段,电费核算工作中的客户银行电费转账单信息显示得不够齐全完善,银行流水往往没有显示出销账所需信息,直接导致销账人员无法判断对账单对应的用电用户户号,需要逐个排查确认,不能及时销账,工作效率较低。

针对客户转账销账信息匹配不上的现状,提出开发转账销账数据管理器平台,利用数学模型分析和求解问题的智能行为,采用文献研究法、访谈法、观察法、计算机编程等技术方法,解决欠费用户定位及销账问题,以减少人工操作导致的差错,提高工作效率和服务质量,推进企业信息化建设工作,及时到位地掌握电费扣费情况和欠费数据,加快电费回收速度。

1 解决方案

1.1 数据获取方法

数据获取方法如表1所示。

1.2 银行账单自动匹配功能实现

1.2.1 银行账单字段参数配置

电费核算班根据银行提供的转账账单,明确各银行需导入系统的列字段。开发应用系统,实现可配置各银行需导入系统字段名称,以此满足各银行不同格式的转账账单导入系统,导入过程无需人工干预调整格式。详见附录2.1“各家银行导入、导出列名称及关系”。

1.2.2 银行账单自动匹配

1.2.2. 1 导入账单

(1)选择要导入转账账单银行,点击“导入”按钮。

(2)为银行账单信息生成账单信息,并产生账单唯一标识码。

(3)根据“银行账单自动参数配置”功能对该银行账单读取列字段配置要求,读取该银行账单对应列的信息,根据附录2.2“银行账单重复信息排除规则”,排除存在重复的记录,只保留最新的银行账单数据,最后保存到银行账单详细记录表中。

(4)导出成功后,功能界面上半部分显示银行账单表信息,功能界面下半部分显示银行账单表详细记录信息,并支持按格式导出账单信息,也可以满足条件筛选查询。

1.2.2. 2 账单匹配客户

点击功能界面下半部分子窗口中“账单匹配客户”按钮,根据附录2.3“账单匹配欠费用户规则”进行自动匹配,将满足条件的欠费用户结算户号查找并匹配到银行账单记录上,以便核销人员快速定位结算户并在营销系统完成销账,提升销账效率。

1.3 分散复核与抄表信息合并功能

借助此功能,将抄表员抄表信息与分散复核信息自动合并,并按固定格式输出,满足抄表员打印复核单到现场复核,提供工作效率。

1.3.1 导入分散复核与抄表信息功能

按抄表员、抄表月份导入分散复核、抄表信息。

1.3.2 合并及输出结果

根据抄表员导入的分散复核、抄表信息表单,自动合并并生成指定要求的复核单(公变复核单、专变复核单、台区复核单),并提供导出excel。

2 附录

2.1 各家银行导入、导出列名称及关系

各家银行导入、导出列名称及关系如表2所示。

2.2 银行账单重复信息排除规则

由于每天银行有几个时间段向供电方提供转账账单表,第二次下载的表包含了第一次下载的表的数据,以此类推,无疑将导致核算人员需要手工筛选排除,造成工作量增加。因此,在账单导入时,系统需要实现对重复的信息进行排除。

排除重复规则:

(1)如果银行提供的转账账单表内容有时间列可区分,则根据时间列排除重复。

(2)如果银行提供的转账账单表没有时间列区分,则根据转账账单表的账单流水号排除重复。

(3)如果没有时间、流水号,则根据银行账单信息表所有字段进行比较,以此排除重复。

2.3 账单匹配欠费用户规则

2.3.1 根据交易户名匹配

进账单信息进账账号名与客户档案上面的用户名或者结算户名进行匹配,再进行金额匹配。如果匹配不上,只能匹配交易金额,通过跟本月正常状态欠费金额进行匹配,把匹配的结果用户在匹配说明中说明。

2.3.2 根据交易金额匹配

根据第一步的交易户名匹配后查找出来的用户,再进行交易金额匹配,匹配当月用户正常应收状态的欠费总金额。

注意:匹配用户欠费金额,只是针对当月的、正常应收的、正常状态的电价为计费电价的用户欠费记录,那些违约窃电产生的电费、往月的包含违约金的欠费、送盘扣费锁定的电费都不进行匹配。

3 结语

信息部就需要的用户档案、欠费数据等营销数据,向省公司提出同步到本地数据库的要求以及同步方法,并组织厂家开发系统,实现银行转账信息导入、自动匹配用户、自动排除重复等功能,这样有利于实时地、准确地掌握售电扣费和用户欠费情况,解决营销信息系统对账模块自动化流程不畅的问题,满足核算人员快速定位欠费用户并在营销系统完成销账的需求,减少核算人员定位用户工作量,提高工作效率,降低人工核对匹配带来的出错率,从而及早发现销账存在问题的用户,做到及时到位地掌握电费扣费情况,实现企业价值的最大化。

数据选择器 篇6

高压直流(HVDC)整流站控制系统会与邻近汽轮发电机组轴系产生扭振相互作用而引发次同步振荡(SSO),这种现象最早在Square Butte直流输电工程调试中被发现[1]。随后,美国Coal Creek坑口发电厂电力外送的CU直流工程[2]、Intermountain发电厂至Adelanto的IPP直流工程[3]、印度北部和西部交流系统互联的Vindhyachal直流工程[4]以及世界其他一些直流输电工程都表明HVDC系统可能引起邻近汽轮机组的SSO。研究表明,中国南方电网贵广二回直流输电系统可能引起整流站附近盘南电厂汽轮发电机组的SSO[5],需要采取相应的抑制措施。随着国内HVDC工程的广泛应用和特高压直流(UHVDC)工程的起步[6],建立直流换流器的准确模型对研究直流输电系统的稳定与控制具有重要意义。

自HVDC系统引起的SSO问题被发现以来,已有文献进行了较深入的研究,在SSO的产生机理、相互作用规律、阻尼控制方面取得了丰富的成果,其典型代表是美国电力科学研究院(EPRI)1982年出版的研究报告EL-2708 RP 1425-1[7]。在以往的SSO研究中通常采用HVDC系统的准稳态模型[8,9],但这种模型是否适用仍存在一定争议[10]。文献[11]基于Poincaré映射理论,推导了可控串联补偿(TCSC)的三相线性化连续模型,并称为采样—数据模型。文献[12]运用采样—数据建模方法建立了整个HVDC系统的小扰动线性化模型,并指出该模型的适用频率为0至3倍工频,但所提出的采样—数据模型也存在下列问题:①没有分析换流器触发方式对模型的影响;②没有考虑触发控制的小扰动延迟;③1/6周期是采样—数据模型的积分时间段,而不是对实际数据进行采样的时间间隔,因为对非线性积分方程进行线性化时采取了大量近似,所以采样定理并不完全适用,采样—数据模型的准确性还需要充分验证。

针对上述问题,本文对已有的HVDC系统采样—数据模型进行改进,研究不同触发控制方式对模型的影响,并详细考虑了触发控制输出的小扰动延迟。最后采用特征值方法和复转矩系数法验证所改进模型的准确性。

1 HVDC系统的采样—数据建模

1.112脉冲换流器的等值简化

本文所研究的HVDC系统电路如图1所示,换流站的采样—数据模型不依赖于直流线路的等值结构,直流线路可以采用T形、π形或多级π形等值,因此便于灵活应用于不同HVDC系统的分析。

12脉冲换流器的换流过程复杂,当触发角发生变化并考虑换相重叠时,12个整流阀有多种导通状态组合,不便于枚举电路的状态空间方程。文献[13]运用采样—数据建模方法建立了12脉冲换流器的小扰动模型,但过程比较繁琐。因为流经一个换流站内2组全桥的直流电流恒等,所以可以将12脉冲换流器近似等值为2组6脉冲换流器,等值电路如图2所示。

2组6脉冲换流器对于交流侧并联,而对直流侧串联。建立单组6脉冲换流器的采样—数据模型后,即容易得到12脉冲换流器的状态空间方程。

1.26脉冲换流器采样—数据建模

图3为换相期间等值电路图。

此时阀⑥,①,②同时导通,其中电流可以等效为2个电流Id和Ie的叠加。Id为直流输电线路的电流,由阀①流出,流入阀⑥,在平波电抗器的作用下,Id基本保持恒定;Ie为交换电流,因为Ub>Uc,Ie由0逐渐增大,当Ie增至与Id相等时,阀⑥中电流降为0,阀⑥关断,换相过程结束。

采样—数据建模的思路是:

1)以直流电流Id为状态变量,在换相前某一时刻t0对Id进行采样,得到Id(t0)。对系统状态空间方程进行积分,经过1/6周期后,得到Id(t1)。t1时刻的系统状态变量Id(t1)由t0时刻的Id(t0)与外部输入决定,故Id(t1)可以表示为如下函数:

Ιd(t1)=f(Ιd(t0),Uxy,σ,Ud,ϕ,δ,ω)(1)

式中:Uxy为交流侧电压;σ为换相起始时刻,与触发角α相关;Ud为直流侧电压;ϕ为换相结束时刻;δ为交流电压的相位;ω为系统角频率。

2)对上述时间段的非线性积分方程进行线性化,即可得到离散形式的线性化状态空间方程:

ΔΙd(t1)=FΔΙd(t0)+GΔUxy+ΗΔα+ΙΔUd+JΔδ+ΚΔω(2)

3)对离散的状态空间方程进行连续化,即可得到换流器的状态空间方程:

ΔΙ˙d=ArΔΙd+B1ΔUxy+B2Δα+B3ΔUd+B4Δδ+B5Δω(3)

换流器的采样—数据模型既考虑了开关元件的动态特性,又可以用于系统的频域分析。式(1)~式(3)的具体表达式见文献[12]。需要注意的是,式(2)仅为式(1)在数学形式上线性化的结果,因为ΔUxy与Δδ、Δα与Δδ并非独立变量,下文将进一步分析不同触发方式下其间的相互关系。

2 触发方式对采样—数据模型的影响

换流器触发相位控制是直流输电控制系统中用来改变换流阀的触发相位,实现HVDC输电系统及其换流装置运行状态调节的控制环节,有等触发角控制和等间隔控制2种基本触发方式。与等触发角控制相比,等间隔控制可以有效抑制非特征谐波,广泛应用于HVDC系统中。

2.1 等间隔触发方式

以整流侧阀②的触发过程为例。稳态时阀②的触发时刻为相电压Ua到达波峰后延迟αc,αc为整流控制器的输出触发角。如图4所示,当交流电压的相位发生扰动,超前于稳态相位Δδ,而阀②仍在预期的时刻触发,所以阀②的触发脉冲相比实际的Ua波峰延迟了αc+Δδ。故有:

Δα=Δαc+Δδ(4)

如图4所示,在进行采样—数据建模时,换相前的采样时刻t0可以选在a相电压发生小扰动前的波峰时刻A点,也可以选在a相电压发生小扰动后的波峰时刻B点,而积分结束时刻不变,即

t1t0+π3ω(5)

从理论上讲,系统的状态空间方程式是唯一的,不依赖于积分起止时刻的选取。

2.1.1 在A点采样

当采样时刻在A点时,有

{σ=t0+αcωUabc=W(θ0(t))Uxy(6)

式中:σ为换相起始时刻;Uabc为交流电压瞬时值;W(θ0(t))为派克变换矩阵;θ0(t)=-δ0+∫tt0ωdτx轴超前于a相的角度;δ0为交流侧电压在旋转坐标系中的相位的稳态值。

将式(6)代入式(1)并线性化,可得:

ΔΙd(t1)=FΔΙd(t0)+GΔUxy+ΗΔαc+ΙΔUd+ΚΔω(7)

2.1.2 在B点采样

当采样时刻在B点时,有

{σ=t0+1ω(αc+Δδ)Uabc=W(θ(t))Uxy(8)

式中:W(θ(t))为派克变换矩阵;θ(t)=-δ+∫tt0ωdτx轴超前于a相的角度;δ为交流侧电压在旋转坐标系中相位的动态值。

将式(8)代入式(1)并线性化,可得:

ΔΙd(t1)=FΔΙd(t0)+GΔUxy+Η(Δαc+Δδ)+ΙΔUd+JΔδ+ΚΔω=FΔΙd(t0)+GΔUxy+ΗΔαc+ΙΔUd+(Η+J)Δδ+ΚΔω(9)

对比式(7)和式(9)可得:

J=-Η(10)

由式(10)不仅可以对式(2)进行部分化简,还可在应用过程中验证状态空间方程的正确性。在本文第4节的算例中,当α=18°时,H=-2.086 1,J=2.114 3。

2.2 锁相环触发相位控制

目前,HVDC换流器普遍采用锁相环触发相位控制系统。锁相环对输入信号的频率和相位做出响应,输出信号的相位ΔδP。在小扰动下,Δδαc与Δα的关系如图5所示。

将图5中的Δα代入式(2)可得:

ΔΙd(t1)=FΔΙd(t0)+GΔUxy+Η(Δαc-ΔδΡ)+ΙΔUd+ΚΔω(11)

当锁相环失效即ΔδP=0时,式(11)与式(7)等价,表明触发脉冲不随交流电压相位变化而调整的触发控制即为等间隔触发。

3 触发控制的小扰动延迟

稳态运行时,基于锁相环的换流器触发过程可以简明地表示为图6。锁相环输出交流电压的相位为δP,值域为0~2π。采用比较器对δP和αc进行判断,当交流电压的相位δP由δP<αc变为δP>αc时,产生一个触发脉冲,相应的晶闸管开始导通。

当系统发生小扰动时,控制器的输出αc不再是恒定值,锁相环的输出δP也不再是一条斜率为1的直线,它们均受到持续的扰动而变化。对于6脉冲换流器,相邻触发脉冲的间隔为60°,其间控制器和锁相环输出的小扰动变化都不会立刻作用于换流器,而存在0~1/6周期的延迟。换流器的实际触发角只是一系列离散变量,如图7所示。

为便于频域建模分析,本文将αc和δP的延迟时间TD近似取为相邻触发脉冲间隔的1/2,即

ΤD=π6ω(12)

考虑触发控制的小扰动延迟后,Δδαc与Δα的关系如图8所示。

4 模型有效性验证

为验证所提出的模型,采用EPRI报告中的HVDC系统[7],发电机轴系参数见附录A,轴系机械阻尼取为0。

电磁暂态仿真程序PSCAD/EMTDC可以对换流器进行详细建模,是目前公认比较准确的仿真软件。将换流器的准稳态模型和采样—数据模型应用于频域分析,并与时域仿真结果进行对比,验证模型的准确性。

4.1 特征值方法验证

整流侧触发角α分别为5°,18°,30°时,换流器采用准稳态模型和采样—数据模型计算得到的特征值以及Prony辨识时域仿真曲线得到的特征值如表1所示。其中采样—数据模型还分别考虑了是否考虑小扰动延迟TD的2种情况,T为相邻触发脉冲的间隔时间。

由表1可见,以Prony辨识得到的特征值为参考,不考虑小扰动延迟的采样—数据模型比准稳态模型略准确,但准确度提高不大。考虑触发控制的小扰动延迟后,采样—数据模型的准确度大幅提高,与Prony的辨识结果非常接近。表2为3种频域模型的特征值与Prony辨识特征值的标准差。

4.2 复转矩系数法验证

采用基于PSCAD/EMTDC时域仿真的测试信号法[14]计算HVDC系统在次同步频率范围内的电气阻尼曲线,与基于HVDC频域模型的复转矩系数法得到的电气阻尼曲线进行对比,图9(a)、图9(b)分别给出了α为18°和30°时的电气阻尼曲线。其中频域模型分别采用了准稳态模型和改进的采样—数据模型。

由图9可见,采样—数据模型计算得到的电气阻尼曲线与测试信号法得到的曲线基本重合,证明采样—数据模型具有很高的准确性。准稳态模型计算得到的曲线虽然与测试信号法得到的曲线有一定的偏差,但仍可以反映电气阻尼的变化规律,具有一定的参考价值。基于PSCAD仿真的测试信号法得到的电气阻尼曲线具有明显的毛刺和异常波动,可以认为是测试信号法的一点不足。

5 结语

基于采样—数据建模方法,本文建立了12脉冲换流器的改进采样—数据模型,并分别研究了等间隔触发和锁相环触发控制对系统模型的影响。在采样—数据建模过程中考虑了触发控制的小扰动延迟。将几种频域模型计算得到的SSO模态特征值与基于时域仿真的Prony方法辨识特征值进行对比,以及将频域模型计算得到的电气阻尼曲线与基于时域仿真的复转矩系数法—测试信号法获取的电气阻尼曲线进行对比,结果表明所提出的改进采样—数据模型具有很高的准确性,适用于研究HVDC系统的SSO问题。

需要指出的是,采样—数据模型在理论上仍非完全准确,因为其建模过程中采取了以下近似和假定:①在同一时刻,2组6脉冲换流器的导通状态并不相同,所以将12脉冲换流器等效为2组完全相同的6脉冲换流器即为近似;②换流器模型的客观存在并不依赖于采样点的选取,在建模前选定某个采样点t0即为近似;③在积分过程中假定直流电压Ud和交流电压Uxy恒定;④触发控制的小扰动延迟时间为0至T,建模过程中全部近似取为T/2。

附录见本刊网络版(http://www.aeps-info.com/aeps/ch/index.aspx)。

数据选择器 篇7

关键词:测土配方施肥,Excel数据提取器,数据汇总

长期以来我国在肥料施用方面存在着许多突出问题, 例如重视化肥、偏施氮肥, 不少地方盲目和过量施肥, 造成肥料利用率低, 生产成本高, 环境受到污染, 农田土壤质量和农产品品质受到影响[1]。2005年, 国家明确提出, 要努力培肥地力, 推广测土配方施肥技术, 提高土地综合生产力。为此, 农业部在全国范围内组织开展了测土配方施肥行动, 旨在实现科学施肥、最大限度地发挥肥料的增产效益, 同时减少化肥浪费和保护生态环境的目标[2]。

兴国县是全国200个测土配方施肥试点县之一。为了更好地建立一套完整的科学施肥体系, 目前正在大面积推广测土配方施肥技术和广泛进行试验示范。在项目实施过程中, 通过大范围取土和农户调查, 产生了大量的纸质调查数据, 并通过工作人员的努力, 完成了0.9万份土样采集调查表和1.8万份农户施肥情况调查表的录入工作, 均以1户对应1份Excel表形式存储于电脑上, 方便了数据的保存和调用。为了有效提升工作人员进行数据统计汇总的效率, 笔者提出了使用Excel数据提取器软件进行数据提取的办法, 以便大大提高数据汇总工作的效率[3]。

1 软件的功用与开发

Excel数据提取器是由土肥软件工作室廖诗传开发的一款小巧而实用的数据整理软件。它提供了从多个Excel工作簿中提取数据并整理成二维表的解决方案, 可以提取一个工作簿的多个工作表, 也可以提取多个工作簿的多个工作表的数据。此外, 还可对工作表的行列错动进行自动校正, 对提取出的数据进行基本统计参数的统计计算[4]。

2 软件操作流程

数据提取器操作简单、方便, 大致流程为:双击程序开启软件→进入操作界面→添加源文件→定义位置关系→执行数据提取→导出目标文件。

3 软件在测土配方施肥数据汇总中的应用

按照农业部制作的测土配方施肥采样地块基本情况调查表和农户施肥情况调查表模板, 分别统一录入单个Excel电子表。现需要对某些数据项, 如经纬度, 海拔高度, 常年降雨量, 常年产量, 农户N、P2O5、K2O施用量等进行汇总分析, 若用手工挑选数据项, 势必非常麻烦, 甚至浪费较长的时间。通过使用Excel数据提取器软件进行数据整理, 只需要在源文件栏中添加预提取格式一致的调查表, 时间对第1张数据表格内容进行定义位置关系, 核对无误后, 将第1张表的位置关系对应复制到所有目标源文件中的对应位置框格中, 然后点击执行数据提取 (工具栏中的“!”) , 即可将所需数据内容一一对应提取到所导出的目标工作簿表格中, 软件自动对提取出的数据进行基本统计参数 (如:累加值、样本数、平均值、最小值、最大值、频数分布等) 的统计计算 (图1、2) 。

通过Excel数据提取器软件在项目数据管理中的应用, 有效提升了数据整理汇总的工作效率, 简化了繁杂的数据整理工序, 减轻了人员工作强度, 提高了数据精确度, 在今后的项目工作中有着广泛的应用前景和空间。

4 软件应用中应注意的事项

(1) 准确定义“位置关系”很重要。一是在“视图”菜单栏中设置允许自动携带“源工作簿”栏目标题到“目标工作簿”, 执行“设定当前目标列位置关系”后, “目标工作簿”工作表的第1行, 会显示栏目标题。此外, “目标工作簿”工作表的单元格光标还会自动右移1列。这样, 可以集中精力在“源工作簿”工作表上挑选需要提取的数据项, 不必关注“目标工作簿”的列位置, 从而提高了工作效率。二是在定义位置关系时, 建议使用热键, 以便加快速度, 提高效率。三是对常用的位置关系, 可以将定义好的位置关系保存到磁盘文件以供下次直接调用。

(2) 熟练应用“复制位置关系”。布局相同的源文件, 其位置关系可复制, 布局不同源文件需要分别定义位置关系。

(3) 由于测土配方施肥数据在录入过程中大部分是以文本形式保存, 即“源文件”格式设置为“文本类型”, 提取后仍然保持为原来的格式, Excel将这些数字解析为文本, 因此, 数据统计分析前, 应及时转换为可计算数字格式再汇总分析。

(4) Excel数据提取器可以对提出数据进行一些如累加值、样本数、平均值、最小值、最大值、频数分布等的简单统计分析, 如果需要对提取的数据进行复杂的统计分析, 最好将目标工作簿导出到Excel中进行分析。

5 结论

针对测土配方施肥项目调查表格数据量大、分散、汇总繁难等特点, 提出利用Excel数据提取器软件进行数据提取的有效办法, 在很大程度上解决了测土配方施肥项目数据中个体汇总分析难的问题。

参考文献

[1]黄德明.十年来我国测土配方施肥的进展[J].植物营养与肥料学报, 2003, 9 (4) :495-499.

[2]黄明, 叶青, 等.2007年兴国县早稻测土配方施肥试验初报[J].江西农业学报, 2008, 20 (3) :64-66.

[3]陈立平.精准农业变量施肥理论与试验研究[D].北京:中国农业大学, 2003.

数据选择器 篇8

数据挖掘技术[1,2]是一门主要由统计学和人工智能组成的交叉学科。它的主要任务是从海量的数据集中提取隐藏的、有用的信息。目前, 数据挖掘技术已被广泛应用于电信、金融、网络安全、天气预报等领域[3]。随着信息技术的广泛应用, 数据在不断地以几何级数增长, 而且不少数据以数据流 (datastream) 的形式存在。如何处理这些数据流, 提取有价值信息已经成为了数据挖掘领域新的挑战。

数据流模型可以表示成, 其中t为时间戳并且单调递增, at为t时间到达的数据。数据流模型在以下几个方面不同于传统的数据模型:

1) 数据高速到达, 实时性要求高;

2) 数据的到达顺序无法控制;

3) 数据可能是无限多的, 数据流中的元素被处理后将被抛弃, 无法存档 (archive) 。

传统的数据挖掘技术要求数据全部保存在存储介质上, 因此不适用于数据流挖掘。由于数据流的无限性、实时性、连续性等特点, 数据流挖掘研究已经成为数据挖掘领域的研究热点。

在数据流挖掘过程中, 通常会在新到达的数据流中蕴含新的目标概念 (targetconcept) , 即概念漂移[4,5,6,7] (conceptdrift) 。这种随着时间而变化的目标概念给数据流的挖掘造成了极大的困难。为了解决这个问题由Wang等人[8]提出了一种利用加权的多个分类器挖掘概念漂移数据流的方法。该方法首先训练几个基础分类器 (比如C 4.5, RIPPER和贝叶斯等分类器) , 然后对分类器进行测试, 根据测试结果计算分类精度期望值, 依据精度期望值对各个分类器进行加权。Street等[9]提出了基于多分类器集成学习的概念漂移检测算法SEA。以上组合方法是目前比较流行的数据流挖掘算法。

SEA方法在更新集成分类器时总是把权值最低 (即:已经过时的分类器) 的单体分类器直接抛弃, 轻易地放弃了已经掌握的知识, 以后再遇到相同概念的时候需要重新训练学习, 导致算法效率不高。

如果集成分类器保留学习过的概念, 以后再遇到此概念时就不必重新训练, 节省训练时间。在概念重复频率高的情况下, 这种思想能够提高数据流分类算法的效率。

1概念重复出现的数据流分类模型和算法设计

1.1概念重复出现的数据流模型

数据流中蕴含的概念是随着时间而变化的。有一种数据流模型, 如图1所示, 它的最新到达的数据流中蕴含的概念是以前出现过的目标概念。

图1中, t为时间戳, 可以在时间轴上无限延伸。ai为t=i时到达的数据集, 可以为单个数据, 也可以为数据序列。如果在时间段宽度d内到达的数据集都属于同一个概念范畴, 则该概念的宽度为d。图1中, 时间段i<t<i+d内到达的数据集属于概 (1) 念范畴;时间段j<t<j+d内到达的数据集属于概念 (2) 范畴;时间段k<t<k+d内到达的数据集属于概念 (3) 范畴, 与时间段i<t<i+d内到达的数据集属于同一概念范畴。在概念 (1) 在时间段i<t<i+d第一次出现时, 集成分类器对其进行了学习, 如果在概念 (1) 出现时需要更新分类器, 这时把概念 (1) 的分类器抛弃了, 概念 (1) 第二次出现时就需要重新训练分类器, 造成了极大的资源浪费。

1.2算法设计

在以往的集成分类方法的基础上, 我们设计并实现了名为ECRRC的算法。首先采用ID 4算法作为基础分类算法, 利用集成分类器技术求出全局结果。一旦数据流中发生概念漂移, 集成分类器会自动更新, ECRRC把被抛弃的概念保存到外存中。在数据流中概念重复出现时, 算法读取已经学习了的概念用于数据流分类, 从而节省了重新训练的时间, 提高了执行效率。分类器更新过程如下:

e为新训练出来的单体分类器, En为集成分类器, En的容量是En能够装载的最大分类数量, w为En中单体分类器的权值 (w表示分类器概念与当前数据流蕴含的概念的相似程度) , 如图2。

算法给出集成分类器的更新过程。关于基础分类器的权值衰减过程, M ID 4算法[9]以及SEA算法已经有良好的表现了。针对概念重复出现的数据流, 我们在这里没有设定阈值用来删除基础分类器, 而是选择了权值w最小的删除, 保证每次只删除一个基础分类器, 尽量多保存目标概念。并将这个被集成分类器删除了的基础分类器保存到外存中去。

集成分类器中保存的是最新流行的概念, 对于旧的概念, 我们使用另外附加一定数量的基础分类器。这些基础分类器中的概念随机地从外存中调入到内存中。

同时维护一个能够描述集成分类器中附加分类器所占的比率的因子rate, 这个数值根据概念重复的频度成正比, 这代表着如果当前数据段中概念重复出现的情况比较严重, 那么就相应地增加附加分类器的比率。

有一种特殊的情况, 就是在提取概念到外存时, 我们以前已经提取过同样的概念了, 算法依然会将此概念保存到外存中。这样做的原因是:

首先, 存储一个概念不需要太大的系统资源, 一颗普通的二叉树只有几KB的大小。

其次, 由于我们后期在外存中提取概念是随机提取的, 对于同样的概念保存的次数越多, 提取此概念的概率也就越大, 也就是说数据流中隐含该概念的数据量大, 进而算法找到正确的基础分类器的几率也提高了。

在提取概念并保存到外存的过程中。我们提取的概念是一颗二叉树, 这颗树可以被还原到集成分类器中。这样不必存储数据流数据也能保存已经学习过的知识。首先求出树的先序序列, 再保存这个序列到外存, 以后提取的时候可以使用这个先序序列建立二叉树的二叉链表。

2实验

我们使用SEA数据集模拟概念漂移, 其结构为 (f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, C}其中f是条件属性 (取值范围1~10) , C是决策属性 (例如, 当样本属性满足条件f1+f2<p时, 属于class1, 否则属于class2) 。产生10 000条样本, 其中包含8个概念, 有3个概念分周期地重复出现在数据流中。因此, 它可以被用来评价算法处理概念重复数据流的能力。

为了使用标准的SEA概念来衡量ECRRC算法和SEA算法, 使用了SEA数据集。数据块D=500, 分别在无噪音和含有5%噪音两种情况下进行实验。集成分类器含有6个基础分类器, 附加2个保存旧概念的基础分类器。

实验方案:在相同的数据集上测试算法, 在特定的数据段上提高概念变化的频度迫使集成分类器进行更新。这个数据段中会重复出现以前有可能被集成分类器抛弃的概念, 用以测试算法处理概念重复出现的数据流能力。

两个算法的实验结果对比如图3、图4所示。在无噪音情况下ECRRC算法与SEA的准确率基本相同。在数据段分别为100到150, 250到300阶段, 350到400阶段 (在这3个阶段数据流中发生较多的概念漂移, 并且概念重复出现的概率加大。ECRRC捕获到一些重复概念, 因而准确率明显优越于SEA算法。

在5%噪音情况下, ECRRC算法表现出了较好的抗噪性, 另外在150到250的位置数据流发生概念漂移的频率骤然升高导致准确率下降, 在这个阶段ECRRC捕获到了少量旧概念, 2种算法表现相差不大。在350到450的位置, 数据流发生概念漂移的频率变得更大, 概念重复出现的频率更高, 由于ECRRC捕获到了较多的旧概念, 所以准确率明显高于SEA。

3结论

本文提出了一种使用集成分类器方法提取并保存数据流中所出现过概念的方法。实验表明, 针对概念重复出现频度较高的数据流, 该算法有较好的适应性。

参考文献

[1]Han J, Kamber M.Data mining:concept and techniques.2ed.San Fransisco, CA.Higher Education Press, 2001:1—7

[2]Tan Pang ning, Sreinbach M, Kumar V.数据挖掘导论.范明, 范宏建, 译.北京:北京大学出版社, 2006

[3]王涛, 李周军, 颜跃进, 等.数据流挖掘分类技术综述.计算机研究与发展, 2007;44 (11) :1809—1815

[4]Widmer G, Kubat M.Learning in the presence of concept drift and hidden contexts.Machine Learning, 1996;23 (1) :69—101

[5]金激清, 钱卫宁, 周傲英.流数据分析与管理综述.软件学报, 2004;15 (8) :1172—1181

[6]史金成, 胡学刚.数据流挖掘研究.计算机技术与发展, 2007;17 (11) :11—14

[7]Domingos P, Hulten G.Mining high—speed data streams.Proc of ACM SIGKDD Inter Conference Knowledge Discovery in Databases (KDD’00) , 2000:71—80

[8]Wang H, Yin J, Pei J.Suppressing model over-fitting in mining con-cept-drifting data streams.SIGKDD’06.Philadelphia.[s.n.], 2006:736—741

数据选择器 篇9

空间数据库[1,2,3,4]在GIS[5]中的作用与地位越来越重要, 并将成为GIS产业之争的主导者之一。空间数据信息不仅有一般属性信息的特征, 还具有数据量大、多尺度等特性。因此为了高效地存储和管理大容量的空间数据, 以提高现有数据的利用效率和共享程度, 研究和设计空间数据库磁盘管理器是十分必要的, 也是进行空间数据快速访问和处理的基础。该研究将填补目前我国空间数据库及其磁盘管理器研究的空白, 并将对建立我国具有自主知识产权的GIS基础软件、空间数据库管理系统产生十分积极的作用。随着数据库处理能力的增强、GIS应用需求的增加和数据量的日趋庞大, 建立和使用真正意义的空间数据库管理系统已是大势所趋。

1空间数据

1.1 类型

Oracle空间数据库支持三种基本的空间几何类型:点 (例如天上的星星) ;线 (例如道路) ;多边形 (例如行政区域边界) 。

1.2 模型

Oracle提供的空间数据模型包含元件 (基本的几何类型) 、几何体和层 (Layer) 。层是由几何体或几何体对象构成, 而几何体又是由三种基本的几何类型构成, 因此, 它又被称为层递式结构模型。

元件 (点、线和多边形) 是构成空间几何物体最基本模块, 元件的每个坐标是用x (横坐标) 和y (纵坐标) 来表示。点包含一对x, y坐标;线由两对x, y坐标构成;多边形包括多条有向线段, 即包含多对x, y坐标, 这些坐标顺时针或逆时针定义在多边形的周围。

几何体 由一组原始的元件构成, 用来描绘空间几何特性。每个几何体都有一个惟一的标识符 (GID) 。使用GID将几何体中的一组元件互相联系。

层 是具有相同属性的各种各样的几何体的集合。例如:某一层在GIS中包含地形学的特征;某一层也许是用来描绘人口密度的;而另一层也许是用来描绘某个区域中的道路和桥梁 (用点和线表示) 的;每层的几何体对象和它们的空间索引都储存在标准表中。

1.3 数据库结构

Oracle是用4个数据库表 (见图1) 来存储空间数据和为空间数据建立索引的, 这4个表通常称作为层。Oracle 使用自定义的函数使这4个表互相联系。

各个表的每列定义如下:

(1) <layername>_SDOLAYER:SDO_ORDCNT列表示在<layername>_SDOGEOM数据库表中每行有几列用来存放坐标值。SDO_LEVEL列表示进行索引时分割这个图层的次数。SDO_NUMTILES列表示划分<layername>_SDOGEOM数据库表中每个几何对象所需TILES (TILE 索引法) 的个数。SDO_COORDSYS列指定你所用的坐标系统的名称 (直角坐标, 极坐标等) 。

(2) <layername>_SDODIM:SDO_DIM列表示几何对象的维数, 第一行是1, 然后每行递增。SDO_LB列表示该维坐标的下限 (例如纬度不低于-90°) 。SDO_UB列表示该维坐标的上限 (例如经度不超过180°) 。SDO_TOLERANCE列表示两个点相距的距离不超过该列的值可以被视为同一个点。SDO_DIMNAME列指出该维的名称 (例:x, y坐标, 经度, 纬度) 。<layername>_SDOGEOM:SDO_GID列表示某图层中几何对象的惟一数字标志符。SDO_ESEQ列枚举了几何对象中的每个元件 (点、线、多边形) 。SDO_ETYPE列表示每个元件的几何类型 (1代表点, 2代表线, 3代表多边形) 。SDO_SEQ列记录组成该元件的数据在每行的顺序。SDO_X1列表示第一个坐标的横坐标的值。后几列类似。

(3) <layername>_SDOINDEX:SDO_GID列与上面定义的相同。SDO_CODE列表示该层中的某个几何对象所覆盖的TILE的标志符。SDO_MAXCODE用来在使用可变TILE进行索引时描绘当前象限最小的那个逻辑TILE。SDO _GROUPCODE是SDO_CODE的前缀。SDO_META提供足够的信息来找到某个TILE的边界。

2存储空间数据的方法

空间数据信息不仅有一般属性信息的特征, 还具有数据量大、多尺度等特性。Oracle用了4个数据库表来存储一个层的信息, 其数据量非常大, 而BLOB可以一次分配多个页来存储大量的二进制数据, 即可以实现对Oracle中层的存储, 因此为了高效地存储和管理大容量的空间数据, 采用二进制大对象 (binary large object, BLOB) 方式进行存储。BLOB在磁盘上的结构如图2所示。

BLOB的数据结构 (BLOB存储在磁盘上) :

(1) BLOB空间是由若干个BLOB组成, BLOB空间和空间里的BLOB对象都有自己的ID (BLOBSpaceID和BLOBID) 。

(2) 每个BLOB对象由许多的Page组成, 每个Page有自己的ID。BLOB对象中的第一个Page是root Page, root Page通过它的数据结构中的NextPage 指针指向第一个leaf Page, 第一个leaf Page通过它的数据结构中的NextPage指针指向第二个leaf Page, 依次类推, 所有的Page组成一个链表。空间数据就存放在Leaf Page中。

3存储空间数据的磁盘页管理器的设计

page 是Disk Manager[6,7,8,9,10,11,12,13,14] 管理对象中最小的单位, 是磁盘和Buffer之间交换数据的最小单位。Block 是物理上邻接的多个Page集合, 是给文件 (File) 分配、回收空间的最小单位。文件是由多个Block构成, 理论上是Recorder (记录) 存放的空间。Segment是物理上连续的部分Disk Partition或全部Disk Partition , 或一般OS上的文件。Database由一个或多个Segment构成, 理论上是一个Disk Object, 每个File都属于一个Database。

3.1 数据页

Data Page 是File (文件) 中数据实际存放的地方, 由存放Data (数据) 的数据区域和存放Page自己属性的Header部分构成。

3.1.1 Data Page的数据结构 (C/C++描述)

3.1.2 Data Page的数据结构

Data Page的数据结构的示意图如图3所示。

3.1.3 Page Manager的数据结构的设计思想

(1) 一个Disk Object物理上是由一个或多个Segment构成, 这里我设定一个Disk Object包含256个Segment;一个Segment是由一个或多个Block构成, 也设定一个Segment包含256个Block;一个Block是由邻接的多个Page构成, 也设定一个Block包含256个Page。

(2) 一个Disk Object逻辑上是由一个或多个文件构成 (这里文件是指数据库系统的表空间的概念) , 这里设定一个Disk Object含有其相应的Page Info File和Page File:

Page Info File存储了每个Block所包含的256个Page的指针 (偏移量) , 如果该Disk Object占用了几个Page, 那么Page Info File就存储了这几个Page的指针, 其他的偏移量 (指针) 被赋予-1, 来表示没被该Disk Object使用。

Page File是由该Disk Object占用的那几个Page本身构成, 各个Page顺次排列。

(3) Segment , Page, Block 和File之间的关系如图4所示。

这样就把Page Manager的各个部分有机地结合起来了, 各部分之间紧密联系如图5所示。

3.2 具体编程实现的设计

3.2.1 Page Class的设计 (用C/C++描述)

3.2.2 功能函数的分析与设计

(1) 当对数据页中的数据进行操作时 (读数据、写数据、修改数据和删除数据) , 首先要寻找到这个记录, 根据PageID和SlotID就可以找到记录, 然后再进行对数据的操作 (ReadData () , WriteData () , DeleteData () ) 。PageID和Slot的数据结构用C/C++描述:

(2) 当一页已经被记录写满时, 我们就用Alloc () 函数申请新的一页, 如果某页因为删除等操作, 致使该页没有任何记录存在, 为了有效地利用磁盘空间, 我们调用Free () 函数把该页释放, 以供重新被申请。

(3) 每次进行页分配的时候, 为了提高系统的效率, 总是一次性分配多页, 如果数据页已满, 则调用AttachPage () 函数来增加页以便存放数据。如果该页中原来的记录完全被删除, 则调用DetachPage () 函数来丢弃该页, 但不释放, 以便需要新增加页的时候直接获取, 而不必去调用Alloc () 函数去分配页。这样就大大节约了系统处理的时间。

(4) 当某页删除了某些记录以后, 页中就剩下了很多空闲的空间, 如果没有处理这种现象, 将会有很多的磁盘空间被白白地浪费, 所以调用PageAdjusting () 函数来弥补这一不足之处。

(5) 当向某页进行写记录时, 先调用IsWritable () 函数, 看该页是否有记录长度与Slot长度的总和大小的空间, 如果有, 就返回真, 否则, 返回假。

4结语

本文设计健壮的统一管理空间数据和属性数据的、通用的、具有自主知识产权的空间数据库磁盘管理器将大大减少后继系统开发的费用, 避免重复设计。它的通用性不仅保证了该产品可为多种系统开发或应用开发所用, 从而节省了开发成本, 而且提高了GIS 等应用中的空间数据存储和检索效率。整个设计采用模块化系统设计和程序设计方法, 提高了代码的可重用性, 增强了系统的开放性、可靠性及稳定性。

摘要:空间数据库磁盘管理器为GIS等应用中的空间数据和属性数据提供统一的存储和管理, 研究它将对创建我国具有自主知识产权的空间数据库存储管理器、空间数据库管理系统产生积极的影响。介绍和分析了Oracle提供的空间数据模型, 并在这个模型的基础上提出了空间数据的磁盘存储的新方法, 同时对其进行了设计。

上一篇:轮轴式组织下一篇:疏水回收