数字PID调节双闭环PWM调速系统的设计Word文档格式.docx

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

数字PID调节双闭环PWM调速系统的设计Word文档格式.docx

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

数字PID调节双闭环PWM调速系统的设计Word文档格式.docx

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<

stdio.h>

#include<

math.h>

#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;

sp=set_point;

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

pid_tune功能描述:

结构体变量一致.

修改日期:

20011.05.24

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

pgain=p_gain;

pid->

igain=i_gain;

dgain=d_gain;

deadband=dead_band;

integral=integral_val;

last_error=0;

}

pid_setinteg功能描述:

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

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

voidpid_setinteg(struct_pid*pid,floatnew_integ)

integral=new_integ;

last_error=0;

pid_bumpless功能描述:

修改日期:

voidpid_bumpless(struct_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->

if(abs(err)>

deadband)

ferror=(float)err;

/*dointegertofloatconversiononlyonce*/pterm=pid->

pgain*ferror;

if(pterm>

100||pterm<

-100)

{//积分分离pid->

integral=0.0;

else{

integral+=pid->

igain*ferror;

if(pid->

integral>

100.0)//抗积分饱和,防最大溢出

integral=100.0;

elsei

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

当前位置:首页 > 考试认证 > 其它考试

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

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