数字PID调节双闭环PWM调速系统的设计.docx
- 文档编号:1077145
- 上传时间:2022-10-16
- 格式:DOCX
- 页数:17
- 大小:313.34KB
数字PID调节双闭环PWM调速系统的设计.docx
《数字PID调节双闭环PWM调速系统的设计.docx》由会员分享,可在线阅读,更多相关《数字PID调节双闭环PWM调速系统的设计.docx(17页珍藏版)》请在冰豆网上搜索。
数字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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 PID 调节 闭环 PWM 调速 系统 设计