生化odebreak10ode45怎么用用

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
自配试剂在Dimension全自动生化分析仪上的应用探讨
下载积分:480
内容提示:自配试剂在Dimension全自动生化分析仪上的应用探讨
文档格式:PDF|
浏览次数:4|
上传日期: 06:20:07|
文档星级:
全文阅读已结束,如果下载本文需要使用
 480 积分
下载此文档
该用户还上传了这些文档
自配试剂在Dimension全自动生化分析仪上的应用探讨
官方公共微信您所在位置: &
&nbsp&&nbsp
新型电化学生物传感器的构建及其在生化分析中的应用.pdf 105页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:50 &&
你可能关注的文档:
··········
··········
博士学位论文
新型电化学生物传感器的构建及其在生化分析中的应用
姓名:曾宪冬
申请学位级别:博士
专业:分析化学
指导教师:魏万之
新型电化学生物传感器的构建及其在生化分析中的J姬用
生物传感器是以生物识别性单元作为主要功能性元件,能够感受到特定的目标物
质,并通过特定的换能器将这种感知转换成可识别信号的装置或器件。作为现代分析化
学研究的热门课题,生物传感器是一门由化学、生物、医学、物理、电子技术等多种学
科互相渗透成长起来的新学科,具有选择性高、分析速度快、操作简单、价格低廉以及
可进行在线甚至活体分析等特点,在环境监测、临床诊断、食品工业等领域都得到了高
度的关注和广泛的应用。本论文针对生物传感器研究的关键问题,即如何将生物成份稳
定、高活性地固定到换能器表面,使用不同的材料、不同的修饰方法制备了一系列新型
电化学生物传感器和一些无酶的电化学传感器,并将其应用于生化分析中。采用各种电
X射线能量散射谱(EDS)等技术详细研究了电化学传感器的结构、性质及其检测性能。
本论文主要研究工作如下:
(1)首先制备了一种新型的聚丙烯酰胺/壳聚糖半互穿聚合物网络水凝胶并将其用于
对氧化还原性蛋白质血红蛋白的固定。该复合物水凝胶为蛋白质的固定提供了一
个良好的微环境。通过SEM、Uv。Vis以电化学循环伏技术对固定在水凝胶中的
血红蛋白进行了表征。紫外可见光谱研究结果表明固定于该复合物水凝胶中的血
红蛋白能很好地保持其二级结构。循环伏安实验表明固定化的血红蛋白能与电极
7.0的磷酸盐缓冲溶液中,异相电子传递速率常数
之间发生直接电子传递,在pH
为5.51士O.30s~。同时,固定于水凝胶膜中血红蛋白保持了很好的生物活性,对
M~4.2×lO-4M
H202有良好的电催化性能。催化电流与H202的浓度在5×lO_6
内呈良好的线性。相比于单独的聚丙烯酰胺水凝胶,该复合物水凝胶固定的Hb
膜具有更好的稳定性。
三代H202生物传感器。通过实验详细探讨了pH以及检测电位对该生物传感器性
能的影响。在最优检测条件下,响应电流与H202的浓度在6.0×lO。7~1.8×10.3
的范围呈线性相关,最低检测限达到了3.Oxl0。。7M。该生物传感器具有良好的重
现性和稳定性,并能用于实际样品的检测。
博十学位论文
正电荷的Hb组装在电极表面,构筑了(HM卟『A.CNTs)。多层膜。循环伏安实验表
明固定于多层自组装膜中的Hb保持了良好的生物活性,能与电极之间发生直接
电子转移。其式电位与电解液的pH值呈线性关系,表明了Hb与电极之间的直
接电子传递是一电子一质子的电化学反应。同时,固定于多层膜内的Hb能很好
地保持其生物活性,对H202具有良好的催化性能。能用于构建
正在加载中,请稍后...当前位置: /
游戏介绍:
《生化危机0HD重制版》这款游戏相对于前作来说还是有很大的变化的,在本作中首先是游戏的画质方面有了很大的提高,通过游戏的图片也是能够看得出来的。还有就是游戏的剧情也会有扩展,游戏的内容也是更加的丰富了。所以玩家们还是可以试试这款游戏的,也相信游戏不会让大家失望。
& & & 此资源为汉化中文完整包下载,附替换包和汉化补丁下载。
每个时代都有每个时代特色的游戏,比如我们小时候或者出生前的80年代,那是2D动作游戏的年代。90年代一般都认为是格斗游戏的年代,或者RPG的年代。偏偏就在这个不合时宜的年代里,一名不合时宜的制作人带来了生化危机这款作品。
同样是这个不合时宜的制作人,在不合时宜的时间里做出了把这个系列独占到一般认为儿童专属主机NGC这个不合时宜的决定。
可怜这套新引擎一共就这套了两款游戏,生化重制,和生化0,三上式的生化危机从此绝后了。
在大多数汉化用户只看首发,不问质量的这个悲伤的年代。又出现了一批不合时宜的人,不管时代如何变化,依旧认真的完成所有细节才发布的汉化人,带来了这款能拿出手的汉化作品。
仅以此作纪念已经消失近15年的三上式生化,纪念卡婊还是天尊的年代,纪念不计名利勤勤恳恳的汉化人。
扑家汉化组&&大白猫工作室生化危机0简体中文破解:w酱,艾罗斯特拉特翻译:吉猪,在边城美工&视频修改:在边城测试:月夜胧黑打杂:wewewef捣乱:塞外
大白猫工作室是之前扑家汉化组与吉猪生化危机历史作品汉化补完工作室(好长)的简称。
目前PS3上生化危机的汉化作品皆由本工作室出品,质量保证,敬请支持与期待。
汉化说明:
1.汉化版基于日版光盘版,rebug 4.78.1系统一周目通关无死机,游戏中有遇到bug的请@wewewef ,开始游戏前请先删除安装数据!开始游戏前请先删除安装数据!开始游戏前请先删除安装数据!重要的事情要说三遍!
2.本次汉化未动EBOOT,E3用户只需替换重打包即可。
3.DLC带SFH验证,所以没有汉化。
4.PC版移植补完翻译中,敬请期待。
k73评分()
总分:45/50分系统:9分画面:9分音乐:9分剧情:9分耐玩度:9分
中文名称:生化危机0hd重制版游戏语言:中文开发厂商:Capcom发行厂商:Capcom发售日期:游戏容量:3.87GB游戏类型:射击类
& & &《生化危机0HD重制版》这款游戏对于玩家们的操作能力其实也并没有太大的要求,玩过动作类的玩家们应该都可以玩好这款游戏的。而且相信也有很大一部分玩家之前就接触过这款游戏的了,所以上手就会更加的容易了。也不用过于担心游戏太难。
相关游戏:
系统汉化版
官方中文版
游戏平台:
游戏类型:冒险射击僵尸恐怖
游戏版本:日版美版欧版中文版
游戏标签:
玩家评分:42
k73评分:41
版权所有 鄂ICP备号
鄂公网安备 03号
K73电玩之家订阅你的位置: >
> 【已解决】Xcode中编译iOS程序,运行出错:Thread 1: signal SIGABRT
【问题】在过程中,运行BirdSighting后,点击加号添加一个新的cell,结果出错:调试信息为: 13:10:02.690 BirdWatching[] *** Assertion failure in -[UITableView _createPreparedCellForGlobalRow:withIndexPath:], /SourceCache/UIKit_Sim/UIKit-1914.84/UITableView.m:6061
13:10:02.694 BirdWatching[] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'
*** First throw call stack:
(0x14b5022 0xeb5cd6 0x145da48 0x9af2cb 0xb2d28 0xb33ce 0x27a759 0x2a1 0x9d4c3 0xa86d2 0xab 0x14b6e99 0x1b14e 0x259a0e 0x14b6e99 0x1b14e 0x1b0e6 0xc1ade 0xc1fa7 0xcc0 0x405e6 0x26dc4 0x1a634 0x139fef5 0xx13edff2 0x13ec8da 0x13ebd84 0x13ebc9b 0x139e7d8 0x139e88a 0xd 0x1f95 0x1)
terminate called throwing an exception(lldb) argv    char **    0xbffff4d0 argc    int    1 【解决过程】1.参考:中的中的:tap on the breakpoint tab (the 6th tab over)tap on the + button in the bottom left of the windowtap ‘add exception breakpoint’tap ‘done’ on the popup去设置打上所有的断点:然后再重新运行一次,就可以在出错的地方停下来了:然后接下来,就是去看看到底为何出错了.2. 不过目前虽然扎到出错地方,但是代码的内在逻辑,还不是很清楚.等继续去按照教程一步步走,看看是否可以消除错误,然后看懂错误的逻辑是啥。3.后来安装教程一步步操作,结果却出现了其他错误,但是也解决了,详见: 【总结】Thread 1: signal SIGABRT类型的错误,实际上都是具体的某种内部的错误,然后最终传递到上层的thread的,而报此错误的。而解决了内部的具体的错误,此种thread的signal SIGABR,也就算是解决了。具体如何解决内部的错误,则不是此贴所能涵盖的了的,需要各自针对自己问题,自己分析。不过由于分析问题的基本逻辑是类似的,所以倒是可以参考类似帖子:转载请注明: & 与本文相关的文章
13 queries in 0.182 seconds, using 9.73MB memory用于化学反应和生化过程的建模,模拟和分析的方法和设备的制作方法
专利名称用于化学反应和生化过程的建模,模拟和分析的方法和设备的制作方法
技术领域本发明涉及模拟工具,具体地说,涉及用于建模、模拟和分析化学反应和生化过程的整体环境,所述整体环境方便与模拟环境通信。
背景技术新的化学和生物化学物质的开发是很费时的,因为在获得具有所需特性的物质的组成以前,传统上要加工许多中间物质,而每一种中间物质的组成可能要花费几小时或几天时间。化学组成包括制造传统的有机或聚合物质,以及开发小分子机构,有时称作纳米机构。生物化学配方设计包括影响个人生活品质的药物的开发和分析。除化学和生物化学配方设计的冗长乏味和往往容易出错的属性以外,这两个领域都面临额外的困难。
化学物质和纳米机构的开发,除费时以外,还可能产生潜在危险的中间物质。例如,试图形成消耗原油并使其断裂为一个或多个对环境友好的物质的细菌时,研究者可能会形成使原油断裂为若干对环境友好的物质和致命的毒素的细菌。另外,化学研究者面对处理他们的研究产生的中间产物的问题。纳米机构的设计者要面对的其它问题是目标物质可能在响应环境因素而形成的过程中变异。
除上述以外,生物化学研究(它一般把注意力集中在识别和选择具有影响一个或多个机制的潜力的化合物上,这些机制在改变疾病过程的特定的临床方面据认为是关键性)面临挑战。
尽管一般通过研究关于细胞和亚细胞现象的数据来推动药物开发,但是这些数据往往只考虑对整个系统孤立的和相当狭窄的看法。这样的数据不可能提供整个生物学系统的综合看法。另外,当转化为整个身体的水平时,所报告的狭窄的发现不总是完全准确的。
另外,当前获得生物过程数据的方法比那些与化学过程相联系的更费时,因为后者对于生物化学物质一般要求实验室试验,这导致动物试验和临床试验。从这些试用和试验,所获得的数据一般也把注意力集中在生物学系统非常狭窄的一部分。只有在成本高昂的试验-失败-再试验的临床试验,并且不断地重新设计药物的临床使用以便考虑从最近的临床试验学到的经验教训之后,才最后实现具有适当安全性和功效的药物。临床试验设计和重新设计、多次临床试验和在某些情况下的多种药物重新设计的这个过程要求巨大时间和金钱代价。即使那时,努力也可能不能产生销路好的药物。尽管通过吸收试验数据和公布的信息可以得出结论,但是即使不是不可能,也很难综合处理所有可用数据和知识当中的关系。
化学和生物化学研究者所面对的不同的挑战使人们希望有一些在计算机上,而不是在活体上或在试管内的建模、模拟和分析生物过程的系统和方法。
发明概要在一个方面,本发明涉及用于响应通过在试验平台上进行的现场试验产生的试验结果修改生物过程模型的系统。模拟引擎从生物过程模型产生预计的结果。分析环境与模拟引擎通信,从试验平台采集数据并把所述预计结果与从所述平台采集的数据加以比较。
在某些实施例中,分析环境显示由模拟引擎所产生的预计结果和从所述平台采集的试验数据。在其他实施例中,当由模拟引擎产生的预计结果和从所述平台采集的数据之间的差异超过预定的阈值时便产生一个事件(诸如报警器)。在再一个实施例中,所述系统包括用于构造生物过程模型的建模部件,所述建模部件可以包括图形用户接口,用于接受用户命令和数据来构造所述生物过程模型。在这些实施例中的一些实施例中,分析环境与建模部件和分析引擎通信,向建模部件发送从平台采集的数据。在所述一些实施例中的特定实施例中,建模部件利用所述发送的数据来改善所述产生的生物过程模型。在再一些其他实施例中,所述分析环境从微点阵或基因芯片采集数据。
在其他方面,本发明涉及用于响应通过在试验平台上进行的现场试验所产生的试验结果修改生物过程模型的方法。进行试验。所述试验可以例如在基因芯片或微点阵上进行。本专业的技术人员将会认识到,本方法不限于基因芯片或微点阵。模拟引擎接收生物过程模型并根据生物过程模型产生预计结果。采集从所述进行的试验得出的数据并将其和所述预计结果对比。
在某些实施例中,显示由模拟引擎产生的预计结果和从平台采集的试验数据。在再一个实施例中,当所述产生的预计结果和所述采集的数据之间的差异超过预定的阈值时,触发报警器。在另一个实施例中,接收用户命令和数据以便构造生物过程模型。可以通过图形用户接口接收用户命令和数据。在再一些其他实施例中,将所述采集的数据发送到建模环境,在所述建模环境中,所述采集的数据用来产生改善的生物过程模型。
在再一个方面,本发明涉及具有收录在其上的计算机可读程序工具的制品,所述计算机可读程序工具用于响应由在试验平台上进行的现场试验产生的试验结果而修改生物过程模型。所述制品包括用于访问所述生物过程模型的计算机可读程序工具;用于根据所述生物过程模型产生预计结果的计算机可读程序工具;用于采集与所述化学试验有关的数据的计算机可读程序工具;以及用于把所述产生的预计结果和从所述平台采集的数据加以比较的计算机可读程序工具。
附图的简短说明在后附的权利要求书中详细地阐明本发明。参照以下结合附图的描述,可以更好地理解本发明的上述优点和本发明的其他优点,附图中附图说明
图1是整体建模、模拟和分析环境的一个实施例的框图;图2A是可用于结合本发明的个人计算机的一个实施例的框图;图2B是可用于结合本发明的个人计算机的另一个实施例的框图;图3A和3B是描述可用于结合本发明的表格建模环境的实施例的画面;图4是方便构成化学反应或生物过程的框图表示的图形用户接口的一个实施例的画面;图5A是描述利用常微分方程的动态系统模型的框图;图5B是描述利用差分方程的动态系统模型的框图;图5C是描述利用代数方程的动态系统模型的框图;图6是描述模拟建模后的生物过程或化学反应而采取的步骤的一个实施例的流程图;图7描述为求解程序分配的存储器的框图;图8A描述为求解程序分配的存储器的框图,图中示出既保存数值又保存参考值的存储器的一部分。
图8B描述为求解程序分配的存储器的框图,图中示出既保存数值又保存参考值和只有参考值的平行下标的存储器的一部分;图9是步骤序列的流程图,后跟本发明的实现执行前的恢复机制的说明性实施例。
发明的详细说明现参见图1,图中示出用于建模、模拟和分析包括生物过程100的化学反应和生物学系统的整体系统的一个实施例的高层框图。如图1所示,系统100包括建模部件,在图1的示范性描述中被指定为建模环境110;模拟引擎120;以及分析环境130。模拟引擎120与建模环境110通信。模拟引擎120接收利用建模环境110产生的化学反应或生物过程模型。模拟引擎120把精心的改进传送到在建模环境110中建立的模型。分析环境130与建模环境110和模拟引擎120通信。分析环境130可以用于直接对建模环境110中建立的模型进行不同类型的分析。另外,分析环境130可以接收和处理来自模拟引擎120的结果,所述结果代表模拟引擎120对在建模环境中产生的模型的执行结果。换句话说,模拟引擎120产生模型的行为动态特性并把所述行为动态特性中的至少一些特性传送到分析环境。分析环境130可以提供对建模环境110中的模型的精心的改进,并可以提供执行模型时模拟引擎120使用的参数。下面将更详细地讨论建模环境110、模拟引擎120和分析环境130之间的相互作用。
图1中描绘的整体系统可以在若干不同的计算平台上执行,诸如超级计算机、主机计算机、小型计算机、群集计算平台、工作站、通用台式计算机、膝上计算机和个人数字助理。图2A和2B描绘在本发明中有用的典型的通用台式计算机200的框图。如图2A和2B所示,每一个计算机200包括中央处理单元202和主存储单元204。每一个计算机200还可以包括其它任选的要素,诸如一个或多个输入/输出装置230a-230b(总体利用标号230指称)和与中央处理单元202通信的高速缓存存储器240。
中央处理单元202是响应和处理从主存储单元204取出的指令的任何逻辑电路。在许多实施例中,中央处理单元由微处理单元提供,诸如、8、Pentium、Pentium Pro、PentiumII、Celeron、或Xeon处理器,它们全都由美国加里福尼亚州MountainView的Intel Corporation(公司)制造;6、6、68040、PowerPC 601、PowerPC604、PowerPC604e、MPC603e、MPC603ei、MPC603ev、MPC603r、MPC603p、MPC500、MPC740、MPC745、MPC750、MPC755、MPC 5500、MPC7400、MPC7410、MPC7441、MPC7445,the MPC7447、MPC7450、MPC7451、MPC7455、MPC7457处理器,它们全都由美国伊利诺州Schaumburg的Motorola Corporation制造;Crusoe TM5800、Crusoe TM5600、Crusoe TM5500、Crusoe TM5400、Efficeon TM8600、Efficeon TM8300或Efficeon TM8620处理器,它们全都由美国加利福尼亚州Santa Clara的Transmeta Corporation制造;RS/6000处理器、RS64、RS64II、P2SC、POWER3、RS64III、POWER 3-II、RS64IV、POWER4、POWER4+、POWER5或POWER6处理器,它们全都由美国纽约州的White Plains的International Business Machines制造;AMDOpteron、AMD Athalon 64FX、AMD Athalon,或AMD Duron处理器,它们全都由美国加利福尼亚州Sunnyvale的Advanced Micro Devices制造。
主存储单元204可以是一个或多个存储器芯片,能够存储数据,并允许微处理器202直接访问任何存储器位置,诸如静态随机访问存储器(SRAM)、脉冲串SRAM或SynchBurstSRAM(BSRAM)、动态随机访问存储器(DRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出随机存取存储器(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、脉冲串扩展数据输出DRAM(BEDO DRAM)、增强DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双数据速率SDRAM(DDR SDRAM)、增强SDRAM(DRAM)、同步链接DRAM(SLDRAM)、Direct Rambus DRAM(DRDRAM)或铁电随机存取存储器(FRAM)。在图2A所示实施例中,处理器202通过系统总线220(下面更详细描述的)与主存储器204通信。图2B描述计算机系统200的一个实施例,其中处理器通过存储器端口直接与主存储器204通信。例如,在图2B中主存储器204可以是DRDRAM。
图2A和2B描绘一些实施例,其中主处理器202通过二次总线(有时称作″背面″总线)直接与高速缓存存储器240通信。在其他实施例中,主处理器202利用系统总线220与高速缓存存储器240通信。高速缓存存储器240一般比主存储器204具有较快的响应时间,而且一般由SRAM、BSRAM或EDRAM提供。
在图2A所示实施例中,处理器202通过本机系统总线220与不同的I/O装置230通信。可以用不同的总线来把中央处理单元202连接到I/O装置230,包括VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于一些其中I/O装置是视频显示器的实施例,处理器202可以使用先进的图形端口(AGP)与显示器通信。图2B描述计算机系统200的实施例,其中主处理器202通过HyperTransport、Rapid I/O或InfiniBand直接与I/O装置230b通信。图2B还描述一个实施例,其中局部总线和直接通信混合处理器202利用局部互联总线与I/O装置230a通信,而同时直接与I/O装置230b通信。
在计算机系统200中可以存在种类繁多的I/O装置230。输入装置包括键盘、鼠标、轨迹板、轨迹球、微音器和画图平板输入器。输出装置包括视频显示器、扬声器、喷墨印刷机、激光打印机和染料升华打印机。I/O装置还可以为计算机系统200提供海量存储器,诸如硬盘驱动器、用于接收软盘(诸如3.5英寸、5.25英寸或ZIP盘)的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、不同格式的磁带驱动器和USB存储装置,诸如美国加里福尼亚州LosAlamitos的Twintech Industry,Inc.(公司)制造的装置的USB闪存驱动器线路。
在另一个实施例中,I/O装置230可以是系统总线220和外部通信总线之间的桥,诸如USB总线、Apple台式机总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、Gigabit以太网总线、异步转换模式总线、HIPPI总线、Super HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreChannel总线或串行连接依附小型计算机系统接口总线。
图2A和2B中所描绘的类型的通用台式计算机一般在操作系统的控制下运行,所述操作系统控制任务和对系统资源的访问的调度。典型的操作系统包括由美国华盛顿州Redmond的微软公司制造的MICROSOFT WINDOWS;美国加里福尼亚州Cupertino的Apple Computer制造的MacOS;美国纽约州Armonk的International BusinessMachines制造的OS/2;以及由美国犹他州盐湖城Caldera Corp.分发的可免费获得的操作系统Linux等等。
在再一个实施例中,计算机可以在实时操作系统的控制下运行,诸如AMX、KwikNet、KwikPeg(全都由KADAK Products Ltd制造)、CEXECUTIVE(由by JMI Software,制造)、CMX-RTX(由CMX Systems,Inc.制造)、DeltaOS(由by CoreTek,Inc.制造)、eCos(由Red Hat,Inc.制造)、embOS(由by Microcontroller SystemeGmbH制造)、eRTOS(由JK Microsystems,Inc.制造)、ETS(由by制造)、EYRX(由by Eyring制造)、INTEGRITY(由Green Hills Software,Inc.制造)、INtime?到Windows?的实时扩展(由TenAsys Corporation制造)、IRIX(由SGI制造)、iRMX(由TenAsys Corporation制造)、Jbed(由esmertec,inc.制造)、LynxOS(由LynuxWorks制造)、MQX(由Precise SoftwareTechnologies Inc制造)、Nucleus PLUS(Accelerated Technology,ESD Mentor Graphics)、On Time RTOS-32(由On Time Informatik GmbH制造)、OS-9(由Microware Systems Corporation制造)、OSE(由OSESystems制造)、PDOS(由lRyring Corporation制造)、PSX(由JMISoftware Systems,Inc.制造)、QNX Neutrino(由QNX SoftwareSystems Ltd.制造)、QNX4(由QNX Software Systems Ltd.制造)、REDICE-Linux(由REDSonic,Inc.制造)、RTLinux(由Finite statemachine Labs,Inc.制造)、RTX 5.0(由VenturCom制造)、Portos(由Rabih Chrabieh制造)、smx(由Micro Digital,Inc.制造)、SuperTask!(由US Software制造)、ThreadX(由Express Logic Inc.制造)、Treck AMX(由Elmic Systems USA,Inc.制造)、TreckMicroC/OS-II(由Elmic Systems USA,Inc.制造)、TronTask!(由USSoftware制造)、TTPos(由TTTech Computertechnik AG制造)、Virtuoso(由Eonic Systems制造)、VxWorks 5.4(由Wind River制造)、SCORE、DACS和TADS(全都由DDC-I制造)、Nimble-the SoCRTOS(由Eddy Solutions制造)、Nucleus(由Accelerated Technology制造)或Fusion RTOS(由DSPOS,Inc.制造)。在这些实施例中,中央处理单元202可以用嵌入式处理器代替,诸如日本东京的Kabushiki KaishaHitachi Seisakusho制造的Hitachi SH7000或日本东京NEC公司制造的NEC V800。
回头参见图1,更详细地说,建模环境110接收输入以便为待模拟的化学或生物化学反应建立模型。在某些实施例中,建模环境110接收包含在文件中的输入,诸如采用系统生物学标记语言(SBML)的文件。在这些实施例中的其他一些实施例中,文件可以是超文本标记语言(HTML)格式、可扩展的标记语言(XML)格式、专有的标记语言或正文文件,其中字段是用制表符或逗号隔开的。或者,建模环境110可以接受由用户或者通过命令行接口或者通过图形用户接口产生的输入。
图3A和3B描述表格图形用户接口300的实施例,表格图形用户接口300可以用来接收由用户制造的用于建立模型的输入。如图3A和3B所示,所述用户接口可以包括模型显示窗口302。在图3A和3B所示实施例中,在美国华盛顿Redmond的微软公司制造的WINDOWS操作系统的控制下,模型显示窗口302以计算机用户熟悉的树形结构列出一个或多个模型。在图3A所描绘的特定实施例中,单一化学反应模型被包含在由标记为″FieldKorosNoyesModel″的文件夹表示的模型显示窗口302中。所述模型包含3个子文件夹″Compartments(区块)″;″Reactions(反应);以及″Species(物种)″。子文件夹代表各个已建模的反应。可以用其它图形用户接口方案向系统100的用户提供信息。在某些实施例中,模型显示窗口302可以显示代表模型的若干文件夹。用户对特定文件夹的选择使系统显示模型显示窗口302中的代表各个反应的文件夹,例如,区块、反应和物种。在再一个实施例中,每一个模型和所有模型的所有部件都可以显示在模型显示窗口302中,而每一个模型都可以与一个″无线电旋钮″相联系,选择与一个模型相关联的无线电旋钮将使所述模型和它的部件被主动地显示。在这些实施例中的一些实施例中,未选择的模型以灰色显示,或可以用透明的灰色覆盖,表示它们目前不是有效的模型。
回头参见图3A,图形用户接口300还包括反应表310和物种表320。反应表310与显示在模型显示窗口302的″反应″文件夹相关联。类似地,物种表320与显示在模型显示窗口302的″物种″文件夹相联系。在某些实施例中,将相关联的文件夹折叠使所述表不被显示。各表可以显示在他们自己的图形用户接口窗口中,而不是在同一窗口中,如图3A所示的图形用户接口300。
反应表310列出在已建模的生物过程或化学反应中存在的每一个反应。在图3A所示实施例中,建模环境300显示Belousov-Zhabotinsky反应的Field-Koros-Noyes模型中呈现的反应,并包括四列反应列312、动力学定律列314、参数列316和可逆列318。反应表310的每一行对应于特定的反应。反应表所显示的列数和格式可以由用户选定。在其他实施例中,建模环境110可以选择列的数目和格式,根据由用户选定的反应的类型显示。
回头参见图3A所示的实施例,反应列312显示以抽象格式例如,Ce->Br表示的反应。在其他实施例中,反应可以以随机格式表示为微分方程,或者表示为这些格式中的两个或两个以上的混合型。在某些实施例中,反应表包括识别所述反应的修改程序的列。例如,某些反应可以是用一种物质催化。这可以以表格格式,如Ce-m(s)->Br表达,意味着″s″的存在使Ce转变为Br。
在图3A所示实施例中,反应表310还包括动力学定律列314,它识别由所述识别的反应遵循的动力学定律表达式。在图3A所示的实施例中,与Ce->Br反应相联系的动力学定律是″Ce*k5″,意味着Ce以受参数″k5″和Ce的目前数量控制的速率消耗。在图3A所示实施例中,参数列316中列出用于动力学定律表达式的参数。在某些实施例中,反应表310包括识别与特定的反应,例如″质量作用″或″Michaels-Menten″相联系的动力学定律的名称的列。在其他实施例中,反应表310包括识别表达动力学定律参数的单位(例如,1/秒,1/(克分子*秒))等的列。
仍旧参见图3A所示的实施例,反应表310包括表示相关联的反应是否可逆的可逆列318。可逆反应是一种沿任何一个方向发生的反应,亦即,Ce<->Br。在某些实施例中,反应表310可以包括识别所述反应的动态,例如,″快速″或″缓慢″的列。在这些实施例中的一些实施例中,按1至10的比例识别反应发生的快速性。在再一个实施例中,可以向用户提供滑动调节,所述滑动调节允许彼此相关地设定不同反应的快速性。在再一些其他实施例中,反应表310可以包括与反应有关的注释或注解的列。
图3A所示的建模环境300还显示物种表320。在图3中所示的实施例中,物种表320包括名称列322、初始数量列324和常数列326。物种表描述已建模的生物过程或化学反应用的材料的初始状态和数量。因而,在图3所示实施例中,已建模的生物过程从0.003克分子单位的溴,亦即,从0.003乘以Avrogado数开始。若模型假定存在无穷的特定物质供应,则常数列326设定为″真″。在其他实施例中,物种表320包括其它列,诸如识别单位(例如,克分子、分子、升等)、特定的物种在所述模型中是不是独立变量(即,所述物种是不是所述系统的输入)、用于注释的列或用于注解的列。
在某些实施例中,建模环境300接纳标记语言格式的文件作为输入,并把所述文件转换为图3A描绘的类型的图形显示。例如,在所述文献的附录A中示出Belousov-Zhabotinsky反应的Field-Koros-Noyes模型的标记语言格式的一种表示,对应于图3A所示的特定的实施例。
例如,可以提供一个过程,它使用嵌入标记语言文件的标签中的信息,例如,&reaction name=″Reaction5″reversible=″false″&,来产生图3A和3B所示的模型的表格形式。在这些实施例中的一些实施例中,可以修改万维网浏览器,以便对包含用标记语言写入的模型的文件进行语法分析,以便建立图3A和3B所示的模型的表格形式。在其他实施例中,过程可以接受所述模型作为输入,并产生可在处理器上直接执行的代码(诸如,用C编程语言编写的代码)作为输出。
把模型转换为可执行的代码允许通过网络把可执行的代码发送到多个计算机,以便在那些计算机上执行。在这些实施例中,计算机可以是通过若干网络拓扑,包括总线、星形或环形拓扑的网络连接。所述网络可以是局域网(LAN)、城域网(MAN)或广域网(WAN),诸如互联网。而相应的计算机可以通过各种各样的连接(包括标准电话线路、局域网或WAN链接(例如,T1,T3,56kb,X.25)、宽带连接(ISDN,帧中继,ATM)和无线连接)连接到网络180。可以利用各种各样的通信协议(例如,TCP/IP,IPX,SPX,NetBIOS,NetBEUI,SMB,Ethernet,ARCNET,光纤分布数据界面(FDDI),RS232,IEEE 802.11,,IEEE802.11a,IEE 802.11b,IEEE 802.11g和直接异步连接)来建立各种连接。
在这些实施例中,主服务器对用标记语言书写的模型进行语法分析。所述模型可以从硬盘或从通过网络连接访问的另一个计算机检索。在其他实施例中,由用户利用表格用户输入(诸如图3A和3B所示的表格用户输入)或图形用户接口(诸如图4所示的图形用户接口)输入所述模型。主服务器对所述模型进行语法分析,以便产生可执行的代码。由主服务器产生的可执行的代码可以是编译后的代码,诸如用C、C+、C++或C#写入的并编译成在目标平台上运行的代码,或者由主服务器产生的可执行的代码可以是字节代码语言,诸如JAVA。在某些实施例中,可执行的代码通过网络连接发送到一个或多个计算机。所述一个或多个计算机执行代表所述模型的代码,并向主服务器返回所产生的结果。主服务器可来存储检索的结果以供随后分析使用。在某些实施例中,主服务器显示每一个接收的结果的图形表示。在一个实施例中,所述技术用于进行Monte Carlo类型的分析。在这些实施例中的一些实施例中,主服务器可以采集和显示所接收的每一个数据点,并实时地用图解方式显示每一个数据点。
图3B以表格形式描述用于模拟E.Coli(大肠杆菌)热休克应答模型的反应。如上面联系图3A所描述的,上表显示参与热休克蛋白的转录和翻译的不同反应以及热休克蛋白与展开的(或变性的)蛋白质的相互作用。如图3B所描绘的,所有反应都具有质量作用动力学,而且有些是可逆的,而有些则不是。代表化学或生物化学反应的另一个方法是用框图的方法。
在再一个实施例中,建模环境300允许用户以框图的形式表示生物过程或化学反应。图4描述框图建模环境的实施例。在图4所描绘的实施例中,表示E.Coli细菌中热休克反应正在构建中。如众所周知的,E.coli中的热休克应答是细胞对热诱生应力的保护性反应。升高温度造成E.coli生长减少,大部分来自蛋白质伸展或错折叠。借助于热休克蛋白的热休克应答通过借助于保护者(chaperon)使蛋白质重新折叠或通过借助于蛋白酶使非功能性蛋白质降解来对热诱生应力作出响应。
图4中所示的框图描绘涉及热休克应答的五个特定基因序列的表示。图4部分地描绘用于涉及热休克应答的蛋白酶的表示的途径、4300。途径、4300分别代表热休克蛋白ftsH、HslVU及其他蛋白酶的表示。途径、4300是通过在各自序列的启动子作用下σ32与RNA聚合酶的相互作用、4305激活的。每一个途径、4300都描述mRNA在启动子作用下σ32和RNA聚合酶相互作用、4305介导的mRNA的转录、4320和所述蛋白酶的后续翻译、4330。热休克蛋白酶,包括ftsH和HslVU,用于降解蛋白质(通过热应力使之成为非功能性的)。类似地,所述示意图分别描绘涉及热休克蛋白σ70和DnaK的表示的途径。σ32蛋白质的表示是通过在启动子下通过σ70和RNA聚合酶交互作用4403而激活4410的。转录σ32mRNA(4420),而随后,翻译σ32(4430)。在一个紧密相关的途径4500上,翻译热休克蛋白DnaK。σ32和RNA聚合酶在启动子作用下的相互作用4505激活4510DnaK mRNA的转录(4520),而随后是DnaK的翻译(4530)。DnaK本身可以不时与σ32互相作用(4600),从而稳定σ32,作为另一方案,可以把被热应力展开的蛋白质重新折叠(4700)。
框图编辑器允许用户执行这样的动作,诸如画图、编辑、加注释、保存和打印输出动态系统的框图表示。各框是典型框图模型的基本数学要素。在这些实施例中的一些实施例中,建模环境包括两类框非虚拟框和虚拟框。非虚拟框是基本的动态系统,诸如σ32和RNA聚合酶相互作用、4305.。虚拟框可以为图解组织的方便而设置,而且在框图模型所描述的方程系统的定义中不起作用。例如,在图4所描绘的E.Coli细菌的热休克机制的框图中,由σ32介导以便产生蛋白质的基因转录(用和4300代表)可以表示为单个虚拟框。分级建模(诸如使用子系统)可以用来改善模型的可读性。
在某些实施例中,可以把非虚拟框的意义扩展到其它语义,诸如″合并″框语义。合并框语义是这样的,在给定时间步骤上它的输出等于最后的框,以便写入到合并框的输入端。在表格图形用户接口实施例中,可以把合并框与″通配符″字符组合以便把单一表入口扩展到反应的多个实例中。例如,所述反应*转录-因子RNAP->基因->mRNA->蛋白质它使用转录-因子作为″通配符″,允许在利用单线反应的模型中识别多个蛋白质表示。一般,任何规则表示都可以用来将″通配符″的存在信号化。规则表示和用于把规则表示编译为多个代码实例的技术是众所周知的。可以在扩展所述反应时从数据库查询、文件或通过用户输入提供模型使用的转录因子,以便产生可执行模型。所提供的每一个转录因子造成不同的反应,潜在地使不同的基因产生信使RNA并表达特定的蛋白质。这种技术可以用来在用户部分以最小输入产生几组反应。
在再一个实施例中,建模环境300还可以规定有条件的执行过程,所述有条件的执行过程是有条件的和叠代的子系统的概念,它控制在时间上框方法何时执行总框图的子部分。
框图编辑器是图形用户接口(GUI)部件,它允许由用户画出框图模型。图4描绘用于框图编辑器的GUI的实施例,框图编辑器的特征在于浮动的元件调色板。在图4所示实施例中,GUI工具包括不同的框工具402、404、408;不同的接线连接工具406、412;注释工具416;格式化工具410;保存/装入工具414;通知工具420;以及发行工具418。框工具402、404、408代表在构造所述框图时用户可用的所有预定义框的文库。各个用户能够定制这种调色板,以便(a)重新组织采用某些定制格式的框,(b)删除它们不使用的框,和(c)加入它们已经设计的定制框。这些框可以通过某些人机接口(诸如鼠标或键盘)拉到所述窗口上(亦即,模型画布)。在画布上提供的框的图解版本称为所述框的图标。可以存在框调色板的不同实施例,包括基于树的所有框的浏览器视图。在这些实施例中,浮动元件调色板允许用户从调色板拖动框图元件并将其放在屏幕上的适当地方。在这些实施例中的一些实施例中,还可以存在具有一组命令的文本接口,所述一组命令允许与图形编辑器相互作用。例如,把聚合酶框拖至所述模型可以使所述系统提示用户所述蛋白质要用于聚合酶反应。
利用所述文本接口,用户可以写入在所述框图上执行自动编辑操作的特殊脚本。用户一般与一组起模型画布作用的窗口交互作用。可以存在一个以上模型用的窗口,因为可以通过使用子系统把模型分为多个层次等级(下面进一步讨论)。在再一个实施例中,可以只设置文本接口来帮助用户构造框图。
接线连接工具406、412允许用户画连接模型窗口中各框的定向线条。在某些实施例中,提供单个接线连接工具,而用户通过选择该工具,选择起点和选择终点来连接各框。在其他实施例中,可以呈现多个连接工具(诸如在图4描绘的实施例中)。可以通过涉及人机接口,诸如键盘的其它不同的机制来添加接线。建模环境300还可以提供不同形式的自动连接工具,自动连接工具根据用户的请求自动地连接各框,以便产生美观悦目的框图布局(尤其是那些带有大量框高度复杂的框图)。把一个框连接到另一个象征着,若它代表一个交易,则由第一框表示的物种或所述框的输出,是第二框的输入。
注释工具416允许用户对框图不同的部分加上注解和注释。以表格格式观看模型时,注释可以出现在注解或注释列上。以图解格式观看时,注解可以出现在加注释的框附近,或者它们可以隐藏起来。
格式化工具410使用户能够执行不同的格式化操作,这一般可用在任何文档编辑工具上。这些操作帮助拣拾和改变框图(和各组成框),诸如包括不同的图形属性,诸如包括字体选择、对齐方式和说明、颜色选择等。框图和框图内所有框一般具有与执行或代码产生有关的一组功能属性。属性编辑工具提供允许指定和编辑这些属性的GUI。
保存/装入工具414允许保存已建立的框图模型。保存的模型可以在以后的某个时间通过装入机制结合在编辑器中重新打开。用户可以把包括预先建立的子系统的框保存在称为程序库的单独的框图类中。这样的程序库方便同样的框在若干其它框图中重新使用。专用配备装入/保存机制以便处理实际上驻留在程序库中的框图中的框的装入和保存。
可以设置发行工具418,以便使以以任何标准文档格式(示例PostScript,PDF,HTML,XMLSGML,SBML等)发行的文档的形式来观看框图成为可能。本专业的技术人员将会意识到,上述的多个模型和全部工具窗口可以潜在地嵌入单一的多文档接口(MDI),以便提供统一的软件环境。
通知工具420允许在框图上工作的用户发送消息至另一个用户。在某些实施例中,通知工具420使框图的当前版本通过电子邮件传递到指定用户。
本专业的技术人员还将识别到,框图程序包提供脚本语言,用于编写输出程序,所述输出程序自动地执行一系列操作,所述一系列操作一般要求与GUI相互作用,诸如框加入、框删除、开始和结束执行或改变框属性等。
建模环境300还可以提供各种各样其它GUI工具,改善用户构建和管理大框图的能力。
这样的GUI的示例包括(a)查找器,帮助找出不同的对象,诸如框图内的框和线条,(b)调试器,有助于调试框图的执行,(c)修正控制UI,用于管理所述框图的多个修正,以及(d)传略器,用于在框图执行时观看定时结果。
用于框的典型基础数据结构可以表示为&pre listing-type="program-listing"&&![CDATA[  class Block{  public:  //用于设置/取得框数据的访问方法  //框编辑方法  virtual ErrorStatus BlockDrawIcon();  virtual BlockParameterData BlockGetParameterData();  //框编译方法...  //框执行方法  .............................................  virtual ErrorStatus BlockOutput()=0;  virtual ErrorStatus BlockDerivative()=0;  virtual ErrorStatus BlockUpdate()=0;  private:BlockGraphicalData blkGraphicalA  BlockFunctionalData blkFunctionalA  BlockCompiledData blkCompiledA  BlockExecutionData blkExecutionD  ...  };]]&&/pre&尽管上面的数据结构示例是用C++编写的,但是本专业的技术人员将会意识到,还可以使用其它语言来编写等效的数据结构。所述框数据结构的主要数据字段落入四个类别图形属性字段、功能属性字段、编译属性字段和执行数据字段。
图形属性字段负责存储有关它的父框图GUI内框的图形绘制的信息。专用于框图标的属性,诸如字体、颜色、名称和图标图像存储在所述字段中。应该指出,改变这些属性不影响利用所述框的模型的动态。功能属性字段负责指定可以潜在地影响利用所述框的模型的动态的框属性。这些属性是为所述框作为一个整体以及所述框的输入和输出端口而指定的。框属性的示例包括框的采样时间和限制性标志。框采样时间指定所述框是否对应于一个基本的、连续的、离散的或混合型动态系统。若所述框是基本的离散时间系统,则所述属性指定所述框的响应应该被跟踪的时刻之间的间隔。限制性标志在某些建模环境中禁止框的使用。例如,可以加上在模型中只可以有一个给定框的实例的限制。
框端口的属性指定在所述端口上可用或产生的数据的特性。框端口属性包括尺寸、数据类型、采样速率和直接馈通。尺寸属性是用作数据元素容器的多维矩阵的各单独尺寸。数据类型属性是数据容器中每一个数据元素的数据类型。复杂度属性是一个标志,指定每一个数据元素是实数还是复数。采样速率属性指定如何何时将使用与输入或输出端口对应的信号。所述端口采样时间有时可以用来隐含地推断所述框的采样时间。直接馈通属性只为输入端口指定,并指示所述框的输出方程是不是给定输入的函数。所述属性有助于确定框图执行时框方法应该执行的序列。
框数据结构的编译属性字段保存所述框和它的端口的反映上面列出的功能属性的属性。在框图编译过程中通过利用所述框的功能属性结合它所连接的框的功能和编译属性来填写所述字段。确定由功能属性制造的编译属性的这个过程是术语属性传播。下面在框图编译部分将更详细地描述属性传播。执行数据字段主要负责存储准备在框的执行过程中用作框输入、输出、状态、参数及其他工作区域来源的存储器位置。
框数据结构还有一组相关的方法,所述一组相关的方法可以分类为对数据字段的访问方法、编辑用的方法、编译用的方法和执行用的方法。对数据字段的访问方法帮助设置和取得所述框的不同的数据字段。编辑用的方法是通过框图编辑器调用的,以便在它的父框图的GUI中适当地绘制所述框。例如,这组方法可以包括BlockDrawIcon方法,确定框图标在所述GUI上具有的形状。编译用的方法是由框图编译引擎调用的方法。它们帮助验证所述框图上所述框到其它框的连接。执行用的方法包括执行过程中所需的若干不同的运行时方法。这些包括早期在动态系统背景下讨论的BlockOutput,BlockUpdate,BlockDerivative方法,实现Output(输出)、Update(更新)和微分方程。除这些方法以外可以提供几个其它运行时方法,诸如Jacobian,Projection(投影),ZeroCrossings(过零),Enable(启动),Initialize(初始化),EvalParams(检查和处理参数)和GetTimeOfNextHit方法。应该指出,不存在用于代数方程的显式方法,因为它们是以不同的方式表达和处理的,这些将在下面联系模拟引擎120讨论时讨论。
在某些实施例中,建模环境110包括有助于模型的构建的知识库350。在这些实施例中的一些实施例中,知识库350包含不同反应的模型,例如,糖酵解。在这些实施例中,当用户开始输入与糖酵解模型一致的反应时,知识库350可以为用户输入剩余的反应。作为另一方案,知识库350可以向用户提供不同的反应模型。在这些实施例中的一些实施例中,提供代表细节程度不同的目标反应的模型。在其他实施例中,知识库350可以插入参数或指示所输入的反应的可逆性。知识库350还可以向用户提供协助输入化学或生物化学反应的框图描写。例如,知识库350可以防止连接与已建模的反应不一致的框。可以用于方便产生模型的可供公众使用的数据库的示例包括Swissprot数据库(http://us.expasy.org/sprot)、NCBI(http vwww.ncbi.nlm.nih.gov)、蛋白质数据库(http://www.rcsb.org/pdb)和KEGG(http://www.genome.ad.jp/kegg/kegg2.html)。作为另一方案,用户可以提供私有数据库,使之起知识库350的作用,以帮助建立模型。
框图中的框可以是虚拟的或非虚拟的。指定一个框是非虚拟的,就表示它影响动态系统的数学模型中的方程。在框图软件的背景下,最好包括不影响动态系统模型中的方程的其它虚拟框。这样的框帮助改善框图的可读性和模块性,不运用语义的影响数学模型。这样的虚拟框的示例包括虚拟子系统、进口框和出口框、总线建立框和From(来自)框和Goto(去往)框。
可以通过使用子系统将框图分层而在框图中实现模块性。子系统通过允许用带有输入和输出信号的单一框表示几个框的集合来方便分层。子系统的输入和输出信号是所述子系统内各组成框可以访问的。若其组成框在模型的执行过程中移回主框图模型,那么子系统便是虚拟子系统。在虚拟子系统图形实体内,设置调用的进口和出口框,以便定义到达父框图的信号连接。这些进口和出口框表示到达父框图的信道连通信号连接。
如以前所指出的,为了方便构建相当大的和复杂的动态系统,可以允许用户对框图进行分层。子系统通过允许用带有输入和输出信号的单一框表达若干个框的集合,方便这样的分层。子系统的输入和输出信号是其组成框可以访问的。通过把子系统彼此嵌套,可以建立带有任意层的分层结构的框图。子系统最好不影响框图意义。另外,子系统提供把各框分组在一起并允许其它框图构造,以便对各组成框施加统一控制的途径。为了增强子系统的模块性,建模软件还允许从单一GUI访问子系统内各框的参数集合清单,并在子系统上定义和显示特殊图标。定义参数清单和特殊图标的过程称为掩蔽子系统。
存在两种主要的子系统框类型虚拟子系统和非虚拟子系统。虚拟子系统为提供带有图形分层结构的框图的目的服务。非虚拟子系统的行为类似于带有它自己的执行方法(输出、更新、派生等)的基本的动态系统。这些执行方法本身调用组成框的执行方法。
非虚拟子系统的类别是原子子系统。它们类似于虚拟子系统,其优点是在给定层次上对模型的功能方面进行分组。这在模块设计上是有用的。
条件执行子系统。它们是非虚拟子系统,只有当满足先决条件时才执行启动启动子系统。它们类似于原子子系统,只是组成框只有当馈送子系统的启动信号大于零时才执行。
触发子系统。它们类似于原子子系统,只是这些组成框只有当在馈送子系统的触发信号上看到上升和/或下降信号时才执行。
带有触发器的启动启动子系统。它们是启动启动子系统和触发子系统特性的交集。
动作子系统。这些子系统连接到动作引发器(例如,″If(若)″或″SwitchCase″框),是一个明确地命令子系统内容执行的框。这些子系统类似于启动启动子系统,只是已经把对″启动″信号的管理授权给动作引发器。动作子系统定义称为动作信号的新型的信号,后者预示可以支配哪些子系统来由动作引发器执行。
函数调用子系统。这些子系统提供一种把各框集合为一个子系统,就是说,只有当拥有者框调用时才执行。拥有者框可以在调用子系统以前为子系统计算输入信号。另外,拥有者还可以在调用它之后从子系统读出输出信号。函数调用子系统定义新型执行控制信号,称为不包含数据的函数调用信号。它用于定义拥有者框和函数调用子系统之间的执行关系。函数调用拥有者还可以把它们本身指定为″中断″源。在模拟中,它们模拟中断的作用,并且在代码产生中可以把它们本身附在(异步)中断上。
While子系统和For子系统。这些子系统以给定的时间步距多次执行所述组成框。
在其他实施例中,知识库350可以用于方便进一步或更广泛地理解已建模的反应。例如,参见E.Coli细菌中热休克反应的框图描写,知识库350可以用于识别在使用或受σ70影响的热休克反应中的其它反应。作为另一方案,知识库350可以识别E.Coli中σ70起作用(例如趋药性)的其它反应。这样,可以达到对E.Coli在不同的环境下的功能的更广泛的理解。
在再一个实施例中,建模环境110提供程序库,由此可以选定各框并将其包括在模型中。在一个模型中被虚拟的或非虚拟框引用的模型,无论是不是程序库的一部分,都包括在所述模型中以供执行。对于其中产生可执行的代码的实施例,也产生代表被引用模型的代码。
虚拟子系统为提供带有图形分层结构的框图的目的服务。非虚拟子系统的行为类似于带有它自己的执行方法(输出、更新、微分等)的基本动态系统。这些执行方法本身调用组成框的执行方法。
一旦已经构造框图模型,便在用户规定的时间间隔范围内对用户规定的一组输入进行模型的执行过程。在编译框图的时候执行开始。编译阶段标记模型执行过程的开始,并涉及准备数据结构和评估参数、配置和传播框特性、确定框的连通度以及完成框的缩小和框的插入。准备数据结构和评估参数的操作建立在所述编译阶段需要的基本数据结构并将其初始化。对于每一个框,一种方法迫使所述框评估它的全部参数。为所述框图内所有的框调用所述方法。若有任何未解决的参数,则此刻抛出执行错误。在框和端口/信号特性的配置和传播过程中,根据框的相应的功能属性和通过线条连接到给定框(和/或端口)的属性设置每一个框(和/或端口)的编译属性(诸如尺寸、数据类型、复杂性或采样时间)。所述属性设置是通过一个过程完成的,在此过程中框的功能属性遵循信号的连通度从一个框至下一个框″纹波传送″所述框图。所述过程(在这里称为″传播″)服务于两个目的。在一个框明确地指定它的框(或它的端口)功能属性的情况下,传播有助于保证所述框的属性与连接到它的框的属性兼容。若非如此,则发出一个错误。其次,在许多情况下,实现与范围很宽的属性兼容的框。这样的框按照连接到它们的框的属性来适配它们的行为。这类似于面向对象的编程语言的多态性概念。根据所述框所在的特定的框图来选定所述框的精确实现方案。包括在这个步骤内的是其它方面,诸如验证模型内所有速率转变产生决定性的结果以及正在使用适当的速率转变框。编译步骤还确定实际的框连通度。虚拟框在框图的执行中不起语义的作用。在这步骤上,框图中的虚拟框被优化掉(除去),而剩余的非虚拟框重新彼此适当地连接。带有实际的框连接的框图的这个编译版本,从此刻起在执行过程中使用。框图中框互联的途径不一定定义求解(执行)与各个框对应的方程(方法)的次序。实际次序部分地在编译中的排序步骤过程中确定。一旦编译步骤已经完成,在框图执行过程的整个持续时间内不能改变已排序的次序。
编译阶段之后是还可以产生线性模型的模型链接阶段。链接完成之后,可以或不可以产生代码。若产生代码,则模型是通过加速模拟模式模拟/执行的,其中框图模型(或它的部分)翻译为软件模块或硬件描述(广义地称作代码)。若这阶段完成,则随后的阶段在框图的执行过程中使用所产生的代码。若不产生代码,则框图可以在解释模式中执行,其中框图的编译和链接版本可以直接用来在要求的时间间隔内执行模型。这种执行过程的解释模式适用于取得细粒的信号可跟踪性。通过代码产生来执行有几个不同的优点。执行所产生的代码可以比解释执行更有效,因为在所述引擎中较少数据结构和较少内部通信,尽管提高的效率一般是以减少执行的可跟踪性为代价的。在执行过程中硬件描述的模拟可以帮助识别和解决设计项目的软件阶段的错误。一旦已经用硬件实现所述系统,跟踪和修改这样的错误证明的代价要昂贵得多。另外,可以把框图建模软件与其它适用于对特殊类别的系统进行建模和模拟的软件环境结合在一起。可以用硬件直接测试模型,从而快速而经济有效地形成新的系统原型。本专业的技术人员将会意识到,当用户产生代码时,他们可以选择不进一步进行所述框图的执行过程。他们可以选择取得所述代码,并在所述建模软件环境的限定以外配置它。这一般是框图软件包中动态系统设计的最后步骤。
在一个特定的实施例中,建模环境110提供允许用户选择模型执行过程的复杂性的工具。回头参见图4,作为示例,可以向用户提供对作为简单的输入-输出框的执行途径4100或图4所示的更详细的形式的执行途径4100的选择。
回头参见图1,模拟引擎120可以使用在建模环境110中建立的模型。动态系统,诸如生物过程和化学反应,一般是作为若干组微分、差分、代数和/或递归方程建模的。在任何给定时刻,这些方程可以看作是系统的输出响应(″输出″)、此刻的所述系统的输入刺激(″输入″)、所述系统的当前状态、所述系统参数和时间之间的关系。可以把系统的状态设想为所述系统动态地改变的配置的数字描写。例如,在为单摆建模的物理系统中,状态可以看作是钟摆当前的位置和速度。类似地,对信号进行滤波的信号处理系统会维持一组以前的输入作为状态。系统参数是系统的静态(不变)配置的数字描写,而且可以看作是系统方程中的常系数。对于钟摆的示例,参数是钟摆的长度,而对于滤波器示例,参数是滤波器抽头(tap)的值。可以与本发明联系使用的模拟引擎是Simulink,可从美国麻萨诸塞州Natick的MathWorks,Inc.获得。
现有的系统把第五类型的数学模型(随机模型)加到动态系统的研究中使用的数学模型类型中微分方程;差分方程;代数方程和混合型模型。第一类型数学模型利用常微分方程(ODE)描述系统并在图5A中描绘。动态系统502指定一组两个方程输出504和导数506。输出方程504便利于在给定时刻以其输入、状态、参数和时间的函数的形式计算系统输出响应。微分方程506是常微分方程,允许以输入、状态、参数和时间的函数的形式计算当前时间的状态的导数。这类模型适合于这样的系统,在这种系统中重要的是以连续时间函数的形式跟踪系统响应。这样的连续时间系统一般代表物理系统(机械的、热学的、电气的),但是,它们对于化学和生物化学反应,诸如细胞内生物化学反应也可能是有用的。例如,连续时间系统在细胞新陈代谢建模中可能是有用的,而同时随机系统对细胞调节系统模型,诸如DNA转录可能是有用的。对于简单的系统,可以使用输出504和微分方程506来获得输出响应y(t)的封闭型解。但是在大部分复杂的实际的世界系统中,借助于通过数字装置将状态积分来获得系统响应。
本文中使用的ODE的定义包括隐式和显式微分方程。常微分方程的类可能需要附加的方程来定义正在建模的系统。例如,用方程调用的投影可能需要对微分变量施加约束(例如,状态X1和X2必须落在由x12+X22=25定义的流形(manifold)上)。这些约束可以以耦合条件的形式应用于微分方程。尽管包括投影的系统传统上可以不再限定为ODE;但是以微分代数方程的形式将它们包括在本文中,以便简化所述类别的系统。另一个示例是Jacobian方程的使用,Jacobian方程规定关于独立变量和/或微分变量的偏微分。Jacobian方程一般在获得非线性模型的线性近似或一组方程的总体线性模型时使用。一旦所述模型已经达到它的稳态工作点,便需要用于某些数字积分形式的Jacobian方程,以便产生线性模型等。可以扩展输出504和导数方程506以便定义所述框的其它关系。例如,输出方程504可以采用以下方法来帮助管理它的状态定义在特定时刻或者看到特定状态时将其状态复位为已知数量的关系。Jacobins还可以用于执行已建模系统的敏感性分析。敏感性分析识别对系统的行为具有关键作用的变量。
另一种类型的数学模型利用差分方程描述系统,如图5B所描绘的。动态系统508指定一组两个方程输出510和更新512。输出方程510便利于计算在给定时刻作为所述输入、某先前时刻的状态、参数和时间的函数的系统输出响应。更新方程512是差分方程,它允许计算当前时刻作为所述输入、某先前时刻的状态、参数和时间的函数的状态。这类模型适合于这样的系统,在该系统中重要的是在各离散的时间点跟踪所述系统响应。这样的离散时间系统一般代表离散时间控制和数字信号处理系统。对于简单的系统,可以使用输出方程510和更新方程512来获得输出响应y(t)的封闭形式解。但是在大部分复杂的实际世界系统中,通过递归来求解系统响应。反复使用输出方程510和更新方程512,来求解在一定时段内的系统响应。附加类型的数学模型利用代数方程描述系统,如图5C所描绘的。动态系统514使用代数方程516,必须每次求解代数方程516以便获得所述输出。尽管简单的系统可以允许人们获得所述系统输入和输出的封闭形式解,但是可行的代数方程可以最佳地利用涉及摄动和叠代的数字方法迭代求解。下面更详细地讨论用于动态系统建模背景的代数方程求解技术。
对于生物过程和化学反应建模来说,附加模型是有用的。所述模型利用随机技术,诸如Gillespie,Gibson/Bruck和T-leaping描述系统。当由ODE/DAE系统暗含的连续近似不可应用时,这些技术是有用的。当处理小分子的计数,诸如RNA聚合酶对DNA的结合以便转录特定的基因时,可能就是这种情况。可以以随机方式处理的化学方程的示例是图3B所示的反应表,例如,s32+Dnak->s32Dnak。该方程表示一个s32分子与一个Dnak分子的键合。当以随机方式模拟时,所述反应在按照取决于反应动力学的几率分布的随机时间发生。不同的几率分布可以用于确定何时所述反应发生,诸如指数分布、二项式分布、F分布、频率分布、几何分布、超几何分布、多项式分布、负二项式分布、百分数分布、百分数累积分布、泊松分布、后分布、前分布、t分布和正态分布。在其他实施例中,用户可以定义当确定随机反应发生的时间值时使用的几率分布。
第五类型的数学模型是其部件落在上面讨论的四种类型的模型中的复合系统。大部分复杂的现实世界系统模型落入这一类。这类系统具有输出、导数、更新和潜在的其它方程。这样的系统的输出响应的求解要求结合针对上面所有类别讨论的解决途径。复合系统的一个示例是用既包含微分方程又包含代数方程的微分代数方程(DAE)描述的示例。在生物化学模型上特别感兴趣的是混合型方法,它既包含随机方程又包含决定方程,允许对于同一模型中的新陈代谢和调节系统两者求解。
涉及就输出和状态而言定义的关系(方程)的许多扩展被分为复合系统类型。例如,可以为微分变量定义有限积分关系。这种关系要求由输出方程、更新方程、微分方程和过零方程构成的一组方程。过零方程规定有限积分的上和下限出现的时刻。所述扩展的另一个示例是Enable(启动)和Disable(禁止)方程,它们定义当在执行过程中系统的一个部分激活和去激励时,在状态或信号当中的关系。
系统的四个类别中固有的(ODE、差分方程、代数方程和复合方程)是系统采样时间的概念。采样时间是随着时间进展跟踪所述系统的输入、状态或输出(集体地称作结果)的时间间隔。根据采样时间,可以把系统描述为离散时间系统、连续时间系统和混合型系统。如上面指出的,随机系统在由有效概率分布确定的随机时间出现。
离散时间系统是这样的系统,在所述系统中以有限的时间间隔跟踪系统结果的演变。随着时间间隔的趋向零的极限,离散时间系统变成连续时间系统。时间间隔可以是周期性的或非周期性的。有时,非周期性的速率系统,诸如随机系统称作不均匀速率系统意味着没有周期性速率可以跟踪响应。连续时间系统是其中系统结果的演变是连续地改变的系统。在数字积分过程中连续时间信号变化。连续时间系统的示例是由ODE描述的系统。还可以存在代数或复合连续时间系统。混合型系统是既有离散时间元件又有连续时间元件的系统。
若系统只具有一种采样时间,则它被称为单速率系统。若系统具有多种采样时间,则它被称为多速率系统。多速率系统可以利用执行的单任务形式或执行的多任务形式计算(执行)。当使用多任务执行时,它符合Liu,C.L.和LAYLAND,J.W.定义的速率单调调度原理,″硬实时环境中多道重新设计调度算法″ACM 20,1(January 1973),46-61。系统还可以通过正在使用的数字积分求解程序的类型分类。固定步距系统是使用固定步距的求解程序。固定步距求解程序一般使用显式方法来计算固定的周期性时间间隔的下一个连续状态。可变步距系统是利用可变步距的求解程序。可变步距求解程序可以使用隐式或显式方法来计算非周期性时间间隔的下一个连续状态。一般说来,可变步距求解程序使用一种形式的误差控制来调整时间间隔大小,以便达到所要求的允差。
在实践中,除大部分基本系统外,动态系统用的数学模型涉及以某种预定的方式应用的数学变换的复数组,其中某些变换的输出形成其他变换的输入。可以把每一个基本的变换作为落在上面列出的类别之一的简单的动态系统来孤立地观察。因此,可以以各种各样的简单动态系统的互连的形式来为复杂的动态系统建模。所述框图是近年来取得进展的这样一种互连的概要描述。这样的框图模型现在变为教科书、设计图纸、杂志文章和规格说明书中传播动态系统行为细节的标准手段。
动态系统的框图模型示意地表示为通过代表动态系统输入和输出的线条互联的一些框的集合。每一个框代表基本动态系统。在一个框发出并结束于另一个框的线条象征所述第二框是第一框的乘积。本专业的技术人员将会意识到,术语″框″并不仅仅指基本动态系统,而且还可以包括有助于框图的可读性和模块性的其它建模元件。
数字信号处理(DSP)的理论的焦点集中在样本序列形式的建模信号。通过把样本u[n]映射到离散时间点u(tk),这个视图自然拟合进基于时间的框图范例。这增加了以下好处能够对数字信号处理器系统及其他类别的基于时间的系统,例如,连续和/或离散时间控制系统之间的相互作用建模。
换一种说法,框图模型代表动态系统的信号和状态变量之间变化的基于时间的关系。通过评估随时间变化(其中时间以用户规定的″开始时间″开始并以用户规定的″停止时间”结束)的这些关系来获得模型的解决方案(系统响应的计算)。这些关系的每一次计算都称作时间步骤。信号代表随时间变化的量,而这些量是针对框图开始和停止时间之间的所有时段定义的。通过由一些框表示的一些方程组来定义信号和状态变量之间的关系。这些方程定义输入信号、输出信号、状态和时间之间的关系。在所述定义中固有的是参数概念,所述参数是这些方程的系数。
框图不只用于代表基于时间的动态系统,而且还用于其它计算模型,指出这一点很重要。例如,流程图是用于捕获工艺流程的框图,一般不适用于描述动态系统行为。数据流程框图是描述图形编程范例的框图,其中数据的可用性(往往设想为记号)用于引发框的执行,其中框代表操作,而线条代表描述框之间数据流动方向的执行依赖关系。如在这里使用的,术语框图若非专门指出,是指用于动态系统背景的基于时间的框图。
框图执行引擎对建模软件任务作出贡献,所述建模软件任务使计算和跟踪由系统的框图模型制造的动态系统输出成为可能。执行引擎对框图进行编辑并将其链接以产生所述模型的″存储器内可执行的″版本,所述版本用于产生代码和/或模拟框图模型或将其线性化。框图的执行又称模拟。编译阶段涉及检查在框图中框互连的完整性和有效性。在这个阶段,所述引擎还把框图中的框排序成为当建立框方法执行清单时使用的层次清单。在链接阶段,执行引擎使用编译阶段的结果来分配执行所述框图的不同部件所需要的存储器。链接阶段还产生由框图的模拟或线性化过程使用的框方法执行清单。链接阶段内包括模型的初始化,模型初始化由评估″设置″方法(例如,框开始、初始化、启动和恒定输出方法)构成。之所以产生框方法执行清单,是因为当它们有样品命中时,模型的模拟和/或线性化必须按类型(而不是按框)执行框方法。
完成链接之后,执行引擎可以产生代码。在这个阶段,执行引擎可以选择把框图模型(或它的各部分)转变为软件模块或硬件描述(广义地称为代码)。若这阶段完成,则随后的阶段使用在框图的执行过程中所产生的代码。若完全跳过这个阶段,则执行引擎对框图使用执行的解释模式。在某些情况下,用户不可以进而执行框图,因为它们很可能在框图软件的范围以外配置代码。到达模拟阶段时,执行引擎使用一个模拟循环来按预定排序执行框方法,在样本命中时,产生随着时间变化的系统响应。
推定的反应时间的确定依赖于为所述模拟选定的时间间隔的大小。为了明白如何选择步距大小,首先必需明白求解程序的概念。求解程序是模拟引擎120的一个模块,负责完成两个任务(a)为了准确地跟踪系统的输出,在相继出现的两遍之间执行时间应该前进多远,和(b)对系统的状态的导数进行积分以便获得实际的状态。根据求解程序如何执行第一任务,它们一般分为两个基本类别固定步距求解程序或可变步距求解程序。
固定步距求解程序是这样的求解程序,其中相继出现的两遍之间的时间步距大小是固定量。用户一般明确地指定所述量。这些求解程序用于对必须运行在定义的时间内的系统类型(离散的系统)建模。例如,防抱死制动系统可以设计成控制汽车的刹车系统,而且在百分之一秒(0.01)内执行这样的控制输入,以便保证汽车安全地停止,若刹车系统不满足它的定时约束,则汽车可能撞坏。因此,固定步距求解程序设计成帮助必须在固定时段内产生结果的模型离散系统,并且固定步距的执行保证已建模的系统可以产生这样的结果。某些反应可以定义为具有离散的采样时间,在这种情况下,可以利用固定步距求解程序按照固定的时间间隔计算反应值。
但是,把某些反应定义为连续时间系统。对于这些反应,事件调度按照由模拟引擎确定的时间间隔发生,以便把误差的积累减到最小。这些反应要求使用可变步距求解程序,可变步距求解程序设计成对连续系统进行建模,其中需要时间间隔不均匀的步距来模拟所有重大的行为。例如,人们可能想要模拟反弹球的路径、它在哪里反弹、弹跳多高和它在哪里停止。不会被均匀地隔开,而且反弹的高度由于重力、摩擦及其他力将逐渐减小到零。可变步距求解程序用于这些类型的连续系统,并用于确定使用什么步距大小才能对球的行为准确建模。
在再一个实施例中,模型假定称为″快速″的反应已在″零时刻″完成,这实际上意味着在整个模型模拟中以具有最后结果值的常数的形式处理它们。
如以前所指出的,随机反应根据有效概率分布在随机时间上出现,这并非任何一种类型的求解程序都合适。为了或者单独地或者为混合型系统的一部分适当地为包括随机反应的系统建模,,所述混合型系统既包括随机又包括或者固定求解程序单元或者可变求解程序单元,可以采取以下步骤。
模拟过程确定模型中每一个反应的推定时间(步骤602)。一旦算出系统内每一个反应的推定的反应时间,就通过推定的发生时间把所述时间排序为状态阵列(步骤604)。在一个实施例中,状态阵列是按发生时间排序的指针阵列,在模型模拟过程中每一个指针指向所述点上待执行的对象。一旦排序,就执行由阵列中的第一项识别的对象(步骤606)。
因为顶部对象的执行可以影响已建模系统中存在的物质数量或者所述表中特定反应的推定的反应时间,所以重新计算所述状态阵列中每一个条目的推定时间(步骤608)并将所述状态阵列重新排序(步骤610)。
模拟引擎120检查待执行的附加反应(步骤614)。若存在附加反应,则模拟引擎120检查确定是否已达到最后一次模拟(步骤616)。若非如此,则模拟引擎120执行状态阵列中的下一个条目(步骤606)。否则,所述模拟结束。本专业的普通技术人员会意识到,还可以使用其它调度方法。
在一个实施例中,模拟引擎120提供存储整个模拟上下文的机制和恢复整个模拟上下文的机制。在本发明的一个方面,在模拟开始以前,将建模环境110中的标志置位,当所述模拟完成(因为最后的时间到、模拟被用户中断或其他)时,指令模拟环境120存储模拟上下文。还可以执行用于查询是否应该存储所述上下文的替换程序(例如,当完成模拟时用户相互作用)。一旦模拟完成,可以以文件形式把所述模拟上下文存储在工作空间参数中或者以某种其它格式存储。
在一个实施例中,把所述模拟上下文存入文件。可以自动地命名其中存有所述模拟上下文的所述文件。但是,作为另一方案,可以使用用户定义的文件。用于保存所述模拟上下文的存储器机制可以通过转换过程从以存储器转储的形式保存所述上下文改变为把所述上下文存储器以独立于平台的文本转储的形式保存。只要所涉及的计算机体系结构之间没有体系结构上的不兼容性,在结果上就不会有差异。其它实现方案,诸如把所述上下文以独立于平台的二进制转储的形式或者以取决于平台的文本转储的形式保存也都在本发明的范围之内。
通过利用相应的′继续模拟′命令开始所述模拟来实现上下文恢复的用户接口。可以以用于触发模拟或任何其它途径的正常装置的参数的形式来实现这一点。继续模拟采取初始模拟的所有参数(强制性的和任选的)(诸如最后时间和附加的输出次数)作为参数。
为了存入模拟上下文,可以在模拟引擎120中设置′StoreSimulationContext′标志,或者可以通过分析环境130将′StoreSimulationContext′标志传递到模拟引擎120。可以代之以使用其它实现方案(诸如在建模环境110中利用图形元件),或者除了使用标记外还使用其它实现方案。另外,上下文存储器可以是在模拟过程中(亦即,不中断调节模拟)发生的活动。为此目的,用户可以指定特定的存储器状态(例如,当在模拟中到达某个时刻,诸如到达稳态时,或当存在模型变量的特定值时)。这可以产生一序列模拟上下文文件,带有在模拟运行过程中模拟上下文的快速转储。
在一个实施例中,模拟引擎120寄存构成模拟上下文的存储器的一些区域,并且随后调用程序以便存储和恢复所述模拟上下文。在一个实施例中,在模拟开始以前寄存存储器中与模拟上下文有关的一些区域。这是借助于通过登记机制对一般存储器分配调用重选路由来实现的。当集合变量把基准值和数值混合时,出现存储和恢复所述模拟上下文方面的复杂性。为了说明这一点,考察Runge-Kutta45求解程序的属性。在其C++的实现方案中,从VarStepSolver中得出类RK45。RK45的属性是&pre listing-type="program-listing"&&![CDATA[  RK45  double t0;  double *x0;double t1;  double *x1;    double *dX [7];  bool projectI    stati]]&&/pre&所述定义揭示,RK45的实例包含数值属性和引用属性。各种引用包含专用于特定模拟的指针并且各种引用在模拟运行之间可以不同。这样,恢复所述各种引用可能产生无效引用,因此,应该排除所述各种引用。图7描述用于RK45的一个实例的分配的存储器770的一部分。所述分配的存储器包括数值字段772、774、776、778、780、782和784以及引用字段786、788、790和792。
存在用于跟踪模拟上下文的存储器分配的两个基本方法。局部标引模式跟踪所述上下文的一部分的对象的有关变量。作为另一方案,可以保存全局表。第一方法非常适合于面向对象的编码范例,而第二方法更适合于过程风格的编码。本专业的技术人员将会意识到,在本发明的范围内可以使用识别和注释由所述模拟上下文使用的存储器部分的其它方法。
在全局标引模式的情况下,当定义有关变量时,亦即,当分配了有关变量的存储器时,通过特殊调用来识别所述有关变量。为此目的,不是调用标准运行时分配程序,而是使用中间函数调用,所述中间函数调用像在其他情况下所做那样调用分配程序,但是在它返回以前,它以所述上下文的一部分的形式登记所述分配的存储器。
应当指出,所述标引模式可以扩展到保存局部模型信息,以方便选择性上下文恢复。于是,甚至在别处在影响那些部分的存储器布局的模型变化的情况下,可以识别模型中子系统的上下文并在请求时将其恢复。优选实施例跟踪各模型部分的实例和它们分配的存储器,然后将唯一的标识符赋予所述存储器。
在数字求解程序的模块化以及日益广泛地开创应用面向对象的编码原理的情况下,已经出现更呈分布式的实现方案的需要。在这种体系结构中,变成最好不具有有关存储器的全局下标,而是为每一个对象在本机保存下标。对上下文敏感的对象实现一种访问方法,使它的上下文可用。有若干种可能的实现方案。例如,对象可能产生作为上下文的一部分的每一个存储器位置的下标并且具有由调用者执行流操作,或者它可以流化所述存储器内容本身。
这种局部标引模式支持用于模型的各部分(例如,只有一个子系统)的选择性存储器恢复,因为它是基于对象的。标引上下文分段模型的原点,任选地与各种类型实现方案之间的转换机制组合,允许模型的平台和不同的编译版本之间的恢复。例如,这支持使控制器在模拟过程中达到与详细的现象学设备模型组合的稳态工作点,存储所述上下文,然后在产生用于控制器的代码之后,利用同一上下文来将控制器代码初始化。
必须选择正在使用的标引类型集中式或分布式。这涉及标引与存储器分配调用的耦合一个表保持跟踪作为上下文的一部分的各存储器部分。当分配作为实例的存储器时,把它作为允许恢复它的上下文的一部分来标引。直接的方法通过&地址、尺寸&变元标引该实例的所有RK45特定存储器。给定RK45实例的基地址和它的类型的尺寸,把存储器的整个部分看作所述上下文的一部分。
为了免去存储器的引用部分,可以利用所述引用变量的存储器分配调用。当所述类型的定义会明确地排除存储器的引用部分时,这避免可能需要的冗余。图8A中举例说明这种方法。当定义RK45实例时,&地址,尺寸&元组标记存储器800的相应部分,包括数值和引用两者。接着,当在图8B中定义被引用变量之一(x0)时,建立&地址,尺寸&元组,所述&地址,尺寸&元组标记其值位于其中的存储器802。同样,建立&地址,尺寸&元组作为并行标引模式804的一部分,它保持跟踪引用的存储器区域。因而,本发明的一个实现方案包括带有&地址,尺寸&元组的两个标引模式,一个用于与上下文有关的带有数值和引用两者的存储器800,一个用于包含引用的这个存储器的一部分802。这个实现方案允许把分配调用于标引。作为另一方案,当定义这些引用变量中的一个时,可以把引用的存储器标引模式中的&地址,尺寸&元组分区。这需要更高级一些的登记机制。在一个替代实现中,存储器区域不是动态地构造的,而是作为一组变量将其硬编码,所述一组变量是所述上下文的一部分。实现两个标引模式并将它们彼此配合使用。
因为用户定义的函数的工作阵列是标引的存储器的一部分,所以不需要附加的努力来使用户定义的框坚持所述恢复方案,而只要通过标准接口对各变量加以说明。例如,所述接口说明连续状态变量是ssSetNumContStates(S,NUM_CONT_STATES),其中S引用用户定义的系统,而NUM_CONT_STATES是连续状态的数目。为了方便更大的灵活性,还实现将往来于文件的选定变量流化的用于用户定义的框的用户选项。
由于用于需要存储和恢复的存储器区域的标引模式的缘故,需要一种调用标引操作以及便利于上下文恢复的机制。指出以下一点很重要作为所述上下文的一部分的存储器全都是在请求模拟运行时分配的。在执行每一次模拟之前必须重新标引,因为可能已经发生所述执行过程的变化(例如,可能已经选定不同的求解程序)。
围绕主模拟循环实现所述恢复过程,如以下斜体代码片断所示
&pre listing-type="program-listing"&&![CDATA[int SimulateModel(slModel*model,CmdlInfo*cmdlInfo)  {...  sm_SimStatus(model,SIMSTATUSRUNNING);  if(slLoadContext(model))ssSetTFinal(SgetCtxTFinalo);  whlee(ssGetT(S)<ssGetTFinal(S))  ...  }  slCtDsStore(model);/*store context for possible continnation*/  if(!stopRequested)  ssSetStopRequested(S,true);  errmsg=slDoOutputAndUpdate(model);  if(errmsg!=SL\_NoError)return(errmsg);  }  ...  return(errmsg);}/*end SimulateModel*/]]&&/pre&开始模拟之前,确定是否需要借助于调用slLoadContext来恢复所述模拟上下文,在设定恢复标志的情况下以相同的函数调用来执行所述slLoadContext。一旦恢复了所述上下文,就像一般调用那样进行模拟。一旦完成,若所述框图的StoreSimulationContext标志已由用户设置,则所述标引的存储器便由slCtxStore调用存储。在一个实现方案中,将所述上下文写入带有mcx扩展名的文件。
图9中的流程图描述恢复机制的实现方案。当模型属性simulationContext尚未设置时,启动所述上下文标引。这是要保证,当请求新的模拟运行时,将原来标引的存储器清除并重新赋值。否则,将对它进行添加,并且按照增加的次数标引存储器的同一区域(涉及模拟运行次数)。一旦slCtxStore把所述上下文写入文件,或者在另一个退出路径(例如,因为出错状态)的情况下,就将simulationContext复位,以便指示所述新的模拟可以开始运行。
当启动新的运行时,第一上下文改向分配调用将ContextInitializationComplete复位,将所述索引复位并建立第一&地址,尺寸&元组。然后相继出现的分配调用完成存储器变址,包括标引包含引用而不是数值的上下文存储器部分的模式。这功能总是需要的(亦即,当不恢复上下文时也是如此),因为它促进上下文存储。然后确定用户是否请求一个模拟继续,用loadContext标志表明。若是如此,则验证捕获存储的上下文的模型的存储器映射的模型检查和(model checksum),并且当它遵循待模拟的模型检查和时,恢复所述上下文。这是重要的,因为用于保存模拟上下文的模型存储器的映射必须与模型兼容。然后执行主要模拟循环,并且当完成时,把当前的模拟上下文写入文件。应该指出,所述上下文保存必须在随后的slDoOutputAndUpdate以前完成,因为在固定的步距大小的情况下,评估slDoOutputAndUpdate使离散脉冲发生器的状态进入下一个时间点,但是从当前时刻重新启动继续。
图9描述模拟引擎可以恢复模拟上下文然后执行的一系列步骤。所述序列从loadContext变量设置为零开始(步骤920)。对关于存储的模拟上下文是否可用(步骤922)作出判断。若存储的模拟上下文可用,则把loadContext变量设定为1(步骤924)。接着,把变量restoreSimulationContext设定为等于变量loadContext(步骤926)。若未设置变量simulationContext(步骤927),则向存储器赋值(步骤928)。接着,装入simulationContext存储器(步骤930)并确认所述装入(步骤931)。若模拟上下文已经恢复,则进行模拟(步骤933)。可以在取决于或者模拟之前或者相互配合地确定的用户的愿望的模拟之后保存所述模拟上下文。若要保存所述模拟上下文,则保存所述模拟上下文(步骤934),并且所述simulationContext变量复位为零(步骤936),而同时释放被赋值的存储器。若不保存所述模拟上下文,则仍旧将simulationContext数值设定为零(步骤936)。
所恢复的模拟上下文可以用来从公共的可再现的点运行多次分析,以便测试替代方案。所恢复的模拟上下文可以用来并行地同时运行所述替代分析。在另一个实施例中,所述模拟上下文可以用来更新结构模型。通过保证准确性通过以前的模拟方法把所述模拟上下文的恢复保存一段有意义的时间,尽管不必重新运行用于模拟的过渡或初始化阶段的模拟。还可以在不停止模拟的情况下从运行的模拟保存多个模拟上下文,从而有助于调试及其他类型的分析。本发明的说明性实施例使种类繁多的系统的模拟成为可能,而不限于基于时间的框图。
在另一个实施例中,优化可逆的反应的模拟。在这些实施例中,分解状态阵列以便识别在同一模拟时间在状态阵列中是否出现可逆反应的″两个方向″,亦即,待模拟的下两个反应是不是Ce->Br和Br->Ce。当发生这种情况时,两个反应都会变坏,因为它们的输出彼此取消。利用众所周知的代码优化技术,可以把这个概念扩展到3个或更多的反应,它们共同对消彼此的输出,例如,Ce->Br,Br->Pb,Pb-Ce。
再一次参见图1,模拟引擎120所产生的结果可以由分析环境130使用。在其他实施例中,分析环境130直接在模型上操作,以便例如为已建模的系统产生稳态数值,而不是模拟所述系统。在这些实施例中的一些实施例中,分析工具120通过把所有微分方程的导数设置为0并用代数的方法求解所述系统来做到这一点。在这些实施例的其他一些实施例中,分析引擎执行通量平衡分析,如先有技术已知的,以便确定系统的稳态值。其它众所周知的分析形式可以由分析环境120使用,包括利用非线性求解程序、敏感性分析、分叉分析、参数扫描、参数估计和网络推理分析。这些分析的结果可以提供给模拟引擎120作为用于其计算的输入。
分析环境130可以进一步处理由模拟引擎120产生的结果或者它可以以视觉方式或以听觉方式显示结果。例如,分析环境130可以使用图形可视化技术来向用户识别类似的途径。在某些实施例中,分析环境130与数据采集硬件(图1中未示出)接口,数据采集硬件允许分析环境130把所产生的结果与试验数据比较。在这些实施例中,从正在进行的试验采集的数据用来纠正或产生现场出现的反应的模型。在某些实施例中,在微点阵或基因芯片上进行试验。例如,若模型预测存在给定的蛋白质,但是从试验采集的数据表明所述蛋白质不存在,则分析工具130可以用信号通知用户(或者以听觉方式或者以视觉方式),所述现场试验和预测的响应不同。对于在微点阵上进行的试验的实施例,所采集的数据在微孔之间可以不同。在这些实施例中,分析工具可以求所采集的数据值的平均值。在这些实施例的其他一些实施例中,如果单一微孔的数据不同于模型的预测响应,那么,分析环境130可以将这种差异信号化。在某些实施例中,现场试验和预测结果之间的容许差异的量是可以由用户配置的。在其他实施例中,分析工具把所采集的数据发送至建模环境110,以便可以修改模型来补偿所述差异。在再一个实施例中,分析环境130用图解方式显示试验的预计结果和从所述试验采集的数据。
在其他实施例中,数据采集硬件允许分析工具根据模拟引擎120所产生的结果控制正在进行的试验。这些实施例在纳米机构的结构上可能是有用的。在这些实施例中,模型可以要求现场温度为华氏102度。若热电耦测量的现场环境温度表示所述温度已经降低到华氏102度以下,则可以给所述试验施加更多的热。
数据采集硬件可以包括任何数量的与执行整体建模、模拟和分析环境100的计算平台兼容的硬件装置。例如,在环境100在一台个人计算机上执行的实施例中,数据采集硬件与局部本机系统总线220接口。在诸如图2B所示的实施例中,数据采集硬件与HyperTransport总线、快速I/O总线或InfiniBand接口。数据采集硬件可以与使用GPIB(IEEE-488,HPIB)、VISA、TCP/IP和UDP标准的}

我要回帖

更多关于 matlab中ode45的用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信