第一篇:枫树坝水库洪水实时预报校正方法研究
枫树坝水库洪水实时预报校正方法研究
摘要:本文基于枫树坝水库洪水预报误差信息,探讨了多种洪水实时预报校正模型与计算方法,实际洪水模拟计算表明AR(2)模型的自适应实时校正方法和卡尔曼滤波方法的预报校正效果较好。
关键词:实时校正 自回归模型 可变遗忘因子 卡尔曼滤波
在洪水预报中,一般洪水预报方案是根据以往的实测资料编制的,其中洪水预报模型的参数或相关曲线,反映的都是以往资料情况下平均最优值或者关系曲线。但在作业预报时,由于存在一般与特殊情况即平均与个例的关系,当实际状况发生偏离一般情况时,就会使预报方案的结果发生明显偏差。如果我们能够利用作业预报过程中随时得到的误差信息(新息),恰当调整下一步用预报方案推算所得的数值或采用的参数,将会提高预报精度。广东省枫树坝水库现建有降雨径流的概念性水文模型,随着近年来水情自动采集系统的建立和完善,从而为水库洪水实时预报创造了有利条件。本文主要利用枫树坝水库洪水预报误差信息,对枫树坝水库洪水实时预报校正模型与方法进行探讨。
1.枫树坝水库概念性流域水文模型简介[1]
枫树坝水电厂位于广东东江上游梅光村附近,控制流域面积5150平方公里。流域内有两大支流,西支为贝岭水,东支为寻邬水。在建立的枫树坝水库概念性流域水文模型中,根据流域内水文站、雨量站分布、自然地理条件和水利水电工程等情况,将全流域分为桃西、黎樟峰和区间三个单元流域。对枫树坝水库内划分的三个单元流域,分别采用考虑水利工程影响流域的产流模型计算各自的产流过程。在产流模型中,考虑到降雨时空分布不均和水利工程分布不均匀对产流的影响,进一步按雨量站对单元区进行分片,求出每片的地面、地下净雨。采用各雨量站控制剩余面积上的权重,加权平均得到剩余面积上的净雨,将水库的弃水量和发电水量换算成剩余面积上的地面净雨,两者相加,再换算成单元面积上的地面净雨。采用各雨量站控制剩余面积上的权重,对每片的地下净雨加权平均,再加上换算成单元面积上的灌溉回归水,得到单元面积上的地下净雨。地面净雨采用单元面积上的经验单位线进行地面汇流计算,地下净雨采用地下水库汇流模型进行计算,可分别得到各个单元面积上的地面、地下汇流过程。将各单元径流过程按时序迭加,即可得到预报的入库洪水过程。
在实际洪水预报中,尽管流域产流模型考虑得比较精细,但汇流经验单位线计算流量过程有时还有不尽人意的地方。要进一步提高洪水预报精度,应用现代系统理论对洪水预报的误差进行实时校正,是一种实用而有效的方法。一般来讲,当概念性水文预报模型确定之后,进行实时预报校正涉及到两方面的研究内容:一是建立洪水实时预报校正模型;二是采用有效的实时校正技术。
2.模型预报流量与实测流量相关校正方法
如果模型预报流量与实际反推的入库流量有较大的系统误差时,可以采用传统的相关分析方法,直接利用模型预报流量与反推的入库流量,建立洪水预报的相关校正模型。可以采用比较简单的直线相关方法进行分析,其直线相关方程为
3.多阶自回归洪水实时校正方法概念性流域水文预报模型使得水文模型呈现为较复杂的“隐式”结构,模型参数识别存在着计算的复杂性,很难用实测数据直接地实时修正模型参数。目前在利用流域水文模型进行洪水实时预报校正时,一种有效的方法是用确定性流域水文模型加上实时校正处理的算法。
对枫树坝水库1989年5月的一次洪水过程进行模拟预报校正计算,模拟计算结果可以看到,建立的一阶、二阶自回归校正模型提高预报精度的效果比较明显,其中二阶自回归校正模型的自适应递推和卡尔曼滤波算法效果更好;而模型预报流量与实测流量相关校正计算方法,基本上没能提高洪水预报精度。
参 考 文 献
1.雒文生等,受水利水电工程影响流域径流预报方法的探讨,水文,1991(3):13~20
2.宋星原,河道洪水实时预报方法研究:[博士学位论文],武汉水利电力大学,19953.文康等,地表径流过程的数学模拟,北京,水利电力出版社,1991,12
第二篇:改善嵌入式LINUX实时性能的方法研究
摘要:分析了linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从三方面提出了改善linux实时性能的改进措施。为提高嵌入式应用响应时间精度,提出两种细化linux时钟粒度方法;为增强系统内核对实时任务的响应能力,采用插入抢占点和修改内核法增强linux内核的可抢占性;为保证硬实时任务的时限要求,把原linux的单运行队列改为双运行队列,硬实时任务单独被放在一个队列中,并采用mlf调度算法代替原内核的fifo调度算法。关键词:linux;实时性;调度策略;抢占 2 linux 在实时应用中的技术障碍 2.1 linux的实时性分析
linux作为一个通用操作系统,主要考虑的是调度的公平性和吞吐量等指标。然而,在实时方面它还不能很好地满足实时系统方面的需要,其本身仅仅提供了一些实时处理的支持,这包括支持大部分posix标准中的实时功能,支持多任务、多线程,具有丰富的通信机制等;同时也提供了符合posix标准的调度策略,包括fifo调度策略、时间片轮转调度策略和静态优先级抢占式调度策略。linux区分实时进程和普通进程,并采用不同的调度策略。
为了同时支持实时和非实时两种进程,linux的调度策略简单讲就是优先级加上时间片。当系统中有实时进程到来时,系统赋予它最高的优先级。体现在实时性上,linux采用了两种简单的调度策略,即先来先服务调度(sched-fifo)和时间片轮转调度(sched-rr)。具体是将所有处于运行状态的任务挂接在一个run-queue 队列中,并将任务分成实时和非实时任务,对不同的任务,在其任务控制块task-struct中用一个policy属性来确定其调度策略。对实时性要求较严的硬实时任务采用sched-fifo调度,使之在一次调度后运行完毕。对普通非实时进程,linux采用基于优先级的轮转策略。2.2 linux在实时应用中的技术障碍
尽管linux本身提供了一些支持实时性的机制,然而,由于linux系统是以高的吞吐量和公平性为追求目标,基本上没有考虑实时应用所要满足的时间约束,它只是提供了一些相对简单的任务调度策略。因此,实时性问题是将linux应用于嵌入式系统开发的一大障碍,无法在硬实时系统中得到应用。linux在实时应用中的技术障碍具体表现在:(1)linux系统时钟精度太过粗糙,时钟中断周期为10ms,使得其时间粒度过大,加大了任务响应延迟。(2)linux的内核是不可抢占的, 当一个任务通过系统调用进入内核态运行时,一个具有更高优先级的进程,只有等待处于核心态的系统调用返回后方能执行,这将导致优先级逆转。实时任务执行时间的不确定性,显然不能满足硬实时应用的要求。(3)linux采用对临界区操作时屏蔽中断的方式,在中断处理中是不允许进行任务调度的,从而抑制了系统及时响应外部操作的能力。
(4)缺乏有效的实时任务调度机制和调度算法。
针对这些问题,利用linux作为底层操作系统,必须增强其内核的实时性能,从而构建出一个具有实时处理能力的嵌入式系统,适应嵌入式领域应用的需要。2.3 当前增强linux内核实时性的主流技术
近年来,人们对于linux内核实时性改造提出了一些方法和设想,它们采用了不同的思路和技术方案。归纳总结,支持linux的硬实时性一般有两种策略[5]:一种是直接修改linux内核,重新编写一个由优先级驱动的实时调度器(real-time scheduler),替换原有内核中的进程调度器sched.c,kurt是采用这一方案较为成功的实时linux操作系统;另外一种是在linux内核之外, 以可加载内核模块(loadable kernel module)的形式添加实时内核,确保其高响应特性,实时内核接管来自硬件的所有中断,并依据是否是实时任务决定是否直接响应。新墨西哥科技大学的rt-linux,就是基于这种策略而开发的。以上两种策略有其借鉴之处,但如果综合考虑任务响应、内核抢占性、实时调度策略等几个影响操作系统实时性能的重要方面,它们还不能很好的满足实时性问题。为了增强嵌入式linux实时性能,下文将就内核时钟精度、内核的抢占性以及内核调度算法等相关问题重点研究相应的解决方法。3 改善嵌入式linux实时性能的方法 针对linux在实时应用中的技术障碍,将linux改造成为支持实时任务的嵌入式操作系统, 主要从下面三个方面进行着手。
第三篇:高中信息技术教学论文改善嵌入式Linux实时性能的方法研究.
改善嵌入式Linux实时性能的方法研究
摘要:分析了Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从三方面提出了改善Linux实时性能的改进措施。为提高嵌入式应用响应时间精度,提出两种细化Linux时钟粒度方法;为增强系统内核对实时任务的响应能力,采用插入抢占点和修改内核法增强Linux内核的可抢占性;为保证硬实时任务的时限要求,把原Linux的单运行队列改为双运行队列,硬实时任务单独被放在一个队列中,并采用MLF调度算法代替原内核的FIFO调度算法。
关键词:Linux;实时性;调度策略;抢占 1 引言
目前,无论是在日常生活,还是在工业控制,航空航天,军事等方面,嵌入式系统都有着非常广泛的应用。嵌入式系统目前主要有:Windows CE、VxWorks、QNX等,它们都具有较好的实时性、系统可靠性、任务处理随机性等优点,但是它们的价格普遍偏高。而嵌入式Linux以其非常低廉的价格,可以大大的降低成本,逐渐成为嵌入式操作系统的首选。但是,作为通用操作系统的Linux,由于其在实时应用领域的技术障碍,要应用在嵌入式领域,还必须对Linux内核作必要的改进。许多嵌入式设备都要求与外部环境有硬实时的交互能力,将最初按照分时系统目标设计的Linux 改造成能支持硬实时性的操作系统显得十分重要。幸运的是, Linux 及其相关项目的开放源码特征为深入研究其内核并加以改造提供了可行性, 可以修改Linux 内核中的各个模块以达到满足嵌入式应用的需求,提高软件方面的开发速度。目前,改善Linux内核的设计与实现,使其适用于实时领域吸引了许多研究和开发人员的注意力[1-4]。常用的实时性改造方法是采用双核方法,这种方法的弊端在于实时任务的开发是直接面向提供精确实时服务的小实时核心的,而不是功能强大的常规Linux核心。基于此,近年来修改核的方法越来越受到科研人员的重视,这种方法是基于已有Linux系统对于软件开发的支持,进行源代码级修改而使Linux变成一个真正的实时操作系统。本文分析了标准Linux在实时应用中的技术障碍,参考了修改核方法的思想,从内核时钟管理、内核的抢占性、内核调度算法三方面论述了改善标准Linux实时性能的方法。2 Linux 在实时应用中的技术障碍 2.1 Linux的实时性分析
Linux作为一个通用操作系统,主要考虑的是调度的公平性和吞吐量等指标。然而,在实时方面它还不能很好地满足实时系统方面的需要,其本身仅仅提供了一些实时处理的支持,这包括支持大部分POSIX标准中的实时功能,支持多任务、多线程,具有丰富的通信机制等;同时也提供了符合POSIX标准的调度策略,包括FIFO调度策略、时间片轮转调度策略和静态优先级抢占式调度策略。Linux区分实时进程和普通进程,并采用不同的调度策略。为了同时支持实时和非实时两种进程,Linux的调度策略简单讲就是优先级加上时间片。当系统中有实时进程到来时,系统赋予它最高的优先级。体现在实时性上,Linux采用了两种简单的调度策略,即先来先服务调度(SCHED-FIFO)和时间片轮转调度(SCHED-RR)。具体是将所有处于运行状态的任务挂接在一个run-queue 队列中,并将任务分成实时和非实时
用心
爱心
专心 任务,对不同的任务,在其任务控制块task-struct中用一个policy属性来确定其调度策略。对实时性要求较严的硬实时任务采用SCHED-FIFO调度,使之在一次调度后运行完毕。对普通非实时进程,Linux采用基于优先级的轮转策略。2.2 Linux在实时应用中的技术障碍
尽管Linux本身提供了一些支持实时性的机制,然而,由于Linux系统是以高的吞吐量和公平性为追求目标,基本上没有考虑实时应用所要满足的时间约束,它只是提供了一些相对简单的任务调度策略。因此,实时性问题是将Linux应用于嵌入式系统开发的一大障碍,无法在硬实时系统中得到应用。Linux在实时应用中的技术障碍具体表现在:(1)Linux系统时钟精度太过粗糙,时钟中断周期为10ms,使得其时间粒度过大,加大了任务响应延迟。
(2)Linux的内核是不可抢占的, 当一个任务通过系统调用进入内核态运行时,一个具有更高优先级的进程,只有等待处于核心态的系统调用返回后方能执行,这将导致优先级逆转。实时任务执行时间的不确定性,显然不能满足硬实时应用的要求。
(3)Linux采用对临界区操作时屏蔽中断的方式,在中断处理中是不允许进行任务调度的,从而抑制了系统及时响应外部操作的能力。(4)缺乏有效的实时任务调度机制和调度算法。
针对这些问题,利用Linux作为底层操作系统,必须增强其内核的实时性能,从而构建出一个具有实时处理能力的嵌入式系统,适应嵌入式领域应用的需要。2.3 当前增强Linux内核实时性的主流技术
近年来,人们对于Linux内核实时性改造提出了一些方法和设想,它们采用了不同的思路和技术方案。归纳总结,支持Linux的硬实时性一般有两种策略:一种是直接修改Linux内核,重新编写一个由优先级驱动的实时调度器(Real-time Scheduler),替换原有内核中的进程调度器sched.c,KURT是采用这一方案较为成功的实时Linux操作系统;另外一种是在Linux内核之外, 以可加载内核模块(Loadable Kernel Module)的形式添加实时内核,确保其高响应特性,实时内核接管来自硬件的所有中断,并依据是否是实时任务决定是否直接响应。新墨西哥科技大学的RT-Linux,就是基于这种策略而开发的。以上两种策略有其借鉴之处,但如果综合考虑任务响应、内核抢占性、实时调度策略等几个影响操作系统实时性能的重要方面,它们还不能很好的满足实时性问题。为了增强嵌入式Linux实时性能,下文将就内核时钟精度、内核的抢占性以及内核调度算法等相关问题重点研究相应的解决方法。3 改善嵌入式Linux实时性能的方法
针对Linux在实时应用中的技术障碍,将Linux改造成为支持实时任务的嵌入式操作系统, 主要从下面三个方面进行着手。
[5]
用心
爱心
专心 2