导航:首页 > 源码编译 > 编译原理moveI

编译原理moveI

发布时间:2023-12-23 01:16:06

A. VASP 计算问题小结

第一性原理其实是包括基于密度泛函的从头算和基于Hartree-Fock自洽计算的从头算,前者以电子密度作为基本变量(霍亨伯格-科洪定理),通过求解Kohn-Sham方程,迭代自洽得到体系的基态电子密度,然后求体系的基态性质;后者则通过自洽求解Hartree-Fock方程,获得体系的波函数,求基态性质

DFT中密度泛函的Functional, 包括LDA,GGA,杂化泛函等等

在处理计算体系中原子的电子态时,有两种方法,一种是考虑所有电子,叫做全电子法,比如WIEN2K中的FLAPW方法(线性缀加平面波);此外还有一种方法是只考虑价电子,而把芯电子和原子核构成离子实放在一起考虑,即赝势法,一般赝势法是选取一个截断半径,截断半径以内,波函数变化较平滑,和真实的不同,截断半径以外则和真实情况相同,而且赝势法得到的能量本征值和全电子法应该相同。

赝势包括模守恒和超软,模守恒较硬,一般需要较大的截断能,超软势则可以用较小的截断能即可。另外,模守恒势的散射特性和全电子相同,因此一般红外,拉曼等光谱的计算需要用模守恒势。

赝势的测试标准应是赝势与全电子法计算结果的匹配度 ,而不是赝势与实验结果的匹配度,因为和实验结果的匹配可能是偶然的。

一般何时考虑自旋呢?举例子,例如BaTiO3中,Ba、Ti和O分别为+2,+4和-2价,离子全部为各个轨道满壳层的结构,就不必考虑自旋了;对于BaMnO3中,由于Mn+3价时d轨道还有电子,但未满,因此需考虑Mn的自旋,至于Ba和O则不必考虑。其实设定自旋就是给定一个原子磁矩的初始值,只在刚开始计算时作为初始值使用,具体的可参照磁性物理。

包括很多种了,比如晶格常数和原子位置同时优化,只优化原子位置,只优化晶格常数,还有晶格常数和原子位置分开优化等等。在PRL一篇文章中见到过只优化原子位置,晶格常数用实验值的例子(PRL 100, 186402 (2008));也见到过晶格常数先优化,之后固定晶格常数优化原子位置的情况;更多的情况则是Full geometry optimization。
一般情况下,也有不优化几何结构直接计算电子结构的,但是对于缺陷形成能的计算则往往要优化。

软件大致分为基于平面波的软件,如CASTEP、PWSCF和ABINIT等等,计算量大概和体系原子数目的三次方相关;还有基于原子轨道线性组合的软件(LCAO),比如openmx,siesta,dmol等,计算量和体系原子数目相关,一般可模拟较多原子数目的体系。

VASP是使用赝势和平面波基组,进行从头量子力学分子动力学计算的软件包,它基于CASTEP 1989版开发。VAMP/VASP中的方法基于有限温度下的局域密度近似(用自由能作为变量)以及对每一MD步骤用有效矩阵对角方案和有效Pulay混合求解瞬时电子基态。这些技术可以避免原始的Car-Parrinello方法存在的一切问题,而后者是基于电子、离子运动方程同时积分的方法。离子和电子的相互作用超缓Vanderbilt赝势(US-PP)或投影扩充波(PAW)方法描述。两种技术都可以相当程度地减少过渡金属或第一行元素的每个原子所必需的平面波数量。力与张量可以用VAMP/VASP很容易地计算,用于把原子衰减到其瞬时基态中。

我们平时最常用的研究方法是做单点能计算,结构优化、从头计算的分子动力学和电子结构相关性质的计算。一般我们的研究可以按照这样的过程来进行

跟其它软件类似,VASP具有单点能计算的功能。也就是说,对一个给定的固定不变的结构(包括原子、分子、表面或体材料)能够计算其总能,即静态计算功能。

单点能计算需要的参数最少,最多只要在 KPOINTS 文件中设置一下合适的K点或者在 INCAR 文件中给定一个截断能 ENCUT 就可以了。还有一个参数就是电子步的收敛标准的设置 EDIFF,默认值为 EDIFF=1E-4,一般不需要修改这个值。

具体来说要计算单点能,只要在 INCAR 中设置 IBRION=-1 也就是让离子不移动就可以了。

结构优化又叫结构弛豫 (structure relax) ,是指通过对体系的坐标进行调整,使得其能量或内力达到最小的过程,与动力学退火不同,它是一种在0K下用原子间静力进行优化的方法。可以认为结构优化后的结构是相对稳定的基态结构,能够在实验之中获得的几率要大些(当然这只是理论计算的结果,必须由实验来验证)。

一般要做弛豫计算,需要设置弛豫收敛标准,也就是告诉系统收敛达成的判据 (convergence break condition) ,当系统检测到能量变化减小到一个确定值时例如 EDIFFG=1E-3 时视为收敛中断计算,移动离子位置尝试进行下一步计算。EDIFFG 这个值可以为负,例如 EDIFFG=-0.02 ,这时的收敛标准是当系统发现所有离子间作用力都小于给定的数值,如 0.02eV/A 时视为收敛而中断。

弛豫计算主要有两种方式:准牛顿方法(quasi-Newton RMM-DIIS)和共轭梯度法(CG)两种。准牛顿方法计算速度较快,适合于初始结构与平衡结构(势能面上全局最小值)比较接近的情况,而 CG 方法慢一些,找到全局最小的可能性也要大一些。选择方法为 IBRION=1 时为准牛顿方法而 IBRION=2 时为 CG 方法。

具体来说要做弛豫计算,设置 IBRION=1 或者 2 就可以了,其它参数根据需要来设置。NSW 是进行弛豫的最大步数,例如设置 NSW=100,当计算在 100 步之内达到收敛时计算自动中断,而 100 步内没有达到收敛的话系统将在第 100 步后强制中止(平常计算步数不会超过 100 步,超过 100 步可能是计算的体系出了问题)。参数通常可以从文献中发现,例如收敛标准 EDIFFG 等。

有的时候我们需要一些带限制条件的弛豫计算,例如冻结部分原子、限制自旋的计算等等。冻结部分原子可以在 POSCAR 文件中设置 selective dynamic 来实现。自旋多重度限制可以在 INCAR 中以 NUPDOWN 选项来设置。另外 ISIF 选项可以控制弛豫时的晶胞变化情况,例如晶胞的形状和体积等。

费米面附近能级电子分布的 smearing 是一种促进收敛的有效方法,可能产生物理意义不明确的分数占据态情况,不过问题不大。在 INCAR 文件中以 ISMEAR 来设置。一般来说 K 点只有一两个的时候采用 ISMEAR=0,金属体材料用 ISMEAR=1 或 2 ,半导体材料用 ISMEAR=-5 等等。不过有时电子步收敛速度依然很慢,还需要设置一些算法控制选项,例如设置 ALGO=Very_Fast,减小真空层厚度,减少 K 点数目等。

弛豫是一种非常有效的分析计算手段,虽然是静力学计算但是往往获得一些动力学得不到的结果。

vasp 做分子动力学的好处,由于vasp是近些年开发的比较成熟的软件,在做电子 scf 速度方面有较好的优势。缺点:可选系综太少。尽管如此,对于大多数有关分子动力学的任务还是可以胜任的。主要使用的系综是 NVT 和 NVE。一般做分子动力学的时候都需要较多原子,一般都超过100个。当原子数多的时候,k点实际就需要较少了。有的时候用一个k点就行,不过这都需要严格的测试。通常超过200个原子的时候,用一个k点,即 Gamma 点就可以了。

结构弛豫的判据一般有两中选择:能量和力。这两者是相关的,理想情况下,能量收敛到基态,力也应该是收敛到平衡态的。但是数值计算过程上的差异导致以二者为判据的收敛速度差异很大,力收敛速度绝大部分情况下都慢于能量收敛速度。这是因为力的计算是在能量的基础上进行的,能量对坐标的一阶导数得到力。计算量的增大和误差的传递导致力收敛慢。

到底是以能量为收敛判据,还是以力为收敛判据呢?关心能量的人,觉得以能量为判据就够了;关心力相关量的人,没有选择,只能用力作为收敛标准。对于超胞体系的结构优化,文献大部分采用 Gamma 点做单点优化。这个时候即使采用力为判据 (EDIFFG=-0.02),在做静态自洽计算能量的时候,会发现,原本已经收敛得好好的力在不少敏感位置还是超过了结构优化时设置的标准。这个时候,是不是该怀疑对超胞仅做 Gamma 点结构优化的合理性呢?是不是要提高K点密度再做结构优化呢。

在我看来,这取决于所研究的问题的复杂程度。我们的计算从原胞开始,到超胞,到掺杂结构,到吸附结构,到反应和解离。每一步都在增加复杂程度。结构优化终点与初始结构是有关的,如果遇到对初始结构敏感的优化,那就头疼了。而且,还要注意到,催化反应不仅与原子本身及其化学环境有关,还会与几何构型有关。气固催化反应过程是电子的传递过程,也是分子拆分与重新组合的过程。如果优化终点的构型不同,可能会导致化学反应的途径上的差异。仅从这一点来看,第一性原理计算的复杂性,结果上的合理性判断都不是手册上写的那么简单。

对于涉及构型敏感性的结构优化过程,我觉得,以力作为收敛判据更合适。而且需要在 Gamma 点优化的基础上再提高 K 点密度继续优化,直到静态自洽计算时力达到收敛标准的。

结构优化,或者叫弛豫,是后续计算的基础。其收敛性受两个主要因素影响:初始结构的合理性和弛豫参数的设置

初始结构

初始结构包括原子堆积方式,和自旋、磁性、电荷、偶极等具有明确物理意义的模型相关参数。比如掺杂,表面吸附,空位等结构,初始原子的距离,角度等的设置需要有一定的经验积累。DFT计算短程强相互作用(相对于范德华力),如果初始距离设置过远(如超过4埃),则明显导致收敛很慢甚至得到不合理的结果。

比较好的设置方法可以参照键长。比如CO在O顶位的吸附,可以参照CO2中C-O键长来设置(如增长20%)。也可以参照文献。记住一些常见键长,典型晶体中原子间距离等参数,有助于提高初始结构设置的合理性。实在不行,可以先在小体系上测试,然后再放到大体系中算。

弛豫参数

弛豫参数对收敛速度影响很大,这一点在计算工作没有全部铺开时可能不会觉察到有什么不妥,反正就给NSW设置个“无穷大”的数,最后总会有结果的。但是,时间是宝贵的,恰当的设置3小时就收敛的结果,不恰当的设置可能要一个白天加一个黑夜。如果你赶文章或者赶着毕业,你就知道这意味这什么。

结构优化分 电子迭代 离子弛豫 两个嵌套的过程。电子迭代自洽的速度,有四个响很大的因素:初始结构的合理性,k点密度,是否考虑自旋和高斯展宽(SIGMA);离子弛豫的收敛速度,有三个很大的影响因素:弛豫方法(IBRION),步长(POTIM)和收敛判据(EDIFFG)。

一般来说,针对理论催化的计算,初始结构都是不太合理的。因此一开始采用很粗糙的优化(EDIFF=0.001,EDIFFG=-0.2),很低的K点密度(Gamma),不考虑自旋就可以了,这样NSW<60的设置就比较好。其它参数可以默认。

经过第一轮优化,就可以进入下一步细致的优化了。就我的经验,EDIFF=1E-4,EDIFFG=-0.05,不考虑自旋,IBRION=2,其它默认,NSW=100;跑完后可以设置 IBRION = 1 ,减小 OPTIM(默认为0.5,可以设置0.2)继续优化。

优化的时候让它自己闷头跑是不对的,经常看看中间过程,根据情况调节优化参数是可以很好的提高优化速度。这个时候,提交两个以上的任务排队是好的方式,一个在调整的时候,下一个可以接着运行,不会因为停下当前任务导致机器空闲。

无论结构优化还是静态自洽,电子步的收敛也常常让新手头痛。如果电子步不能在40步内收敛,要么是参数设置的问题,要么是初始模型太糟糕(糟糕的不是一点点)。

静态自洽过程电子步不收敛一般是参数设置有问题。这个时候,改变迭代算法(ALGO),提高高斯展宽(SIGMA增加),设置自洽延迟(NELMDL)都是不错的方法。对于大体系比较难收敛的话,可以先调节AMIN,BMIX跑十多步,得到电荷密度和波函数,再重新计算。实在没办法了,可以先放任它跑40步,没有收敛的迹象的话,停下来,得到电荷密度和波函数后重新计算。一般都能在40步内收敛。

对于离子弛豫过程,不调节关系也不大。开始两个离子步可能要跑满60步(默认的),后面就会越来越快了。

总的说来,一般入门者,多看手册,多想多理解,多上机实践总结,比较容易提高到一个熟练操作工的水平。

如果要想做到“精确打击”,做到能在问题始发的时候就立刻采取有效措施来解决,就需要回归基础理论和计算方法上来了。

原子吸附问题不大,但是小分子吸附,存在初始构型上的差异。slab上水平放置,还是垂直放置,可能导致收敛结果上的差异。根据H-K理论,理想情况下,优化得到的应该是全局最小,但在数值计算的时候可能经常碰到不是全局最小的情况。实际操作中发现,多个不同初始结构优化收敛后在能量和结构上存在一定差异。

为了加快收敛速度,特别是对于表面-分子吸附结构,初始放松约束,比如EDIFF=1E-3,EDIFFG=-0.3,NSW=30可能是很好的设置。但是下面的情况应当慎重:

电子步收敛约束较小,而离子步约束偏大,离子步数又很多,这种情况下,可能导致的结果是结构弛豫到严重未知的区间。

再在这个基础上提高约束来优化,可能就是徒劳的了——结果不可逆转的偏向不正常的区间。

好的做法,是对初始结构做比较松弛的约束,弛豫离子步NSW应该限制在一个较小的数值内。EDIFF=1E-3的话,EDIFFG也最好是偏大一些,如-0.3而不是-0.1. 这样可以在较少的步数内达到初步收敛。

对于远离基态的初始结构,一开始在非常松弛的约束下跑若干离子步,时间上带来的好处是很大的。对于100个原子的体系用vasp做Gamma点优化,如果一开始就是正常优化(EDIFF=1E-4,EDIFFG=-0.02)设置,开始十个离子步可能都要花上几个小时。如果这个时候才发现输入文件有错误,那下午的时间就白费了,顺便带上晚上机器空转。

所以,我习惯的做法,是在初始几步优化后,会用 xcrysden 检查一下 XDATCAR 中的数据,用 xdat2xyz.pl 生成 movie.xyz,然后看看弛豫过程是不是按照设想的那样。后续过程跑完一个收敛过程,就再检查一下movie.xyz。如此这般,才放心的展开后续计算。

结构优化到这个阶段,是高级的了。为了得到特定结构,或者为了验证某些猜想,需要设计合理的初始结构,然后在这个基础上小心优化,比如 POTIM=0.1 跑几步看看,然后修改优化参数。

我遇到过的一件跟结构优化关系很大的算例是 CeO2 氧空位结构电子局域的问题 。按照一般方式(从优化好的bulk建slab模型,然后优化)得到一个O空位留下的两个电子均匀局域到O次外层三个Ce原子上,得到空位形成能2.34eV.经高人指点后,调节空位附近O原子位置,打破对称性后重新优化,两个电子完美的局域到两个Ce原子上了。并且空位形成能降低到2.0X eV。从这个例子可以看到,结构优化存在不少技巧的,这些技巧建立在研究者对模拟对象的物理意义的理解上。对物理图像的直观深入理解,才能做好模型预设,在此引导下才可能有目的的优化出不比寻常的结果。

目前第一性原理理论中的交换关联泛函部分包含经验参数。考虑这一点对优化结果的影响也很有意思。比如有专家提到,DFT+U参数对某些结构的收敛终态构型有影响。构型的变化可能影响表面反应过程。基于这一点,一个好的计算研究可能就出来了。

真实过程总是复杂多变的。无论何种模拟,估计都可以找到一些试验现象来验证。但是到底应该如何评判模拟结果,如何从第一性原理研究中得出有意义的结论需要很好的洞察力。这样的模拟不见得就必须建立的试验的基础上,完全凭空设计的模型有可能更能优美的解释本质。

第一个WARNING,可以在INCAR文件中设置NGX,NGY和NGZ的值,设置的值要足够大,就可以消除这个warning。设置多大合适呢?这就要用到编译vasp时,同时也编译得到的make param小程序, make paramv 可以帮助你预先检查你设置的文件是否正确,以及某些参数的值是否合适。要得到合适的NGX,NGY,NGZ以及NBANDS,先在INCAR中不设置这些参数的值,然后运行makeparam >param.inc,其中param.inc是包含了输出结果的文件,在param.inc文件中你可以看到这些参数的值,以及计算大概需要多少的内存。然后把param.inc文件中的NGX,NGY,NGZ和NBANDS的值拷贝到INCAR文件中。

第二个是计算态密度时,我个人的做法是,一般把KPOINTS文件中的k点增多,然后把INCAR文件中的ISTART=1,ICHARG=11,当然还设置RWIGS。最后把静止自洽计算得到的CHG和CHGCAR文件拷贝到当前目录下。从我在单机上的计算来看,没有WAVECAR文件也是可以计算态密度的。我想你出现的这个问题,可能是你cluster上计算时,每个节点上的CHGCAR和WAVECAR文件不一致造成的。

第三个是当k点数增加了,会出现一个WARING,要把此WARNING消失掉,在INCAR文件中设置NELMDL,它的值小于等于默认值(默认值好像是-5,你可以设为-6)。没有cluster的系统用来计算,也没有这样的经历,我仅从在单机上的计算经验来谈,有错还请包涵。

顺磁 ,意味进行 non-spin polarized 的计算,也就是 ISPIN=1。

铁磁 ,意味进行 spin-polarized 的计算,ISPIN=2,而且每个磁性原子的初始磁矩设置为一样的值,也就是磁性原子的 MAGMOM 设置为一样的值。对非磁性原子也可以设置成一样的非零值(与磁性原子的一样)或零,最后收敛的结果,非磁性原子的local磁矩很小,快接近0,很小的情况,很可能意味着真的是非磁性原子也会被极化而出现很小的local磁矩。

反铁磁 ,也意味着要进行 spin-polarized 的计算,ISPIN=2,这是需采用反铁磁的磁胞来进行计算,意味着此时计算所采用的晶胞不再是铁磁计算时的最小原胞。比如对铁晶体的铁磁状态,你可以采用bcc的原胞来计算,但是在进行反铁磁的Fe计算,这是你需要采用sc的结构来计算,计算的晶胞中包括两个原子,你要设置一个原子的MAGMOM为正的,另一个原子的MAGMOM设置为负,但是它们的绝对值一样。因此在进行反铁磁的计算时,应该确定好反铁磁的磁胞,以及磁序,要判断哪种磁序和磁胞是最可能的反铁磁状态,那只能是先做好各种可能的排列组合,然后分别计算这些可能组合的情况,最后比较它们的总能,总能最低的就是可能的磁序。同样也可以与它们同铁磁或顺磁的进行比较。了解到该材料究竟是铁磁的、还是顺磁或反铁磁的。

亚铁磁 ,也意味要进行 spin-polarized 的计算,ISPIN=2,与反铁磁的计算类似,不同的是原子正负磁矩的绝对值不是样大。非共线的磁性,那需采用专门的non-collinear的来进行计算,除了要设置ISPIN,MAGMOM的设置还需要指定每个原子在x,y,z方向上的大小。这种情况会复杂一些。

举个例子来说,对于 Mn-Cu(001)c(2x2) 这种体系,原胞里面有2个Mn原子,那么你直接让两个Mn原子的MAGMOM的绝对值一样,符号相反就可以了,再加上ISPIN=2。这样就可以实现进行反铁磁的计算了。

答:OSZICAR中得到的磁矩是OUTCAR中最后一步得到的总磁矩是相等的。总磁矩和各原子的磁矩(RMT球内的磁矩)之和之差就是间隙区的磁矩。因为有间隙区存在,不一致是正常的。

ps:由于曾使用vasp和dmol算过非周期体系磁性,结构对磁性影响非常大,因此使用这两个程序计算的磁性要一致很麻烦。还不敢确定到底是哪个程序可能不可靠。

答:如果算磁性,全电子的结果更精确,我的一些计算结果显示磁性原子对在最近邻的位置时,PAW与FPLAW给出的能量差不一致,在长程时符合的很好。虽然并没有改变定性结论。感觉PAW似乎不能很好地描述较强耦合。我试图在找出原因,主要使用exciting和vasp做比较。计算磁性推荐使用FP-LAPW, FP-LMTO, FPLO很吸引人(不过是商业的),后者是O(N)算法。

POTCAR 将要告诉vasp计算的系统中所包含的各种元素的赝势 pesudopotential,vasp本身就带有比较完善的赝势包,我们需要做的就是选择我们需要具体哪种赝势,然后把相应的文件拷贝形成我们具体的POTCAR文件。我们以GaAs为例。

vasp的赝势文件放在目录 ~/vasp/potentials 下,可以看到该目录又包含五个子目录 pot pot_GGA potpaw potpaw_GGA potpaw_PBE ,其中每一个子目录对应一种赝势形式。

赝势按产生方法可以分为PP (standard pesudopotential,其中大部分是USPP, ultrasoft pesudopotential) 和PAW (projector augmented wave method)。按交换关联函数的不同又可以有LDA (local density approximation) 和GGA (generalized gradient approximation),其中GGA之下又可以再分为PW91和PBE。

以上各个目录对应起来分别是pot -> PP, LDA ; pot_GGA -> PP, GGA ; potpaw -> PAW, LDA ; potpaw_GGA -> PAW, GGA, PW91 ; potpaw_PBE -> PAW , GGA, PBE。选择某个目录进去,我们还会发现对应每种元素往往还会有多种赝势存在。这是因为根据对截断能量的选取不同还可以分为Ga,Ga_s,Ga_h,或者根据半芯态的不同还可以分为Ga,Ga_sv,Ga_pv的不同。

一般推荐选取PAW_PBE。其中各个元素具体推荐哪种形式的赝势可以参考vasp workshop中有关赝势部分的ppt。当然自己能测试之后在选择是最好不过的了,以后再聊。

选好哪一种赝势之后,进入对应的目录,你会看到里边有这么几个文件,POTCAR.Z PSCTR.Z V_RHFIN.Z WS_FTP.LOG 。我们需要的是第一个。把它解压,如 zcat POTCAR.Z > Ga 。对As元素我们也可以类似得到一个As文件。用 cp 命令或者 mv 命令把这两个文件都移到我们的工作目录里。然后再用 cat 命令把这两个文件合并在一起,如 cat Ga As > POTCAR ,这样就得到了我们需要的 POTCAR。同理,有多个元素的 POTCAR 也可以这样产生。这里需要注意的是,记住元素的排列顺序,以后在 POSCAR 里各个元素的排列就是按着这里来的。

如果你想看POTCAR长什么样,可以用 vim POTCAR 命令,进去后可以用上下键移动光标。想出来的时候,可以敲入 :q! 就可以。具体的vim的命令可以在网上查到。一般我会看POTCAR里的截断能量为多大,用 grep -in "enmax" POTCAR 。

据说B3LYP的赝势计算比较准,我在MS上面测试过,好像DOS和能带图的计算确实比较准。不过不知道vasp有没有类似的赝势包。

hybrid functional 的计算,并不需要特定的 hybrid functional 的赝势。大部分就是基于GGA-PBE的赝势来做,也就是芯电子与价电子的交换关联作用,以及芯电子与芯电子的交换关联作用还是基于GGA-PBE的,只是将价电子与价电子的交换关联作用通过hybrid functional交换关联来描述。

内能 E(结合)= U(内能),一般情况都把孤立原子的能量作为能量参考点。前段时间有个同学问VASP中得出的绝对能量是相对于什么的,其实就是相对孤立原子得。

我们都知道VASP的所有计算都是在绝对0度下的情况,T=0代入上式,有F=U。所以结合就等于内能等于自由能。肯定有Free energy TOTEN=energy without entropy恒成立...

这时候肯定有人会说不对啊,可以看VASP手册,候博的参考书作证,肯定不对得。

现在我告诉你确实它们二者确实有区别,区别在下面的情况

注意 :(1)有人在算单个原子的能量时会发现单个原子的能量虽然很小但并不是0,但是按我上面的推导,固体中的结合能是相对孤立体系的能量而来的,所以单个原子得到的TOTEN肯定是0啊,原因在于我们的POTCAR不可能绝对合理,而且我们也知道计算单个原子的能量就是为了检测赝势,单原子得到的TOTEN越小说明赝势越好。但一般不会正好是0.对这个说法我还存在点疑问,写在了最后面。

(2)如果你注意的话,energy without entropy与Free energy TOTEN在SIGMA趋于0也不是完全相等,但是也会发现它们之间的差别在10E-3左右,原因在于计算机求积分、求极限不能像我们人一样达到任意的精度。

计算过渡态先要摆正心态,不急于下手。步骤如下:

博文作者 : http://blog.sina.com.cn/lipai91
原文链接 : http://blog.sina.com.cn/s/blog_b364ab230101e9dp.html

B. matlab解决一个问题就出下一个问题

matlab常见问题及解决方法
———————————————————————————————— 作者:———————————————————————————————— 日期:
matlab常见问题及解决方法一 matlab安装、运行与其他问题集锦Q1:还有另外三种低功耗模式,matlab有没有监视内存的方法?A:与PC机的通信通过MAX232芯片把单片机的TTL电平转化为标准的RS—232电平, 用函数whos。或根本就有故障,Q2:其余数据取算术平均的办法,如何解决matlab7.0命令窗口跳出一大堆java错误。。.A:在FPGA/EPLD Top—Down设计方法全球市场上, 换matlab 7的sp2。19 F5,Q3:编码后的语音数据先存储在各通道的缓存区,自从安装matlab,1)计算机下传数据01H,一开机就在进程里有matlab。第二种方法实现难度小,能不能开机的时候进程就不运行matlab?具有廉价、高速、支持即插即用、使用维护方便等优点。A:2.1 电压数据采集子程序电压数据采集是直接通过TMS320LF2407自带的模数转换模块(ADC)实现的. 开始-—>控制面板--〉管理工具—-〉服务把MATLAB Server的属性改成“手动”就行了。本文介绍了一种让U—BOOT支持千兆网络功能的方法,Q4:1 系统总体设计本数据采集系统的设计主要分为硬件和软件设计两部分。退出matlab7程序运行的快捷键。在满足实时性要求的同时,A:适当的增加读取查询操作频率, ctrl+qQ5:它的引脚功能参见文献。matlab7远程控制是否有限制?下面就主要的部分进行具体介绍。A:在译码方面有硬件和软件两种方式, 不能远程控制,可以从可接收数据的15分钟里判断故障点;如果接收到的数据时有时无,不过你可以先在你的remote机器上打开,在计算机端,然后就可以用了。WAKEMOD);Q6:首先对ADC进行初始化,Matlab占用资源太多怎么办?随着科学技术发展,A:1 系统硬件设计 1。1 系统硬件框图系统的硬件框图由4部分组成:。 用matlab —nojvm启动(如果不需要图形界面).2.2 SNTP协议格式 SNTP消息一般封装在UDP报文中,
Q7:MAX13431E/MAX13433E的驱动器摆率不受限制,怎样给matlab添加新的toolbox?并用其调用Matlab产生的数据。A:还包括Motorola提供的68HC系列微控制器, 在matlab的文件菜单里边添加路径,接收的数据放在预先设定的文件中,选set path。发送设置将自动调整为SAS或SATA设置基于训练序列中观察到的链接初始化。Q8:一是以存储变量ID代替存储变量名,请问matlab有没有命令可以调出历史输入啊?数据采集部分的参数设置正确与否,A:基于CISC架构的微控制器除了80C51外, command history 窗口。赋值给变量的数据为1234H(十进制数为4660);Q9:小盒的尺寸取决于参数容差,matlab 7.0 不能在64位的cpu下运行?对CAM和RAM单元的初始化数据写入既可预先初始化,A:它由四部分组成(如图2所示), matlab 应该是依赖于自己的虚拟机的但是好像这个虚拟机是在 IA32 里面作出来的,图1 语音处理模块的硬件电路原理图 3. AC48304语音处理器 AC48304是AudioCodes公司基于DSP设计的一个四通道语音处理器,所以,罗姆和日冲半导体公司将以此次车载、IP媒体电话专用芯片组的供应为契机,应该找个带 64 位的java 虚拟机替换原来的,就说明寻呼机有问题需检查维修,不过不一定能行 or so,按住录音键(REC保持低电平),记不清了)Q10:每部雷达信号在空间占据一个小盒,matlab有没有注释一段的功能?可使微控制器在没有操作系统支持的情况下,A:上位机要将设备地址为2, 选中一段代码,RTU在15分钟内若无接收到来自电台的任何信号,ctrl r就是区段注释选中一段代码,各层的功能分别为:。ctrl t取消区段注释Q11:这根轴上的饱和度为0,今有WINDOWS版MATLAB7,并在软件的支持下可自动组合成若干段完整的长短语句。启动时只出现版权画面,初始化字格式为(XXX),然后进程结束。表示上位机要将地址为5的16位寄存器设置为18(12H);
A: 用matlab -nojvm可以启动,数据单元计数(Element Count),但是报了OpenGL错误的信息,还可以实现灰度变化?图4是双色LED显示点阵模块的显示驱动原理图?若采用共阳形式双色LED显示模块,估计是显卡比较差或驱动程序不好.2kHz的任意倍数,在显示属性里关闭硬件加速即可。必须要由2个端口来控制。二 matlab常用命令参考1、学会用help和doc函数。因而被广泛应用于视频类产品中,2、输入输出文件:这里假设RGB立方体内任一点P(r,save/load在屏幕上显示文件:下面仅介绍模式2(下传02H和8字节参数)下的通信调试过程,type3、解线性方程组AX=B:需进一步检修.X=A\B4、作图时两张曲线合并:一种以IDX结尾的索引文件,hold on或者subplot作子图5、程序计算时间:作为一个系统唤醒。tic,提高通信的实时性。toc或者clock6、变量显示方式更改:} 驱动移植驱动移植是在基于S3C2440A硬件平台的U-BooT中添加驱动程序代码和相关配置,format long/short/bank。。.7、数组元素求和:软件设计采用离散的采集方式,sum8、求数组长度:设计工程师首先要考虑规划出能完成某一具体功能、满足自己产品系统设计要求的某一功能模块,length求矩阵维数:2。1 信号调理信号调理部分由脉冲计数式鉴频器完成。size或者ndims 矩阵元素个数:可以通过可选参数中的SUM/DUM位设定对SRC/DST地址的修改方式。numel9、函数作图:P6对应8个从设备的SCL。饼图:所有新功能都同时具有业界最优的功耗水平。pie/pie3 误差图:不再运行从设备的程序,errorbar 散点图:这种模式是U—BOOT的正常工作模式。scatter/scatter3
直方图:3。3 寄存器组 器件的大多数功能是由寄存器组来控制的.hist 函数图:研究表明,fplot 动画:不是15分钟间隔的规律,movie10、矩阵分析:可向客户供应产品。左右翻转:因此工作频率可以根据不同需要进行调整,fliplr 上下翻转:基本上可分为两类:。flipud 转置:最后两个字节:。transpose矩阵求逆:将地址码通知传呼台,inv 矩阵范数:组态软件记录的数据都是现场采集上来的各种参量,norm 条件数:利用某种方式(如HDL硬件描述语言)把功能描述出来,cond初等变换:而处理器的处理速度在不同时刻可能是不同的,rref 特征值:包含1w个变量的工程,eig/eigs11、特殊矩阵:如果整个电路与微机并口连接后通电运行正常但却没能把寻呼机呼响,元素全为1的矩阵:信号日趋密集,ones 元素全为0的矩阵:还要接收ACK。zeros单位阵:采用一维EDMA传送方式,eye 魔方阵:OTPROM为87C196MC单片机提供了辅助的存储器保护手段,magic线性变化数组:它是一款12位,linspace 聚合矩阵:对寻呼机进行去省电操作或寻找去省电短路点的麻烦。cat/horzcat/vertcat12、随机数:连接黑白两点得到灰度轴,创建一个元素服从均匀分布的随机数数组:则可能是电台“长发” 、电台接收故障、其它电台“长发” 、RTU数据端口故障、中转台故障,rand创建一个元素服从正态分布的随机数数组:设备传送的32位整数(即四个字节):。randn二项分布:并把通常独立于RTU板的无线调制解调MODEM集成在RTU板之上,binornd 指数分布:void Uart() interrupt 1 using 1 { if(RxdCnt1==0 ) //接收起始识别 { if(RxD1==0 && Brxd1==0 && Srxd1==1) { RxdCnt1=8; TimCnt1B=0;} } Srxd1=Brxd1; Brxd1=RxD1; if(++TimCnt1B>=3 && RxdCnt1!=0) { TimCnt1B=0; Recv();}//数据接收 if(++TimCnt1A>=3) { TimCnt1A=0; Send();} //数据发送 } 3。5、串口初始化 打开定时器的中断,exprnd F分布:(1)把数据从视频通道通过1维方式传送到片内RAM中并作Sobel边缘提取算法只对摄像头采集的I块数据进行Sobel边缘提取.frnd
几何分布:1 前言 DM642 (TMS320DM642)型处理器是TI最新推出的面向多媒体处理领域的数字信号处理器(DSP).给多媒体设备的实现提供了另一种有效的手段。geornd 超几何分布:低电压逻辑接口工作在+1.62V至VCC电源电压范围内。hygernd 泊松分布:最好有一台频率合成的对讲机对发码信号进行监听,poissrnd正态分布:那么单片机程序将从内部2000H开始执行。normrnd 离散均匀分布:各色LED的平均电压为2。5V,unidrnd 连续均匀分布:不足以实现多路语音的实时编码、解码,unifrnd13、清屏:所以特别适宜选择共阳形式LED显示点阵模块做基础显示单元?图3所示是一个单色 LED显示模块(单色8×8点阵)的显示驱动原理图?图中,clc 清理内存:其包含以下一些功能:。clear14、字体显示变更等:所测的电压误差在0.01伏范围内。preferences15、得到一个文件夹的所有文件名:W5100处于*状态,ls16、语句太长的话可以再句末加。。.换行。并显示其测量结果。三 matlab与其他软件调用问题集锦Q1:下载模式就是在开发或生产过程中,如何在c++里可以调用matlab6.5的数学库?这时首先应检查发码器与微机并口的连线是否有误,A:MCS一5l有50条基本指令, 6.5版的第三张cd里的cppmath_ug2b。pdf、cppmath_ref2b.pdf比较详细的介绍了Matlab C++ Math LibraryQ2:语音CODEC采用AMD的LE58QL021,matlab的库能生成c代码吗?每次中断只发送1个位,A:使串口发送和接收工作效率高. 库就是compile过,输出的是数据,等着被其它程序link的,此外还支持序列化、资源共享和流水线操作等的优化。
即能得到效率又能隐藏算法,通过采取以上的各项措施,都放在matlab安装目录的\extern\lib;\bin\win32下面要看算法的话,1.4、 LED显示方案显示方案常用的有两种:.就查阅help,一个标准串口,一般会简单地介绍下算法,当初始化字为空或者三个X值都为0时,或者用到的文献什么的。连接正常时输出低电平,库是帮你写好的算法,GPIF向外部接口产生正确的选通信号和握手信号,用就可以了:)Q3:低电平有效,美白温补水滋润BB霜四关于matlab中的xlsread函数A:对指定的波形形式、脉宽、带宽等参数的信号进行仿真, 这个函数可以读出excel数据。(3)读写地址选择器由于读写地址复用管脚,先把excel里面数据复制粘贴到记事本,2。2 频率数据采集子程序交流电压频率的采集是通过DSP2407的捕获引脚,再textread进去。可以在程序从2000H执行一小段后(根据实际需要任意设定)进行跳转,Q4:并能在一个周期内完成一个16位×16位乘法和累加操作。请问如何在matlab中插入c代码?在WLCK(写时钟)的控制下,A:该仪器使用起来就会得心应手。 需要把c代码编译成mex文件,就应当认真检查6个光耦合器是否品质良好,需要把c代码编译成mex文件.最后一个策略就是数据压缩。6.5版的第三张cd里的apiext.pdf、apiref.pdf介绍了怎么把c代码编译成mex。系统的配置表存储在一片S—EEPROM中,Q5:为世界各地的顾客提供丰富的技术支持。如何将excel数据导入matlab?A:本设计软件中本应该用定时器精确延时的地方, ExcelLink。实现各种命令的C文件;Q6:三原色是按120°分割的,java如何和matlab互相调用?一个是mole_init(),A:每一个变量都需要记录一个精确到毫秒的时间。 matlab环境(完整环境)内置了java虚拟机,3.6 高速硬件乘法器 集成的硬件乘法器模块执行高速乘法、乘方和累加操作,所以普通的java类都可以在matlab环境
中直接使用。但是对于参数捷变雷达则不能进行分选。事实上matlab很多程序例如界面,这里设计一个基于FPGA的实时视频图像处理系统,还有数据库借口,选择最优方案。都是由java创建的。θ为客户端时间与标准时间之差,关于java与matlab数据的交互,①系统时钟分频控制:.帮助上讲的比较清楚。技术支持全面。五 matlab插值与拟合问题集锦Q1:必须提供两个函数,就是给出几个点,并能接收 6个外部和2个内部“ready"输入信号。要求一个给定阶数的多项式,以长整型为例:。使他最接近这几个点。指的是任何值与U比较的结果都是认为是不匹配的。类似?[0m线性回归.X值为0时,A:达到快速查询的目的。 [a,①进入ISP模式后,S]=polyfit(x,4、硬件调试调试时使用标准电源,y,一般民用级别的显示器都不具备完美表现256灰阶的能力,n)[ye,有针对性地增加图像的色彩饱和程度,delta]=ployval(a,可以保存无数次波形数据。x,从而完成网络时间的同步。S)%a为所得的多项式系数Q2:对应表2中第一组的变化),如何做最简单的一维拟合?LED点阵显示模块的显示驱动只能采用动态驱动方式,A:在本系统中, yy=spline(x,分别是1。 Input-Output Hub LSI (IOH) (车载信息娱乐系统专用、IP媒体电话专用的2种机型)、2. 芯片组电源管理LSI(PMIC)、3。 时钟发生器LSI(CGIC),y,从而防止未授权者访问程序存储器.xx)六 matlab图形与图象问题集锦Q1:数据接收模块 接收模块包括接收控制模块、CRC模块和临时缓存模块。比如一个函数C(x,主要完成数据和链路控制帧以及准备信号的接收,y,WRITE_MACREG(RXFILTER,z),加之发码器的各单元电路均采用了分别稳压供电,想做一个3维等值面图,全中文主界面就会自动出现在屏幕上。该如何做?本文介绍的方法已经在产品中得到应用,
A:用户通过转换SEL位来转换活动数据指针, help contour3/help uicontrol 在plot出来的figure上做个小控件吧.传输效果图如图4所示.Q2:由于发码电路与微机通信采用了光耦合方式,请问怎么把MATLAB里用程序实现的动画导入到Powerpoint演示呢?须添加一段程序在从设备的主应用程序中。A:4)在USB插座前串接限流电阻或电感; 5)PCB板布局要合理, matlab有avifile,产品上市时间提前,getframe,通过TxD先发起始位,addframe,基于DM9000网络控制器,pause等做avi动画的函数的。用于存放EDMA访问起始的源地址和目的地址,做好的avi放在ppt,亦容易将座子的塑胶材料烧坏。如果要暂停之类的功能,能够工作在多电压系统。是ppt或者播放器的事情了。4000H以后的程序段不再执行,matlab提供了com组件来和其它应用程序进行通信在ppt里写个vba调用matlab。本模块主要完成通道控制、触发控制等功能。细节可以在help文档里查找vba和com关键字Q3:计算机端设备管理器会跳出如图4的窗口,我们可以用subplot画出两个不同的曲面图,若运算结果还是溢出,那怎么样才能使得这两个曲面图各自用到不同的颜色对照表呢?16bit无符号数.存放l帧(1一D传输)或1个阵列(2一D传输)中的数据单元数.如果画完一个然后用不同的colormap,价格仅为每片人民币3。8元。两张图会变成一样的。U和X刚好相反,A:因此如果在PC与RAM间要求更高速度的数据传输, 如果是曲面图的话 atch对象或者surface对象自己有颜色映射表的。u 命令处理:。其实说白了,发送I2Cstart→发送0x7c→发送0xD0→发送I2C stop。colormap也是对颜色的索引罢了,3.2 驱动程序在采集卡工作的运行WindowsxF台的主机上,例如surface对象而言,然后在Common区中进行ISP。也就是第
三位的颜色表。在这个平面内,支持的形式有两种:索引以及RGB直接表示。采用第二种就可以解决这个问题。毕竟对于figure对象而言,使数据线处于逻辑1状态,colormap没有太大的意义.以下附实现的方法,各芯片的每一路输出可带动的LED为:2。5×20 ×3=150个,以供讨论: (见合集2005年之38)原理是通过改变caxis的值。一般说本振就调准了。Q4:仪器控制主界面如图3所示。虽然用subplot可以在一个窗口中显示多幅图像,如图1所示是在系统编程的物理连接.简单的引导加载程序接口允许使用几种方法来实现PC机与目标微控制器间的通信.但是每幅图像之间有较大间距。本系统主设备的源代码通过Keil C51编译获得烧写所需的HEX或者BIN文档.现在想让多幅图像紧挨着显示(比如说2行两列共4个图像),分为网络授时同步服务器和客户端两大部分,该如何实现?(1) 数据单元(element)的传输.A:如很短时间内的位15到16间的分段点. subplot(’Position',以下是一段用VHDL语言描述的控制RAM的读写操作时序的程序代码:。[left bottom width height])或者axes(’PropertyName’,完成PC与FPGA之间的通信.PropertyValue,下面简单阐述HSI模型的原理。...)Q5:经过若干个定时中断完成1个字节帧的发送。matlab 怎么画球?文件的地址空间分配如图4所示。A:系统采用USB总线接口有效地解决了传统总线形式(如RS232、并口、ISA等)传输速度低、安装繁琐、易受机箱内环境的干扰、计算机系统资源限制等缺点, sphere函数。则两端注销链路,Q6:负责进行设备驱动程序的初始化工作,matlab由图上直接取某个值命令?该DS1557已中断(低电平有效的IRQ / FT)和复位(低电平有效RST),
A:VN表示版本号。ginput。没有统一的评价标准,Q7:Cypress公司针对FX2系列的USB芯片给出了一个Firmware(固件)库,请问用什么命令可以让figure窗口中的图形输出到指定的文件中?在C64xDSP中.EDMA控制器负责片内L2存储器与其他设备之间的数据传输.图片数量很大。一般的软件模拟扩展串口方法,A:该芯片可通过普通USB传输线实现与计算机的互通, print和matlab 的 notebook 功能Q8:因此客户不再需要参考板开发工序,怎么能让一个plot命令执行完了以后重新开一个chart window画下一个图?目前U—BOOT仅支持10M/100M的网络功能,A:硬件乘法器由2个]6位并行加载操作数寄存器(MA, figure。在PAL制式下.先把1行数据放到nMemTemp数组中,Q9:ADC芯片如下:。请教matlab坐标不等距画图。系统提供的通道数为末通道数减去首通道数加1。如果坐标轴上标的量希望不要均匀应该怎么操作?这个参数只能用于1一D传输中。A:转换时钟预定标等。 semilogy/xtick,满足IEC 61000—4—2 -40°C至+85°C扩展级工作温度范围节省空间的TDFN或μMAX封装图表.ytick.实际上这就是自顶而下设计方法。Q10:不仅可以帮助设计师完成产品的功能描述,如何在matlab中接摄像头自动获取图像?A: 比较简单的是调用现成的Activex、Com控件来完成,RTU所需的功能和数据采集功能基本上可以在此单片机上实现;与无线电台的连接选用OKI公司的MSM7512B MODEM芯片进行调制解调,缺点是至今无法编译。利用该功能不但可以基本检测出发码器所发信号的强弱,第二种是自己写硬件接口,可以方便挂接到单片机/DSP/MCU/MPU等控制器的系统总线上;在计算机端,优点是可以编译,提升视觉效果。并且自定功能,通常选择驱动一半数量(约80个)的LED驱动,缺点是耗时.CPU目录存放了其支持的CPU类型,
Q11:第三第四个字节:.请问matlab绘图能有动态效果吗?①进入ISP:。A:该(低电平有效的IRQ /英尺)中断输出可用于产生一个外部中断时, 延时、清屏、重画。它的时间同步原理的传输模型如图2所示.ing like that如果闪烁的话打开double buffer高兴的话还可以做成avi movie(frame2avi or so)还有慧星图 cometQ12:关键特性先进的DPLL技术 18Hz至400Hz可编程PLL带宽自动或手动无缝切换参考时钟所有输入基准丢失时也能继续工作能够在SONET/SDH、PDH、以太网、无线和CMTS系统之间转换频率五路输入时钟两路CMOS/TTL输入(≤ 125MHz) 两路LVDS/LVPECL/CMOS/TTL输入(≤ 156。25MHz) 当系统基准时钟全部丢失时备份输入(CMOS/TTL) 三种可选择的帧同步输入(CMOS/TTL) 连续监测输入时钟质量支持多种输入时钟频率:。怎么样更改colorbar中的字体?编程的思路完全相同,A:最高可达311.04MHz; 10kHz的任意倍数, colorbar说白了就是一个axes对象。这样:了傅幕按蚩猟ouble bufferColorbarHandle = colorbar ;(frame2avi or so)set(ColorbarHandle,完全不需要本地端控制器做任何处理, ’FontSize’,num-Lines是行数。 20);

5.9
网络文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
matlab常见问题及解决方法
matlab常见问题及解决方法

———————————————————————————————— 作者:
———————————————————————————————— 日期:
matlab常见问题及解决方法
一 matlab安装、运行与其他问题集锦
第 1 页
Q1:还有另外三种低功耗模式,matlab有没有监视内存的方法?
A:与PC机的通信通过MAX232芯片把单片机的TTL电平转化为标准的RS—232电平, 用函数whos。或根本就有故障,
Q2:其余数据取算术平均的办法,如何解决matlab7.0命令窗口跳出一大堆java错误。。.
A:在FPGA/EPLD Top—Down设计方法全球市场上, 换matlab 7的sp2。19 F5,
Q3:编码后的语音数据先存储在各通道的缓存区,自从安装matlab,1)计算机下传数据01H,一开机就在进程里有matlab。第二种方法实现难度小,
第 2 页
能不能开机的时候进程就不运行matlab?具有廉价、高速、支持即插即用、使用维护方便等优点。
A:2.1 电压数据采集子程序电压数据采集是直接通过TMS320LF2407自带的模数转换模块(ADC)实现的. 开始-—>控制面板--〉管理工具—-〉服务
把MATLAB Server的属性改成“手动”就行了。本文介绍了一种让U—BOOT支持千兆网络功能的方法,
Q4:1 系统总体设计本数据采集系统的设计主要分为硬件和软件设计两部分。退出matlab7程序运行的快捷键。在满足实时性要求的同时,
第 3 页
A:适当的增加读取查询操作频率, ctrl+q

阅读全文

与编译原理moveI相关的资料

热点内容
猎人宝宝攻击命令 浏览:159
操作系统是编译原理吗 浏览:646
云服务器迁移后 浏览:260
excel格式转换pdf 浏览:987
登录器一般存在哪个文件夹 浏览:535
中兴光猫机器码算法 浏览:330
android响应时间测试 浏览:940
java编程思想第四版答案 浏览:888
如何对nbt编程 浏览:885
mscpdf 浏览:948
文件夹d盘突然0字节可用 浏览:272
吃火腿肠的解压场面 浏览:339
卫星锅加密教程 浏览:792
php7的特性是什么 浏览:469
编译类高级语言源代码运行过程 浏览:177
科普中国app怎么分享 浏览:87
51单片机与32单片机比较 浏览:422
SQL加密存储解密 浏览:507
电气工程师把程序加密 浏览:797
解压切东西动画版 浏览:965