2022-04-20
基于环境敏感的植物动态生长模型研究
摘要:在对林学中的植物生长模型和环境模型综合研究的基础上,提出了一个基于环境敏感的植物动态生长模型,并对此模型的原理和实现方法进行了分析和研究,最后通过相应的可视化技术将该模型应用于虚拟森林的动态仿真系统。
关键词:L系统;植物模型; 动态生长模型; 环境敏感性
中图分类号:TP391文献标志码:A
文章编号:1001—3695(2007)03—0223—03
随着计算机图像和仿真的发展,对植物的模拟需求也不断增大,特别是在林业上的应用已成为关注热点。L系统[1]是目前比较流行的通过计算机来模拟植物生长的一项技术,其应用也很广。比较典型的有著名的加拿大Calgary大学的Prusinkiewicz教授和美国生物学家Lindenmayer共同开发了基于L系统的用来模拟不同物种的多种算法[2~4]。另外M. Aono,T.L. Kunii和J. Bloomenthal等人也作了相关研究[5,6]。
在对这些相关研究作了分析后,为了能更好地服务于森林的动态仿真,笔者将林窗模型[7]与L系统进行了有机结合,并在此基础上提出了基于环境变化的植物动态生长模型。该模型通过控制外部环境因素(阳光、水分、温度等)来影响植物的内部生长因素,从而能更好地体现植物在不同环境中生长的真实性。本文简单介绍L系统的相关原理,然后提出概念模型,再根据概念模型构造植物动态生长模型,并进行系统设计和实现。
1L系统的基本原理
L系统是美国生物学家Lindenmayer于1968年提出的一个用来模拟植物生长的数学模型,其实质就是一个基于字符的重写系统[2]。它通过自定义一套由字符串组成的文法和一组相应的替换产生式规则,然后用这些规则对文法进行分析和替换模拟出结果,从而达到用形式语言的方法来描述植物的生长过程。 L系统主要分为上下文无关L系统(D0L系统)、概率L系统、参数L系统和上下文相关L系统。其中D0L系统是最简单的一种,只含有简单文法的定义和规则,适合模拟简单的树[2]。
以D0L系统为例来说明其主要思想。令V表示字母,V*表示V上所有单词的集合,一个D0L系统是一个有序的三元集G=V, w, P,这里w是一个非空单词,也是起始符号元,称作公理,P是所谓产生式的有限集合,产生式写作a→x,字母a和单词x分别称作产生式的前驱和后继。规定对任何字母a∈V,至少存在一个非空单词x,使得a→x。若对给定的前驱a∈V无明确解释的产生式,则规定a→a这个特殊的产生式属于P。对每个a∈V,当且仅当恰有一个非空单词x,使a→x,那么就说D0L系统是一个确定的,记为D0L系统。依据D0L系统的原理,按照一定的重写规则,并加以参数控制,即可模拟植物的各种形态及其生长过程。
植物在生长过程中,从总体形态可看出,处处蕴涵着分形的性质。如果简化植物的生长过程,先从土中长出一根小树杆,然后随着树杆的生长,又会长出分支;而各个分支又会长出更小的分支,如此反复。一般植物的分支结构可以用L系统的迭代重写过程来生成。下面给出一个简单的L文法来模拟一棵简单的树(图1)。
[为将当前状态存入堆栈;
]为取出堆栈中的最后一个入栈的状态。
首先文法中定义了一个迭代次数,然后给出了一个公理A,接着列出了两条替换规则,在每次迭代时,都会将公理中含有A和F的地方分别用规则进行替换。图1就是文法1经过八次迭代所得到的图形。
2环境敏感模型的构建
通过对植物与环境交互的概念模型的研究,本文对环境敏感模型进行了分析和构建。由于植物的生长机理比较复杂,所以要建立一个完整的生长模型十分困难,因此本文对L系统和环境参数作了相应的改变和扩展,并且以最典型的植物——树作为具体的研究对象,而如何将环境因素融入到树生长过程中的研究作为本模型的核心,即如何确定环境因素与树木生长之间相互关系的量化表示,最后用OpenGL技术作为模拟平台来描述树木在不同的环境参数影响下拓扑及形态结构的构成和变化。
2.1植物与环境交互概念模型
虽然用L系统通过简单的文法能模拟出一些简单的植物,甚至可以模拟出比较复杂的植物模型,但是它只能是从大致的外部形态上去仿真,而植物的形态除了由其内部生长因素决定外,还受到许多外部环境因素的影响[8]。根据Prusinkiewicz在文献[9]中提出的概念模型可知,当植物接收来自外界的阳光、水分、气候等环境因素的时候,它的内部生长系统会受到一定的影响,从而导致外部形状的变化。植物的生长过程就是它与它所在的环境之间交替进行接收信息、反馈信息的过程,是一个连续的事件链。当它察觉到外部环境某些刺激物时,一些信息会被传递到其内部,并作出相应的反应;而此反应又会反作用于环境,使环境发生改变。例如,土壤里的根系会根据其周围的水分浓度,进行吸收水分或者释放水分。根据这一原则,植物与环境的相互作用可以概括为两个互相交流的同步进程,因此形成了一个信息流的反应链(图2)[9]。
从此模型中可以概括如下结论。
对于植物而言,它所要处理的主要过程有:①通过各个组织器官来接收环境信息;②将得到的信息转移到内部并进行处理;③以生长的方式(如生长出新枝)将处理后的信息继续反馈给环境。
同样,对于环境来说也有相似的运行机制,即感知植物的反馈信息;环境内部数据的处理;形成新的环境,被植物所感知。
2.2环境敏感模型分析
根据上述的概念模型提出了一个基于植物动态生长的模型,此模型不但能解释一般L文法,而且还增加了一个植物和环境的交互模块,即生长模型—环境模型(图3)。该模型包括了植物表达模型、植物生长模型、环境分析模型和环境参数(阳光、温度、水分等)。其中植物表达模型主要是L文法的表示,植物生长模型则在接收环境模型所传递的信息同时将文法进行分析模拟;而环境分析模型主要用来接收环境参数和传递信息给生长模型。由于植物生长受到自身内部因素的控制,所以这里提出了两个重要概念,即内部生长因子和外部环境因子。内部生长因子是控制植物生长的因素;而外部环境因子是影响内部生长参数的因素。因此该系统通过环境模型接收外部环境参数,然后通过一定的生长计算模型来改变内部生长因子,从而达到控制植物生长的效果。
2.3环境敏感模型的实现
由于林学上对环境与植物生长的关系已有研究,比较著名的是Watt提出的林窗模型[7]。
林窗模型是建立在森林循环动态理论基础上,通过模拟林分内单木的出生、生长和死亡与环境因子的关系来研究森林的动态变化。本文以典型的杉木林窗模型为例来实现此模型,它包括了温度效应、湿度效应和光照效应等环境适宜性函数。一般来说一棵树可以通过以下几个特征:胸径(DBH)、树高(H)、冠幅(CD)和冠高(CH),就可以大致地描绘出该树的基本形状。杉木林窗模型为我们提供了一个生长模型,此生长模型先假设在理想的环境下,然后用现实环境因子(G,V)对它进行修正,最后得到实际生长量,即胸径的最优生长方程:
其中,fDBH(t)、 fH(t)分别为胸径和树高;Dmax和Hmax表示树木的最大胸径和树高,fCD(t)为冠幅,t为年龄。G是生长参数,是影响群落演变的关键参数,与生长环境有关;生长环境参数V取值为0~1,若生长环境优越,则G取最大值310;若生长环境差,生长环境参数取值则小,G值也越小。
从以上公式中可以看出,其主要功能是树与环境之间建立了一种关系,使得树的生长受外界环境的影响。但是树的特征不够多,为了能更好更详细地描述树的特征,如树干树枝的直径、树枝的生长角度等,同时也使模拟过程更加逼真和灵活,笔者又参考了林学中的一些树生长计算模型,引用了以下树特征约束方程[9~13],并通过其中的接口参数(fDBH(t)、fH(t)、fCD(t)来实现与前面提到的林窗模型进行有效连接,从而达到预期效果。
从以上公式中可以看出,如果给定某树种,则可根据该树种的植物学特点分析得到特定环境对应的生长参数G,再通过时间t可计算得出该树种的生长量以及各个特征属性(胸径、树高、冠高、冠幅、树枝粗细方位等),而这些特征属性正好为L文法提供了所需的参数。如第1.1节中的L文法:
其中可以把迭代数映射到时间t以及树高,把+/映射到树枝转角,改变F→FF产生式可以映射成生长速度等,还可以根据需求增加相应的参数来增强模拟的效果,从而为森林动态生长模拟提供了坚实的基础。
3应用
通过上文的实现方法,将该模型应用到虚拟森林的动态仿真系统中,以VC++作为程序的开发平台,并且利用目前主流的图形开发库OpenGL作为图像的模拟核心引擎,再根据相应的树种,就可以模拟出该树种在不同环境下(即不同的环境参数G)的生长状态。
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
原版全文
相关文章
- 详细阅读
- 基于生长机的芦苇形态模型可视化研究详细阅读
2022-04-18
- 基于环境敏感的植物动态生长模型研究详细阅读
2022-03-22