230 likes | 522 Views
HT7U 快速反馈控制 实时平衡重建算法简介. 主要内容. EFIT 进展情况 物理模型及基本公式的理解 计算流程 实时反馈控制的进展情况. EFUND 程序简介. EFIT CODE 实质上由两部分组成, EFIT 和 EFUND 。 EFIT 用来进行平衡反演计算,但是它的运行需要一组响应函数表,即 GREEN’S 函数。 EFUND 根据当前实验装置和运行的参数,计算出 GREEN’S 函数,一旦参数改变,需要重新运行 EFUND 程序,生成新的 GREEN’S 函数。 因此, EFUND 程序运行正确与否对于整个 EFIT CODE 是非常重要的。.
E N D
主要内容 • EFIT进展情况 • 物理模型及基本公式的理解 • 计算流程 • 实时反馈控制的进展情况
EFUND程序简介 EFIT CODE 实质上由两部分组成,EFIT 和 EFUND。 EFIT 用来进行平衡反演计算,但是它的运行需要一组响应函数表,即GREEN’S函数。 EFUND 根据当前实验装置和运行的参数,计算出GREEN’S函数,一旦参数改变,需要重新运行EFUND程序,生成新的GREEN’S函数。 因此,EFUND程序运行正确与否对于整个EFIT CODE是非常重要的。
流程 开始 GETSET 从mhdin.dat中获取变量的值 MATRIX 和 GRID 计算适当的GREEN’S函数 计算关于 f-coils的感应 计算关于 Grid 的感应 计算关于 e-coils的感应 计算关于vessel Segments的感应 计算关于 A-coils的感应 保存GREEN’S函数 结束
EFITPLOT的绘图原理 EFIT gsview pgplotbin Pltout.out Pgplot.ps Pgplot EFITPLOT XWIN Curve2d_d.f Read2d.f
新的数据格式 • Fortran 与 Delphi比较 • Fortran 在数据读取以及存储上具有很大优势 • 用 Fortran Powerstation写数据转换程序 • 为pc机画图提供的数据格式 • 为origin等绘图工具提供的数据格式 • 结果
软件功能 • 导入数据文件,绘制图形,清晰标定各项参数 • 可以进行准确的数据定位,任意的图形放缩 • 可以进行图形的叠加,方便数据的对比分析 • 将根据工作人员的需要,及时进行功能扩充
SHAPE程序 主要是为固定边界计算提供输入的 • GetSets 子程序主要是用于获得控制参量并读入 Green Table (ec6565.ddd: e_coil的格林函数 rfcoil.ddd:f_coil的格林函数 ep6565.ddd:plasma的格林函数) Data_input的主要功能 设置磁数据和权重矩阵
EFIT程序简介 • 最优化地进行托克马克放电,要求正确地反馈控制许多放电参数,要做到这一点,首先这些参数的值必须被准确测量。事实上许多放电参数,如等离子体位形和安全因子剖面等到目前为止,还不能被直接测量,但是它们可以从现有的诊断数据,如磁场和磁通测量计算得出。 • 最完全的计算是将测量值,反演成描述托克马克平衡的Grad-Shafranov方程求得,同时必须考虑到电流的分布。这种完全的平衡重建,通常利用计算机的反演程序如EFIT[1]等离线计算。 • 平衡反演算法(Efit)是一种计算机程序,它通过从设计的磁线圈中采集到的磁场实验数据重构等离子体的磁面。该程序说明了在一个非线性托卡马克装置中,除了一般等离子体的形状以外,等离子体外部的磁测量数据既可以决定等离子体的能量储存又可以很好地决定等离子体的电流剖面分布,它可以将等离子体的诊断测量信号转化成为如等离子体几何尺寸,储存的能量,电流剖面分布等等有用的信息。而这些测量信号是从物理诊断中得到的。物理诊断包括外部磁探针,外部极向磁通小环和MSE-测量等离子体内部的磁力线方向。
描叙等离子体压力平衡的Grad-Shafranov平衡方程可以通过例如环向电流密度上的限制条件等有用的测量信号得到它的解。描叙等离子体压力平衡的Grad-Shafranov平衡方程可以通过例如环向电流密度上的限制条件等有用的测量信号得到它的解。 • 这样就使可以用两个磁通值的函数和来表示,这里P和F分别是等离子体压强和角向电流;Jt表示等离子体环向电流密度分量。 • 在以上方程的基础上寻找一个使方程 • 最小的解从而得到 和 • x是归一化的磁面函数
1假设初始等离子体电流分布 • 2 计算由在计算边界上产生的磁通值做为边界条件 • 3 求解Grad-Shafranov方程,求出 ,确定等离子体边界 • 4 求解最小二乘问题,确定参数 • 5计算等离子体电流密度分布 • 6 重复步骤2,3,4,5,直到满足一定的收敛条件
EFIT程序的相应子程序 • FIT: Equilibrium and fitting iterations. • GREEN: 重新计算格林函数值. • PRESUR: 重新计算压力剖面值. • MATRIX:重新计算电流剖面值. • CURRNT:计算等离子体电流值. • FCURRT: 得到外部成形场线圈电流值. • PFLUX: 得到等离子体磁通值. • BOUND:得到等离子体边界. • FINDAX:得到等离子体磁轴. • RESIDU: 检察是否满足平衡.
进展情况FIT • 在fit程序中这里我们看到如果是平衡模式就只运行内循环,繁衍模式则内外循环! • 首先考虑的平衡模式,首先调用 • call currnt(ix,jtime,ixnn,nitera,kerror) • if (kerror.gt.0) then jerror(jtime)=1 return endif • call fcurrt(jtime,ix,nitera) • call pflux(ix,ixnn,nitera,jtime) • call steps(ixnn,nitera,ix,jtime,kerror) • if (kerror.gt.0) then jerror(jtime)=1 return endif • call residu(nitera,jtime) • if (kprfit.gt.1) call presur(jtime) return • end
进展情况CURRNT • currnt computes the current density on the r-z mesh. • currnt程序可以看出如果是平衡模式 + 多项式 的话就跳到1100; • 如果是繁衍模式第一次跳到3100 执行GAQ电流模型 • do 3300 i=1,nw do 3300 j=1,nh kk=(i-1)*nh+j pcurrt(kk)=0.0 • if ((xpsi(kk).lt.0.0).or.(xpsi(kk).gt.1.0)) go to 3300 • rdiml=rgrid(i)/rzero • pp0 = (1.-xpsi(kk)**enp)**emp*(1.-gammap)+gammap • pcurrt(kk)= rbetap/rdiml*((1.-xpsi(kk)**enf)**emf *(1.-gammaf)+gammaf) • pcurrt(kk)=pcurrt(kk)+pp0*rdiml pcurrt(kk)=pcurrt(kk)*www(kk) • tcurrt=tcurrt+pcurrt(kk) • 3300 continue • do 4050 i=1,kppcur brsp(nfcoil+i)=0.0 4050 continue • do 4060 i=1,kffcur brsp(nbase+i)=0.0 4060 continue • brsp(nfcoil+1)=cratio/rzero brsp(nbase+1)=cratio*rbetap*rzero • brsp(nfcoil+2)=-brsp(nfcoil+1) brsp(nbase+2)=-brsp(nbase+1) • 4100 continue • return
进展情况FCURRT • fcurrt computes the currents in the f coils. • 如果是固定极向场的时候if (ifcurr.gt.0) return 该程序不执行; • 该程序首先从\green_table 目录下读入 fc6565.ddd 等文件中的值,然后改变 brsp(i) 变量的数值; • 然后调用call solve(nfcoil,nfcoil,afma,brsp,ifmatr)。 • solve一方面是采用高斯消元法分解线形代数方程组的矩阵,然后解线形代数方程组(见lsolve.f)
实时反馈控制的进展情况 • 第一部分是位形控制(或“fast”)计算循环这一部运算速度较快。完成一次完全平衡重建迭代并产生控制电流供应命令可在小于1-2ms的时间间隔内完成 • 算法的第二部分(“慢”循环)这包括大量的计算,比位形控制循环需要多25倍的时间。在这一部分算法中,磁通矢量是基于的完全平衡反演的结果。象安全因子分布、角向和内感等这类等离子体参数的计算,均由这点的所决定。 • 实时平衡重建的充分性证明 • 实时算法的一个前提条件是, 如果起始点平衡和一个好的重建之间的差距充分小, 经过一次迭代解就和收敛重建十分接近足以进行放电控制。另一前提是, 一次迭代就可以使实时算法跟上放电发展中平衡的变化。