注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

htbbzzg的博客

与朋友们分享 CAE 资料和经验

 
 
 

日志

 
 

ANSYS 中频域与时域的转换 (转载)  

2014-07-06 07:27:05|  分类: ANSYS 一般 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
转载一篇资料,应该有用的:

ANSYS中Fourier级数的分解
转自:http://blog.sciencenet.cn/blog-469261-553011.html

1 问题的提出:
用 Ansys 作电气设备场分析时,常需要对磁密等物理量做谐波场分析。此时,必须对这些数据要进行
Fourier 变换,包括 Fourier 正变换和反变换。
    对给定的数据,或者计算得到的数据进行 Fourier 分解可采用 Matlab 的 FFT 指令或 Ansys 的 *Mfourier 指令。
    下面对 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 的长度必须相同且为预期分析的傅里叶次数的两倍,因为每次傅里叶系
数需要有两个系数组成 (cos 和 sin 前的系数)。
(2) 数组 ISYM 的第一项一般是 0,表示分解出一个直流分量,其实本人试验过取 1 和 -1 对结果没有影
响;从第二项开始设置 ak 和 bk 放置的顺序,0 或 1 表示 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 要包含直流和 ak 和 bk,所以 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 !0到90度内数据点
*VFILL,CURVEI(31),RAMP,1,-1/30 !90到270度内数据点
*VFILL,CURVEI(91),RAMP,-1,1/30 !270到360度内数据点
*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
最近读者
htbbzzg
阅读(81) | 评论(0) | 转载 推荐 喜欢
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
    直流分量幅值为 10,1 次谐波 cos 的幅值为 5,sin 的幅值为 2,5 次谐波 cos 的幅值为 8,sin 的幅值为 -3,与所验证函数对应。
  评论这张
 
阅读(1081)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017