fluent udf中文帮助
fluent udf中文帮助本章简要地介绍了用户自定义函数(UDF)及其在 Fluent 中的用法。在 1.1 到 1.6 节中我们会介绍一下什么是 UDF;如何使用 UDF,以及为什么要使用 UDF,Makefile udfmakefile udf2DEF INE PROPERTYDEFINE DRIFT DI AM基础输运方程单元()面,区域()和线(操作求解器数据运仃输运方程求解器建立在有限容积法的基础上,这种方法将计算域离散为有限数目的控制体或是单元。网格单元是中基本的计算单元,这些单元的守恒特性必须保证。也就是说普通输运方程,例如质量,动量,能量方程的积分形式可以应用到锊个单元:/pad+,p·dA=中 TODa+/,SwAunsteadyeonv画 ctiondiffusiongeneration此处,是描述普通输运数量的变量()根据所求解的输运方程它可取不同的值。下面是在输运方程中可求解的的子集E守恒与否需要知道通过单元边界的通量。因此,需计算出单元和面上的属性值(单元()面,区域()和线(单元和单元面被组合为一些区域(),这些区域规定了计算域(例如,入口,出口,壁面)的物理组成)。当用户使用的时,用户的叮调用流体区域或是边界区域的计算变量(需要获得适当的变量,比如说是区域参考)和单元,以便标定各个单元。区域)是一群单元或单元面的集合,它可以由模型和区域的物理特征(比如入∏,出∏,壁面,流伓区域)来标定。例如,·些被指定为面域()的单元面可以被指定为类型,由此,速度也就可指定了。线()是据结构的内部名称,可被用来指定一个区域结构可作为数据储存器米使用,这些数据对于它所表示的单元和面来说是公用的(操作多数的任务需要在一个线的所有单元和面上重复执行。比如,定义一个自定义轮廓函数()则会对一个面线上)的所有单元和面进行循环。为了用户方使向用户提供了一些循环宏工具(来执行对单元,面,节点()和线()的重复操作例如,单元循环宏()可以对给定单元线上的所有单元进行循环操作()。而面循环宏()则可调用所有给定面线()的面。提供的循环工具请见在某些情况下需要对某个变量操作,而这个变量恰恰又不能直接被当作变量来传递调用。比如,如果用户使用宏来定义,求解器将不会向它传递指针。这种情况下,用户函数需要用提供的宏来调用线指针(见求解器数据通过用户界面将函数(它已被编译和连接)连接到求解器上可实现调用求解器变量。旦和求解器正确连接,无论何时,函数都可调用求解器数据。这些数据将会被作为用户变量自动地传递给注意,所有的求解器变量,不管是求解器传递给的,还是传递给求解器的,都使用单位。运行将会在侦定时刻被调用。但是,也可对它们进行异步执行,使用宏,还可在需要时()执行。详情请见解释和编译的比较编译和的构建方式一样。脚木被用来调用编译器来构建一个当地目标代码库()。目标代码库包含高级语言源代码的机器语言翻译。代码库在运行时由“动态加载”()过程连接到上。连接后,与共亨库的联系()将会被保存在用户的文件中这样,当以后再读入文件时,此编译库将会与自动连接。这些库是针对计算机的体系结构和·定版本的使用的。所以,当更新,或计算机操作系统改变,或是在不同类型的机器上运行时,这些库必须重新构建而解释则是在运行吋,直接从语言源代码编译和装载()。在运行中,源代码被编译为中介的独立于物理结构的使用预处理程序的机器代码(被调用时,机器代码由內部仿真器(),或注释器)执行。注释器不具备标准编译器的所有功能;它不支持语言的某些原理。所以,在使用吋,有语言限制(见)。例如,不能够通过废弃结构()来获得数据。要获得数据结构,必须使用由提供的预定义宏。另一个例子是不能识别指针数组。这些功能必须由来执行。编译后,用户的函数名称和内容将会被储存在文件中。函数将会在读入文件时被自动编译。独立于物理结构的代码的外层()叮能会导致执行错误(),但却可使共亨不同的物理结构,操作系统,和版本。如果运行速度较慢,不用被调节就可以编译代码的形式(运行中的和请见选择或是时,注意以下内容:对其它平台是便捷的(可作为()来运行不需编译器。慢需要较多的代码。在使用语言上有限制。不能与编译系统或用户库()连接。只能使用预定义宏来获得结构中的数据。(见和)比运行快在使用语言上不存在限制可用任何编译器编译。能调用以其他语言编写的函数机器物理结构需要用户建立的每个版本的共享库(如果包含有注释器()不能处理得语言元素,则不能作为)运行总的来说,当决定使用那种类型的时使用作为简单的函数使用作为复杂的函数,这些函数对有较大要求(例如每次运行时,在每个单元上均须调用的属性需要使用编译库一个例子编辑代码,并且在用户的模型中有效使用它,须遵循以卜七个基木步骤定义用户模型。编制语言源代码。运行读入,并设置文件。编译或注释()语言源代码。在中激活开始计算。分析计算结果,并与期望值比较。在开始解决问题前,用户必须使用定义希望解决的问题()。例如,加入用户希望使用来定义一个用户化的边界条件()。用户首先需要定义一系列数学方程来描述这个条件。接下来用户需要将这些数学方程(概念设计)用语言写成一个函数)。用户可用文本编辑器米完成这一步。以为后缀名米把这个文件保存在工作路径下。写完语言函数后,用户即可运行并且读入或设置文件()。对C语言源代码进行注释,编译,和调试),并在中激活用户函数()。最后,运行计算(),分析结果并与期望值比较。()。根据用户对结果的分析,可将上述整个过程重复几次。具体如下。定义用户模型生成和使用的第一步是定义用户的模型方程。如图所示的涡轮叶片。模拟叶片冑围的流玚使用了非结构化网格。计算域由底端的周期性边界()延伸到顶端的相同部分(),速度入口在左边,压力出口在右边。Irvine ua〔15512405危e893nde5)文中对入口速度为常数分布和抛物线分布的流场进行了比较。分段线性的分布可由边界场选项得到(),而多项式分布则只能使用用户自定义函数得到。进口速度为常数()的结果如图1.7.2和1.7.3所示。当流动沿着涡轮叶片进行时,初始速度场被改变了。了4101265105 tces. 89E.11电+01Turbine vane〔1551cl,2405他e,的93nde引假定现在要设涡轮叶片入∏速度不是常数值,其分布如下2un=20-2000745士变量在入口中心处为0.0,在入口上部和下部则分别为而入口中心处的速度为边界上为0。用户可用描述这一分布,并将它应运到模型中来解决这类问题。编制语言源代码。选定方程定义后,用户可用任意文本编辑器来书写C语言代码。以扩展名保存源代码文件保存到工作路径下。关于的书写请参考下面是一个怎样在中应用方程的例子。的功能由主要的宏()米定义。此处,宏用来表示下面的代码旨在给求解器捉供边界的轮廓信息。书中将在以后部分讨论其它的宏宏的第一个变量用来定义速度入口面板中的函数。名称可任意指定。在给定的边界区域上的所有单元面()上将会使用函数的这个方程。当用户在用户界面选定作为边界条件时,将会自动定义线()。下标由应用程序自动定义。中被用来形成对边界区域上所有单元面的循环()。对于每个面,面的质心()的坐标可由宏来获得。抛物线方程中用到了坐标,速度值通过宏来返回给面。宏和宏都是提供的宏。详情请见5读入,并设置文件建立后,用户开始设置在工作路径下启动读入(或设置)文件(如果文件以前设置过,请确认它是否被保存在了工作路径编详或注释()语言源代码这部分将例中的源代码作为来编译。注意,这个例子不可应用于的并行网络()。完整的编译和连接请见确认的文件(如果以前设置过)和语言源代码在工作路径卜。用面板编译例如, ud fexamp leInterpreted UDFSSource file rlameample+CCPP Command nameStack sizeH Display Assembly ListingH Use Contributed CPPCompilecospHelp在下键入语言源代码文件例如, udfexample.c。如果用户源代码不在目前工作路径下,则在编译,需在面板中间如文件完整的路径。在栏里,选择预处理器。省设置为如果用户函数的局部变量数目大于将会导致堆栈溢出。这种情況下,应将设置为比局部变量大的数
- 2020-11-04下载
- 积分:1
麦克风阵列前端语音信号处理
个人学习笔记,稍稍整理下阵列波東形成技术模型最大信噪比最小方差无失真响应滤波器线性约束最小方差广义旁瓣相消基于阵列定位和跟踪技术互相关方法3.3.2广义互相关(基于特征向量的方法最小熵法白适应特征向量分解法自适应盲信号分离(,空域线性预测法语音信号预加重算法第五章模型高斯混合模型隐马尔可夫模型频率分析()深度神经网络第章信号处理语音信号特点在一段时间内),人的声带和声道形状是相对稳定的,可认为其特征是不变的。语音可以分为周期性的浊音和非周期的清音。浊音和清音绎常在一个音节中同时出现。浊音部分和音质关系密切,在时域上呈现岀明显的周期性,在频域上有共振峰结构,而且大部分能量集中在较低频段内,是语音中人幅度高能量的部分;清音则具有明显的时域和频域特征,类似于白噪声,能量较小,在强噪声中容易被掩盖,但在较髙信噪比时能提供较多的信息。在语音增强中,可以利用浊音的周期性特征,采用梳状滤波器提取语音分量或者抑制非语音信号,而清音则难以与宽带噪声区分,加性噪声大致上有:周期性噪声、脉冲噪声、宽带噪声和同声道的其亡语音干扰等。周期性噪声主要来源于发动机等周期性运转的机械,电气干扰,特别是电源交流声也会引起周期性噪声,其特点是有许多离散的窄谱峰。脉冲噪声来源于爆炸、撞击和放电等,表现为时域波形中突然出现的窄脉冲。宽带噪声的来源很多,包括热噪声、气流(风、呼吸)噪声及各种随杋噪声源,量化噪声也可视为宽带噪声。平稳的宽带噪声,通常也可以λ为宽带噪声。平稳的宽带噪声,通常也可以视为高斯白噪声。语音增强算法大致分为四种:参数法、非参数法、统讣法和其它方法。信号响应的意义对于任何一个信号均可以使用冲击函数来表示,即:∑()6(数字信号处理的意义就是通过运算来达到处理的目的,设这种运算关系为:]则输出信号()和输入信号()之间的关系指述为=[()。卷积推导设系统输入()=6()系统的输出()的初始状态为零,这时系统输出用()表示为则称()为系统的单位脉冲响应。则对任意输入信号(),系统输出为:()6(根据叠加原理可得:()∑()(-)∑()[6(-)利用系统时不变性,可得下式6(-)=(-),因此可得:()∑()o(-)=()*()上述就是卷积公式的推导。时域离散系统的输入输出描述法描述一个系统可以不管系统内部的结构如何,将系统看成一个黑盒子,只描述系统的输岀和输入之间的关系,这种描述法被成为输入输岀描述法。在模拟系统中使微分方程描述系统的输入和输出之间的关系,在时域离散系统中使用差分方程描述系统的输入和输岀关系点评:微分方程重在描述变化的趋势,差分方程的过程可以套用卷积的方法。时域离散信号傅里叶变换(TFT, Discrete- Time Fourier Transform)定义上述ω的单位是弧度,范围是x。其傅里叶反变换由如下公式得到:()周期信号由傅里叶级数表示傅里叶变换的一些性质时域卷积,频域相乘;时域相乘,频域卷积∑|()巴塞伐尔定理信号的功率也可以在频域求离散傅里叶变换(将有限长时域离散信号变换到频域的变换,但变换的结果是对时域离散信号的频谱的等问隔采样定义设序列()的长度为,定义()的点为()=[()=∑(式中,成为离散傅里叶变换区间长度,要求中即可得为书写简单,令则可以简写为:()=[()=∑()≤≤其反变换如下()=[()=-∑()和之间的关系:的主要性质)线性性质)隐含周期性)循环移位性质)有限长序列的循环移位设序列()的长度为,对()以≥为周期进行周期延拓,得到:()=()定义()的循环移位序列为()=^(+)()=(+)()上式表示将序列()以为周期进行周期延拓,再左移个单位取主值序列,就得到()的循环移位序列()。则有如下结论:设序列()的长度为,其循环移位序列为()=()())=[()()=[()短时傅里叶变换(,针对平稳信号的变换,语音信号在长时间跨度上不平稳,但其每个时间段内可看成是平稳的。定义°,()是输入信号,()是分析窗口(-)是纤过时域翻转并右移个采样点。类似于,离散定义如下)2()=∑()(其含义是在时域用窗函数截取信号,对截取部分的信号进行傅里叶变换,即在时刻得到时刻该段信号的傅里叶变换,不断移动,即可得到不同的傅甲叶变换,将这些傅里叶变换组合起来即得(o)计算在计算()和滤波器()卷积效率较高。的基木思想是将()分段,将分段后的每段与()卷积()=是任意的分段长度()=∑(-)()=∑(-)()=∑)*()=∑数字滤波器的最大优点是可以实现线性相位滤波。线性相位设的单位脉冲响应()的长度为,则其频响函数为()=∑()将(“)表示成如下形式e(a)式中,(a)是O的实函数,如果满足0(o)a则相位满足线性关系线性相位对时域和频域的约束)=∑O0展开可得:∑()(0-(o)=(a)((o)-(o)系数偶对称。窗函数设计其设计思想是使用逼近希望的滤波特性。基本方法)构造希望逼近的频响函数(“)
- 2020-12-12下载
- 积分:1