雄关漫道真如铁,而今迈步从头越分享 http://blog.sciencenet.cn/u/max 专业,是一种追求;执着,是一种品质;从容,是一种境界。

博文

ANSYS技术(21)——ANSYS中Fourier级数的分解

已有 7239 次阅读 2012-3-29 13:50 |个人分类:ANSYS技术|系统分类:科研笔记| ansys, Fourier

ANSYS中Fourier级数的分解

1 问题提出:

Ansys作电气设备场分析时,常需要对磁密等物理量做谐波场分析。此时,必须对这些数据要进行Fourier变换,包括Fourier正变换和反变换。

对给定的数据,或者计算得到的数据进行Fourier分解可采用MatlabFFT指令和Ansys*Mfourier指令。

下面分别就这两种软件的指令用法进行简述,并通过算例说明。

2.指令:

*MFOURI, Oper, COEFF, MODE, ISYM, THETA, CURVE计算一个数据的傅立叶的系数或者根据傅里叶系数求傅里叶反变换)

(1) Oper:

Oper :为FIT,表示根据 MODE, ISYM, THETA, CURVE 求傅里叶系数COEFF

Oper :为EVAL,表示根据COEFF, MODE, ISYM, THETA求傅里叶反变换数据CURVE

(2) COEFF:用来存放计算得到傅里叶系数的数组参数名。

(3) MODE:预期要分解的傅里叶系数的次数的数组参数名。

(4) ISYM 包含着相应次傅立叶系数的对称信息的数组参数名;

(5) THETA:原始数据对的角度数组参数名。

(6) CURVE:原始数据或者傅里叶反变换得到数据的数组参数名;

注意点

(1) 数组COEFF, MODE, ISYM的长度必须相同且为预期分析的傅里叶次数的两倍,因为每次傅里叶系数需要有两个系数组成(cossin前的系数)

(2) 数组ISYM的第一项一般是0,表示分解出一个直流分量,其实本人试验过取1-1对结果没有影响;从第二项开始设置akbk放置的顺序,01表示cos,说明那个系数是ak-1表示用sin项,表示那个系数是bk

(3) 数组Mode长度确定的一般原则是:一般由N个数据表示的波形,其最多可得到N/2(N为偶数)或者(N-1)/2(N为奇数)次傅里叶系数,所以数组Mode的长度应小于N/2或者(N-1)/2,否则会报错。

(4) 原创经验:COEFF的至少要大于Mode维数1,否则出错。

(5) 因为Mode要包含直流和akbk,所以Mode最好为奇数;对应地,Coeff数组即为偶数。

3 算例验证:

(1) 三角波程序

*DIM,COEFF,Aarry,24            !24次傅里叶系数

*DIM,MODE,TABLE,24          !傅里叶系数次数的数组

*DIM,ISYM,TABLE,24           !对应次傅里叶级数项的对称性

*DIM,THETA,TABLE,121         !被分析数据点的横坐标,以角度表示,也可不是

*DIM,CURVEI,TABLE,121        !被分析数据点的纵坐标

*DIM,CURVEO,TABLE,121       !傅里叶反变换得到的数据点的纵坐标

*VFILL,MODE(2),RAMP,1,2       !指定预分析傅里叶级数的次数

*VFILL,ISYM(2),RAMP, -1,0       !三角波是关于y轴反对称的,故从第二项开始取-1

*VFILL,THETA(1),RAMP,0,3       !每隔三度选取一个数据点

*VFILL,CURVEI(1),RAMP,0,1/30    !090度内数据点

*VFILL,CURVEI(31),RAMP,1,-1/30  !90270度内数据点

*VFILL,CURVEI(91),RAMP,-1,1/30  !270360度内数据点

*MFOURI,FIT, COEFF(1),MODE(1),ISYM(1),THETA(1),CURVEI(1) !傅里叶变换

*MFOURI,EVAL,COEFF(1),MODE(1),ISYM(1),THETA(1),CURVEO(1) !傅里叶反变换

(2) f(t)=10+5cos(t)+2sin(t)+8cos(5t)-3sin(5t)来验证

IFIN=49                    !谐波次数,(49-1)/2=24

pi=4*atan(1)

N=122                      !采样点数

*DIM,COEFF,Array,IFIN

*DIM,dMODE,TABLE,IFIN

*DIM,ISYM,TABLE,IFIN

*DIM,THETA_F,TABLE,N

*DIM,CURVEI,TABLE,N                  !CURVE INPUT TO PROGRAM

*DIM,CURVEO,TABLE,N

*DO,I,1,N

       THETA_F(I)=(I-1)*360/(N-1)           !每个采样点的角度

       THETA=(I-1)*2*pi/(N-1)

       CURVEI(I)=10+5*cos(THETA)+2*sin(THETA)+8*cos(5*THETA)-3*sin(5*THETA)

*EndDo

MODE(1)=0                               !计算傅里叶系数 

ISYM(1)=1

ISTART=2

*DO,I,ISTART,IFIN,2

        MODE(I)=I/2                     !FILL EVEN INDICIES OF {MODE}

        ISYM(I)=1

*ENDDO

ISTART=3                                !FILL ODD INDICIES OF {MODE}

*DO,I,ISTART,IFIN,2

        MODE(I)=(I/2)-.5     

        ISYM(I)=-1

*ENDDO

*MFOURI,FIT, COEFF(1),MODE(1),ISYM(1),THETA_F(1),CURVEI(1)

*MFOURI,EVAL,COEFF(1),MODE(1),ISYM(1),THETA_F(1),CURVEO(1)

 

*dim,C,,N                                  !输入与反变换后曲线的误差

    *DO,I,1,N

        C(I)=CURVEO(I)-CURVEI(I)

    *ENDDO

计算结果:

LOCATION

VALUE(COEFF)

1

10.00

2

5.00

3

2.00

4

4.57e-16

5

8.60e-16

6

-2.92e-16

7

5.84e-16

8

-5.93e-16

9

4.40e-15

10

8.00

11

-3.00

12

6.07e-16

13

-3.93e-16

14

-3.43e-16

 

直流分量幅值为101次谐波cos的幅值为5sin的幅值为25次谐波cos的幅值为8sin的幅值为-3,与所验证函数对应。



https://blog.sciencenet.cn/blog-469261-553011.html

上一篇:迎“两会”绝技八四乒乓球锦标赛
下一篇:“该藏的藏,该抱的抱”
收藏 IP: 221.6.29.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-9 01:55

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部