三维导热问题的ADI-TDMA算法

  • 基本原理
  • 求解程序
  • 参考文献

基本原理

在上一篇文章,讲述了二维导热问题采用交替方向隐式方法[1]的求解过程。对于二维问题,Peaceman-Rachford ADI格式是无条件稳定的。然而,该格式对于三维问题是条件稳定的,其稳定条件为:

aΔt[1Δx2+1Δy2+1Δz2]≤1.5a\Delta t[\frac{1}{\Delta x^2}+\frac{1}{\Delta y^2}+\frac{1}{\Delta z^2}]\le 1.5 aΔt[Δx21​+Δy21​+Δz21​]≤1.5

可见该格式对时间步长Δt\Delta tΔt的限制很严格。相比之下,Brian ADI格式则是绝对稳定的,故可以选取较大的时间步长,同时每一时间步的计算量较小,可大幅加快计算速度。

下面介绍Brian ADI格式下三维非稳态导热方程的求解过程,求解过程中涉及两个温度中间量:UUU和VVV。

基于有限体积法的全隐离散方程可表示为:
aP0(TP−TP0)=aE(TE−TP)−aW(TP−TW)+aF(TF−TP)−aB(TP−TB)+aN(TN−TP)−aS(TP−TS)+SΔxΔyΔza_P^0(T_P-T_P^0)=a_E(T_E-T_P)-a_W(T_P-T_W)+a_F(T_F-T_P)-a_B(T_P-T_B)+a_N(T_N-T_P)-a_S(T_P-T_S)+S\Delta x\Delta y\Delta z aP0​(TP​−TP0​)=aE​(TE​−TP​)−aW​(TP​−TW​)+aF​(TF​−TP​)−aB​(TP​−TB​)+aN​(TN​−TP​)−aS​(TP​−TS​)+SΔxΔyΔz

(1)沿xxx方向求解:

先取Δt/2\Delta t/2Δt/2的时间步长,对x方向做隐式处理,yz方向取温度场T0T^0T0的值,求解温度场的中间量UUU,则全隐离散方程可改成:

aP0(UP−TP0)=aE(UE−UP)−aW(UP−UW)+aF(TF0−TP0)−aB(TP0−TB0)+aN(TN0−TP0)−aS(TP0−TS0)+SΔxΔyΔza_P^0(U_P-T_P^0)=a_E(U_E-U_P)-a_W(U_P-U_W)+a_F(T_F^0-T_P^0)-a_B(T_P^0-T_B^0)+a_N(T_N^0-T_P^0)-a_S(T_P^0-T_S^0)+S\Delta x\Delta y\Delta z aP0​(UP​−TP0​)=aE​(UE​−UP​)−aW​(UP​−UW​)+aF​(TF0​−TP0​)−aB​(TP0​−TB0​)+aN​(TN0​−TP0​)−aS​(TP0​−TS0​)+SΔxΔyΔz

整理后得到:

(aP0+aE+aW)UP=aEUE+aWUW+(aP0−aF−aB−aN−aS)TP0+aFTF0+aBTB0+aNTN0+aSTS0+SΔxΔyΔz(a_P^0+a_E+a_W)U_P=a_EU_E+a_WU_W+(a_P^0-a_F-a_B-a_N-a_S)T_P^0+a_FT_F^0+a_BT_B^0+a_NT_N^0+a_ST_S^0+S\Delta x\Delta y\Delta z (aP0​+aE​+aW​)UP​=aE​UE​+aW​UW​+(aP0​−aF​−aB​−aN​−aS​)TP0​+aF​TF0​+aB​TB0​+aN​TN0​+aS​TS0​+SΔxΔyΔz

在上式中,除了UPU_PUP​,UEU_EUE​和UWU_WUW​,其他量都是已知的。令aP=aP0+aE+aWa_P=a_P^0+a_E+a_WaP​=aP0​+aE​+aW​,D=(aP0−aF−aB−aN−aS)TP0+aFTF0+aBTB0+aNTN0+aSTS0+SΔxΔyΔzD=(a_P^0-a_F-a_B-a_N-a_S)T_P^0+a_FT_F^0+a_BT_B^0+a_NT_N^0+a_ST_S^0+S\Delta x\Delta y\Delta zD=(aP0​−aF​−aB​−aN​−aS​)TP0​+aF​TF0​+aB​TB0​+aN​TN0​+aS​TS0​+SΔxΔyΔz,则上式可以简化为:

aPUP=aEUE+aWUW+Da_PU_P=a_EU_E+a_WU_W+D aP​UP​=aE​UE​+aW​UW​+D

采用沿xxx方向的TDMA可以求得温度场中间量UUU。

(2)沿yyy方向求解:

对yyy方向做隐式处理,xxx方向取求得的中间量UUU的值,zzz方向取温度场T0T^0T0的值,求解温度场的第二个中间量VVV,则全隐离散方程可改成:

aP0(VP−TP0)=aE(UE−UP)−aW(UP−UW)+aF(VF−VP)−aB(VP−VB)+aN(TN0−TP0)−aS(TP0−TS0)+SΔxΔyΔza_P^0(V_P-T_P^0)=a_E(U_E-U_P)-a_W(U_P-U_W)+a_F(V_F-V_P)-a_B(V_P-V_B)+a_N(T_N^0-T_P^0)-a_S(T_P^0-T_S^0)+S\Delta x\Delta y\Delta z aP0​(VP​−TP0​)=aE​(UE​−UP​)−aW​(UP​−UW​)+aF​(VF​−VP​)−aB​(VP​−VB​)+aN​(TN0​−TP0​)−aS​(TP0​−TS0​)+SΔxΔyΔz

整理后得到:

(aP0+aF+aB)VP=aFVF+aBVB+(aP0−aN−aS)TP0+aNTN0+aSTS0−(aE+aW)UP+aEUE+aWUW+SΔxΔyΔz(a_P^0+a_F+a_B)V_P=a_FV_F+a_BV_B+(a_P^0-a_N-a_S)T_P^0+a_NT_N^0+a_ST_S^0-(a_E+a_W)U_P+a_EU_E+a_WU_W+S\Delta x\Delta y\Delta z (aP0​+aF​+aB​)VP​=aF​VF​+aB​VB​+(aP0​−aN​−aS​)TP0​+aN​TN0​+aS​TS0​−(aE​+aW​)UP​+aE​UE​+aW​UW​+SΔxΔyΔz

在上式中,除了VPV_PVP​,VFV_FVF​和VBV_BVB​,其他量都是已知的。令aP=aP0+aF+aBa_P=a_P^0+a_F+a_BaP​=aP0​+aF​+aB​,D=(aP0−aN−aS)TP0+aNTN0+aSTS0−(aE+aW)UP+aEUE+aWUW+SΔxΔyΔzD=(a_P^0-a_N-a_S)T_P^0+a_NT_N^0+a_ST_S^0-(a_E+a_W)U_P+a_EU_E+a_WU_W+S\Delta x\Delta y\Delta zD=(aP0​−aN​−aS​)TP0​+aN​TN0​+aS​TS0​−(aE​+aW​)UP​+aE​UE​+aW​UW​+SΔxΔyΔz,则上式可以简化为:

aPVP=aFVF+aBVB+Da_PV_P=a_FV_F+a_BV_B+D aP​VP​=aF​VF​+aB​VB​+D

采用沿yyy方向的TDMA可以求得温度场中间量VVV。

(3)沿zzz方向求解:

对zzz方向做隐式处理,xxx方向取仍取步骤(1)中求得的中间量UUU的值,yyy方向取步骤(2)求得的中间量VVV的值,求解下一时刻温度场T1T^1T1,则全隐离散方程可改成:

aP0(TP1−VP)=aE(UE−UP)−aW(UP−UW)+aF(VF−VP)−aB(VP−VB)+aN(TN1−TP1)−aS(TP1−TS1)+SΔxΔyΔza_P^0(T_P^1-V_P)=a_E(U_E-U_P)-a_W(U_P-U_W)+a_F(V_F-V_P)-a_B(V_P-V_B)+a_N(T_N^1-T_P^1)-a_S(T_P^1-T_S^1)+S\Delta x\Delta y\Delta z aP0​(TP1​−VP​)=aE​(UE​−UP​)−aW​(UP​−UW​)+aF​(VF​−VP​)−aB​(VP​−VB​)+aN​(TN1​−TP1​)−aS​(TP1​−TS1​)+SΔxΔyΔz

整理后得到:

(aP0+aN+aS)TP1=aNTN1+aSTS1+(aP0−aF−aB)VP0+aFVF+aBVB−(aE+aW)UP+aEUE+aWUW+SΔxΔyΔz(a_P^0+a_N+a_S)T_P^1=a_NT_N^1+a_ST_S^1+(a_P^0-a_F-a_B)V_P^0+a_FV_F+a_BV_B-(a_E+a_W)U_P+a_EU_E+a_WU_W+S\Delta x\Delta y\Delta z (aP0​+aN​+aS​)TP1​=aN​TN1​+aS​TS1​+(aP0​−aF​−aB​)VP0​+aF​VF​+aB​VB​−(aE​+aW​)UP​+aE​UE​+aW​UW​+SΔxΔyΔz

在上式中,除了TP1T_P^1TP1​,TF1T_F^1TF1​和TB1T_B^1TB1​,其他量都是已知的。令aP=aP0+aN+aSa_P=a_P^0+a_N+a_SaP​=aP0​+aN​+aS​,D=(aP0−aF−aB)VP0+aFVF+aBVB−(aE+aW)UP+aEUE+aWUW+SΔxΔyΔzD=(a_P^0-a_F-a_B)V_P^0+a_FV_F+a_BV_B-(a_E+a_W)U_P+a_EU_E+a_WU_W+S\Delta x\Delta y\Delta zD=(aP0​−aF​−aB​)VP0​+aF​VF​+aB​VB​−(aE​+aW​)UP​+aE​UE​+aW​UW​+SΔxΔyΔz,则上式可以简化为:

aPTP1=aNTN1+aSTS1+Da_PT_P^1=a_NT_N^1+a_ST_S^1+D aP​TP1​=aN​TN1​+aS​TS1​+D

采用沿zzz方向的TDMA可以求得下一时刻的温度场T1T^1T1。

边界节点的处理方式与上述过程相似,主要区别在于该节点的离散方程中未知项少了一项,例如对于顶部对流边界,aNa_NaN​的取值得改为αΔxΔy\alpha\Delta x\Delta yαΔxΔy,TNT_NTN​由未知的待求解量改为已知量TfT_fTf​。

求解程序

下面设计一个算例,并通过Fortran程序给出其求解过程:

有一个长600mm,宽400mm,高200mm的矩形计算域。计算域内材料的密度为2500kg/m3,热容为1372J/(kg·K)。含内热源,热生成率恒定为1050J/(m3·s)。导热系数为温度的多项式函数:

λ=−1.13588×10−15T5+3.25358×10−12T4−3.25305×10−9T3+1.32926×10−6T2−9.27637×10−5T+1.04478\lambda=-1.13588\times 10^{-15}T^5+3.25358\times 10^{-12}T^4-3.25305\times 10^{-9}T^3+1.32926\times 10^{-6}T^2-9.27637\times 10^{-5}T+1.04478 λ=−1.13588×10−15T5+3.25358×10−12T4−3.25305×10−9T3+1.32926×10−6T2−9.27637×10−5T+1.04478

计算域的初始温度为1500℃,外表面与环境进行对流换热,其中顶部对流给热系数α1\alpha_1α1​为200W/(m2·K),底部、左右侧和前后侧的对流给热系数α2\alpha_2α2​为80W/(m2·K),环境温度TfT_fTf​为20℃。模拟的物理时间长度为3h。

采用均匀结构化网格,每个网格节点的尺寸为2mm×2mm×2mm。由于该算例的模型沿yOzyOzyOz面、zOxzOxzOx是对称的,实际计算域可以只取左后半部分,即选取的计算域尺寸为300mm×200mm×200mm,网格节点数量为151×101×101。计算域右侧面、前侧面作为对称边界处理,右侧面上TE=TWT_E=T_WTE​=TW​,aE=aWa_E=a_WaE​=aW​;前侧面上TF=TBT_F=T_BTF​=TB​,aF=aBa_F=a_BaF​=aB​。

在选取时间步长时,由于非稳态导热随着时间的进行,会趋向于稳态,刚开始时温度变化率会很大,随后则会大幅减小,本算例选取时间步长的准则是使选定的时间步长内最大温度变化幅度不超过10℃,这样刚开始时间步长会很小,随后则会变得很大。

计算过程中选取了8个采样点,并设定每隔5分钟输出一次这8个采样点的温度值。

选用的坐标系如下:

求解程序如下,模拟用到的参数在网格材料边界条件初始条件求解控制模块中通过常量定义出来,以便于参数的调整:

module meshimplicit nonereal, parameter :: length = 300e-3, width = 200e-3, height = 200e-3real, parameter :: delta_X = 2e-3, delta_Y = 2e-3, delta_Z = 2e-3
end module meshmodule materialimplicit nonereal, parameter :: rho = 2500, Cp = 1372, S = 1050
end module materialmodule boundary_conditionimplicit nonereal, parameter :: alpha1 = 300, alpha2 = 80real, parameter :: Tf = 20
end module boundary_conditionmodule initial_conditionimplicit nonereal, parameter :: T0 = 1500
end module initial_conditionmodule solution_controlimplicit nonereal, parameter :: time_length = 180 * 60real, parameter :: sampling_interval = 5 * 60real, parameter :: max_deltaT_per_step = 10real, dimension(8) :: sample_points_X = (/40e-3, 300e-3, 40e-3, 300e-3, 40e-3, 300e-3, 40e-3, 300e-3/)real, dimension(8) :: sample_points_Y = (/100e-3, 100e-3, 170e-3, 170e-3, 100e-3, 100e-3, 170e-3, 170e-3/)real, dimension(8) :: sample_points_Z = (/100e-3, 100e-3, 100e-3, 100e-3, 170e-3, 170e-3, 170e-3, 170e-3/)integer :: spIndex(8,3)
end module solution_controlprogram TDMAuse meshuse materialuse solution_controlimplicit noneinteger :: Nx, Ny, Nz!确定X、Y方向的网格节点数量Nx = length / delta_X + 1Ny = width / delta_Y + 1Nz = height / delta_Z + 1!根据采样点位置获得采样点在网格节点中的索引spIndex(:,1) = floor(sample_points_X / delta_X + 1)spIndex(:,2) = floor(sample_points_Y / delta_Y + 1)spIndex(:,3) = floor(sample_points_Z / delta_Z + 1)!开始计算call calculate(Nx, Ny, Nz)end program TDMAsubroutine calculate(Nx, Ny, Nz)use meshuse materialuse boundary_conditionuse initial_conditionuse solution_controlimplicit noneinteger, intent(in) :: Nx, Ny, Nzinteger :: ireal :: current_time, current_sampling_time, delta_Taureal, dimension(0:Nx+1,0:Ny+1,0:Nz+1) :: T, U, V, T1, delta_Treal, dimension(Nx,Ny,Nz) :: lambda, aP0, aE, aW, aF, aB, aN, aS, aP, Sv, D, Dx, P, Qreal :: kx(Ny,Nz), ky(Nx,Nz),kz(Nx,Ny)real :: max_delta_T, max_ratereal :: tStart, tEnd!初始化系数矩阵AaP0 = 0aE = 0aW = 0aF = 0aB = 0aN = 0aS = 0!初始化温度矩阵T = TfT(1:Nx,1:Ny,1:Nz) = T0U = TfV = TfT1 = Tf!初始化源项矩阵Sv = S * delta_X * delta_Y * delta_ZSv(1,:,:) = Sv(1,:,:) / 2Sv(:,1,:) = Sv(:,1,:) / 2Sv(:,:,1) = Sv(:,:,1) / 2Sv(:,:,Ny) = Sv(:,:,Ny) / 2!初始化输出write(*,"(A4,$)") "Time"do i = 1, 7write(*,"(A9,I1,$)") "SP", iend dowrite(*,"(A10)") "SP8"!按时间步进行温度场计算current_time = 0current_sampling_time = sampling_intervaldelta_Tau = 0.0001  !考虑到降温刚开始时的温度变化率很大,初始delta_Tau取一个很小的值call CPU_TIME(tStart)do while (current_time < time_length)!更新当前时间current_time = current_time + delta_Tau!通过多项式函数计算材料导热系数lambda = -1.13588E-15 * T(1:Nx,1:Ny,1:Nz)**5 + 3.25358E-12 * T(1:Nx,1:Ny,1:Nz)**4 &- 3.25305E-09 * T(1:Nx,1:Ny,1:Nz)**3 + 1.32926E-06 * T(1:Nx,1:Ny,1:Nz)**2 &- 9.27637E-05 * T(1:Nx,1:Ny,1:Nz) + 1.04478!计算系数矩阵A!(1)内部节点的计算aP0 = rho * Cp * delta_X * delta_Y * delta_Z / (delta_Tau / 2)aE(1:Nx-1,:,:) = 2 / (1 / lambda(1:Nx-1,:,:) + 1 / lambda(2:Nx,:,:)) / delta_X * delta_Y * delta_ZaW(2:Nx,:,:) = 2 / (1 / lambda(2:Nx,:,:) + 1 / lambda(1:Nx-1,:,:)) / delta_X * delta_Y * delta_ZaF(:,1:Ny-1,:) = 2 / (1 / lambda(:,1:Ny-1,:) + 1 / lambda(:,2:Ny,:)) / delta_Y * delta_X * delta_ZaB(:,2:Ny,:) = 2 / (1 / lambda(:,2:Ny,:) + 1 / lambda(:,1:Ny-1,:)) / delta_Y * delta_X * delta_ZaN(:,:,1:Nz-1) = 2 / (1 / lambda(:,:,1:Nz-1) + 1 / lambda(:,:,2:Nz)) / delta_Z * delta_X * delta_YaS(:,:,2:Nz) = 2 / (1 / lambda(:,:,2:Nz) + 1 / lambda(:,:,1:Nz-1)) / delta_Z * delta_X * delta_Y!(2)左侧、上下侧、后侧对流边界节点的处理aW(1,:,:) = alpha2 * delta_Y * delta_ZaN(:,:,Nz) = alpha1 * delta_X * delta_YaS(:,:,1) = alpha2 * delta_X * delta_YaB(:,1,:) = alpha2 * delta_X * delta_Z!(3)右侧、前侧对称边界节点的处理aW(Nx,:,:) = aW(Nx,:,:) * 2aF(:,Ny,:) = aF(:,Ny,:) * 2!(4)边界节点的减半处理!(4-1)上侧aP0、aE、aW、aF、aB减半aP0(:,:,Nz) = aP0(:,:,Nz) / 2aE(:,:,Nz) = aE(:,:,Nz) / 2aW(:,:,Nz) = aW(:,:,Nz) / 2aF(:,:,Nz) = aF(:,:,Nz) / 2aB(:,:,Nz) = aB(:,:,Nz) / 2!(4-2)下侧aP0、aE、aW、aF、aB减半aP0(:,:,1) = aP0(:,:,1) / 2aE(:,:,1) = aE(:,:,1) / 2aW(:,:,1) = aW(:,:,1) / 2aF(:,:,1) = aF(:,:,1) / 2aB(:,:,1) = aB(:,:,1) / 2!(4-3)左侧aP0、aN、aS、aF、aB减半aP0(1,:,:) = aP0(1,:,:) / 2aN(1,:,:) = aN(1,:,:) / 2aS(1,:,:) = aS(1,:,:) / 2aF(1,:,:) = aF(1,:,:) / 2aB(1,:,:) = aB(1,:,:) / 2!(4-4)后侧aE、aW、aN、aS减半aP0(:,1,:) = aP0(:,1,:) / 2aE(:,1,:) = aE(:,1,:) / 2aW(:,1,:) = aW(:,1,:) / 2aN(:,1,:) = aN(:,1,:) / 2aS(:,1,:) = aS(:,1,:) / 2!沿x方向使用TDMA隐式求解aP = aP0 + aE + aW!(1)定义TDMA中的常数矩阵D = (aP0 - aF - aB - aN - aS) * T(1:Nx,1:Ny,1:Nz)+ aF * T(1:Nx,2:Ny+1,1:Nz) + aB * T(1:Nx,0:Ny-1,1:Nz) &+ aN * T(1:Nx,1:Ny,2:Nz+1) + aS * T(1:Nx,1:Ny,0:Nz-1) + Sv!(2)左侧边界的特殊处理D(1,:,:) = D(1,:,:) + aW(1,:,:) * Tf!!!!!!P(1,:,:) = aE(1,:,:) / aP(1,:,:)Q(1,:,:) = D(1,:,:) / aP(1,:,:)do i = 2, Nxkx = aP(i,:,:) - aW(i,:,:) * P(i-1,:,:)P(i,:,:) = aE(i,:,:) / kxQ(i,:,:) = (D(i,:,:) + aW(i,:,:) * Q(i-1,:,:)) / kxend doU(Nx,1:Ny,1:Nz) = Q(Nx,:,:)do i = Nx-1, 1, -1U(i,1:Ny,1:Nz) = P(i,:,:) * U(i+1,1:Ny,1:Nz) + Q(i,:,:)end do!(3)由于沿y、z方向定义常数矩阵时,均会用到x方向的计算量U加和,将其定义为DxDx = -(aE + aW) * U(1:Nx,1:Ny,1:Nz) + aE * U(2:Nx+1,1:Ny,1:Nz) + aW * U(0:Nx-1,1:Ny,1:Nz)!沿y方向使用TDMA隐式求解aP = aP0 + aF + aB!(1)定义TDMA中的常数矩阵D = (aP0 - aN - aS) * T(1:Nx,1:Ny,1:Nz) + aN * T(1:Nx,1:Ny,2:Nz+1) + aS * T(1:Nx,1:Ny,0:Nz-1) + Dx + Sv!(2)后侧边界的特殊处理D(:,1,:) = D(:,1,:) + aB(:,1,:) * Tf!!!!!!P(:,1,:) = aF(:,1,:) / aP(:,1,:)Q(:,1,:) = D(:,1,:) / aP(:,1,:)do i = 2, Nyky = aP(:,i,:) - aB(:,i,:) * P(:,i-1,:)P(:,i,:) = aF(:,i,:) / kyQ(:,i,:) = (D(:,i,:) + aB(:,i,:) * Q(:,i-1,:)) / kyend doV(1:Nx,Ny,1:Nz) = Q(:,Ny,:)do i = Ny-1, 1, -1V(1:Nx,i,1:Nz) = P(:,i,:) * V(1:Nx,i+1,1:Nz) + Q(:,i,:)end do!沿z方向使用TDMA隐式求解aP = aP0 + aN + aS!(1)定义TDMA中的常数矩阵D = (aP0 - aF - aB) * V(1:Nx,1:Ny,1:Nz) + aF * V(1:Nx,2:Ny+1,1:Nz) + aB * V(1:Nx,0:Ny-1,1:Nz) + Dx + Sv!(2)上下侧边界的特殊处理D(:,:,1) = D(:,:,1) + aS(:,:,1) * TfD(:,:,Nz) = D(:,:,Nz) + aN(:,:,Nz) * Tf!!!!!!P(:,:,1) = aN(:,:,1) / aP(:,:,1)Q(:,:,1) = D(:,:,1) / aP(:,:,1)do i = 2, Nzkz = aP(:,:,i) - aS(:,:,i) * P(:,:,i-1)P(:,:,i) = aN(:,:,i) / kzQ(:,:,i) = (D(:,:,i) + aS(:,:,i) * Q(:,:,i-1)) / kzend doT1(1:Nx,1:Ny,Nz) = Q(:,:,Nz)do i = Nz-1, 1, -1T1(1:Nx,1:Ny,i) = P(:,:,i) * T1(1:Nx,1:Ny,i+1) + Q(:,:,i)end do!当达到采样时间时,输出采样点温度if (current_time >= current_sampling_time) then!输出6个采样点的温度值write(*,"(I4,$)") floor(current_time / 60)do i = 1, 7write(*,"(f10.2,$)") T1(spIndex(i,1), spIndex(i,2), spIndex(i,3))end dowrite(*,"(f10.2)") T1(spIndex(6,1), spIndex(6,2), spIndex(6,3))!!更新下一次需要采样的时间current_sampling_time = current_sampling_time + sampling_intervalend if!计算最大冷却速率delta_T = abs(T1 - T)max_delta_T = maxval(delta_T)max_rate = max_delta_T / delta_Tau!根据对每个时间步内的最大温度变化率限制,以及下一次采样时间确定下一个时间步长delta_Tau = min(max_deltaT_per_step / max_rate, current_sampling_time - current_time)!更新温度矩阵TT = T1end docall CPU_TIME(tEnd)write(*,"('Calculate complete, time consumption: ', f8.4, ' sec')") (tEnd - tStart)end subroutine calculate

参考文献

[1] 陶文铨. 数值传热学[M]. 第二版. 西安: 西安交通大学出版社, 2001: 99-104.

三维导热问题的ADI-TDMA算法相关推荐

  1. ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别

    ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算:图像数据.字符串数据等计算相似度常用的十种方法简介.代码实 ...

  2. 测向交叉定位matlab,一种三维多站测向交叉定位算法

    2011年第 24卷第 1期 Electronic Sci& Tech/Jan115, 2011 协议 ·算法及仿真 wwwdianzikeji1org 收稿日期 : 201007210 作者 ...

  3. 【三维装箱】基于粒子群算法求解三维装箱问题matlab源码

    1 简介 针对约束条件下三维装箱问题复杂性,为提高装箱利用率,本文提出 了混合粒子群算法,该算法采用BF启发式算法配合改进的自适应权重粒子群算法实现.通过仿真试验,结果表明该混合粒子群算法对解决部分约 ...

  4. 干货 | 三维点云配准:ICP 算法原理及推导

    编者荐语 点云配准可以分为粗配准(Coarse Registration)和精配准(Fine Registration)两步.粗配准指的是在两幅点云之间的变换完全未知的情况下进行较为粗糙的配准,目的主 ...

  5. 用三维Demo看懂各种优化算法,还有C++程序员福音

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 机器学习里的优化算法很多,比如SGD.Adam.AdaGrad.AdaDelta等等,光是它们的迭代公式就已经够让人头疼. 好在Tenso ...

  6. 【论文】三维坐标下TDOA之chan算法

    function [X] = Chan3(BS,BSN,R)% 第一次WLS%k = x^2+y^2+z^2 for i =1:BSNk(i) = BS(1,i)^2 + BS(2,i)^2 + BS ...

  7. 【无人机三维路径规划】基于A算法解决三维路径规划问题含危险障碍地形含Matlab源码

    1 简介 飞行器的测量精度,航迹路径的合理规划,飞行器工作时的稳定性.安全性等这些变化对飞行器的综合控制系统要求越来越高.无人机航路规划是为了保证无人机完成特定的飞行任务,并且能够在完成任务的过程中躲 ...

  8. 【ACO三维路径规划】蚁群算法无人机三维路径规划【含Matlab源码 1278期】

    ⛄一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水 ...

  9. 【PSO三维路径规划】粒子群算法融合鸡群算法多无人机三维路径规划【含Matlab源码 1792期】

    ⛄一.无人机简介 无人机的航迹规划是指在综合考虑无人机飞行油耗.威胁.飞行区域以及自身物理条件限制等因素的前提下, 为飞行器在飞行区域内规划出从初始点到目标点最优或者满意的飞行航迹, 其本质是一个多约 ...

  10. 【CS三维路径规划】布谷鸟灰狼算法、灰狼算法求解复杂地形下三维无人机路径规划问题【含Matlab源码 2216期】

    ⛄一.无人机三维路径规划简介 1 无人机航迹规划问题的数学模型 建立三维航迹规划问题的数学模型时, 不但考虑无人机基本约束, 还考虑复杂的飞行环境, 包括山体地形和雷暴威胁区. 1.1 无人机基本约束 ...

最新文章

  1. 谷歌发布最大语言模型:等于9个GPT-3,训练成本却低得多
  2. 使用大脑活动反馈的刺激技术自动化治疗脑部疾病
  3. C语言矩阵M*N节省空间的算法(附完整源码)
  4. Debug enterprise search menu
  5. 数据可视化:常用图表使用总结
  6. 视图自己定义旋转动画 相似百度音乐
  7. 为什么这么多人在用Redis
  8. 如何部署Windows Server 2016 中的Storage Spaces Direct超聚合解决方案
  9. 在BetterZip的收藏夹中如何添加经常使用的文件夹?
  10. Matter-JS collisionFilter 碰撞过滤器
  11. 网页播放器代码集中营(2)
  12. 在ubuntu用wget下载多个文件,axel多线程下载(多线程超级快)
  13. 测试质量保障体系的建立
  14. 基于Profinet网络的风力发电机组齿轮箱温度采集系统
  15. 开会总结【1】ADL129
  16. 可调光的LED驱动解决方案
  17. 网络安全证书已过期或不可信怎么办
  18. Python+QT+Selenium制作在线视频播放器
  19. 笔刷分享|每个建模人都在用的笔刷合集
  20. 区块链改革(链改)全国行动委员会第一次会议胜利召开

热门文章

  1. 南卡小音舱体验评测:CD级音质听感震撼
  2. switch语句查询水果价格
  3. *item_search_similar - 搜索相似的商品**
  4. Android使用串口打印机打印图片方法
  5. 印度BIS认证产品范围和注意事项
  6. 西门子opc服务器注册,西门子OPC服务器怎么做
  7. 南邮80c51汇编语言编程实验,实验三 查表 多分支(80C51单片机汇编语言编程)
  8. VR/AR眼镜Type-C转接器边投屏边PD快充方案
  9. 第四章:Django特级篇
  10. query相关搜索词推荐