文档库 最新最全的文档下载
当前位置:文档库 › STM8教程-第十三章 STM8S207 定时器模块及其应用实例

STM8教程-第十三章 STM8S207 定时器模块及其应用实例

STM8教程-第十三章 STM8S207 定时器模块及其应用实例
STM8教程-第十三章 STM8S207 定时器模块及其应用实例

第十三章STM8S207 定时器模块及其应用实例

这一节,我们将向大家介绍如何使用STM8 的定时器中的基本定时功能,STM8 的定时器功能十分强大,有TIM1 高级定时器,也有TIM2、TIM3 等通用定时器,还有TIM4 基本定时器。在STM8S 参考手册里面,定时器的介绍占了1/3 的篇幅,足见其重要性。这一节,我们分别介绍TIM1 到TIM4 定时器中的基本定时功能。

例程一、16 位高级控制定时器(TIM1)

简介:

TIM1 由一个16 位的自动装载计数器组成,它由一个可编程的预分频器驱动。TIM1 有4 个通道,分别是1 到4。分别对应于四个不同的捕获/比较通道。

高级控制定时器适用于许多不同的用途:

基本的定时

测量输入信号的脉冲宽度(输入捕获)

产生输出波形(输出比较,PWM 和单脉冲模式)

对应与不同事件(捕获,比较,溢出,刹车,触发)的中断

与TIM5/TIM6 或者外部信号(外部时钟,复位信号,触发和使能信号)同步

高级控制定时器广泛的适用于各种控制应用中,包括那些需要中间对齐模式

PWM 的应用,该模式支持互补输出和死区时间控制。

高级控制定时器的时钟源可以是内部时钟,也可以是外部的信号,可以通过配置寄存器来进行选择。

这一节我们实现的功能是基本的定时,关于PWM 的编程留下以后的章节中。还有建议大家研究更为深入的功能

TIM1 的时基单元包括,如下图所示:

●16 位向上/向下计数器

●16 位自动重载寄存器

●重复计数器

●预分频器

16 位计数器,预分频器,自动重载寄存器和重复计数器寄存器都可以通过软件

进行读写操作。

自动重载寄存器由预装载寄存器和影子寄存器组成。

可在在两种模式下写自动重载寄存器:

●自动预装载已使能(TIM1_CR1 寄存器的ARPE 位置位)。在此模式下,写入

自动重载寄存器的数据将被保存在预装载寄存器中,并在下一个更新事件(UEV)时传送到影子寄存器。

●自动预装载已禁止(TIM1_CR1 寄存器的ARPE 位清除)。在此模式下,写入自动重载寄存器的数据将立即写入影子寄存器。

更新事件的产生条件:

●计数器向上或向下溢出。

●软件置位了TIM1_EGR 寄存器的UG 位。

●时钟/触发控制器产生了触发事件。

在预装载使能时(ARPE=1),如果发生了更新事件,预装载寄存器中的数值(TIM1_ARR)将写入影子寄存器中,并且TIM1_PSCR 寄存器中的值将写入预分频器中。

置位TIM1_CR1 寄存器的UDIS 位将禁止更新事件(UEV)。

计数器由预分频器的输出CK_CNT 驱动,而CK_CNT 仅在IM1_CR1 寄存器的计数器使能位(CEN)被置位时才有效。

简要说明:

CK_PSC 的时钟来源于f_master,我们使用16M 内部时钟源HIS

然后可以通过PSCR 这个寄存器设置CK_CNT,PSCR 是2 个8 位寄存器组成的16 位寄存器,可以在0~65535 之间任务分频,分频后的频率提供给CK_CNT

我们的实验为了方便计算,CK_CNT 为1K 的频率,所以PSCR = 16M/1K = 16000,换成16 进制为0x3E80

我们使用了默认的向上溢出,所以为了500ms 溢出中断一次,需要设置ARPE

这个定时器,而且设置为自动预装功能,这样就可以一直提供2Hz 的频率中断最后允许中断和计数器使能就可以实现我们的功能

有了以上的基础就可以进入到TIM1 的基本定时器编程了,为了验证效果,我们采用了LED0 作为判断依据。在TIM1 的溢出中断服务程序中闪耀LED0

程序代码如下:

#include "iostm8s207rb.h"

#define LED1_FLASH PD_ODR_ODR0 = !PD_ODR_ODR0

void CLK_Init(void);

void GPIO_Init(void);

void TIM1_Init(void);

void main( void )

{

CLK_Init();

GPIO_Init();

TIM1_Init();

asm("rim");

// 主循环里没有程序需要执行

while(1);

}

void CLK_Init(void)

{

CLK_CKDIVR = 0x00; // 16M内部RC直接输出

}

void GPIO_Init(void)

{

PD_DDR = 0x01; // 配置PD端口的方向寄存器PD0输出

PD_CR1 = 0x01; // 设置PD0为推挽输出

PD_ODR = 0xFF;

}

void TIM1_Init(void)

{

TIM1_PSCRH = 0x3E; // 16M系统时钟经预分频f=fck/(PSCR+1)

TIM1_PSCRL = 0x7F; // PSCR=0x3E7F,f=16M/(0x3E7F+1)=1000Hz

//每个计数周期1ms

TIM1_ARRH = 0x01; // 自动重载寄存器ARR=0x01F4=500

TIM1_ARRL = 0xF4; // 每记数500次产生一次中断,即500ms

TIM1_IER = 0x01; // 允许更新中断

TIM1_CR1 = 0x01; // 计数器使能,开始计数

}

#pragma vector=TIM1_OVR_UIF_vector //0x0D

__interrupt void TIM1_OVR_UIF(void)

{

LED1_FLASH;

TIM1_SR1 = 0; //清除中断标记,这步不能漏掉,否则会连续进入中断程序

}

编译下载后就可以看到LED1一闪一闪的,闪耀的频率我们设置是2Hz,大家也可以设置不一样的定时时间,我们只是简单介绍如何使用TIM1的基本定时功能

例程2、16位通用定时器TIM2、TIM3

TIM2/TIM3的功能包括:

●16位向上计数和自动装载计数器

●4位可编程(可以实时修改的)预分频器,计数器时钟频率的分频系数为1~32768之间的2的幂

●3个独立通道:

输入捕获

输出比较

PWM生成(边缘对齐模式)

单脉冲模式输出

●如下事件发生时产生中断:

更新:计数器向上溢出,计数器初始化(通过软件)

输入捕获

输出比较

和TIM1介绍一样,下面介绍时基单元

时基单元包含:

16位向上计数器

预分频器

16位自动装载寄存器

没有重复寄存器。计数器使用内部时钟(fMASTER),它由CK_PSC提供,并经过预分频器分频产生计数器时钟CK_CNT。

预分频器

预分频器的实现:

预分频器基于4位寄存器控制的16位计数器,由于寄存器带有缓冲器因此可以随时修改预分频的数值。计数器可以取值为1到32768之间的2的幂进行分频。

计数器时钟频率的计算公式:

fCK_CNT = fCK_PSC/2(PSCR[3:0])]

预分频器的值由预装载寄存器写入。一旦写入预装载寄存器的LS字节时,带有当前使用值的影子寄存器就被写入了新的值。

新的预分频值在下一个周期时生效(在下一个更新事件之后)。

对TIMx_PSCR寄存器的读操作通过预装载寄存器实现,因此可以随时读取不受限制。

TIM2、TIM3与TIM1不同之处是预分频器并非在0~65535之间的认为分频系数,而是1到32768之间2的幂进行分频。关于TIM2和TIM3的预分频寄存器如下:

这次实验是TIM2、TIM3同时工作,因为预分频系数不能随意设置,所以为了计算方便,我们设置为1024分频,也就是PSC = 0x0A,经过分频后的频率是15.625K,也就是0.064ms

因此500ms/0.064 = 7813 转为16进制是1E84,所以1S的定时是3D08,有了这些参数就可以开始我们例程二的软件代码编写了

#include "iostm8s207rb.h"

#define LED1_FLASH PD_ODR_ODR0 = !PD_ODR_ODR0

#define LED2_FLASH PD_ODR_ODR1 = !PD_ODR_ODR1

#define LED3_FLASH PD_ODR_ODR2 = !PD_ODR_ODR2

void CLK_Init(void);

void GPIO_Init(void);

void TIM1_Init(void);

void TIM2_Init(void);

void TIM3_Init(void);

void main( void )

{

CLK_Init();

GPIO_Init();

TIM1_Init();

TIM2_Init();

TIM3_Init();

asm("rim");

// 主循环里没有程序需要执行

while(1);

}

void CLK_Init(void)

{

CLK_CKDIVR = 0x00; // 16M内部RC直接输出

}

void GPIO_Init(void)

{

PD_DDR = 0x07; // 配置PD端口的方向寄存器PD0输出

PD_CR1 = 0x07; // 设置PD0为推挽输出

PD_ODR = 0xFF;

}

void TIM1_Init(void)

{

TIM1_PSCRH = 0x3E; // 16M系统时钟经预分频f=fck/(PSCR+1) TIM1_PSCRL = 0x7F; // PSCR=0x3E7F

TIM1_ARRH = 0x00; // 自动重载寄存器ARR=0x00FA=250

TIM1_ARRL = 0xFA; // 每记数250次产生一次中断,即250ms TIM1_IER = 0x01; // 允许更新中断

TIM1_CR1 = 0x01; // 计数器使能,开始计数

}

void TIM2_Init(void)

{

TIM2_PSCR = 0x0A; //16M系统时钟经预分频f=16M/1024=15.625k TIM2_ARRH = 0x1E; //15.625k * 7813 = 500ms

TIM2_ARRL = 0x84;

TIM2_IER = 0x01; //运行更新中断

TIM2_CR1 = 0x01; //使能计数器

}

void TIM3_Init(void)

{

TIM3_PSCR = 0x0A; //16M系统时钟经预分频f=16M/1024=15.625k TIM3_ARRH = 0x3D; //15.625k * 15626 = 1s

TIM3_ARRL = 0x08;

TIM3_IER = 0x01; //允许更新中断

TIM3_CR1 = 0x01; //使能计数器

}

#pragma vector=TIM1_OVR_UIF_vector //0x0D

__interrupt void TIM1_OVR_UIF(void)

{

LED1_FLASH;

TIM1_SR1 = 0; //这步不能漏掉,否则会连续进入中断程序

}

#pragma vector=TIM2_OVR_UIF_vector //0x0F

__interrupt void TIM2_OVR_UIF(void)

{

LED2_FLASH;

TIM2_SR1 = 0; //这步不能漏掉,否则会连续进入中断程序

}

#pragma vector=TIM3_OVR_UIF_vector //0x11

__interrupt void TIM3_OVR_UIF(void)

{

LED3_FLASH;

TIM3_SR1 = 0; //这步不能漏掉,否则会连续进入中断程序

}

编译下载后就可以看到LED1、LED2、LED3在不停闪耀,而且是LED1闪耀两次LED2才闪耀一次,LED2闪耀两次LED3才闪耀一次。验证了我们的定时器正常工作了

例程三、8位基本定时器TIM4

TIM4简介

该定时器由一个带可编程预分频器的8位可自定重载的向上计数器组成,它可以用来作为时基发生器,具有溢出中断功能。本例程也是利用到这个功能。

TIM4的主要功能

8位向上计数的自动重载计数器

3位可编程的预分频器(可在运行中修改)

中断产生

TIM4的框图

TIM4的时钟选择

该定时器的时钟源是内部时钟f_master。该时钟源直接连接到CK_PSC时钟,CK_PSC时钟通过预分频器分频后给定时器提供CK_CNT时钟

预分频器

预分频器是基于由一个3位寄存器来控制的一个7位计数器。由于该控制寄存器是带缓冲的所以它可以再系统运行中被修改。可以分频计数器的时钟频率为1到128之间的2的任意次幂。

简要说明:

因为这个定时器的最大分频系数才只有128,就算分频128后还是相当高的频率,不善于我们观察LED的状态,所以我们通过设置CLK_CKDIVR的寄存器设置HIS 输出为2M的f_master

我们采用的是2M内部时钟,所以CK_PSC = 2M,经过128分频后为CK_CNT为

15.625k,也就是0.064ms,所以就算ARR最大时,定时的时间也才10几个ms,不便于我们观察。所有我们在中断服务程序中记录一定的次数才让LED改变状态一次相比之下这个定时器的功能和操作都比较简单,我们的例程就是实现之前的功能,在定时器中断服务程序中改变LED0的状态,详细软件代码如下:

需要注意的时,IAR编译器把TIM4_SR1修改成TIM4_SR,在编写代码时希望记住

程序代码如下:

#include "iostm8s207rb.h"

#define LED1_FLASH PD_ODR_ODR0 = !PD_ODR_ODR0

void CLK_Init(void);

void GPIO_Init(void);

void TIM4_Init(void);

void main( void )

{

CLK_Init();

GPIO_Init();

TIM4_Init();

asm("rim");

// 主循环里没有程序需要执行

while(1);

}

void CLK_Init(void)

{

CLK_CKDIVR = 0x18; // 2M内部RC直接输出

}

void GPIO_Init(void)

{

PD_DDR = 0x01; // 配置PD端口的方向寄存器PD0输出

PD_CR1 = 0x01; // 设置PD0为推挽输出

PD_ODR = 0xFF;

}

void TIM4_Init(void)

{

TIM4_PSCR = 0x07; // 2M的128分频

TIM4_ARR = 0x64; //6.4ms

TIM4_IER = 0x01; // 允许更新中断

TIM4_CR1 = 0x01; // 计数器使能,开始计数

}

#pragma vector=TIM4_OVR_UIF_vector //0x19

__interrupt void TIM4_OVR_UIF(void)

{

static unsigned char value = 0;

if(value >= 78)

{

LED1_FLASH;

value = 0;

}

value++;

TIM4_SR = 0; // 这步不能漏掉,否则会连续进入中断程序

}

编译下载后发现和TIM1的效果相当,但是同样的效果,TIM4占用了更多的CPU使用时间,因为TIM1一次的中断,TIM4要经过78次中断,所以效率不高。当然TIM4可以用在更短时间的编程,而我们只是一个例子说明TIM4的使用方法。

Ansys 第 例瞬态热分析实例一水箱

第33例瞬态热分析实例——水箱 本例介绍了利用ANSYS进行瞬态热分析的方法和步骤、瞬态热分析时材料模型所包含的内容,以及模型边界条件和初始温度的施加方法。 33.1概述 热分析是计算热应力的基础,热分析分为稳态热分析和瞬态热分析,稳态热分析将在后面两个例子中介绍,本例介绍瞬态热分析。 33.1.1 瞬态热分析的定义 瞬态热分析用于计算系统随时间变化的温度场和其他热参数。一般用瞬态热分析计算温度场,并找到温度梯度最大的时间点,将此时间点的温度场作为热载荷来进行应力计算。 33.1.2 嚼态热分析的步骤 瞬态热分析包括建模、施加载荷和求解、查看结果等几个步骤。 1.建模 瞬态热分析的建模过程与其他分析相似,包括定义单元类型、定义单元实常数、定义材料特性、建立几何模型和划分网格等。 注意:瞬态热分析必须定义材料的导热系数、密度和比热。 2.施加载荷和求解 (1)指定分析类型, Main Menu→Solution→Analysis Type→New Analysis,选择 Transient。 (2)获得瞬态热分析的初始条件。 定义均匀的初始温度场:Main Menu→Solution→Define Loads→Settings→Uniform Temp,初始温度仅对第一个子步有效,而用Main Menu →Solution→Define Loads→Apply→Thermal→Temperature命令施加的温

度在整个瞬态热分析过程中均不变,应注意二者的区别。 定义非均匀的初始温度场:如果非均匀的初始温度场是已知的,可以用Main Menu→Solution→Define Loads→Apply→Initial Condit'n→Define 即IC命令施加。非均匀的初始温度场一般是未知的,此时必须先进行行稳态分析确定该温度场。该稳态分析与一般的稳态分析相同。 注意:要设定载荷(如已知的温度、热对流等),将时间积分关闭,选择Main Menu→Solution→Load Step Opts→Time/Frequenc→Time Integration→Amplitude Decay;设定只有一个子步,时间很短(如(0.01s)的载荷步, Main Menu→Solution→Load Step Opts→Time/Frequenc→Time →Time Step。 (3)设置载荷步选项。 普通选项包括每一载荷步结束的时间、每一载荷步的子步数、阶跃选项等,选择Main Menu→Solution→Load Step Opts→Time/Frequenc→Time-Time Step. 非线性选项包括:迭代次数(默认25),选择Main Menu→Solution→Load Step Opts→Nonlinear→Equilibrium Iter;打开自动时间步长,选择Main Menu→Solution→Load Step Opts→Time/Frequenc→Time→Time Step:将时间积分打开,选择Main Menu→Solution→Load Step Opts→Time/Frequenc→Time Integration→Amplitude Decay. 输出选项包括:控制打印的输出,选择Main Menu→Solution→Load Step Opts→Output Ctrls→Solu Printout; 结果文件的输出,选择Main Menu →Solution→Load Step Opts→Output Ctrls→DB/Results File.

8.7非线性瞬态分析步骤帮助学习

8.7. Performing a Nonlinear Transient Analysis Many of the tasks that you need to perform in a nonlinear transient analysis are the same as (or similar to) those that you perform in nonlinear static analyses (described in Performing a Nonlinear Static Analysis) and linear full transient dynamic analyses (described in Structural Static Analysis). However, this section describes some additional considerations for performing a nonlinear transient analysis. Remember that the Solution Controls dialog box, which is the method described in Performing a Nonlinear Static Analysis, cannot be used to set solution controls for a thermal analysis. Instead, you must use the standard set of ANSYS solution commands and the standard corresponding menu paths. 8.7.1. Build the Model This step is the same as for a nonlinear static analysis. However, if your analysis includes time-integration effects, be sure to include a value for mass density [MP,DENS]. If you want to, you can also define material-dependent structural damping [MP,DAMP]. 8.7.2. Apply Loads and Obtain the Solution 1.Specify transient analysis type and define analysis options as you would for a nonlinear static analysis: ?New Analysis or Restart [ANTYPE] ?Analysis Type: Transient [ANTYPE] ?Large Deformation Effects [NLGEOM] ?Large Displacement Transient (if using the Solution Controls dialog box to set analysis type) 2.Apply loads and specify load step options in the same manner as you would for a linear full transient dynamic analysis. A transient load history usually requires multiple load steps, with the first load step typically used to establish initial conditions (see the Basic Analysis Guide). The general, nonlinear, birth and death, and output control options available for a nonlinear static analysis are also available for a nonlinear transient analysis. In a nonlinear transient analysis, time must be greater than zero. See Transient Dynamic Analysis for procedures for defining nonzero initial conditions.

ANSYS稳态和瞬态分析步骤简述

ANSYS 稳态和瞬态热模拟基本步骤 基于ANSYS 9.0 一、 稳态分析 从温度场是否是时间的函数即是否随时间变化上,热分析包括稳态和瞬态热分析。其中,稳态指的是系统的温度场不随时间变化,系统的净热流率为0,即流入系统的热量加上系统自身产生的热量等于流出系统的热量: =0q q q +-流入生成流出 在稳态分析中,任一节点的温度不随时间变化。 基本步骤:(为简单起见,按照软件的菜单逐级介绍) 1、 选择分析类型 点击Preferences 菜单,出现对话框1。 对话框1 我们主要针对的是热分析的模拟,所以选择Thermal 。这样做的目的是为了使后面的菜单中只有热分析相关的选项。 2、 定义单元类型 GUI :Preprocessor>Element Type>Add/Edit/Delete 出现对话框 2 对话框2 (3-1)

点击Add,出现对话框3 对话框3 在ANSYS中能够用来热分析的单元大约有40种,根据所建立的模型选择合适的热分析单元。对于三维模型,多选择SLOID87:六节点四面体单元。 3、选择温度单位 默认一般都是国际单位制,温度为开尔文(K)。如要改为℃,如下操作GUI:Preprocessor>Material Props>Temperature Units 选择需要的温度单位。 4、定义材料属性 对于稳态分析,一般只需要定义导热系数,他可以是恒定的,也可以随温度变化。 GUI: Preprocessor>Material Props> Material Models 出现对话框4 对话框4 一般热分析,材料的热导率都是各向同性的,热导率设定如对话框5. 对话框5

ANSYS瞬态动力学分析步骤

ANSYS模态分析步骤 第1步:载入模型Plot>V olumes,输入/units,SI(即统一单位M/Kg/S)。若为组件,则进行布尔运算:Main Menu>Preprocessor>Modeling>Operate>Booleans>Glue(或Add)>V olumes 第2步:指定分析标题/工作名/工作路径,并设置分析范畴 1 设置标题等Utility Menu>File>Change Title/ Change Jobname/ Change Directory 2 设置分析范畴Main Menu>Preference,单击Structure,OK 第3步:定义单元类型 Main Menu>Preprocessor>Element Type>Add/Edit/Delete,→Element Types对话框,单击Add→Library of Element Types对话框,选择Structural Solid,再右滚动栏选择Brick 20node 95,然后单击OK,单击Element Types对话框中的Close按钮就完成这项设置了。 第4步:指定材料性能 Main Menu>Preprocessor>Material Props>Material Models→Define Material Model Behavior,右侧Structural>Linear>Elastic>Isotropic,指定弹性模量EX、泊松系数PRXY;Structural>Density指定密度。第5步:划分网格 Main Menu>Preprocessor>Meshing>MeshTool,出现MeshTool对话框,一般采用只能划分网格,点击SmartSize,下面可选择网格的相对大小,保留其他选项,单击Mesh出现Mesh V olumes对话框,其他保持不变单击Pick All,完成网格划分。当内存不足时,取消SmartSize 第6步:进入求解器并指定分析类型和选项 Main Menu>Solution>Analysis Type>New Analysis,出现New Analysis对话框,选择Modal,OK。Main Menu>Solution> Analysis Type>Analysis Options,将出现Modal Analysis对话框,选中Subspace 模态提取法,在No. of modes to extract处输入相应的值(一般为5或10),单击OK,出现Subspace Model Analysis对话框,输入Start Freq值,即频率的起始值,其他保持不变(也可输入End Frequency,即输入频率范围;此时扩展模态仅在此范围内取值),单击OK。 第7步:施加边界条件 Main Menu>Solution>Define loads>Apply>Structural>Displacement,出现ApplyU,ROT on KPS对话框,选择在点、线或面上施加位移约束,单击OK会打开约束种类对话框,选择(All DOF,UX,UY,UZ)相应的约束,单击apply(多次选择)或OK即可。 第8步:指定要扩展的模态数 Main Menu>Solution>Load Step Opts>ExpansionPass>Single Expand>Expand Modes,出现Expand Modes对话框,在No. of modes to expand 处输入第6步相应的数字,单击OK即可。 注意:在第6步NMODE No. of modes to expand输入扩展模态数后,第8步可省略。 第9步:进行求解计算 Main Menu>Solution>Solve>Current LS。浏览在/STAT命令对话框中出现的信息,然后使用File>Close 关闭该对话框,单击OK。在出现警告(不一定有)“A check of your model data produced 1 Warning。Should the SOLV command be executed?”时单击Yes,求解过程结束后单击close。 第10步:列出固有频率 Main Menu>General Postproc>Results Summary。 第11步:动画显示模态形状 查看某阶模态的变形,先读入求解结果。执行Main Menu>General Postproc>Read results>first Set,然后执行1.Main Menu>General Postproc>Plot Results>Deformed Shape,在弹出对话框中选择“Def+undefe edge”或执行 2.PlotCtrls>Animate>mode shape,出现对话框,左边滚动栏不变,在右边滚动栏选择“Def+undefe edge”,单击OK,可查看动画效果。如果需要看其他阶模态,执行Main Menu>General Postproc>Read results>Next Set,重复执行上述步骤即可。 第12步:结束分析SA VE_DB; Main Menu>Finish

ANSYS瞬态动力学分析步骤

瞬态动力学分析步骤 进行瞬态动力学分析主要有:FULL(完全法)、Reduced(缩减法)和Mode Superposition(模态叠加法)。书上介绍的一般都是FULL法,其分析过程主要有8个步骤: (1)前处理(建立模型和划分网格) (2)建立初始条件 (3)设定求解控制器 (4)设定其他求解选项 (5)施加载荷 (6)设定多载荷步 (7)瞬态求解 (8)后处理(观察结果) 1 Full法步骤具体步骤如下: 第1步:载入模型Plot>V olumes 第2步:指定分析标题并设置分析范畴 1 设置标题等Utility Menu>File>Change Title Utility Menu>File> Change Jobname Utility Menu>File>Change Directory 2 选取菜单途径Main Menu>Preference ,单击Structure,单击OK 第3步:定义单元类型 Main Menu>Preprocessor>Element Type>Add/Edit/Delete,出现Element Types对话框, 单击Add出现Library of Element Types 对话

框,选择Structural Solid,再右滚动栏选择Brick 20node 95,然后单击OK,单击Element Types对话框中的Close按钮就完成这项设置了。第4步:指定材料性能 选取菜单途径Main Menu>Preprocessor>Material Props>Material Models。出现Define Material Model Behavior对话框,在右侧Structural>Linear>Elastic>Isotropic,指定材料的弹性模量和泊松系数,Structural>Density指定材料的密度,完成后退出即可。 第5步:划分网格 选取菜单途径Main Menu>Preprocessor>Meshing>MeshTool,出现MeshTool对话框,一般采用只能划分网格,点击SmartSize,下面可选择网格的相对大小(太小的计算比较复杂,不一定能产生好的效果,一般做两三组进行比较),保留其他选项,单击Mesh出现Mesh V olumes对话框,其他保持不变单击Pick All,完成网格划分。 第6步:建立初始条件 Main Menu>Preprocessor>Loads>define loads>Apply>Initial Condit’n>Define,弹出Define Initial Conditions拾取菜单,在大端面拾取一节点,单击OK,弹出对话框,在Lab DOF to be specified 选择相应的方向,以及初始位移和初始速度 第7步:设定求解类型和求解控制器 Main Menu>Solution>Analysis Type>New analysis,选择Transient,然后选择Full,其他默认,单击OK。 设置求解控制器:Main Menu>Solution>Analysis Type>Sol’n

ANSYS瞬态分析实例

例题:一根钢梁支撑着集中质量并承受一个动态载荷(如图1所示)。钢梁长为L,支撑着一个集中质量M。这根梁承受着一个上升时间为t1的值为F1 的动态载荷F(t)。梁的质量可以忽略,确定产生最大位移响应时的时间t max和响应y max。 图1 钢梁支撑集中质量的几何模型 材料特性:弹性模量为2e5MPa,质量为M=,质量阻尼为8; 几何尺寸为:L=450mm,I=800.6mm4,h=18mm; 载荷为:F1=20N,t1= GUI操作方式: 1.定义单元类型:Main Menu>Preprocessor>Element Type>Add/Edit/Delete,出现一个对话框,单击“Add”,又出现一个对话框,在对话框左面的列表栏中选择“Structural Beam”,在右面的列表栏中选择“2D elastic 3”,单击“Apply”,在对话框左面的列表栏中选择“Structural Mass”,在右边选择“3D mass 21”,单击“OK”,在单击“Options”,弹出对话框,设置K3为“2-D W/O rot iner”,单击“OK”,再单击“Close”。 2.设置实常数:Main Menu>Preprocessor>Real Constants> Add/Edit/Delete,出

现对话框,单击“Add”,又弹出对话框,选择“Type1 BEAM3”,单击“OK”,又弹出对话框,输入AREA为1,IZZ=,HEIGHT=18,单击“OK”,在单击“Add”,选择Type 2 MASS21,单击“OK”,设置MASS为,单击“OK”,再单击“Close”。; 3.定义材料属性:Main Menu>Preprocessor>Material Props>Material Modls,出现对话框,在“Material Models Available”下面的对话框中,双击打开“Structural>Linear>Elastic>Isotropic”,又出现一个对话框,输入弹性模量EX=2e5,泊松比PRXY=0,单击“OK”,单击“Materal>Exit”。 4.建立模型: 1)创建节点:依次单击Main Menu>Preprocessor>Modeling>Create>Nodes>In Active CS,在弹出对话框中,依次输入节点的编号1,节点坐标x=0,y=0,然后单击“Apply”,输入节点编号2,节点坐标x=450/2,y=0,然后单击“Apply”,输入节点编号3,节点坐标x=450,y=0。单击“OK”。 2)创建单元:依次单击Main Menu>Preprocessor>Modeling>Create>Elements >Auto Numbered>Thru Nodes,弹出拾取框,拾取节点1和2,2和3,单 击“OK”。 3)指定单元实常数:Main Menu>Preprocessor>Modeling>Create>Elements> Elem Attributes,弹出对话框,设置TYPE为2,REAL为2,单击“OK”。4)创建单元:依次单击Main Menu>Preprocessor>Modeling>Create>Elements >Auto Numbered>Thru Nodes,弹出拾取框,拾取节点2,单击“OK”。

ANSYS瞬态传热分析教程

ANSYS瞬态传热分析教程 瞬态传热分析的定义 瞬态热分析用于计算一个系统的随时间变化的温度场及其它热参数。在工程上一般用瞬态热分析计算温度场,并将之作为热载荷进行应力分析。 瞬态热分析的基本步骤与稳态热分析类似。主要的区别是瞬态热分析中的载荷是随时间变化的。为了表达随时间变化的载荷,首先必须将载荷~时间曲线分为载荷步。载荷~时间曲线中的每一个拐点为一个载荷步,如下图所示。 对于每一个载荷步,必须定义载荷值及时间值,同时必须选择载荷步为渐变或阶越。 瞬态热分析中的单元及命令 瞬态热分析中使用的单元与稳态热分析相同。要了解每个单元的详细说明,请参阅《A NSYS Element Reference Guide》 ANSYS 瞬态热分析的主要步骤 建模 加载求解 后处理 建模 确定jobname、title、units, 进入PREP7; 定义单元类型并设置选项; 如果需要,定义单元实常数; 定义材料热性能:一般瞬态热分析要定义导热系数、密度及比热; 建立几何模型; 对几何模型划分网格。 加载求解 1、定义分析类型 如果第一次进行分析,或重新进行分析 GUI: Main Menu>Solution>Analysis Type>New Analysis>Transient Command: ANTYPE,TRANSIENT,NEW 如果接着上次的分析继续进行(例如增加其它载荷) GUI: Main Menu>Solution>Analysis Type>Restart Command: ANTYPE,TRANSIENT,REST 2、获得瞬态热分析的初始条件 ①、定义均匀温度场 如果已知模型的起始温度是均匀的,可设定所有节点初始温度 Command:TUNIF

瞬态动力学分析02

§3.4.2.3零初始位移和非零初始速度 非零速度是通过对结构中需指定速度的部分加上小时间间隔上的小位移来实 现的。比如如果=0.25,可以通过在时间间隔0.004内加上0.001的位移来实现,命令流如下: ... TIMINT,OFF! Time integration effects off D,ALL,UY,.001! Small UY displ. (assuming Y-direction velocity) TIME,.004! Initial velocity = 0.001/0.004 = 0.25 LSWRITE! Write load data to load step file (Jobname.S01) DDEL,ALL,UY! Remove imposed displacements TIMINT,ON! Time integration effects on ... §3.4.2.4非零初始位移和非零初始速度 和上面的情形相似,不过施加的位移是真实数值而非“小”数值。比如,若= 1.0且= 2.5,则应当在时间间隔0.4内施加一个值为1.0的位移:... TIMINT,OFF! Time integration effects off D,ALL,UY,1.0! Initial displacement = 1.0 TIME,.4! Initial velocity = 1.0/0.4 = 2.5 LSWRITE! Write load data to load step file (Jobname.S01) DDELE,ALL,UY! Remove imposed displacements TIMINT,ON! Time integration effects on

相关文档