阴影衰落与地形影响详解:PSAT-2.0.0中文手册

需积分: 19 37 下载量 91 浏览量 更新于2024-08-09 收藏 4.51MB PDF 举报
本文档主要探讨了阴影衰落及地形对移动通信系统PSAT-2.0.0在实际环境中的影响,特别是在市区内的无线传播特性。阴影衰落是由于建筑物的位置差异、屋顶边缘的绕射特性以及不同高度和形状建筑物造成的电波传播不均匀性。这种衰落现象是由两方面因素共同作用:一是基站与移动台之间由于建筑物阻挡引起的衍射损耗的随机变化,二是用户附近屋顶接收到的场强随建筑物高度变化而变化,导致同一地区不同街道间的信号均值不同。 在分析中,作者引入了数学模型来模拟这一过程。例如,通过假设建筑物分布在离散的间距yΔ上,高度为随机数,可以根据建筑物高度的范围BHΔ和频率段的特性来确定整数部分I和随机整数nI。通过这样的方式,可以逐步计算出不同建筑物顶部的接收场强,初始情况下考虑的是直射的平面波。 作者强调了移动通信信道环境相较于固定无线通信的复杂性,需要针对移动通信特点进行专门的分析和仿真。书中详细讲解了大尺度传播模型和小尺度衰落模型,涉及的内容包括地球表面均匀大气中的电波传播、室外和室内传播模型、覆盖、小尺度衰落信道、标量和矢量信道建模及其仿真。此外,还特别关注了空-时矢量信道模型和MIMO信道模型,这些技术在现代移动通信中的重要性。 本书旨在为无线通信领域的工程师和研究人员提供全面深入的理解,帮助他们掌握无线传播环境的特性和分析方法,以及相应的建模和仿真技术。同时,书中也包含了实际应用案例和工程设计中的应用策略,适用于移动通信网络的规划和优化工作。尽管作者承认可能存在不足之处,但总体上,本文档对于理解移动传播环境的影响具有很高的价值。

namespace Foam { namespace phaseChangeTwoPhaseMixtures { defineTypeNameAndDebug(Zwart, 0); addToRunTimeSelectionTable ( phaseChangeTwoPhaseMixture, Zwart, components ); } } // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::phaseChangeTwoPhaseMixtures::Zwart::Zwart ( const volVectorField& U, const surfaceScalarField& phi ) : phaseChangeTwoPhaseMixture(typeName, U, phi), Rb_("Rb", dimLength, phaseChangeTwoPhaseMixtureCoeffs_), RNuc_("RNuc", dimless, phaseChangeTwoPhaseMixtureCoeffs_), Cc_("Cc", dimless, phaseChangeTwoPhaseMixtureCoeffs_), Cv_("Cv", dimless, phaseChangeTwoPhaseMixtureCoeffs_), p0_("0", pSat().dimensions(), 0.0) { correct(); } // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // Foam::tmp<Foam::volScalarField> Foam::phaseChangeTwoPhaseMixtures::Zwart::pCoeff ( const volScalarField& p ) const { volScalarField limitedAlpha1(min(max(alpha1(), scalar(0)), scalar(1))); volScalarField rho ( limitedAlpha1*rho1() + (scalar(1) - limitedAlpha1)*rho2() ); return (3*rho2())*sqrt(2/(3*rho1()))/sqrt(mag(p - pSat())+ 0.01*pSat()); } Foam::Pair<Foam::tmp<Foam::volScalarField>> Foam::phaseChangeTwoPhaseMixtures::Zwart::mDotAlphal() const { const volScalarField& p = alpha1().db().lookupObject<volScalarField>("p"); volScalarField pCoeff(this->pCoeff(p)); volScalarField limitedAlpha1(min(max(alpha1(), scalar(0)), scalar(1))); return Pair<tmp<volScalarField>> ( Cc_*limitedAlpha1*pCoeff*max(p - pSat(), p0_), Cv_*(1.0 - limitedAlpha1)*pCoeff*min(p - pSat(), p0_) ); } Foam::Pair<Foam::tmp<Foam::volScalarField>> Foam::phaseChangeTwoPhaseMixtures::Zwart::mDotP() const { const volScalarField& p = alpha1().db().lookupObject<volScalarField>("p"); volScalarField limitedAlpha1(min(max(alpha1(), scalar(0)), scalar(1))); volScalarField pCoeff(this->pCoeff(p)); return Pair<tmp<volScalarField>> ( Cc_*(1.0 - limitedAlpha1)*pCoeff*pos(p - pSat())/Rb_, (-Cv_)*limitedAlpha1*pCoeff*RNuc_*neg(p - pSat())/Rb_ ); } void Foam::phaseChangeTwoPhaseMixtures::Zwart::correct() { phaseChangeTwoPhaseMixture::correct(); } bool Foam::phaseChangeTwoPhaseMixtures::Zwart::read() { if (phaseChangeTwoPhaseMixture::read()) { phaseChangeTwoPhaseMixtureCoeffs_ = subDict(type() + "Coeffs"); phaseChangeTwoPhaseMixtureCoeffs_.lookup("Rb") >> Rb_; phaseChangeTwoPhaseMixtureCoeffs_.lookup("RNuc") >> RNuc_; phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cc") >> Cc_; phaseChangeTwoPhaseMixtureCoeffs_.lookup("Cv") >> Cv_; return true; } else { return false; } } 请检查上述openfoam代码存在的错误

2023-07-22 上传