移动通信环境下电波传播测量详解:PSAT-2.0.0中文手册

需积分: 19 37 下载量 121 浏览量 更新于2024-08-09 收藏 4.51MB PDF 举报
《室外传播环境的测量 - psat-2.0.0 - ref - 中文说明书》是一本专注于移动通信技术领域的专业书籍,由具有丰富实践经验的作者杨大成撰写。该书深入探讨了无线传播环境在移动通信系统中的核心地位,它是通信设计的基础,影响着设备性能、天线选择、通信距离评估以及技术策略的选择。 书中的内容首先概述了无线传播环境分析中的基础理论,如概率论、随机过程和矩阵等,这些理论为后续章节的电波传播建模提供了坚实的数学基础。接着,作者详细讲解了地球表面均匀大气中的电波传播模型,室外传播特征,包括大尺度和小尺度衰落模型的区分,以及这些模型在实际应用中的分析方法。 对于移动通信特有的复杂性,书本特别关注了室外传播环境和室内无线传播与覆盖的差异,强调了标量信道和矢量信道建模的重要性。空-时矢量信道模型和多输入-多输出(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 上传