第一篇:ANSYS输出高清黑白打印图片方法总结(Word_文档、论文)
如何在ANSYS中输出高质量黑白图片
ANSYS默认的结果输出格式是云图格式,而这种彩色云图打印为黑白图像时对比很不明显,无法表达清楚,对于发表文章、论文打印非常不便。
需要打印的word文件所用的结果图最好是等值线图,并且最好是黑白的等值线图。一般借用photoshop等第三方软件,很麻烦,效果也不好。ansys本身也能实现这项功能。
方法一(自己总结的,强烈推荐)
【简单方法1】:
1..将要输出的结果调出,这时为彩色云图
2.Main Menu _ Session Editor 打开命令编辑器,加入以下命令流:点击OK运行即可
/rgb, index,0,0,0,0, /rgb, index, 100,0, 60,1, /rgb, index, 100,0, 100,2, /rgb, index, 62,0, 100,3, /rgb, index, 97, 97, 97,4, /rgb, index, 85, 85, 85,5, /rgb, index, 75, 75, 75,6, /rgb, index, 65, 65, 65,7, /rgb, index, 65, 65, 65,8, /rgb, index, 45, 45, 45,9, /rgb, index, 35, 35, 35, 10, /rgb, index, 25, 25, 25, 11, /rgb, index,3,3,3, 12, /rgb, index, 62, 62, 62, 13, /rgb, index, 78, 78, 78, 14, /rgb, index, 100, 100, 100, 15, /replot
/COLOR, DEFAULT
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT
【一劳永逸法】:
1.桌面上新建一个文本文件(.txt),加入以下命令流:保存退出
/rgb, index,0,0,0,0, /rgb, index, 100,0, 60,1, /rgb, index, 100,0, 100,2, /rgb, index, 62,0, 100,3, /rgb, index, 97, 97, 97,4, /rgb, index, 85, 85, 85,5, /rgb, index, 75, 75, 75,6, /rgb, index, 65, 65, 65,7, /rgb, index, 65, 65, 65,8, /rgb, index, 45, 45, 45,9, /rgb, index, 35, 35, 35, 10, /rgb, index, 25, 25, 25, 11, /rgb, index,3,3,3, 12, /rgb, index, 62, 62, 62, 13, /rgb, index, 78, 78, 78, 14, /rgb, index, 100, 100, 100, 15, /replot
/COLOR, DEFAULT
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT 2.改名为chutu.mac(后缀名一定要改为.mac,即自己定义一个宏,“出图”)
3.将此宏文件拷贝到你的ANSYS个人目录下,即以交互方式启动时候设置的个人目录。
也可以放在你的安装目录X:Program FilesANSYS Incv120ansysapdl
4.找到ANSYS安装途径里面的apdl文件夹,里面找到一个start120.ans(对应版本12.0,如果安装是10.0,即为start100.ans),这一步可以用计算机的搜索功能。
双击打开start120.ans,在里面填入命令流:*ABBR,CHUTU,chutu
保存退出。
5.打开ANSYS,你会发现Toolbar多了一个CHUTU按钮,其实第4步就是做这个工作,这样做了可以“一劳永逸”,以后每次启动都有这个按钮,很方便,不用频繁加载Toolbar。
6.将要输出的结果调出,这时为彩色云图
7.单击CHUTU按钮,即一键变成黑白高清等值线图,可以用于word打印
8.出图
出图有多种方式: ① GUI:plotCtrls—>Capture Image 然后另存在桌面或任意位置
(这个方法图片清晰图最高,但是文件容量大,如果一个word里面图片多了就上百兆啦…)② GUI:PlotCtrls_ Ridirect Plots _ To PNG file
在【Compression】图片是否压缩后面选择【Compressed】 在Pixel resolution输入1200(像素)(这个方法得到的png格式图片,容量特别小,清晰度足够用于论文、设计,推荐!)
③ GUI:PlotCtrls_Hard copy_To file 选择一种图片格式
(这个方法得到的图片,背景正好与你设置相反)
【简单方法2】:
Ps.如果不想这么麻烦,那进行完第3步后,直接跳到第6步,在界面上方命令流输入窗口输入chutu,回车,同样可以调用,只不过以后每次都要输chutu方法二(来自百度,效果一般)
1.将要输出的结果调出,这时为彩色云图;
2.将云图转换为等值线图的形式
GUI:plotCtrls—>Device Options—>[/DEVI]中的vector mode 选为on 命令:/DEVICE,VECTOR,1
这时结果为彩色等值线,若直接输出,打印为黑白图像时仍然不清晰,为此需进行以下几步将图像转换为黑白形式;
3.将背景变为白色
命令:jpgprf,500,100,1(Ps.此命令改变了图形显示)/rep
4.对等值线中的等值线符号(图中为A,B,C等)的疏密进行调整
GUI:plotCtrls—>Style—>Contours—> Contours Labeling 在Key Vector mode contour label 中选中on every Nth elem,然后在N= 输入框中输入合适的数值,例如5,多试几次,直到疏密合适
命令:/clabel,1,5(Ps.个人认为,这个命令没用)
5.将彩色等值线变为黑色
GUI:plotCtrls—>Style—>Colors—>Contours Colors 将Items Numbered 1,Items Numbered 2等复选框中的颜色均选为黑色,图像即可变为黑白等值线图像
命令:/color,cntr,whit,1 等等
6.删除标示字母
在显示等值线时,图形中太多的标识字母(A、B等)使得等值线图完全看不清楚。请问有没有什么方法可以去掉图形的这些标识字母呢
在plotCtrls下面的style下面的contours下面的contour Labeling,在弹出的contour labeling options里面的vector mode contour labels选off
7.出图
GUI:plotCtrls—>Capture Image(Ps:也可以用其他出图方式)
方法三(自己总结的,效果也一般)
1.将要输出的结果调出,这时为彩色云图;
2.将云图转换为等值线图的形式
GUI:plotCtrls—>Device Options—>[/DEVI]中的vector mode 选为on 命令:/DEVICE,VECTOR,1
3.白色背景
GUI:plotCtrls_Style_Clors_Reverse Video
4.删除
在plotCtrls下面的style下面的contours下面的contour Labeling,在弹出的contour labeling options里面的vector mode contour labels选off.(Ps.因为这个标示字母彩云条,打印出来是全黑的一根,没有意义,还不如删掉,如果你有耐心一个一个的改色阶,那就用下面操作:GUI:plotCtrls—>Style—>Colors—>Contours Colors)
5.出图
GUI:plotCtrls—>Capture Image(Ps:也可以用其他出图方式)
如果你是通过百度文库下载该文件,希望你能对文件作出5星评价!
【Evolution丶兔】 QQ:34-24-82-365
第二篇:ANSYS 网格划分方法总结
(1)网格划分定义:实体模型是无法直接用来进行有限元计算得,故需对它进行网格划分以生成有限元模型。有限元模型是实际结构和物质的数学表示方法。
在ANSYS中,可以用单元来对实体模型进行划分,以产生有限元模型,这个过程称作实体模型的网格化。本质上对实体模型进行网格划分也就是用一个个单元将实体模型划分成众多子区域。这些子区域(单元),是有属性的,也就是前面设置的单元属性。另外也可以直接利用单元和节点生成有限元模型。
实体模型进行网格划分就是用一个个单元将实体模型划分成众多子区域(单元)。
(2)为什么我选用plane55这个四边形单元后,仍可以把实体模型划分成 三角形区域集合???
答案:ansys为面模型的划分只提供三角形单元和四边形单元,为体单元只提供四面体单元和六面体单元。不管你选择的单元是多少个节点,只要是2D单元,肯定构成一个四边形或者是三角形,绝对没有五、六边形等特殊形状。网格划分也就是用所选单元将实体模型划分成众多三角形单元和四边形子区域。
见下面的plane77/78/55都是节点数目大于4的,但都是通过各种插值或者是合并的方式形成一个四边形或者三角形。
所以不管你选择什么单元,只要是对面的划分,meshtool上的划分类型设置就只有tri和quad两种选择。
如果这个单元只构成三角形,例如plane35,则无论你在meshtool上划分设置时tri还是quad,划分出的结果都是三角形。
所以在选用plane55单元,而划分的是采用tri划分时,就会把两个点合并为一个点。如上图的plane55,下面是plane单元的节点组成,可见每一个单元上都有两个节点标号相同,表明两个节点是重合的。
同样在采用plane77 单元,进行tri划分时,会有三个节点重合。这里不再一一列出。(3)如何使用在线帮助:
点击对话框中的help,例如你想了解plane35的相关属性,你可以点击上右图中的help,亦可以,点击help—>help topic
弹出下面的对话康,点击索引按钮,输
入
你
想
查
询的关
键
词。
(4)对于矩形的网格划分方法整理:
当圆柱体具有圆周对称性时,可以使用plane 55(是一个2D,4节点的平面四边形单元,自由度是温度)单元作为有限元单元,设置为轴对称性(Axisymmetric).其几何建模是一个矩形。网格划分可以采用如下几种:
1)手工尺寸(参见ANSYS10.0 热力学有限元分析实例教程 P97):选择如下按钮并弹出对话框,在上面一栏的单元边沿长度一栏中输入需要划分的单元边长。(这里是0.0002,系统默认是正方形),点击OK按钮,设置完毕。
然后选择下图所示按钮(target surf 靶面),并点击所弹出对话框的PICK all 按钮。
单元划分完毕。该划分采用的是余数进位制,一旦不能整除就是在结果上加1,比如上图中的矩形模型,Y变成是0.0015,单元尺度是0.0002,实际上是7.5个单元,但这里是分成8个,X方向的长度是0.001015,被分成了六个网格。
2)使用智能划分水平控制:点击,弹出下面的对话康,(上面的element attributes是为实体模型分配单元属性,这里的实体模型是个矩形,故选择的是areas,然后点击后面的set按钮,弹出面选择对话框 选中需要进行分配单元属性的实体模型。)选中 smart size选择栏,然后把滑块栏向左右拉动选择划分精细度。
最后点击meshtool对话框中的mesh按钮,即可完成网格划分设置。3)使用meshtool工具进行单独线的单元数划分设置: 点击meshtool按钮,点击size
control
部
分
的lines-set,然后再弹出的单元尺寸设置对话框,然后选择需要进行单元尺寸设置的实体模型的边,对于矩形先选择两个对边,然后点击OK按钮。弹出如下对话框,选择在两个边上需要设置的单元个数。同样在另外两个边上进行相同的设置(划分个数可以不同)。最后划分的到底是三角形还是四边形取决于meshtool的划分类型设置是tri还是quad。以及该单元到底是什么形状,例如plane35只形成三角形,就绝对不会划分成四边形。
注意:一旦对单独线进行划分设置后,如果继续继续采用上面的smart size划分,则其按已设置好的线单元数进行划分。
第三篇:ansys求电感的方法总结
11.2.2.4 LMATRIX
LMATRIX宏可以计算任意线圈组中每个线圈的微分电感矩阵和总磁链。参见《ANSYS理论手册》第5章。
LMATRIX宏用于在静磁场分析的一个“工作点”上计算任意一组导体间的微分电感矩阵和磁链。“工作点”被定义为在系统上加工作(名义)电流所得到的解,该宏命令既可用于线性求解也可用于非线性求解。
必须用波前求解器来计算“工作点”的解。
LMATRIX宏的计算依赖于对工作点进行求解的过程中建立的多个文件。该宏在执行求解之前在这些文件前面加一个前缀OPER来重命名文件,并在完成求解后自动保存这些文件。用户自己也可以保存这些文件的拷贝以进行备份。该宏命令返回一个N×N+1矩阵参数,N×N部分表示N-绕组系统的微分电感值,此处N表示系统中的线圈数。N+1列表示总磁链。第I行表示第I个线圈。另外,电感矩阵的值还以文本文件的格式输出,以供外部使用。文件中第一个列表表示每个线圈的磁链。第二个列表表示微分电感矩阵的上三角部分。
命令:LMATRIX
GUI:Main Menu>Solution>-Solve-Electromagnet>-Static Analysis-Induct Matrix 在调用LMATRIX宏之前,还需要给线圈单元赋一个名义电流值。对于使用磁矢势(MVP)法或基于棱边元方法进行求解的静磁分析,可以使用BFV、BFA或BFE命令来给线圈单元赋名义电流(以电流密度的方式)。对于使用简化标势法(RSP)、差分标势法(DSP)和通用标势法(GSP)的静磁分析,可以使用SOURCE36单元的实常数来给线圈单元赋名义电流。
为了使用LMATRIX宏,必须事先用*DIM命令定义一个N阶数组,N为线圈数,数组的每行都表示一个线圈。数组的值等于线圈在工作点时每匝的名义电流值,且电流值不能为零,当确实有零电流时,可以用一个很小的电流值来近似。另外,还需用CM命令把每个线圈的单元组合成一个部件。每组独立线圈单元的部件名必须是用一个前缀后面再加线圈号来定义。一个线圈部件可由标量(RSP/DSP/GSP)或矢量单元(MVP)混合组成,最重要的一点是这些单元的激励电流与前面数组中所描述的电流相同。
在LMATRIX宏中需定义一个用于保存电感矩阵的数组名,用LMATRIX宏的对称系数(symfac)来定义对称性。如果由于对称性而只建了n分之一部分模型,则计算出的电感乘以n就得到总的电感值。
当工作点位于BH曲线的弯点处时,切向磁导率变化最快,会导致计算的感应系数随收敛标准而变化。为了获得更加准确的解,收敛标准要定义得更加严格一些,不仅仅是缺省值1.0×10-3。一般在执行MAGSOLV命令时,选择1.0×10-4或1.0×10-5。
在使用LMATRIX命令前,不要施加(或删除)非均匀加载,非均匀加载由以下原因生成:
·自由度命令(D, DA,等)在节点或者实体模型上定义非0值 ·带有非0约束的CE命令
不要在不包含在单元组件中的单元上施加任何载荷(如current)下面的例子是一个3线圈系统,每个线圈的名义电流分别为1.2、1.5和1.7安/匝,其分析的命令流如下。在这个例子中,数组名为“curr”,线圈部件名前缀为“wind”,电感矩阵的计算值存贮在名为“ind”数组中。值得注意的是,在LMATRIX命令行中,这些名字必须用单引号引起来。
*dim,cur,3!3个线圈系统数组
cur(1)=1.2!线圈1的名义电流为1.2安培/匝 cur(2)=1.5!线圈2的名义电流为1.5安培/匝 cur(3)=1.7!线圈3的名义电流为1.7安培/匝 esel,s„„!选择线圈1的单元
cm,wind1,elem!给选出的单元赋予部件名wind1 esel,s„„!选择线圈2的单元
cm,wind2,elem!给选出的单元赋予部件名wind2 esel,s„„!选择线圈3的单元
cm,wind3,elem!给选出的单元赋予部件名wind3 symfac=2!对称系数
Imaxtrix,symfac,’wind’,’curr’,’ind’!计算微分电感矩阵和总磁链
*stat,ind!列出ind电感矩阵
11.2.2.5 下面是以命令流方式进行的一个计算电感矩阵的例子 该例计算一个二线圈系统(永磁电感器件)在非线性工作点下的微分电感矩阵和
总磁链,其示意图如下:
几何性质:x1=0.1, x2=0.1, x=0.1, y=0.1 材料性质:μr=1.0(空气),Hc=25(永磁体),B-H曲线(永磁体,见输入参数)
线圈1:名义电流=0.25安/匝,匝数=10 线圈2:名义电流=0.125安/匝,匝数=20 目标值:L11=4, L22=16, L12=8 命令流如下: /batch,list /title, Two-coil inductor with a permanent magnet /nopr!geometry data!n=1!meshing parameter x=0.1!width(x size)of core y=0.1!hight of core, y size of window z=1!thickness of iron in z direction x1=0.1!width(x size)of coil 1 x2=0.1!width(x size)of coil 2 Hcy=25!coercive magnetic field in y direction n1=10!number of turns in coil1 n2=20!number of turns in coil2!excitation data used by LMATRIX.MAC!symfac=1!symmetric factor for inductance computation nc=2!number of coils *dim,cur,array,nc!nominal currents of coils *dim,coils,char,nc!names of coil components!cur(1)=0.25!nominal current of 1st coil coils(1)=“wind1”!name of coil 1 component!cur(2)=-0.125!nominal current of 2nd coil coils(2)=“wind2”!name of coil 2 component!auxiliary parameters!mu0=3.1415926*4.0e-7 x3=x1+x2!x coordinate right to coil2 left x4=x3+2*x!x coordinate right to core x5=x4+x2!x coordinate right to coil2 right x6=x5+x1!x coordinate right to coil1 right js1=cur(1)*n1/(x1*y)!nominal current density of coil1 js2=cur(2)*n2/(x2*y)!nominal current density of coil2!/prep7 et,1,53!mp,murx,1,1!air/coil mp,mgyy,2,Hcy!coercive term Bs=2!saturation flux density Hs=100!saturation magnetic field TB,BH,2!core: H = Hs(B/Bs)^2;BS=2T;HS=100A/m *do,qqq,1,20 B=qqq/10*Bs tbpt,Hs*(B/Bs)**2,B *enddo!rect, 0,x1,0,y!coil1 left rect,x1,x3,0,y!coil2 left rect,x3,x4,0,y!core rect,x4,x5,0,y!coil2 right rect,x5,x6,0,y!coil1 right!aglue,all!asel,s,loc,x,x1/2!coil 1 volume attribute aatt,1,1,1 asel,s,loc,x,x5+x1/2 aatt,1,2,1 asel,s,loc,x,x1+x2/2!coil 2 volume attribute aatt,1,3,1 asel,s,loc,x,x4+x2/2 aatt,1,4,1 asel,s,loc,x,x3+x!iron volume attribute aatt,2,5,1 asel,all!esize,n amesh,all!nsel,s,loc,x,x6!flux parallel Dirichlet at symmetry plain, x=x6!homogeneous Neumann flux normal at yoke, x=0 d,all,az,0 nsel,all!esel,s,real,1!coil 1 left component bfe,all,JS,,js1!unite current density in coil 1!esel,s,real,2!coil 1 right component bfe,all,JS,,-js1!return unite current density in coil 1!esel,s,real,1,2 cm,coils(1),elem!esel,s,real,3!coil 2 left component bfe,all,JS,,js2!unite current density in coil 2!esel,s,real,4!coil 2 right component bfe,all,JS,,-js2!return unite current density in coil 2!esel,s,real,3,4 cm,coils(2),elem!allsel!fini!!!!!!!!!!!!!!!!!!!!!!/com /com obtain operating solution /com!/solu cnvtol,csg,1.0e-4 /out,scratch solve fini!/post1!/out!/com, /com, senergy,!Stored electromagnetic energy savelen=S_ENG senergy,1!Co-energy savelce=C_ENG!fini!!!!!!!!!!!!!!!!!!!!!!compute inductance lmatrix,symfac,“wind”,“cur”,“ind”,!compute inductance matrix and flux!/com finish 你将得到如下结果:
SUMMARY OF STORED ENERGY CALCULATION Load Step Number:1.Substep Number:1.Time:0.1000E+01 Material Number ofStored EnergyMaterial Description NumberElements(J/m)1.4.0.52360E-05LinearIsotrp...2.1.-0.33314E+00Nonlin.MagnetIsotrp._____________________________________________________________________ T O T A L5.-0.33313E+00 Note: The energy density for the active elements used in the energy calculation is stored in the element item “MG_ENG” for display and printing.The total stored energy is saved as parameter(S_ENG)SUMMARY OF COENERGY CALCULATION Load Step Number:1.Substep Number:1.Time:0.1000E+01 Material Number ofCoenergyMaterial Description NumberElements(J/m)1.4.0.52360E-05LinearIsotrp...2.1.0.33314E+00Nonlin.MagnetIsotrp._____________________________________________________________________ T O T A L5.0.33314E+00 Note: The co-energy density for the active elements used in the co-energy calculation is stored in the element item “MG_COENG” for display and printing.The total coenergy is saved as parameter(C_ENG)_____________________________________________________________________ ________________ LMATRIX SOLUTION SUMMARY ___________________ Flux linkage of coil1.=0.19989E+01 Flux linkage of coil2.=0.39978E+01 Self inductance of coil1.=0.39976E+01 Self inductance of coil2.=0.15989E+02 Mutual inductance between coils1.and2.=0.79948E+01 Inductance matrix is stored in array parameter ind(2., 3.)Inductance matrix is stored in file ind.txt
第四篇:ANSYS问题总结
1:ansys中的等效应力是什么物理含义?...2 2.ansys后处理中负值的应力是压应力还是拉应力?...3 3解决非线性分析不收敛的技巧!...3 4非线性计算完的收敛图线,如何看他的收敛性呢,每条颜色的线代表什么意思呢?...4 5求教accat及lccat命令...5 6有关分块后的merge问题。...5 7请教如何用APDL命令程序提取单元相关信息。...5 8.ansys的刚度矩阵是在那一步骤生成的,如何读出,其格式如何...5 9在混凝土的计算中,如何选择裂缝模型...6 10.请问TB命令怎么用??TB命令是用在非线性材料里吗?那么mp和TB有什么区别啊?一般什么情况下可以用TB命令?...7 11.ansys 如何输入yield stress.7
12、将Ansys计算结果输出到Tecplot的完整命令流!...7
13、【原创】将数组中数据导入表中命令流,然后用曲线画出...8
14、有一个问题,就是我想看我在建模时用的是什么单位,本来是mm的,我可能用成cm了,怎么查看? 11
15、ansys是否可以自动搜索实体边界...11
16、问一下疲劳计算得出的结果都是什么意思??补充资料...11
17、温度荷载问题...12
18、如何把指定位置的节点的节点号提取出来?用什么命令?...12
19、划分网格后修改单元属性问题...12 20、快速去掉窗口的ansys标志...13
21、merge节点与glue-mesh的区别...13
22、glue不glue的区别???...13
23、画等应力线大全,呵呵...13
24、荷载步数太多了,该怎么办?...14
25、我能否在建立好模型后再定义我的元素属性...14
26、怎样划分不平行于全球坐标系xy的面...15
27、如何查看层间应力值?...15
28、在ANSYS中用表面效应单元加任意方向的荷载...15
29、撰写论文中图像的灰度处理...16 30、提取材料号2的所有体积命令是什么呢?.17
31、请教:solve后的warning怎样才能不用手动点OK?.17
32、循环计算生成的转矩结果数据如何保存成TXT文件...17
33、请问不在同一平面的两个 面如何合成一个面啊???...17
34、关于hardpoint。若在构件的某点处有一集中载荷,需在mesh之前在该处建立一个hardpoint,请问这个hardpoint的建立应该已经改变了该构件的应力分布了吧??为什么要建hardpoint?hardpont和一般的keypoint有什么区别?? 18
35、用apdl如何分别读取节点响应的实部和虚部??...18
36、使用Ansys软件使用的经验小结...18
37、ansys中如何提取各结点温度输出到TXT文档中?...22
38、可以施加两种载荷吗?...23
39、ansys中的单位问题...23 40、ANSYS中如何执行batch批处理命令?.23
41、无规则编号,不等间距node如何两两连接成单元...23
42、用APDL命令读取ANSYS后处理应力应变结果...24
43、CE 和CP有何区别...24
44、ansys用*get获得的节点应变是真应变,工程应变还是green应变?...25
45、mesh200单元如何使用?...25
46、ANSYS误差估计的问题...25
47、如何计算实体模型某个截面上的合力和弯矩...26
48、如何判别一个模型网格划分的合理与否?...26
49、关于ansys做岩土材料分析的D-P模型的讨论...27 50、请问检查模型是否有缝隙怎么检查?...27 50、如何判断某个节点是在面上还是在体内呢?...27
51、nsol命令不能够画应力随时间变化曲线...27
52、给曲面施加梯度荷载的方法...27
53、在ANSYS中如何显示点、线、面、体的编号?...27
54、如何在ANSYS 中显示弯矩图...28
55、ansys后处理的等值线上的字母如何改大啊?...28
56、如何看到模型内部的应力分布情况...29
57、ANSYS中如何提取等效节点载荷?...29
58、关于提取最大节点力的问题...29
59、请问一下,如何改变图象显示模式?...29 60、怎样得到内力图和弯矩图...30 61、tbdata的用法...30 62、映射网格划分方法...30 63、怎么改变面的发向方向...33 64、关于载荷步的一点体会...33 65、计算结果的评价:...34 66、ansys后处理可否画自定义变量的云图...34 67、两种PowerGraphis结果显示模式对结果的影响...34 67、让ANSYS程序在命令执行到某一行的时候停止...35 68、怎么在计算结果实体云图中切面?.35 69、log文件整理心得:...35 70.典型静力分析的基本过程可以用以下命令流表示:...39 71、在Ansys中绘制二维曲线...40 72、ANSYS坐标系总结...41
1:ansys中的等效应力是什么物理含义?
它与最大应力s1有什么区别,平常讨论应力分布,应该用等效应力还是最大应力s1呢?1)计算等效应力时是否需要输入等效泊松比呢?好像有效泊松比的默认值是0.5。(2)在实际的应用中,例如在讨论平板上的圆孔应力集中的应力分布问题时,应该用等效应力来描述应力集中的现象,还是采用主应力s1来反应集中的程度呢?还是采用一个单方向的sx来说明问题呢? 答:1)这个等效应力应该就是弹塑性力学里的VonMises应力,他主要考察的是材料在各个方向上的应力差值,因为在实验室里获得材料强度都是单向载荷作用下的强度(当然现在也有三轴应力实验仪),所以有时候材料所受的单向载荷可能很大,但并没有造成破坏,这是就是看他的等效应力,具体表示就是 σ等效=sqrt{0.5[(σ1-σ2)^2+(σ2-σ3)^2+(σ3-σ1)^2]} 2)等效应力是三项主应力的组合
如s,int即为max(si-sj),si,sj为三项主向应力。i,j=1,2,3 i≠j即tresca型
s,eqv为sqrt(0.5*∑(si-sj)**2),i,j=1,2,3 i≠j 即mises型
3)对于第一个问题:
没有听说过等效泊松比这个概念,在网上查了一下也没有明确的答案,还请指教,不过泊松比默认0.5的意思是弹性区满足体积不可压缩
对于第二的问题:
我认为应该采用等小应力来描述应力集中的现象,因为在实际中很难找到真正的单轴拉压的情况,一般结构的受力都没有这么简单,所以在分析的时候需要用等效应力来将各主应力进行转化,因此应该用等效应力来描述应力集中的现象。
4)等效泊松比就是泊松比,一般在前处理中都会输入的!
等效应力计算时不会用到泊松比,不过在计算mises等效应变时会用到。对于elastic & thermal strains 泊松比取为材料的泊松比; 对于plastic creep hyperelastic strains 泊松比取为0.5
2.ansys后处理中负值的应力是压应力还是拉应力? 答:应力,拉为正,压为负
外载荷(压力/拉力),压为正,拉为负。外荷载的话应该参考坐标系的方向决定
3解决非线性分析不收敛的技巧!
这是本人在振动论坛上摘抄的一段 我觉得对解决非线性分析收敛很有帮助!希望能给大家些启发!(这个帖子我觉得应该放到这里,对初学者很有帮助)影响非线性收敛稳定性及其速度的因素很多:
1、模型——主要是结构刚度的大小。对于某些结构,从概念的角度看,可以认为它是几何不变的稳定体系。但如果结构相近的几个主要构件刚度相差悬殊,在数值计算中就可能导致数值计算的较大误差,严重的可能会导致结构的几何可变性——忽略小刚度构件的刚度贡献。如出现上述的结构,要分析它,就得降低刚度很大的构件单元的刚度,可以加细网格划分,或着改用高阶单元(BEAM->SHELL,SHELL->SOLID)。构件的连接形式(刚接或铰接)等也可能影响到结构的刚度。
2、线性算法(求解器)。ANSYS中的非线性算法主要有:稀疏矩阵法(SPARSE DIRECT SOLVER)、预共轭梯度法(PCG SOLVER)和波前法(FRONT DIRECT SLOVER)。稀疏矩阵法是性能很强大的算法,一般默认即为稀疏矩阵法(除了子结构计算默认波前法外)。预共轭梯度法对于3-D实体结构而言是最优的算法,但当结构刚度呈现病态时,迭代不易收敛。为此推荐以下算法:
1)、BEAM单元结构,SHELL单元结构,或以此为主的含3-D SOLID的结构,用稀疏矩阵法;
2)、3-D SOLID的结构,用预共轭梯度法;
3)、当你的结构可能出现病态时,用稀疏矩阵法;
4)、当你不知道用什么时,可用稀疏矩阵法。
3、非线性逼近技术。在ANSYS里还是牛顿-拉普森法和弧长法。牛顿-拉普森法是常用的方法,收敛速度较快,但也和结构特点和步长有关。弧长法常被某些人推崇备至,它能算出力加载和位移加载下的响应峰值和下降响应曲线。但也发现:在峰值点,弧长法仍可能失效,甚至在非线性计算的线性阶段,它也可能会无法收敛。
为此,尽量不要从开始即激活弧长法,还是让程序自己激活为好(否则出现莫名其妙的问题)。子步(时间步)的步长还是应适当,自动时间步长也是很有必要的。
4、加快计算速度
在大规模结构计算中,计算速度是一个非常重要的问题。下面就如何提高计算速度作一些建议: 充分利用ANSYS MAP分网和SWEEP分网技术,尽可能获得六面体网格,这一方面减小解题规模,另一方面提高计算精度。
在生成四面体网格时,用四面体单元而不要用退化的四面体单元。比如95号单元有20节点,可以退化为10节点四面体单元,而92号单元为10节点单元,在此情况下用92号单元将优于95号单元。
选择正确的求解器。对大规模问题,建议采用PCG法。此法比波前法计算速度要快10倍以上(前提是您的计算机内存较大)。对于工程问题,可将ANSYS缺省的求解精度从1E-8改为1E-4或1E-5即可。
5、荷载步的设置直接影响到收敛。应该注意以下几点:
1、设置足够大的荷载步(将MAXMIUM SUBSTEP=1000000),可以更容易收敛,避免发散的出现(nsub,nsbstp,nsbmx,nsbmn);
2、设置足够大的平衡迭代步数,默认为25,可以放大到很大(100)(eqit,eqit);
3、将收敛准则调整,以位移控制时调整为0.05,以力控制为0.01(CNVTOL,lab,value,toler,norm,minref)。
4、对于线性单元和无中间节点的单元(SOLID65和SOLID45),关闭EXTRA DISPLACEMENTS OPTIONS(在OPTIONS中)。
5、对于CONCRETE材料,可以关闭压碎功能,将CONCRETE中的单轴抗压强度设置为-1(tadata,mat,shrcf-op,shrcf-cl,UntensSt,UnCompSt(-1))。
4非线性计算完的收敛图线,如何看他的收敛性呢,每条颜色的线代表什么意思呢? 答:F力,M力矩
crit、L2分别是按照两种收敛准则计算出来的误差量。
F L2就表示按照L2收敛准则计算出来的力的误差量(迭代计算中的概念)如果计算出来的误差量落在收敛准则之下,则表示该子步计算收敛。
5求教accat及lccat命令
accat和lccat命令好像只能做两个面及两条线的合并,做3个及以上的合并可以通过GUI操作鼠标拾取实现,但有没有命令流方式啊? 答:通过选取,然后对所有对象操作 lsel,......(asel,)lccat,all(accat,all)
6有关分块后的merge问题。一般来说,在网格划分前用glue,网格划分后用merge.7请教如何用APDL命令程序提取单元相关信息。答:*get 8.ansys的刚度矩阵是在那一步骤生成的,如何读出,其格式如何 答:你看看这个,别人的
1、整体刚度和质量矩阵的提取。该功能需要进行二次开发,由ansys形成的二进制文件.full提取整体刚度和质量 矩阵。
基于ansys的一个用户开发程序例子编 了一个程序(附件中)。开发环境:compaq fortran 6.5 运行环境:win2000。一个主文件:self.for,另一个文件matrixout.f90用于矩阵输出 binlib.lib为ansys提供的库文件,将其 引入项目中(也可直接扔进debug目录).full文件由子空间迭代模态分析获得。运行编译后的可执行文件.exe
2、单元刚度和质量矩阵的提取。
/DEBUG命令。详细说明可由以下转载文章 finish /clear PI=3.1415926 w1=3 w2=10 w3=6 w4=1.2 r=.8 t=0.08 /PREP7!* ET,1,SHELL63 R,1,t ET,2,MASS21 R,2,500,500,500,2000,2000,2000,!* UIMP,1,EX, , ,2e11 UIMP,1,NUXY, , ,0.3, UIMP,1,DAMP, , ,0.2, UIMP,1,DENS, , ,7800, BLC4,0,0,w2,w1 ESIZE,1.5,0, AMESH,all NSEL,S,LOC,X,0.0 D,all, , , , , ,ALL, , , , , allsel,all SFA,all,1,PRES,12 FINISH /OUTPUT,cp,out,!将输出信息送到cp.out文件 /debug,-1,,1!指定输出单元矩阵
/SOLU SOLVE finish /OUTPUT, TERM!将输出信息送到output windows中
!这时用编辑器打开cp.out文件,可以看到按单元写出的质量、刚度等矩阵
9在混凝土的计算中,如何选择裂缝模型
裂缝的处理方式有离散裂缝模型、分布裂缝模型和断裂力学模型。在ANSYS中如何选择模型? 答:ansys中定义混凝土的裂缝为分布型的
10.请问TB命令怎么用??TB命令是用在非线性材料里吗?那么mp和TB有什么区别啊?一般什么情况下可以用TB命令?
答:TB 可用来定义材料的非线性,比如说
TB,BISO,1 TBDATA,235e6,0.02*235e6 前面一句就是说材料为双线性随动强化,后面的是弹性模量为235e6,按双线性其后来的切线模量为0.02*235e6 mp只能定义时弹性,不能定义弹塑性
定义材料数据时,MP 命令是必须用的,用来定义材料性能的线性部分;TB 命令则需要根据不同情况决定是否使用和如何使用。
11.ansys 如何输入yield stress 答:定义好恰当的材料模型,就可以输入了。比如用理想线弹性的材料,就不可能输入屈服极限吧。
12、将Ansys计算结果输出到Tecplot的完整命令流!
下面的命令流适用于六面体八节点单元的情况,其他类型单元只需稍作修改即可!命令流读取的是节点的温度。
/post1 file,Jobname,rst
!指明从哪一个结果文件中读取数据 *get,NodeNum,NODE,0,COUNT
!得到模型的所有节点数 *get,nd,NODE,0,NUM,MIN
!得到模型的最小节点编号 *dim,nodes,array,NodeNum
!定义一个存储节点的数组 *dim,xyz,array,NodeNum,3
!定义一个存储节点坐标的数组 *dim,NodeTemp,array,NodeNum
!定义一个存储节点的数组 set,4,1
!读入第四载荷步、第一个子步的结果 *do,i,1,NodeNum,1
nodes(i)=nd
!将节点编号存储在nodes数组中
xyz(i,1)=NX(nd)
!在xyz(i,1)中存储节点的X坐标
xyz(i,2)=NY(nd)
!在xyz(i,1)中存储节点的Y坐标
xyz(i,3)=NZ(nd)
!在xyz(i,1)中存储节点的Z坐标
*Get,NodeTemp(i),NODE,nodes(i),TEMP
nd=NDNEXT(nd)
!取得下一个节点编号
*enddo *get,ElementNum,ELEM,0,COUNT
!得到模型的所有单元数 *get,el,ELEM,0,NUM,MIN
!得到模型的最小单元编号 *dim,elems,array,ElementNum
!定义一个存储单元的数组
*dim,ndlst,array,ElementNum,8
!定义一个存储节点坐标的数组 *do,i,1,ElementNum,1
elems(i)=el
!将单元编号存储在elems数组中
*do,j,1,8,1 ndlst(i,j)=NELEM(el,j)
!将单元对应的节点编号存储在ndlst数组中
*enddo
el=ELNEXT(el)
!取得下一个单元编号 *enddo *cfopen,mesh,dat
!输出的文件名为:mesh.dat!写TecPlot文件的文件头
*vwrite('TITLE=Ansys Temperature Analysis')!写变量名
*vwrite('VARIABLES=“X”,“Y”,“Z”,“Temp”')!写节点数和单元数
*vwrite,NodeNum,ElementNum('ZONE n='f6.1,' e='f6.1,' f=fepoint',' et=brick')!写节点的坐标和温度值
*vwrite,xyz(1,1),xyz(1,2),xyz(1,3),NodeTemp(1)(4f12.6)
!写一个空行
*vwrite(' ')!写各单元对应的节点号
*vwrite,ndlst(1,1),ndlst(1,2),ndlst(1,3),ndlst(1,4),ndlst(1,5),ndlst(1,6),ndlst(1,7),ndlst(1,8)(8f6.0)!关闭文件 *CFCLOSE finish
将上述命令流拷贝到记事本中,然后以文件名“Ansys2Tecplot.inp”另存到Ansys的工作路径下。在Ansys中输入如下命令即可:/input,Ansys2Tecplot,inp
13、【原创】将数组中数据导入表中命令流,然后用曲线画出 By xcs2008 2007年10月28日星期日
问题
将路径数据导出为数组后,直接将parameter->array parameter->define/edit中的数组用plot->array parameter画出的是柱状图,如图1。但是现在想画成曲线。
图1 解决思路 Step1 将路径数据导出后,数组的弟四列是路径长度S,第五列是ux,我们想用S做横坐标,ux做纵坐标画出曲线。数组是ARUX02(21,30,1),如图2。定义一个表E_TABLE(21,1,1),将数组的弟四列路径长度符给表的弟0列,将数组弟五列ux符给表的弟1列。执行以下APDL命令流
图2 Step2 表中的数据
如图3 Step3 parameter->array parameter->define/edit中 PARX=E_TABLE(1,0,1),PARY=E_TABLE(1,0,1)结果如图4 图4 命令流
循环语句不能在命令框里输入执行,可以把他放在新建的txt文件中,file->read input from
*DIM,E_TABLE,TABLE,21,1,1 定义表
E_TABLE(0,1,1)=1 表弟1列必须有值,在此输入1 *DO,I,1,21,1 行循环
*DO,J,0,1,1 列循环
E_TABLE(I,J,1)=ARUX02(I,J+4,1)赋值
*ENDDO *ENDDO
14、有一个问题,就是我想看我在建模时用的是什么单位,本来是mm的,我可能用成cm了,怎么查看?
答:好像是输入:/status,units
15、ansys是否可以自动搜索实体边界 各位朋友,本人现有个问题需要向大家请教,希望略知一二的人能给与指导,我现在正在做ansys的后处理开发,遇到了一个问题,就是我希望通过apdl语言能够自动搜索实体模型的边界,比如说,一块矩形大板由很多肋骨加强,这些肋骨把这个大板分割成许多小矩形板,我想通过命令流自动获取该大板的所有小板(肋骨之间的板面),然后编号,进行下一步的屈曲分析,关键的难题就是采用何种方式来自动搜索得到各个小板面,答:如果大板是平面构型,就用坐标控制呗,select每个小板后,用cm编个组,不就可以进行下面的分析了吗。
16、问一下疲劳计算得出的结果都是什么意思??补充资料
答:1)PERFORM FATIGUE CALCULATION AT LOCATION 1 NODE 0
*** POST1 FATIGUE CALCULATION *** LOCATION 1 NODE 4760(位置是节点4760)事件1:
EVENT/LOADS 1 1
AND 1 2
PRODUCE ALTERNATING SI(SALT)= 285.16(SI是应力幅值)此例中节点4760的S1,S3分别为:395,-1.2;应力幅值=(S1-S3)/2=(395-(-1.2))/2=285 CYCLES USED/ALLOWED = 5.000/7779(实际循环数/许用循环数)= PARTIAL USAGE(局部损伤)=0.00064 实际循环数5是FE命令设置的/许用循环数7779是根据应力幅值和S-N曲线曲线插值出来的 PARTIAL USAGE(局部损伤)=实际循环数/许用循环数表明损伤程度
2)先抛个砖:
1.机械设计里有alternating stress(交变应力)的说法,不知道alternating SI是不是这个意思(SI也有国际单位制的意思),你确认一下产生的应力是不是大概这个值。
2.根据材料的疲劳曲线(S-N曲线),记录在不同最大应力下引起试件疲劳破坏所引起的应力循环次数,这里是0.1283e5次。而实际上的应力循环已经有0.1e5次,累计疲劳循环次数与直至破坏时总的循环次数的比值为0.77949(疲劳分析的软件都有这一项)
17、温度荷载问题
在桥梁施工过程中经常会出现箱粱内和外部有一定的温差
底板内的温度为5度,底板外侧的温度为0度,其间是线性变化的,不知道怎么加上这个温度荷载
答:tunif命令是给所有节点指定一个均布温度,体荷载温度用“BF”、“BFE”、“BFK”。定义一个一维表来处理也可以,温度可以施加到线、面、体、KP 点、节点、单元上。先对已知温度的表面施加温度边界条件,做一次稳态热分析,就可以得到所有节点的温度了。
18、如何把指定位置的节点的节点号提取出来?用什么命令?
如何把指定位置的节点的节点号提取出来?用什么命令?如想把坐标为(5,6,7)的节点的节点号提取出来,怎么弄呢?
答:1)、先选择节点,再获得编号,比如取得坐标为(5,6,7)处的节点号码: nsel,s,loc,x,5 nsel,r,loc,y,6 nsel,r,loc,z,7 *get,kcon,kp,num,min kcon的数字就是取得的节点号 2)、nn=node(5,6,7)
19、划分网格后修改单元属性问题 划分完网格后,怎么才能把4节点的shell63单元改为8节点复合材料shell99单元?也就是说到底四节点单元可不可改成8节点单元? 答:先detach,然后emid,add,all 20、快速去掉窗口的ansys标志
用鼠标在图形窗口的ansys标志上右击,出现选择选项,把Date选项去掉,然后在replot一下,就可以将ansys标志去掉。此方法也可以用于将后处理的应力数值条移到图形的底部、上部、左部或右部。如果用鼠标在图形窗口上右击没有反映,可以按住键盘的shift+ctrl+delete键,在右击鼠标即可。
21、merge节点与glue-mesh的区别
Glue 相当于刚性连接,即连接面上有相同的单元和节点划分;当两个实体的接触部分所划分的单元和节点完全相同时,merge 才能相当于刚性连接;如果两边的网格不完全一样,merge 只对部分节点起作用,不是完全的刚性连接,如果网格相差很大,merge 后的误差也会很大。不能 glue 也不适合 merge 的地方,可以考虑使用节点耦合。
22、glue不glue的区别???
做一模型,在建模时,两者生成面时共用同一线,我想知道,计算时对此两面做不做glue是不是有区别?如果是不glue的情况,那我想做做一实际相邻但并未联着的模型,是用不glue的模型还是用在那条线上再重合一条线以示未联?两者不一样嘛?
答:1)、“ 两者生成面时共用同一线”,这是用不用GLUE,模型都是共KEYPOINT的。
“做一实际相邻但并未联着的模型”,不仅要重新生成一条线,还要修改一个面,使之由这条新生成的线构成。
2)、“要是相邻,而且相连”,用MERGE更合适。
3)、实际相邻、但并未连着的模型可以这样做:
单独做两个面,分别检查构成两个面的线、KEYPOINT,PLOT KEYPOINT,如果相同位置有两个点,相同位置的线也为两条,则对两个面划分网格后,单元、节点是互不相连的。如果想让模型相连,MERGE KEYPOINT或MERGE NODE 或AGLUE都可以。
23、画等应力线大全,呵呵
求解完毕后 plotcrtls -> device options -> vector mode wireframe: on,在每条等应力线边上产生好多字母,可以在第2步修改 plotcrtls -> style -> contours -> contour labeling -> Key vector mode countour labels: on every Nth els 填入一个数字看效果,直到觉得在每条等应力线边上的字母数差不多为止 3 plotcrtls -> style -> contours -> uniform contours: NCONT Number of contours 填入等应力线的数量 plotcrtls -> style -> colors -> banded contours colors: band color选择选定等应力线的颜色,选定等应力线由下面的N1,N2,INC决定 plotcrtls ->windows contours ->windows options 里面的选项都很有用,自己一个个试试看看效果吧 6 file -> report generator 可以作出白底黑字的图片,如果决得图片合适得话可以用plotcrts -> capture image把图片抓下来 去掉背景颜色:Utility Menu> lotCtrls>Style>Background>Display Picture Background(单击,去除其前的√号,背景变为黑色)8显示网格时,去除网格颜色,只显示线条:Utility Menu> lotCtrls>Style>Colors> icked Entity Clors 如下图所示:单击OK。再重新显示Utility Menu> lot>Replot即为线条。
9硬拷贝为.bmp文件,以便插入到word文档中:Utility Menu> lotCtrls>Hard Copy>To files, 给出文件名。所存文件即在进入Ansys时设的工作目录下。在Ansys图形输出窗口中,显示各种有用图形,需要储存并输出时,均可以该方式存为.bmp文件,以备用。
24、荷载步数太多了,该怎么办?
我是在一个模型上加的变化荷载,这个荷载是周期性的。由于作用的荷载周期有很多(有几百万次)所以结果文件就非常的大,请问有什么好的方法可以改变这个情况么
因为经常出现硬盘算满了的情况!我只关心最后一个荷载步的结果,可是中间结果能不产生么?? 答:outres,item,freq,cname,其中freq项你取值为none就ok
25、我能否在建立好模型后再定义我的元素属性
我觉得在建立好模型后,分批定类我的元素的TYPE和REAL,ET似乎更方便些,不知道能否实现
答:可以的。你可以先用mesh200划分,之后在用emodif修改。
26、怎样划分不平行于全球坐标系xy的面
怎样划分不平行于全球坐标系xy的面?我直接amesh,结果提示不与全球xy面平行,不能划分 答:“施加对称对称边界条件,可以直接在 area 上施加,不必使用面单元过渡的。” 意思是对称边界条件可以直接施加在面上,而不必施加在单元上,但是该面还是需要划分网格的,否则它不会参与计算的。
27、如何查看层间应力值?
一个多层结构,如何查看各层之间的最大最小应力值?是数值,不是云图哦。答:prnsol
28、在ANSYS中用表面效应单元加任意方向的荷载!用表面效应单元加任意方向的荷载 finish /PREP7 et,1,45!定义实体单元solid45 et,2,154!定义三维表面效应单元
KEYOPT,2,2,0!指定表面效应单元的K2=0,所加荷载与单元坐标系方向相同 KEYOPT,2,4,1!指定表面效应单元的K4=0,去掉边中点,成为四结点表面单元 block,-5,5,-5,5,0,5!建实体模型
mp,dens,1,2000 mp,ex,1,10e9 mp,prxy,1,0.2 asel,s,loc,z,5.0,5.0
!选中实体上表面
AATT,1, , 2,0,!指定实体上表面用154号单元 MSHAPE,0,2D MSHKEY,1 esize,5 amesh,all
!对上表面划分网格
allsel,all VATT,1, , 1,0
!指定实体用45号单元
MSHAPE,0,3D MSHKEY,1 vmesh,all /PSYMB,ESYS,1!显示单元坐标系
esel,s,type,2
!选中实体上表面的表面效应单元以方便加荷载
sfe,all,1,pres,50!在面内加Z向荷载,大小为50,荷载方向可通过值的正负控制 sfe,all,2,pres,100!在面内加X向荷载,大小为100 sfe,all,3,pres,150!在面内加Y向荷载,大小为150 /psf,pres,2,0,1!以箭头方式显示所加荷载
!如果已经知道荷载在整体坐标系内的方向失量为(0,1,1),可以用如语句加该方向的荷载 sfe,all,5,pres,100,0,1,1!荷载值100后的三个数为方向失量 allsel,all eplot 通过以上命令流得到的荷载图如附件所示。11.gif(24.75 KB)2007-10-29 17:30
需要注意的时图中(0,1,1)方向的荷载值为70.71=100*sqrt(2)/2,刚好是命令流中的荷载值乘以方向余弦。可以用sfelist命令查看单元上的荷载值。在施加荷载的时候应该要考虑表面载荷是否被累加吧!SFCUM,Lab,Oper,FACT,FACT2
29、撰写论文中图像的灰度处理 发现这些天论坛有些冷清,我的积分也迟迟不见长,近日弄了个ansys后处理灰度位图模块跟大家分享。ansys缺省状态下显示的是彩色图形,这对于编写高质量的报告非常有用,但实际使用中需要输出灰度显示的图形,比如撰写论文。
30、提取材料号2的所有体积命令是什么呢? 答:vsel,s,mat, ,2 vsum,all *get,v2,volu,0,volu v2 中即为材料 2 的所有体的体积。
31、请教:solve后的warning怎样才能不用手动点OK? 建模,边界,求解设置都做好了,然后求解SOLVE,之后会出现WARNING的窗口,总是要手动点击OK,程序才能继续运行。
我的问题是:能不能在命令流里加上一条命令,让程序自动来进行确认,从而不用手动干预就可以继续进行运算? 答:/uis,msgpop,3
32、循环计算生成的转矩结果数据如何保存成TXT文件
新建了一个电机的三维有限元分析模型,需要循环做多次静态磁场分析,每循环一次得到一组转矩值,我想请问,如何能把每次循环得到的转矩值存入到TXT文件中呢? 记得有一种方法:
/out,nli_t,txt nlist /out 不明白其中的nlist是怎么生成的呢,或者说一种什么类型的数据呢,标量?数组还是矩阵呢? 答:nlist是ansys的一个命令,列出所选中节点的信息,比如坐标。/out命令把本来在输出窗口中显示的信息存到指定的文体
所以你得到的既不是数据呢,标量也不是数组矩阵,只是一个文本文件。
33、请问不在同一平面的两个 面如何合成一个面啊???
答:(1)可以用AADD命令进行布尔运算,可能要求两个面共面。(2)如果两个面共线,可以用aglue命令粘接2个面。
(3)如果想连接2个面,并用于网格划分,可以用accat命令。
34、关于hardpoint。若在构件的某点处有一集中载荷,需在mesh之前在该处建立一个hardpoint,请问这个hardpoint的建立应该已经改变了该构件的应力分布了吧??为什么要建hardpoint?hardpont和一般的keypoint有什么区别?? 答:硬点实际上是一种特殊的关键点。用户可利用硬点施加载荷或从模型线和面上的任意点获得数据。硬点不改变模型的几何形状和拓扑结构。大多数关键点命令如FK、KLIST和KSEL等都适用于硬点。而且硬点有自己的命令集和GUI中的部分。如果用户发出更新图元几何形状的命令,例如布尔运算或简化命令,任何与图元相连的硬点都将被删去。因此在完成实体模型之后应当将所有的硬点加入。如果删除一个联系着硬点的图元,硬点会: ·与图元一起被删除(如果硬点与其它任何图元都没有关系)·与被删除的图元分离(如果硬点与另外的图元相连)
35、用apdl如何分别读取节点响应的实部和虚部?? 答:SET,1,1,0
!Real *VGET,AZR,NODE,A,Z SET,1,1,1 *VGET,AZI,NODE,A,Z
36、使用Ansys软件使用的经验小结 转钢结构论坛“雾里看花”的大作
1.始终注意保持使用一致的单位制; 2.求解前运行allsel命令
求解前运行allsel命令。要不然,某些已经划分网格的实体而没有被选择,那么加在实体模型上加的荷载可能会没有传到nodes or elements上去; 3.网格划分问题
牢记《建模与分网指南》上有关建模的忠告。网格划分影响模型是否可用,网格划分影响计算结果的可接受程度;
自适应网格划分(ADAPT)前必须查自适应网格划分可用单元,在ansys中能够自适应网格划分的单元是有限的。网格划分完成后,必须检查网格质量!权衡计算时间和计算精度的可接受程度,必要时应该refine网格
4.实体建模布尔运算
应用实体建模以及布尔运算(加、减、贴、交)的优势解决建立复杂模型时的困难;但是,没有把握时布尔运算将难以保证成功!5.计算结果的可信度
一般来说,复杂有限元计算必须通过多人,多次,多种通用有限元软件计算核对,互相检验,相互一致时才有比较可靠的计算结果。协同工作时必须对自己输入数据高度负责,并且小组成员之间保持良好的沟通;有限元分析不是搞什么“英雄主义”,而需要多方面的质量保证措施。6.了解最终所需要的成果
建立模型之前,应该充分了解最终要求提交什么样式的成果,这样能形成良好的网格,早期良好的建模规划对于后期成果整理有很大的帮助; 7.撰写分析文档
文档与分析过程力求保持同步,有利于小组成员之间的沟通和模型的检验和查证; 8.熟悉命令
对没有把握的命令应该先用简单模型熟悉之,千万不能抱有“撞大运”的想法; 9.多种单元共节点 不同单元使用共同节点时注意不同单元节点自由度匹配问题导致计算结果的正确与否(《建模与分网指南》P 8)三维梁单元和壳单元的节点自由度数一致,但是应该注意到三维梁单元的转动自由度和 壳单元的转动自由度的含义不一样。壳的ROTZ不是真实的自由度,它与平面内旋转刚度相联系,在局部坐标中壳的单元刚度矩阵ROTZ对应的项为零,对此不能将梁与壳单元仅仅有一个节点相连,例外的是当shell43 or shell63(两者都有keyopt(3)=2)的Allman旋转刚度被激活时。Solid65 单元和 shell63 单元相连,相应平动自由度的节点力会传到实体块单元上,但是shell63单元的转动自由度的节点唯一则不会传到相连的 solid65单元上。10.查找文献资料确定混凝土的材料参数输入(Tb, concr, , ,)11.预测内存和磁盘空间
大型复杂模型(例如10万个节点,非线性问题,多工况问题,1000步以上的瞬态分析等等)求解之前预测求解所需要的求解时间、内存和磁盘空间,使分析尽在掌握之中; 12.收敛问题
影响收敛(不收敛,或者收敛缓慢)的原因很多,《非线性分析指南》一书上有很多关于避免发生收敛问题的建议;
对于以下参数,可以试一试这些参数对收敛速度以及结果精度的影响 neqit = 6~25? 加载荷载步大小 = ?
接触单元的实常数 = ? 例如接触刚度的大小取值必须权衡计算结果精度(穿透大小)和收敛问题(收敛时间)两者的可接受程度,需要经验值或者试算; 13.启动重分析
14.两个相贯的薄壁圆筒建模,壳单元没有公共节点
Element Connectivity Error, 8-Node Curved Shell Elements In this image, the red stiffener was intended to be welded to the purple pipe.Note that the elements of the red stiffener do not match up with those on the pipe.There is no connection, and the meshing was done independently.This is due to a geometric modeling error by the user(me).There are superimposed curved lines where the interface is located.There should have been a shared line for the connection to have worked.I found this only because of careful examination of the model--I had already run a stress analysis.What to do about these error concerns? Read and think.Share and listen to ideas and concerns with others.Review your own work, and the work of your co-workers.(Recently an experienced co-worker who does not even do FEA work asked me if I had eliminated the added mass of water in pipes when evaluating shipping loads on a product.I hadn't.Eliminating the added mass got rid of a high-stress problem.These errors are very easy to make.)Be friendly.Communicate with other departments.Have a check list and design reviews.Never use FEA blindly, or believe the results of an analysis without some critical review.Accept a critical review without taking it personally.Develop a good understanding of the intent of the design codes that regulate your work.Consult an expert when it is appropriate.Pay attention to the ethics and standards of your professional association.Choose your employer wisely.(Some of these things you were supposed to have learned in Kindergarten, but life isn't always that simple.)解决方法:通过volumn建模形成相贯线,该方法建模使面相交处共线,xmesh后有公共nodes 15.选择集的应用
为了利用选择集cm / xsel的强大功能,可以合理定义线,面的实常数real属性,为了选择操作方便而赋予更多的单元实常数号,材料号
16. UPGEOM 和 MPCHG 的应用!UPGEOM更新几何形状
!a.rst为计算结果文件名,最后一个为目录!这两个参数应根据你的计算情况定 UPGEOM,1,LAST,LAST,NEW,rst,F:729!MPCHG弹性模量恢复为真值
esel,s,mat,3 mpchg,4,all
You might be tempted to try to deactivate or reactivate elements by changing their material properties [ MPCHG ](Main Menu> reprocessor>Material Props>Change Mat Num).However, you must proceed cautiously if you attempt such a procedure.The safeguards and restrictions that affect “killed” elements will not apply to elements that have their material properties changed in SOLUTION.(Element forces will not be automatically zeroed out;nor will strains, mass, specific heat, etc.)Many problems could result from careless use of MPCHG.For instance, if you reduce an element's stiffness to almost zero, but retain its mass, it could result in a singularity if subjected to acceleration or inertial effects.One application of MPCHG would be in modeling construction sequences in which the strain history of a “born” element is maintained.Using MPCHG in such cases will enable you to capture the initial strain experienced by elements as they are fitted into the displaced nodal configuration.17. Ansys 中的坐标系统,使用各种坐标系时应该明白在各处理器中输入输出会受到那些坐标系的影响
整体和局部坐标系CSYS---用于定位几何形状参数的空间位置 显示坐标系DSYS---用于几何形状参数的列表和显示
节点坐标系---定义节点自由度方向和节点结果数据的方法。输入数据时受到节点坐标系影响的有:约束自由度(方程),力,主(从)自由度;在/POST26中在节点坐标系下输出文件和显示的数据结果有:自由度解,节点荷载,反作用荷载;
Forces are defined in the nodal coordinate system.The positive directions of structural forces and moments are along and about the positive nodal axis directions.The node and the degree of freedom label corresponding to the force must be selected [ NSEL , DOFSEL ].单元坐标系---每个单元都有自己的坐标系,单元坐标系用于确定材料特性主轴,加面压力和和单元结果数据(如应力和应变)的输出方向;ANSYS规定了单元坐标系的缺省方向;许多单元都有keyopts可用于修改单元坐标系的缺省方向;对于面和体单元而言,可以用ESYS命令将单元坐标系的方向调整到已定义的局部坐标系;
结果坐标系RSYS---用来列表、显示或者在/POST1中将节点和单元结果转换到特定的坐标系中。在/POST1中结果数据换算到结果坐标系(RSYS)下记录。定义路径时,可以用系列命令*GET, ACTSYS, ACTIVE,CSYS $ RSYS, ACTSYS使结果坐标系与激活的坐标系(用于定义路径)相匹配 求解坐标系---大多数模型叠加技术(PSD,CQC,SRSS)是在求解坐标系中进行的,使用RSYS,SOLU命令来避免在结果坐标系中发生变换,使结果数据保持在求解坐标系中。18. Ansys 5.7通过函数定义边界条件
利用函数可以很简单方便地定义复杂边界条件和载荷(将边界条件当作函数处理(即方程))。该特性是5.6 中介绍的表格化边界条件的扩展功能。用户可以创建大量函数并存储起来,以便于将来使用。
5.6的表格化边界条件(Tabular boundary conditions)Tabular boundary conditions(VALUE = % tabname %)are available only for structural(UX, UY, UZ, ROTX, ROTY, ROTZ)and temperature degree of freedom(TEMP)labels and are valid only in static(ANTYPE ,STATIC)and full transient(ANTYPE ,TRANS)analyses.滞回曲线——位移加载
*DIM,dis,TABLE,9,1,TIME, , DIS(1,0)= 0,1,2,3,4,5,6,7,8 DIS(1,1)= 0,3,0,-3,0,4,0,-4,0 D,22, , %DIS% , , , ,UZ, , , , , ansys 5.6 help files-------2.6.3.Applying Loads Using TABLE Type Array Parameters 优点:
将复杂载荷和边界条件定义成基本变量和因变量的连续或非连续方程。提供创建和运用函数的极易操作的GUI 界面。应用 :
该特性适用于所有ANSYS家族产品。
该特性适用于ANSYS程序的所有过程,支持TIME, TEMP, X, Y, Z, VELOCITY和PRESSURE等基本变量
19. automatic time stepping For nonlinear problems, automatic time stepping determines the amount of load increment between substeps
37、ansys中如何提取各结点温度输出到TXT文档中?
哪位大峡告诉下我ansys中如何提取各节点的温度?是不是用APDL语言
我现在有个程序,不知道该怎么用~~是将它在哪儿输入???运行后结果又存在哪儿了????怎么存入到一个TXT文档中?程序如下:
FINISH /POST1 ALLSEL,ALL *GET,TotNode,NODE,0,COUNT
!* 获得模型中的节点总数,节点总数用变量TotNode记录
*DO,Ni,1,TotNode
!* 用DO循环对模型中的所有节点遍历
*GET,KTempNod,NODE,Ni,Temp!* 获取每一节点以绝对温度表示的温度值,存放在变量KTempNod中
CTempNod=KTempNod-273
!* 将温度转换为摄氏温度
DNSOL,Ni,TEMP, ,CTempNod!* 用DNSOL命令对节点的温度计算结果修正为摄氏温度 *ENDDO FINISH 答:*dim
定义一个数组
*vget
用节点温度填充这个数组 *cfopen 把这个数组存入一个文件 *vwrite *cfclos
38、可以施加两种载荷吗?
要在一个模型上考虑两种载荷,一开始只有第一个载荷作用,一段时间后在第一种载荷仍然作用的基础上再施加第二个载荷,这两个载荷的作用力大小和位置都不一样,应该如何做? 答:可以试试用load step
39、ansys中的单位问题
solve后,跳出这样一个错误来:For material 1 at temperature 0, the initial slope of the stress-strain curve based on the TB,MISO table(3.E+10)is greater than EX(30000).估计是材料单位弄的有问题了,大家谁能给个意见啊
答:1)、定义miso时第一个点的斜率一定要跟你输入的ex相等 2)、3.E+10估计是以米为单位 30000以毫米为单位
40、ANSYS中如何执行batch批处理命令? 答:finish /clear /cwd 设置工作路径 /input 输入分析文件 /filname 修改工作文件名
41、无规则编号,不等间距node如何两两连接成单元
请教个问题:一系列node沿矩形四边分布,但不均匀,node间距不等,编号也很混乱,如何能用简单的方法将node两两连接成单元呢?考虑了一个方法,但没有实现:用nsel命令选出周边node,局部重新编号,编号有规律了就可以循环了,红色字体为未能实现的部分。答:先把最外圈的某一边选出来,nsel,s,就可以实现 指定起始节点,如1761 用nnear(1761)就可以选中离其最近的单元,i=nneae(1761)e,1761,i 就可以完成第一个单元,然后nsel,u,去掉1761 然后选中nneae(i)j=nneae(i)然后e,i,j 如此循环配合选择就可以实现!
42、用APDL命令读取ANSYS后处理应力应变结果 答:PLNSOL, EPTO,EQV, 0,1.0!总应变 PLNSOL, S,EQV, 0,1.0!应力 PLNSOL,U,SUM变形
43、CE 和CP有何区别
答:ce 是 约束方程,ce 可以是不同节点,也可以是相同节点,而且不要求自由度相同,比如:
Ux,i = Uy,i cp 是 耦合c,是不同节点的相同自由度耦合到一起(取相同的值);
简单点儿说,耦合是将一个或多个自由度捆绑在一起,是他们保持同一个值。比如说你想保持一个板的一个边保持为一条直线,你可以把这条边上的所有节点所有自由度耦合在一起(这样可以看成是刚性域了)。
有时节点间不见得是简单的自由度相等的问题,比如说一个只有两个自由度的板单元与一个有三个自由度的梁单元相连接,如下划了一个简图:
|
|
1--o-- 2
|
|
|
|
-----
在连接点o处,如果没有特别约束,这就是一个铰接模型,如果加上这样一个约束方程:
RotzO =(uy2-uy1)/length12
这样就是一个刚性连接了,使用ce命令为:
ce,1,0,2,uy,1,1,uy,-1,o,rotz,-length12
44、ansys用*get获得的节点应变是真应变,工程应变还是green应变? 真应力/应变,也称为柯西应力应变,适用于小变形分析 工程应力/应变,也称为名义应力应变,适用于大变形分析
45、mesh200单元如何使用?
答:通常通过定义实常数模拟其质量。
massx, massy, massz,为质点在xyz方向的质量分量。其他三个实常数为转动惯量
Real Constants MASSX, MASSY, MASSZ, IXX, IYY, IZZ, if KEYOPT(3)= 0 MASS, if KEYOPT(3)= 2 MASS, IZZ, if KEYOPT(3)= 3 MASS, if KEYOPT(3)= 4(MASSX, MASSY, and MASSZ are concentrated mass components in the element coordinate directions.IXX, IYY, and IZZ are rotary inertias about the element coordinate axes.See also KEYOPT(2)).Material Properties DENS(if KEYOPT(1)= 1)
46、ANSYS误差估计的问题
用ANSYS求解一个复杂二维模型的应力,其能量准则百分比误差估计的结果和那些因素有关,个人认为网格划分已经足够密集,为什么误差估计值高达63%?可能是什么地方出现了问题? 答:1)、能量百分比误差是对所选择的单元的位移、应力、温度或热流密度的粗略估计.它可以用于比较承受相似载荷的相似结构的相似模型.这个值的通常应该在10%以下.如果不选择其他单元,而只选择在节点上施加点载荷或应力集中处的单元,误差值有时会达到50%或以上.2)、SEER和SEPC本质上都是对于网格分所引起的结构误差的一个估计,不过SEPC从总体进行考虑,SEER用户可以从图形显式上观察,可以观察SERR,在SEER过大的位置对网格进行局部细化
47、如何计算实体模型某个截面上的合力和弯矩
本来是回答其它朋友的问题,因为可能有普遍性,所以另发一帖,并增加了一个视频: 大概步骤是: 求解结束后,到 Post1 下面。选择一个截面上的所有节点,可以建一个 Component。3 选择 Attached to 这些节点的所有单元 删除位于这些节点一侧的所有单元,只保留另一侧的单元 点击 Nodal Calcs-> Total Force Sum,在弹出的对话框中可以设置一些参数,然后 OK,则显示这些节点组成的截面上的三个合力和三个弯矩,如下图所示。
48、如何判别一个模型网格划分的合理与否?
网格划分不是越细越好这是大家知道的,但是如何判别一个网格划分的合理与否呢,怎样知道自己的网格已经足够?有没有什么判别网格合理性的标准呢?由其是在应力梯度变化比较大的区域,网格划分的大小对计算结果影响很大,随着网格的细分,计算规模也在不断增大,所以有必要研究网格合理划分的判别标准。例如,在计算一个有应力集中区域的模型时,如何对应力集中区域进行划分就是一个问题,因为随着网格的细分,计算所得的应力逐渐在变化,但是怎么样划分网格才能得到与真实值接近的解,是我们必需要接近的问题。现在有的文章里面介绍了网格半分的方法,和单元能量误差的方法来判别单元划分的合理与否。我觉得规律都不是很明显,不知道大家有没有遇到过这样的问题,有没有什么别的方法能判别一个网格划分的合理性。答:1)、培训时说加载计算之后,可以看看单元节点间的应力差,如果这个差值占到这个单元最大应力的10%以上的时候,证明这个单元的尺寸比较大,应该在这个单元所在区域进行细分 2)、一般要根据自己的经验和力学常识,在计算前大致判断哪些地方是可能的危险地方。然后先做一次计算,在可能的危险地方划分相对密一些的网格,计算完后,应力集中处的位置分布大致就明确了。知道了危险区域的大致分布之后,再加密网格做计算,一直到网格的加密对计算结果的影响很小为止,这时可以认为网格的密度已经足够了。如果网格不断加密,最大应力值随之不断增加,这个时候,你得考虑你这个模型是不是建立的有问题,或者你所分析的对象是不是有非常不合理的导致应力非常集中几何结构。总之,网格划分合理与否,没有什么明确的量化标准,要具体问题具体分析。
49、关于ansys做岩土材料分析的D-P模型的讨论
ansys做岩土的分析是不是结果不准?听别人说ansys不适合做岩土的分析。
答:其实不是准不准的问题,而是岩土材料的本构方程无法准确输入,用你输入的参数,ANSYS的计算是没有问题的,但是这种计算是否反映了实际工程,就是另外一回事了!
50、请问检查模型是否有缝隙怎么检查?
答:可以做一次模态分析,选择适当的点施加约束以保证没有刚体模态(在没有缝隙的情况下),然后看是否有零频率,以及看一下前几阶的实际振型,把比例设置大一些。有缝隙的地方很容易看到的。
50、如何判断某个节点是在面上还是在体内呢?
答:select一个面,再nsla,s,1(选择all nodes attached to the surface);再nlist,看是不是有那个节点,有就是在这个 面上。
51、nsol命令不能够画应力随时间变化曲线 答:用nsol定义再用plvar画
52、给曲面施加梯度荷载的方法 asel,s,,45 sfgrad,pres,y,12,-10000 sfa,45,pres,0 这样可以给面施加梯度压力
53、在ANSYS中如何显示点、线、面、体的编号? 答:PNUM,KP,1 /PNUM,LINE,0 /PNUM,AREA,0 /PNUM,VOLU,0 /PNUM,NODE,0 /PNUM,TABN,0 /PNUM,SVAL,0 /NUMBER,0!* /PNUM,ELEM,0 /REPLOT!* KPLOT
显示关键点编号
54、如何在ANSYS 中显示弯矩图
答:好像在ansys中粱单元或壳单元才能输出弯矩;
可以通过制定表格的方式输出结点内力。
举个例子:
esel,s,,1,126 etable,im,smisc,6!i结点的弯矩 etable,jm,smisc,12!j结点的弯矩 etable,ifx,smisc,1!i结点的轴力 etable,jfx,smisc,7!j结点的轴力 etable,ify,smisc,2!i结点的剪力 etable,jfy,smisc,8!j结点的剪力 plls,im,jm,-1!画弯矩图
假如是shell63,那么命令就是:
etable,mx,smisc,4 etable,my,smisc,5 pretab
还听说一种办法,但不知行不:
9.0及以上的版本,通用后处理里用个node calculate 第二项就列出了所有 节点 的剪力和弯矩。
55、ansys后处理的等值线上的字母如何改大啊? 答:!说明自体 /DEV,FONT,LEGEND,MENU /dev,font,1,Times*New*Roman,400,0,-19,0,0,,!图上的字体/DEV,FONT,ENTITY,MENU /dev,font,2,Times*New*Roman,400,0,-19,0,0,,56、如何看到模型内部的应力分布情况 答:我想可以用2种方法:
(1)选择内部的单元,这样就只能显示所选择单元的计算结果。(2)使用工作平面作为切平面切割模型,得到所需截面的计算结果。
57、ANSYS中如何提取等效节点载荷?
答: 效节点力信息存储在.emat文件里 读这个文件就行了
58、关于提取最大节点力的问题 我算出的结果在图形上显示最大节点等效应力值是2901Mpa,发生在边角处的一点;而用NSORT列出节点的应力,进行排序后得到的最大值却是2205Mpa,再用GET得到的最大值也是2205Mpa,请问有没有人知道这是什么原因啊???
答:图形上显示最大节点等效应力值通常不是节点的实际最大应力 你采用的nsort和get得出的才是正确的 这个问题同样也会出现在静力分析中
59、请问一下,如何改变图象显示模式? 答:执行以下命令流即可:
!*
/AUTO, 1
!相当于 fit image,即显示全图!* /PLOPTS,INFO,2!将文字显示在右边
!*
/GRAPHICS,FULL!对三维模型关闭 graphics,否则节点应力只是表面单元的平均,不是节点周围全部单元的平均
!*
/COLOR,PBAK,OFF!关闭背景色,在存图形时可采用反色方式,使背景成为白色!*
/DSCALE,1,1.0
!云图显示变形比例为1 /REPLOT
60、怎样得到内力图和弯矩图
答:1)、在general postproc/element table/define table/add 选中最下面框的by seruence num ,旁边的框填smisc,6,然后apply,同样的方法写
12,1,7,2,8 完了之后,在general postproc/plot results/contour plot/line element result 在下拉菜单中依次选取smis6和smis12.smis1和smis7.smis2和smis8就可以看到了 2)、ETABLE,IMOMENT,SMISC,6
!建立元素结果表,元素I点力矩 ETABLE,JMOMENT,SMISC,12!建立元素结果表,元素J点力矩 ETABLE,ISHEAR,SMISC,2
!建立元素结果表,元素I点剪力 ETABLE,JSHEAR,SMISC,8
!建立元素结果表,元素J点剪力
61、tbdata的用法
TBDATA, stloc, c1,c2,c3,c4,c5,c6 给当前数据表定义数据(配合tbtemp,及tb使用)
stloc: 所要输入数据在数据表中的初始位置,缺省为上一次的位置加1 每重新发生一次tb或tbtemp命令上一次位置重设为1,(发生tb后第一次用空闲此项,则c1赋给第一个常数)c1,c2,c3,c4,c5,c6 应该是非线性材料的特性,我也不是很清楚。但是我在一个例子中看到是这样定义的(针对混凝土而言):c1-张开剪切传递系数;C3-抗拉强度;C4-抗压强度 TBDATA命令如何使用,得看你使用的是哪个材料属性类型(例如:MKIN多线性随动强化,BKIN双线性随动强化),然后根据那个材料属性确定各个材料常数c1,c2,c3,c4,c5,c6 应该输入哪些数值。
62、映射网格划分方法
映射网格划分一直是大家关心的问题,现把自己使用ansys的一些经验及编程的真实体会奉献给大家,希望能达到授之以渔的效果。
ansys执行映射网格划分的条件是:对于面,必须是三角形或四边形,对于体,必须是四面体、五面体或六面体,这是众所周知的,但往往忽略了另一个条件:划分数的匹配问题,对于四边形而言必须满足对边划分数相等的条件,对于三角形,在后面作专门介绍。其实ansys不仅可以对三角形和四边形执行映射网格划分,对任意多边形原则上(划分数匹配)都可以执行影射网格划分,这些方法包括:面的切割、线的合并等,这些方法也可以用在体的映射网格划分上。我今天要介绍的是另一种方法(可能在论坛上已经有类似的介绍,但我还没有看到,如果有,就算重温吧)也即amap命令(基于面的角点的映射网格划分)的使用,它需要指定要划分的面的编号,以及以任意顺序指定该面上的任意4个角点(注意:任意四个角点是有前提的,即划分数的匹配,为了不再罗嗦,以后不在重复强调这个问题)。看一个简单的例子(如图1,尺寸见坐标),这个图形由3个面组成其中A2和A3满足映射网格划分的条件,A1看起来是个矩形但其实由5条边组成,要实现A1的影射网格划分,你可以用工作平面将其沿着L6切开,但这样就会多出一条线,某些情况是不希望有多余元素生成的,比如把图1看成是一块楼板,线就是梁,如果切割后就多出了一条线,对以后定义梁造成不便。这个问题不能用lcomb命令将线2和线4合并(自己可以试一下),另一个方法就是用amap,1,4,7,8,6。理论上amap命令可以用于任何多边形,但往往理论是实际是有差距的,还是刚才那个例子,如果你将线的划分尺寸定义为1(lesize,all,1),则线10的划分数为1,线2和线4各为1,然后你再用同样的命令amap,1,4,7,8,6,看看有什么结果——划分数不匹配,不能进行映射网格划分。相关命令流如下:
/PREP7 k k,1 kgen,3,1,2,1,1 a,1,2,4,3 a,3,4,6,5 et,1,42 wprota,,90 wpoffs,,0.5 asbw,1,dele amap,2,3,4,5,6 aclear,all lesize,all,1 amap,2,3,4,5,6 以上命令流所建模型的编号跟图1有些不同。从这个简单的例子大家应该能够体会到划分数匹配的重要性了,实际工程中的图形远比这个复杂得多,要想完全满足划分数匹配的条件是很不容易的,甚至可以说几乎不可能,除非全部分割成4边或3边形,但这样会产生很多小面影响网格划分的质量,这在建筑结构中是很常见的,我做过几个实际工程,深有体会。因此amap命令的使用也有局限性,在实际工程中可以综合使用多种方法以达到最优化。
二、映射网格划分如何用程序实现
下面仅介绍平面四边形(直边)映射网格划分实现的详细过程,其他仅给出思路。
首先将某对边线按划分数N,比例因子R离散为N+1个点,如图2。如果第1个点的x坐标为X1,第N+1个点的x坐标为XN+1,则第i个点的X坐标为: Xi=X1+(XN+1-X1)*(R^(i-1)-1)/(R^N-1)(R≠1)Xi=X1+(XN+1-X1)*(i-1)/N(R=1)
Y、Z坐标以此类推,这是递增和递减的情况,由中心向外递增和递减的情况可以自己推导。离散后的情况如图3,并连接各离散点,得到N+1条线,然后根据这N+1条线的划分数M及比例因子S在这个方向进行离散,结果如图4。在离散的过程中顺便给节点编上号并赋其坐标值,节点编号的原则一般为从左到右,从下往上递增(编号方式与ansys不同)。然后给单元编号赋值(节点、材料等),也是按从左到右,从下往上编号递增。如第5个单元的节点编号为7,8,11,10(一般按顺时针或逆时针的顺序赋节点编号),单元的节点编号是有规律的可以通过程序实现。这样就完成了一个面的四节点映射网格划分,然后再按同样的步骤划第2、3……个面,不过要进行节点重合的检查。
对于三角形单元,可以先划分成四边形单元,然后按单元数循环,将每个四边形单元划分成两个三角形单元。举例如下:
For i=1:1:en Nn=elem.node{i};Elem.nodetri{2*i-1}=[Nn(1)Nn(2)Nn(3)];Elem.nodetri{2*i}=[Nn(3)Nn(4)Nn(1)];End 以上是MATLAB语言,进行以上操作以后就可以得到2en个三角形单元,单元的节点编号存放在Elem.nodetri中。
对于8节点等二次单元可以在四节点单元的基础上,在各单元边中分别产生一个节点,节点坐标即两个节点坐标的平均值。
如果组成平面的边有圆弧则按柱坐标离散,然后再转换成直角坐标,但要考虑圆弧所在象限的问题。如果是其他曲线则须给出曲线方程……
如果是三角形,可以先将其分割成3个四边形,然后按上诉方法离散。分割的方式与划分数的设置有关(如图5)。从图5可以看出三角形映射网格划分需要满足的划分数匹配条件:
(1)、有两条边的划分数相等;
(2)、第三条边的划分数必须为偶数;
(3)、第三条边的划分数必须小于另外两条边的划分数的2倍-2。
在ansys里还有其他条件,比如图6的划分数在ansys里是不能进行映射网格划分的,但实际上它是可以的。
对于曲面的情况,其做法是先做等参变换将其变换为平面,然后对变换后的平面划分网格,在变回原坐标系。体的情况类似,只是多了一次离散。
三、用MATLAB做有限元软件开发
MATLAB是目前主流的数值计算软件,有强大的矩阵运算、数值积分微分、解线性方程组的能力,这些正是有限元所必须的,因此用MATLAB做有限元软件开发可以充分利用其资源,节省开发时间,但MATLAB有个缺点就是运算时间较慢,但会随着计算机运算速度的提高而弱化这个缺点。63、怎么改变面的发向方向
答:可以试试anorm,areverse,enorm 修改 Area 的法向:
Main Menu>Preprocessor>Modeling>Move / Modify>Areas>Area Normals 或直接修改单元的法向:
Main Menu>Preprocessor>Modeling>Move / Modify>Elements>Shell Normals 64、关于载荷步的一点体会
首先,更正以下载荷步的定义:我认为载荷步是根据荷载时间历程曲线划分段数,每一个 载荷步代表载荷发生一次突变或渐变的过程。当然载荷步可继续分成SUBSTEP。
其次,关于多步加载:多步加载载荷有两种方式即替换式、叠加式。一般选前者方便,比如地震载荷的输入。
关于替换式加载:在线性阶段,我们感觉荷载步之间是独立的,比如: /SOLU F,1,FY,100 SOLVE F,1,FY,100 SOLVE finish 两次计算结果相同。这不假,应为后加载荷替换了前加载荷。若为: /SOLU F,1,FY,100 SOLVE F,1,FY,200 SOLVE finish 计算结果最后显示第二次加载200的结果,好像第一步多余,其实不然。这其中隐含加载历史。所以说载荷步之间不是独立的,只是对线性体系没有影响罢了。
再次,对于非线性阶段,载荷步应和加载历史对应。不然计算结果将有很大的影响。即荷载步之间是有影响的。
最后,我想校正以下许多关于多载荷步计算结果提法。以前面例子为例,对于替换加载第二载荷步的计算结果并非是在第一载荷步计算结果上叠加,而是由第一载荷步到第二载荷步加载历史下的最终结果。若为多步加载,依次类推。
65、计算结果的评价:
当做完一次静力分析查看结果时,Plot显示的节点最大应力和List出来的节点最大应力有时不相同(和Plot显示的节点最大应力相比通常偏小),有时相同,请问这是什么原因?应该以那个节点应力结果为准? 答:这种情况一般出现在使用 Solid 单元时,显示节点应力时要注意一下 PowerGraph 选项是否打开,如果打开改选项(默认),显示的是表面单元的平均值,比较偏大;如果关闭该选项,显示的是所有单元的平均值,会小一些,此时的结果与 List(所有单元的平均值)的结果是一致的。应该说关闭 PowerGraph 的结果是比较准确的。
66、ansys后处理可否画自定义变量的云图
得到了接触面的应力和剪应力,需要得出两者相除后变量的云图,不知可否? 答:在element table里面可以对任何已知变量进行运算得出新的变量,并画出云图。
67、两种PowerGraphis结果显示模式对结果的影响
ANSYS中图形显示方式有两种:PowerGraphics和Full Graphics。在用实体单元和壳单元时候,可能会产生不同的图形显示方式导致不同的结果,网上找点英文资料翻译整理如下: 增强图形(PowerGraphics)的优点: 1.显示速度快; 2.可显示二次曲面;
3.在不连续处(材料、几何、实常数等)不进行结果平均处理; 4.可以同时显示Shell单元的顶面和底面应力。全图形(FullGraphics)的优点:
1.显示参数少,这意味着有在用户间有更好的可移植性; 2.显示结果总是和打印结果一致;
3.结果总是和得到的结果文件一致(没子网格数据插入)。
一般来讲,增强图形(PowerGraphics)会比全图形产生较大(或较保守)的值: 1.表面总会产生较大的应力,增强图形没有对表面以下的单元结果进行平均;
2.在不连续处不进行平均处理,会得到较为真实的图形显示(因为实际上在不连续处的应力和应变是存在差异的)。
对于承载能力计算来说,选择哪种图形显示模式,也可能要依据哪种结果被用来和试验数据进行对比。如果在连续区域,增强图形和全图形或者未平均的节点结果之间存在较大差异,这可能意味着此处的网格划分不够精细。得到的结果可能是错误的。
67、让ANSYS程序在命令执行到某一行的时候停止 答:/eof 68、怎么在计算结果实体云图中切面? 答:命令流 /cplane /type
图形界面操作
1.设置工作面为切面
2.PlotCtrls-->Style-->Hidden line Options
将[/TYPE]选项选为section
将[/CPLANE]选项选为working plane 然后OK就可以了。
69、log文件整理心得:
1.要注意时间,因为每次做的东西都会跟在log文件后面,所以要根据时间取舍,不是所有的log文件中的内容就有用的,一开始我建议从新建一个文件开始。
2.最好每做一步看一下log文件,可以知道自己的操作对应哪些命令 3.有些关于存盘、显示视角等命令可以删除。4.选取实体时往往会产生很多命令,可以简化。
5.整理命令流时要新建立一个文本文件,以便从log文件中拷贝所需要的。6.File菜单中的Read input from可以读入自己所建立的命令流来执行。7.可以增加注释语句以增强可读性
下面以一简单模型为例大致说明一下:
/BATCH
/COM,ANSYS RELEASE 5.7.1 UP20010418
15:42:42 09/12/2003 /input,menust,tmp ,'',,,,,,,,1 /GRA,POWER /GST,ON /PLO,INFO,3 /COL,PBAK,ON,1,BLUE 这一段基本上没有用,是开始的设置,每个分析都是差不多这样,因此可以删除。
/PREP7
进入前处理器。在这一句前面可以加上fini /clear,这样可以把模型原来的内容清空。
!*
ET,1,PLANE42!* 定义单元
MPTEMP,,,, MPTEMP,1,0
MPDATA,EX,1,2e11 MPDATA,PRXY,1,0.33 MPTEMP,,,, MPTEMP,1,0
MPDATA,DENS,1,2700 定义材料类型
K,1,0,0, K,2,50,0, K,3,50,10, K,4,10,10, K,5,10,50, K,6,0,50, 建立关键点
FLST,2,6,3 FITEM,2,1 FITEM,2,2 FITEM,2,3 FITEM,2,4 FITEM,2,5 FITEM,2,6 A,P51X
将几个关键点连接成面
这里,关键点是通过鼠标选取而得到,因此命令较多,其实这一段可以改为,A,1,2,3,4,5,6,具体如何改写可以参考FLST,FITEM命令的帮助
ESIZE,1,0, 设置单元大小
CM,_Y,AREA ASEL, , , , 1 CM,_Y1,AREA CHKMSH,'AREA' CMSEL,S,_Y!*
AMESH,_Y1 EPLOT
这一段的含义是对所选择的面1进行网格划分,可以改写成AMESH,1。
FINISH
退出前处理器 /SOLU 进入求解器
FLST,2,1,4,ORDE,1 FITEM,2,5!* /GO DL,P51X, ,ALL,给选择的线加位移约束。可以改写成:DL,5,ALL
FLST,2,2,4,ORDE,2 FITEM,2,2 FITEM,2,-3 /GO!*
SFL,P51X,PRES,1000, 给选择的线加压力
可以改写成SFL,3,PRES,1000 SFL,2,PRES,1000
SOLVE 求解 FINISH 退出求解器
/POST1 进入后处理器 SET,FIRST 读出第一个解集 PLNSOL,U,SUM,0,1 画出节点位移解。
因此整理后的命令流文件如下: fini /clear /PREP7
!定义单元 ET,1,PLANE42
!定义材料
MPTEMP,,,, MPTEMP,1,0
MPDATA,EX,1,2e11 MPDATA,PRXY,1,0.33 MPTEMP,,,, MPTEMP,1,0
MPDATA,DENS,1,2700
!建立模型 K,1,0,0, K,2,50,0, K,3,50,10, K,4,10,10, K,5,10,50, K,6,0,50, A,1,2,3,4,5,6,!划分网格 ESIZE,1,0, AMESH,1
FINISH /SOLU
!添加约束 DL,5,ALL SFL,3,PRES,1000 SFL,2,PRES,1000
SOLVE FINISH
/POST1 SET,FIRST
PLNSOL,U,SUM,0,1
70.典型静力分析的基本过程可以用以下命令流表示: /FILNAM,...!指定工作文件名 /TITLE,...!指定分析标题 /PREP7
!进入前处理器 ET,...!定义单元类型 R,...!定义实常数
MP,EX,...!定义杨氏弹性模量 MP,PRXY,...!定义泊松比!构建有限元模型...FINISH /SOLU!进入求解器!施加位移约束 D,......!施加荷载 F,......SOLVE!求解
FINISH /POST
!进入通用后处理器
PLDISP,1!画出结构的变形图并与原结构比较!制作结构的变形动画 ANDSCL,10,0.5 AVPRIN,0,0
71、在Ansys中绘制二维曲线
ansys提供了一个很好的绘制二维曲线的命令,可以在命令输入栏中输入如下命令,则可得到一条线
~eui,'::euidl::ansgraph::xyplot {1 2 3 4 5} {12 34 45 465 2} x y'
~eui后面单引号中实际上是一条tcl命令。前两个参数是两个list,分别是x、y轴的坐标值,后两个参数是x、y两个坐标轴的标签。
下面给一个绘制正弦曲线的例子,把下面的文本拷贝到一个文本文件中,比如test.txt文件里
set liX [list] set liY [list] set pi 3.1415926
for {set i 0} {$i < 100} {incr i} {
set x [expr {$i*2*$pi/100}]
lappend liX $x
lappend liY [expr sin($x)] } ::euidl::ansgraph::xyplot $liX $liY “x” “sin(x)”
然后把这个文件放到ansys的工作目录下,在命令栏中输入 ~eui,'source test.txt' 即可显示一条正弦曲线
这条命令内部实际上使用了apdl的*vplot命令,但使用xyplot有时会更方便
72、ANSYS坐标系总结
ANSYS坐标系总结
工作平面(Working Plane)
工作平面是创建几何模型的参考(X,Y)平面,在前处理器中用来建模(几何和网格)
总体坐标系
在每开始进行一个新的ANSYS分析时,已经有三个坐标系预先定义了。它们位于模型的总体原
点。三种类型为: CS,0: 总体笛卡尔坐标系 CS,1: 总体柱坐标系 CS,2: 总体球坐标系 数据库中节点坐标总是以总体笛卡尔坐标系,无论节点是在什么坐标系中创建的。
局部坐标系
局部坐标系是用户定义的坐标系。局部坐标系可以通过菜单路径Workplane>Local CS>Create LC
来创建。
激活的坐标系是分析中特定时间的参考系。缺省为总体笛卡尔坐标系。当创建了一个新的坐标系时,新坐标系变为激活坐标系。这表明后面的激活坐标系的命令。菜单中激活坐标系的路径
Workplane>Change active CS to>。
节点坐标系
每一个节点都有一个附着的坐标系。节点坐标系缺省总是笛卡尔坐标系并与总体笛卡尔坐标系平行。节点力和节点边界条件(约束)指的是节点坐标系的方向。时间历程后处理器 /POST26 中的结果数据是在节点坐标系下表达的。而通用后处理器/POST1中的结果是按结果坐标系进行表
达的。
例如: 模型中任意位置的一个圆,要施加径向约束。首先需要在圆的中心创建一个柱坐标系并分配一个坐标系号码(例如CS,11)。这个局部坐标系现在成为激活的坐标系。然后选择圆上的所有节点。通过使用 “rep7>Move/Modify>Rotate Nodal CS to active CS”, 选择节点的节点坐标系的朝向将沿着激活坐标系的方向。未选择节点保持不变。节点坐标系的显示通过菜单路径Pltctrls>Symbols>Nodal CS。这些节点坐标系的X方向现在沿径向。约束这些选择节点的X方向,就是施加的径向约束。
注意:节点坐标系总是笛卡尔坐标系。可以将节点坐标系旋转到一个局部柱坐标下。这种情况下,节点坐标系的X方向指向径向,Y方向是周向(theta)。可是当施加theta方向非零位移时,ANSYS总是定义它为一个笛卡尔Y位移而不是一个转动(Y位移不是theta位移)。
单元坐标系
单元坐标系确定材料属性的方向(例如,复合材料的铺层方向)。对后处理也是很有用的,诸如提取梁和壳单元的膜力。单元坐标系的朝向在单元类型的描述中可以找到。
结果坐标系
/Post1通用后处理器中(位移, 应力,支座反力)在结果坐标系中报告,缺省平行于总体笛卡尔坐标系。这意味着缺省情况位移,应力和支座反力按照总体笛卡尔在坐标系表达。无论节点和单元坐标系如何设定。要恢复径向和环向应力,结果坐标系必须旋转到适当的坐标系下。这可以通过菜单路径Post1>Options for output实现。/POST26时间历程后处理器中的结果总是以节点
坐标系表达。
显示坐标系
显示坐标系对列表圆柱和球节点坐标非常有用(例如, 径向,周向坐标)。建议不要激活这个坐标系进行显示。屏幕上的坐标系是笛卡尔坐标系。显示坐标系为柱坐标系,圆弧将显示为直线。这可能引起混乱。因此在以非笛卡尔坐标系列表节点坐标之后将显示坐标系恢复到总体笛卡尔坐标
系。
第五篇:STM32 PWM输出总结
学习后发现stm32的定时器功能确实很强大,小总结一下方便以后使用的时候做参考。Stm32定时器一共分为三种:tim1和tim8是高级定时器,6和7是基本定时器,2—5是通用定时器。从名字就可以看得出来主要功能上的差异。今天我主要是用定时器做pwm输出,所以总结也主要是针对pwm方面的。
先大致说下通用和高级定时器的区别。通用的可以输出四路pwm信号互不影响。高级定时器可以输出三对互补pwm信号外加ch4通道,也就是一共七路。
所以这样算下来stm32一共可以生成4*5+7*2=30路pwm信号。接下来还有功能上的区别:通用定时器的pwm信号比较简单,就是普通的调节占空比调节频率(别的不常用到的没去深究);高级定时器的还带有互补输出功能,同时互补信号可以插入死区,也可以使能刹车功能,从这些看来高级定时器的pwm天生就是用来控制电机的。
Pwm输出最基本的调节就是频率和占空比。频率当然又和时钟信号扯上了关系。高级定时器是挂接到APB2上,而通用定时器是挂接到APB1上的。APB1和APB2的区别就要在于时钟频率不同。APB2最高频率允许72MH,而APB1最高频率为36MHZ。这样是不是通用定时器只最高36MHZ频率呢,不是的;通用定时器时钟信号完整的路线应该是下面这样的: AHB(72mhz)→APB1分频器(默认2)→APB1时钟信号(36mhz)→倍频器(*2倍)→通用定时器时钟信号(72mhz)。
在APB1和定时器中间的倍频器起到了巨大的作用,假如红色字体的“APB1分频器”假如不为1(默认是2),倍频器会自动将APB1时钟频率扩大2倍后作为定时器信号源,这个它内部自动控制的不用配置。设置这个倍频器的目的很简单就是在APB1是36mhz的情况下通用定时器的频率同样能达到72mhz。我用的库函数直接调用函数SystemInit();这个函数之后时钟配置好了:通用定时器和高级定时器的时钟现在都是72mhz(你也可以自己再配置一下RCC让他的频率更低,但是不能再高了)。定时器接下来还有一个分频寄存器:TIMX_PSC经过他的分频后,才是定时器计数的频率。所以真正的时钟频率应该是72mhz/(TIMX_PSC-1),我们设为tim_frepuency下面还会用到。
stm32的时钟频率弄得确实是很饶人的,所以关键就是先要把思路理清楚。时钟的频率弄好了下面终于可以开说重点PWM了。当然还少不了频率:pwm主要就是控制频率和占空比的:这两个因素分别通过两个寄存器控制:TIMX_ARR和TIMX_CCRX。ARR寄存器就是自动重装寄存器,也就是计数器记到这个数以后清零再开始计,这样pwm的频率就是tim_frequency/(TIMX_ARR-1)。在计数时会不停的和CCRX寄存器中的数据进行比较,如果小于的话是高电平或者低电平,计数值大于CCRX值的话电平极性反相。所以这也就控制了占空比。
下面是定时器1的配置代码:
GPIO_InitTypeDef GPIO_InitStructure2;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
//第一步:配置时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|
RCC_APB2Periph_GPIOB|RCC_APB2Periph_TIM1,ENABLE);
//第二步,配置goio口
/********TIM1_CH1 引脚配置*********/
GPIO_InitStructure2.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStructure2.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure2.GPIO_Mode=GPIO_Mode_AF_PP;
//设置为复用浮空输出
GPIO_Init(GPIOA,&GPIO_InitStructure2);
/*********TIM1_CH1N 引脚配置********/
GPIO_InitStructure2.GPIO_Pin=GPIO_Pin_13;
GPIO_InitStructure2.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure2.GPIO_Mode=GPIO_Mode_AF_PP;
//设置为复用浮空输出
GPIO_Init(GPIOB,&GPIO_InitStructure2);
//第三步,定时器基本配置
TIM_TimeBaseStructure.TIM_Period=1000-1;
// 自动重装载寄存器的值
TIM_TimeBaseStructure.TIM_Prescaler=72-1;
// 时钟预分频数
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;// 采样分频
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上计数
TIM_TimeBaseStructure.TIM_RepetitionCounter=0;//重复寄存器,用于自动更新pwm占空比
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
//第四步pwm输出配置
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
//设置为pwm1输出模式
TIM_OCInitStructure.TIM_Pulse=500;
//设置占空比时间
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;
//设置输出极性
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
//使能该通道输出
//下面几个参数是高级定时器才会用到,通用定时器不用配置
TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_High;
//设置互补端输出极性
TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;//使能互补端输出
TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;
//死区后输出状态
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;//死区后互补端输出状态
TIM_OC1Init(TIM1,&TIM_OCInitStructure);
//按照指定参数初始化
//第五步,死区和刹车功能配置,高级定时器才有的,通用定时器不用配置
TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Disable;//运行模式下输出选择
TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Disable;//空闲模式下输出选择
TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF;
//锁定设置
TIM_BDTRInitStructure.TIM_DeadTime = 0x90;
//死区时间设置
TIM_BDTRInitStructure.TIM_Break = TIM_Break_Disable;
//刹车功能使能
TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High;//刹车输入极性
TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;//自动输出使能
TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);
//第六步,使能端的打开
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);//使能TIMx在CCR1上的预装载寄存器
TIM_ARRPreloadConfig(TIM1, ENABLE);
//使能TIMx在ARR上的预装载寄存器
TIM_Cmd(TIM1,ENABLE);
//打开TIM2
//下面这句是高级定时器才有的,输出pwm必须打开
TIM_CtrlPWMOutputs(TIM1, ENABLE);
//pwm输出使能,一定要记得打开
TIM_OC1PreloadConfig(),TIM_ARRPreloadConfig();这两个函数控制的是ccr1和arr的预装在使能,使能和失能的区别就是:使能的时候这两个局存期的读写需要等待有更新事件发生时才能被改变(比如计数溢出就是更新时间)。失能的时候可以直接进行读写而没有延迟。另外在运行当中想要改变pwm的频率和占空比调用:TIM_SetAutoreload()TIM_SetCompare1()这两个函数就可以了。