数字PID调节双闭环PWM调速系统的设计.docx

上传人:b****3 文档编号:1077145 上传时间:2022-10-16 格式:DOCX 页数:17 大小:313.34KB
下载 相关 举报
数字PID调节双闭环PWM调速系统的设计.docx_第1页
第1页 / 共17页
数字PID调节双闭环PWM调速系统的设计.docx_第2页
第2页 / 共17页
数字PID调节双闭环PWM调速系统的设计.docx_第3页
第3页 / 共17页
数字PID调节双闭环PWM调速系统的设计.docx_第4页
第4页 / 共17页
数字PID调节双闭环PWM调速系统的设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数字PID调节双闭环PWM调速系统的设计.docx

《数字PID调节双闭环PWM调速系统的设计.docx》由会员分享,可在线阅读,更多相关《数字PID调节双闭环PWM调速系统的设计.docx(17页珍藏版)》请在冰豆网上搜索。

数字PID调节双闭环PWM调速系统的设计.docx

数字PID调节双闭环PWM调速系统的设计

运动控制系统期中试题08级

M

数字H调节双闭环调速系统设计

自动化

 

数字PID调节双闭环PW调速系统设计

摘要:

以双极式可逆PWh直流调速系统为目标,采用STC89C51控制器PID算法实现两个

PI调节器,分别构成转速、电流双闭环,采用TL094(PWM脉宽调制器产生PWM波,再经过TPS2812MOSFE驱动器放大,最终实现调节给定改变PWM占空比进而调节电机的运行状态。

关键字:

双闭环数字PI调节器PWM调速

1引言直流电动机因其可以方便地通过改变电枢电压和励磁电流实现宽范围的调速而得到广泛的应用,而PWM调速系统又因其优点,应用日益广泛。

本文采用数字PID算法的双极式可逆PWM调速系统的方法及实现过程。

2方案选择与论证

2.1概述

PWMft流调速系统可分为微机控制的数字系统和模拟器件电路组成的模拟系统。

具体实现则又分为PID调节器和PWMft宽调制的数字与模拟实现,而不同的方法其实现的难易程度及侧重点各不相同。

2.2方案选择

2.1.1脉宽调制的方法

1多谐振荡器或单稳态触发器组成的脉宽调制器。

2用比较器产生锯齿波或三角波统同可调的基准比较获得脉宽调制。

开关芯片TL494基本组成原理便属于这一种。

②数字脉宽调制。

采用微机控制系统,直接采用IO获得PWM波形,程序繁琐,通常采用带片上PWM资源的处理器,如C8051F040的PCA很容易产生PWM波形。

2.1.2PI调节器

1模拟PID特别容易实现,只需要用运算放大器构成比例、积分和微分电路即可,应用的意义已不太大。

2数字PID算法。

其使用已越来越广泛,而且更容易实现微机的数字控制,因此已成为主流。

2.1.3最终选择

综合以上,本文选择数字PID算法实现PI调节器,用有固定频率的开关芯片的TL494,实现PWI波调制。

通过模拟与数字结合,最终完成双闭环直流调速系统。

图1.2系统原理框图

3.1直接参数

Uim

1nom

3参数计算

101.35

2*3.7

Unma—

nmax

-10-0.05

200

 

3.2电流环:

3.2.1时间常数

失控时间,即滞后时间:

Ts^*=o,.oois电流反馈滤波时间常数Toi=0.001s

按小时间常数近似处理T7=TsTo^0.002S

3.2.2选择电流调节器结构

根据设计要求:

「空5%,而且

因此可按典型I型系统设计。

电流调节器选用PI型,其传递函数为:

电流环开环增益:

要求J*5%,按表2-2,应取心匚严0.5,因此

于是ACR比例系数为:

3.2.3检验近似条件:

电流环截止频率wc^K^250S4

现在,——333.3SAwci,满足近似条件

3Ts3x0.0005s

 

现在,1二=3-0.20.015宀5心叫满足近似条件

3电流环小时间常数近似处理条件:

wci空11

3耳Ts「i

现在,111sA-333.3sJWci

3\TsToi3^0.001汉0.001

3.2.4计算调节器电阻电容

R=心Ro=4.62540kQ-185k1,取185kJ

按照上述参数,电流环可以达到的动态跟随性能指标为「%=4.3%:

5%

图3-1电压调节器

3.3转速环:

3.3.1确定时间常数

①电流环等效时间常数为:

K,=2T7=0.004S

②转速滤波时间常数Ton.

③转速环小时间常数T荀

3.3.2选择转速调节器结构

该按典型II型系统设计转速环

由于设计要求无静差,转速调节器必须含有积分环节,又根据动态要求,应故ASR选用PI调节器,其传递函数为

Wasr卡亠

JS

3.3.3选择转速调节器参数

取h=5,则ASR的超前时间常数为

按跟随和抗扰性都较好的原则,

n=hT^=50.009=0.045s

转速环开环增益

334检验近似条件转速环截止频率为

K

N-KNn-14710.045=66.645s'

W-!

 

现在,1K,J250S—117.8S「Wen,满足简化条件。

3\T1L3\0.02

 

现在,=1J上=74.5>Wen,满足近似条件。

3\Ton3\0.005

335计算调节器电阻和电容

转速调节器原理如下图所示,取R。

=47心,则

Rn=KnR°=5.440k—-216kj,取200k;_:

.

Cnn^045^106吓=0.208」,取0.20平

Rn216103

Con=理=40.005106吓=0~F,取05F

Ro40103

3.3.5校核转速超调量

IiCmaxnnomTn

-n一%2-Z一-

CbnnomTm

当h=5时,玉竺%=81.2%;而.:

nnom=也込二3^8=246.67r/min,因此

CbCe0.12

图3-2电流调节器

4数字PI

4.1程序算法:

算法是程序的核心,因此PID算法的实现至关重要。

开始

图4-1PID算法框图图4-2主程序流程框图

在电流环和转速环的设计中,我选择的是PI调节器,我设计的是一个PID所有参数均可调

的函数,所以使用时只要改变相应的参数即可得到所要的PI控制器,具体设置方法请参考

主程序。

4.1.1PID算法

#inelude

#include

#include"PID.H"

/******************************************************************************

*功能:

定义结构体变量

******************************************************************************/struct_pid{

intpv;/*integerthatcontainstheprocessvalue*/

intsp;/*integerthatcontainsthesetpoint*/

floatintegral;

floatpgain;

floatigain;

floatdgain;

intdeadband;

intlast_error;

};

struct_pidwarm,*pid;

intprocess_point,set_point,dead_band;

floatp_gain,i_gain,d_gain,integral_val,new_integ;

****************************************************************************

*函数名:

pid_init

功能描述:

PID初始化,通过设定*pv、*sp赋值修改日期:

20011.05.24******************************************************************************/voidpid_init(struct_pid*warm,intprocess_point,intset_point)

{

struct_pid*pid;

pid=warm;

pid->pv=process_point;

pid->sp=set_point;

}/******************************************************************************

*函数名:

pid_tune功能描述:

结构体变量一致.

修改日期:

20011.05.24

******************************************************************************/voidpid_tune(struct_pid*pid,floatp_gain,floati_gain,floatd_gain,intdead_band){

pid->pgain=p_gain;pid->igain=i_gain;

pid->dgain=d_gain;pid->deadband=dead_band;pid->integral=integral_val;

pid->last_error=0;

}

/******************************************************************************

*函数名:

pid_setinteg功能描述:

//PID结构体中的偏差成员更新修改日期:

20011.05.24

******************************************************************************/

voidpid_setinteg(struct_pid*pid,floatnew_integ)

{

pid->integral=new_integ;pid->last_error=0;

}/******************************************************************************

*函数名:

pid_bumpless功能描述:

修改日期:

20011.05.24

******************************************************************************/

voidpid_bumpless(struct_pid*pid)

pid->last_error=(pid->sp)-(pid->pv);

*函数名:

功能描述:

修改日期:

pid_calc

PID核心计算

20011.05.24

****************************************************************************

floatpid_calc(struct_pid*pid){

interr;

floatpterm,dterm,result,ferror;

err=(pid->sp)-(pid->pv);

if(abs(err)>pid->deadband)

{

ferror=(float)err;/*dointegertofloatconversiononlyonce*/pterm=pid->pgain*ferror;

if(pterm>100||pterm<-100)

{//积分分离pid->integral=0.0;

}

else{

pid->integral+=pid->igain*ferror;

if(pid->integral>100.0)//抗积分饱和,防最大溢出

{

pid->integral=100.0;

}

elsei

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1