数字PID控制器设计

2024-05-05

数字PID控制器设计(精选8篇)

篇1:数字PID控制器设计

一种单神经元PID控制的液压振动台数字伺服控制系统

文章将单神经元PID控制算法引入到液压数字伺服控制系统中,并通过系统的软、硬件设计,开发出了数字伺服控制系统样机.通过与某型液压振动台联试,系统运行稳定可靠.试验结果表明该伺服控制系统控制品质优良,具有较强的鲁棒性和自适应能力.

作 者:严侠 牛宝良 米晓兵 作者单位:中国工程物理研究院,结构力学研究所,绵阳,621900刊 名:航天器环境工程 ISTIC英文刊名:SPACECRAFT ENVIRONMENT ENGINEERING年,卷(期):200926(z1)分类号:V416.8关键词:液压振动台 伺服控制 PID控制 神经元网络

篇2:数字PID控制器设计

目录

一、PID简介··································(6)

二、设计原理··································(7)

三、设计方案··································(8)

四、心得体会

·······························(16)

五、参考文献 ·······························(16)

二、设计原理

基本的设计核心是运用PID调节器,从而实现直流电机的在带动负载的情况下也能稳定的运行。运用A/D转换芯片将滑动变阻器的模拟电压转换为数字量作为控制直流电机速度的给定值;用压控振荡器模拟直流电机的运行(电压高-转速高-脉冲多),单片机在单位时间内对脉冲计数作为电机速度的检测值;应用数字PID模型作单片机控制编程,其中P、I、D参数可按键输入并用LED数码显示;单片机PWM调宽输出作为输出值,开关驱动、电子滤波控制模拟电机(压控振荡器)实现对直流电机的PID调压调速功能。

基于以上的核心思想,我们把这次设计看成五个环节组成,其具体的原理如下见原理图2.0

图2.0 PID调速设计原理图

如图可以知道,这是一个闭环系统,我们借助单片机来控制,我们现运用AD芯片,运用单片机来控制AD芯片来转换模拟电压到数字电压,AD给定的电压越大,则产生的数字量越大,单片机再控制这个数字量来产生一个PWM,PWM占空比越大,就驱动晶体管导通的时间越长,这样加到压频转换器的电压也就越大,电压越大,则压频转换器输出的计数脉冲再单位时间也就越多,这样就相当于电机的电压越大,其转速也就会越快,我们再用单片机对压频转换器的输出脉冲计数,PID调节器就把这个计数脉冲和预先设定的 值进行比较,比设定值小,这样就会得到一个偏差,再把这个偏差加到AD的给定电压,这样就相当于加大了PWM的占空比,要是比设定值大,这样也会得到一个偏差,就把这个变差与给定的电压向减,这样就可以减少PWM的占空比,通过改变占空比来改变晶体管的导通时间,就可以改变压频转换器的输入电压,也就改变压频转换器的单位计数脉冲,达到调电动机速度的目的。

三、设计方案

3.1 PWM的调制

AD芯片给定一定的电压,应用单片机来控制来产生一个PWM,给定的电压不同,就会的得到不同的PWM波形。在产生PWM波形我们采用ADC0808芯片和AT89C51两个核心器件。

ADC0808芯片是要外加电压和时钟,当输入不同的电压的时候,就可以把不同的电压模拟量转化为数字值,输入的电压越大,其转换的相应的数字也就会越大,ADC0808芯片有8个通道输入和8个通道输出。其具体的管脚图见3.01

图3.01 ADC0808芯片管脚图

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.02所示

图3.02 AT89C51芯片管脚图

3.2基于单片机的数字PID控制直流电机PWM调压调速器系统 3.21调速原理

当基于以上产生一个PWM后,就可以借助PWM脉冲来控制晶体管的导通和关断,来给压频转换器来提供一定的电压,在PROTUES中仿真中,给定一个+12V的电压,就通过晶体管的导通和关断来给压频转换器供电,压频转换器就会输出很多的脉冲,借助单片机P3.5来计数,其计数送给P0来显示,通过给定不同的ADC的输入电压,就可以的得到不同的计数显示,电压越大,其计数显示也就越大,通过改变计数脉冲的周期和硬件压频转换器(LM331)的电阻和电容,就可以得到与输入电压接近的数值显示,可能由于干扰的原因,其显示值和实际值有一点偏差,这是在没有什么负载的情况下,或者说是在空载的情况下,这样就可以得到一个很理想的开环系统,也为闭环PWM调节做好准备。

当开环系统稳定后,加上一个扰动,或者说是加上负载,这样就使的压频转换器的电压减少,在给定一定电压的时候,当负载分压的时候,也就相当于直流电机的电压就会减少,这样直流电机的转速就会下降,或者说当有负载的时候,压频转换器的输入电压就会减少,这样输入的脉冲在单位时间就会减少,这样PID调节器,通过改变PID的参数,PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e(t)与输出u(t)的关系为 u(t)=kp(e((t)+1/TI∫e(t)dt+TD*de(t)/dt)式中积分的上下限分别是0和t 因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)其中kp为比例系数; TI为积分时间常数; TD为微分时间常数这样就会得到一个偏差,通过这个偏差来改变原来的PWM的占空比,使得晶体管的导通时间加长或减少,这样就改变了直流电机的输入电压,也就是该变了在PROTUES压频转换器的输入电压,使得输出的计数脉冲在单位时间发生改变,也就是模拟了直流电机的转速的改变,我们希望通过PID的调节,使得输出的计数脉冲的显示值和预先设定的值接近,由于偏差的存在,使得PID调节器不断的去修正,使得显示值近可能的接近我们所预期的设定值。

3.22基于单片机的数字PID控制直流电机PWM调压调速器系统原理图

图3.07 PID调速原理图 3.23波形仿真

在不同的给定电压下开换系统会有不同的PWM波形和计数脉冲个数。在不同的波形中从上之下以此为pwm波形,经过驱动后的波形,LM331的输入电压,LM331的输出脉冲。

当给定电压为较高(E8H)其波形见如下图3.08、图3.09 中电压给定对应的波形

PID波形

图3.10 低电压给定对应的波形

;

图3.11 PID 控制LM331的输入电压波形

3.24 PID调速程序 PWM 输出驱动程序

ADC

EQU

35H

CLK

BIT

P2.4

ST

BIT

P2.5

EOC

BIT

P2.6

OE

BIT

P2.7

PWM

BIT

P3.7

;

PID 调节设置

EK0

EQU

40H

EK1

EQU

41H

EK2

EQU

42H

PP

EQU

43H

II

EQU

44H

DD

EQU

45H

UK0

EQU

70H

UK1

EQU

71H

ORG

00H

SJMP

START

ORG

0BH

LJMP

INT_TO

START:

MOV

TMOD, #62H

MOV

TH0, #00H

MOV

TL0, #00H

MOV

IE, #86H

SETB

TR0

;SETB

TR1

MOV

R0, #00

MOV

R1, #00

MOV

R2, #00

MOV

R3, #00

MOV

R4, #00

MOV

R5, #00

MOV

R6, #00

MOV

R7, #00

;PID 赋值

MOV

PP, #05

MOV

II, #03

MOV

DD, #02

MOV

EK0,#00H

MOV

EK1,#00H

MOV

EK2,#00H

MOV

UK0,#00H

MOV

UK1,#00H WAIT:

CLR

OE

INC

R7

CLR

ST

SETB

ST

CLR

ST

JNB

EOC, $

SETB

OE

MOV

ADC, P1

MOV

R0,ADC

MOV

A,70H

ADDC

A,ADC

MOV

ADC ,A

;CLR

OE

SETB

PWM

SETB TR1

MOV

A, ADC

LCALL

DELAY

CLR

PWM

;等待转换完成;高电平延时 8

MOV

A, #255

SUBB

A, ADC

LCALL

DELAY

;低电平延时

CJNE

R7, #20, WA2 WA1:

CLR

TR1

MOV

R7, #00

MOV

A, TL1

MOV 50H,A

mov P0,50H

;PID求偏差

MOV A,EK1

MOV EK2,A

MOV A,EK0

MOV EK1,A

MOV A,R0

SUBB A,50H

MOV EK0,A

;PP的计算

MOV

A,EK0

SUBB A,EK1

MOV B,PP

MUL AB

MOV R1,A

MOV R2,B

AJMP X

WAIT1:AJMP WAIT

;II的计算

X: MOV A,EK0

MOV B,II

MUL AB

MOV R3,A

MOV R4,B

;DD的计算

MOV A,EK1

RL A

MOV EK1,A

MOV A,EK0

SUBB A,EK1

ADDC A,EK2

MOV B,DD

MUL AB

MOV R5,A

MOV R6,B

;PID总的计算

MOV A,R1

ADDC A,R3

ADDC A,R5

MOV 60H,A

MOV A,R2

ADDC A,R4

ADDC A,R6

MOV 61H,A

MOV A,60H

ADDC A,70H

MOV

70H,A

MOV A,61H

ADDC A,71H

MOV

71H,A

MOV TL0,#00H

MOV

TL1,#00H

;SETB TR1

WA2:

SJMP

WAIT1

INT_TO:

CPL

CLK

RETI

DELAY:

MOV

R6, #1 D1:

DJNZ

R6, D1

DJNZ

ACC, D1

RET

END 10

四、心得体会

我们进行了为期一周的计算机控制技术课程设计。通过这两周的课程设计,我拓宽了知识面,锻炼了能力,综合素质得到了提高。

刚刚拿到课题,我感到有些茫然,对于以前没有做过的人来说要全部做完的确有一定的难度。由于我对计算机控制不是很熟悉,在设计的过程中走了不少弯路。

通过亲身体验做课程设计,我觉得安排课程设计的基本目的,在于通过理论与实际的结合,进一步提高观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。我的收获有一下几点:

第一,我对所学专业有了一些了解,增强了自己的兴趣和对以后可能从事的职业的热爱。第二,通过课程设计我明白到了理论到实践有一段很远的路程。设计过程中的每一步都是一门学问,我终于知道了每一个实现的过程,每一个认识的过程都存有人类无数的的汗水与对待事物一丝不苟得,缜密的思考以及不懈的努力,只有这样才会有一个新生事物的诞生。而以上种种的过程必须要你亲自去体会去认识去发现,那才是属于你的“收获”,只有这时才会对自己的作品无比的骄傲。

第三,通过这次设计加强了我们的设计创新能力。使我们的理论知识与实践充分地结合。第四,通过两周的课程设计,我学到了很多书本上学习不到的知识。两周的时间很短,但是我学到比两年的还多,在以后的学习生活中,我需要更努力地读书和实践。

对我们电气专业的学生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。

在设计过程中,体会到了设计一项课题的不易,也体会到了设计成功之后的小小成就感和同学之间相互合作的默契。更重要的是,通过课程设计,我发现了自身存在的更多不足之处和实际应用能力方面的欠缺,这些不足之处在今后的学习之中要有意识的弥补和改变。

最后,感谢在课程设计过程中关心帮助我的老师同学。

五、参考文献

篇3:数字式PID控制器的研究与设计

传统的模拟式PID控制器由于受到电子器件电容性限制, 其瞬态特性及稳定性已不能满足高速、高精度的控制要求, 基于计算机的数字PID控制器具有响应快、控制精度高、成本低、线性控制等优势, 已快速取代传统的模拟式PID控制器。数字PID控制器的控制性能主要取决于控制算法。本文主要是研究基于单片机的数字控制器的控制算法。

1 PID原理

PID是一个闭环控制算法, 其控制系统是由PID控制器和被控对象组成的。其中PID控制器是包含了三个相互独立比例、积分和微分逻辑运算功能, 当它们按照某种比重组合起来, 将会获得响应快、精度高、稳定性好的控制效果。图1为常规PID控制系统结构图。

在连续控制系统中, PID控制器的输出y (t) 与输入e (t) 之间存在着比例、积分、微分的关系, 如下式:

其中e (t) =r (t) -y (t) , Kp为比例增益, Ti为积分时间常数, Td为微分时间常数, 3个参数对控制系统的控制性能具有相互独立的作用, 可以通过参数自整法获得一组组合, 使得PID控制器获得快速、平稳、准确控制效果。

2 数字PID控制算法[3]

传统的模拟PID调节器是通过电阻、电容、电感、运算放大器等模拟电路来实现的。数字控制PID算法是在模拟PID算法的基础上, 通过离散化处理得到的。设计算机的取样时间为T, 以一系列取样时刻点n T代替连续时间T, 以和式代替积分, 以增量代替微分, 即可得到数字PID的关系式

为采样序号, n=1, 2, …;e (n) 分别为第n次采样所得的偏差信号 (设定值与反馈值得定值) ;u (n) 为PID调节器第n时刻的输出值;e为位置式PID数字控制;Kp为比例系数, Ki=KpT/T1为积分常数, Kd=KpTd/T为微分常数。

为了获得较好控制效果, 必须使Kp、Ki、Kd有一组恰当的值, 这些数值通过参数自整法获得。

2.1 基于单片机数字PID控制器的硬件设计

数字PID控制器实际上是一个单片机控制器, 结构框图如图2所示。

单片机是数字PID控制器的主要部分, 通过单片机运行参数自整程序获得合适的P、I、D的参数, 达到较好的控制效果。

2.2 PID控制器参数自整定算法的设计

参数自整定实质是在首次使用时, 通过N次测量为新的工作对象寻找一套参数, 并记忆下来作为以后工作的依据, 其算法流程如图3。

2.3 基于单片机增量式PID控制器控制算法的设计

在数字PID控制器中, 如何实现PID控制是关键。一般情况下, 可应用增量式PID控制算法进行控制, 系统结构如图4所示。

增量式PID控制算法表达如下[1]:

式中:n为取样序号, 取0, 1, 2, …;e (n) 为第n次取样的偏差值;e (n-1) 为第n-1次取样的偏差值;u (n) 为PID控制器第n次输出值;Kp、Ki、Kd分别为比例、积分、微分系数;△u (n) 为第n次相对于第n-1次的控制量的增量。算法流程如图5所示。

3 结语

基于单片机的数字式PID控制器是通过程序实现控制器的控制功能, 不仅省去模拟控制器内部电子元器件, 也有效克服了电子器件运算的延迟性和不稳定性, 大大提高了PID控制器的响应度和控制精度, 具有成本低、控制性能高的优点。

摘要:模拟式PID控制器由于受到电子器件延迟性及非线性的限制, 其瞬态特性及稳定性较差。文中研究了数字式PID控制器的工作原理, 提出了基于单片机的数字式PID控制器的设计方案。该设计方案具有结构简单、实时性强、线性控制的特点。

关键词:数字式PID,控制算法,实时性强,线性控制

参考文献

[1]刘剑, 陈建, 邬连学.一种数字PID控制算法的分析[J].承德石油高等专科学校校报, 2007 (9) :11-13, 20.

[2]何跃, 林春梅.PID控制系统的参数选择研究及应用[J].计算机工程与设计, 2006 (22) :1496-1498.

[3]刘丹丹, 吉建娇.PID调节器及其控制规律分析[J].科技创新导报, 2009 (22) :81.

篇4:数字PID控制器设计

【关键词】炉温控制;PID控制;单片机

1.系统设计方案的论证与比较

根據题目要求,电热锅炉温度控制系统由核心处理模块、温度采集模块、键盘显示模块、及控制执行模块等组成。

方案一:采用8051作为控制核心,以使用最为普遍的器件ADC0808作模数转换,控制上使用对电阻丝加电使其升温和开动风扇使其降温。此方案简易可行,器件的价格便宜,但8051内部没有程序存储器,需要扩展,增加了电路的复杂性,且ADC0808是8位的模数转换,不能满足本题目的精度要求。

方案二:采用比较流行的AT89S52作为电路的控制核心,使用8位的模数转换器AD0808进行数据转换,控制电路部分采用PWM通过AC-SSR实现锅炉温度的连续控制,此方案电路简单并且可以满足题目中的各项要求的精度。综上分析,我们采用方案二。系统总体框图如下。

2.硬件电路设计

硬件系统主要由AT89S52单片机、温度采集、键盘显示电路等功能电路组成。

2.1主控单元

AT89S52单片机为主控制单元。AT89S52单片机首先根据炉温的给定值和测量值计算出温度偏差,然后进行PID控制并计算出相应的控制数据由P1.0口输出。最后将P1.0口输出的控制数据送往光电耦合隔离器的输入端,利用PWM脉冲调制技术调整占空比,达到使炉温控制在某一设定温度。AT89S52单片机还负责按键处理、温度显示以及与上位机进行通信等工作。4位高亮度LED用于显示设定温度或实测温度。

2.2温度采集

温度采集电路主要由铂铑-铂热电偶LB-3构成。LB-3热电偶可以在1300℃高温下长时间工作,满足常规处理工艺要求。

测温时,热电阻输出mV热电势,必须经过变送器变换成0-5V的标准信号。本系统选用DWB型温度变送器,并将其直接安装在热电偶的接线盒内,构成一体化的温度变送器,不仅可以节省补偿导线,而且可以减少温度信号在传递过程中产生的失真和干扰。

电阻炉炉温信号是一种变换缓慢的信号。这种信号在进行A/D转换时,对转换速度要求不高。因此为了减低成本以及方便选材,可以选用廉价的、常用的A/D芯片ADC0808,ADC0808是一种逐次逼近式8路模拟输入、8为数字输出地A/D转换器件,转换时间为100us,完全满足系统设计的要求。经过ADC0808转换所得到的实测炉温数据直接送入AT89S52单片机中进行数据处理。

3.键盘及显示的设计

3.1键盘设计

位选键SW与P2^3相连,INTO与外部中断0(P3.2^)相连,INT1与外部中断1(P3.3^)相连。采用外部中断方式实现温度的设置。功能定义如下:

3.1.1当SW拨到下面时,INT0健实现温度值的十位加1,INT1健实现温度值的十位减1。

3.1.2当SW拨到上面时,INT0健实现温度值的个位加1,INT1健实现温度值的个位减1。

3.2 LED数码管显示设计

显示采用8位共阴LED动态显示方式,显示内容有温度值的百位、十位及个位,这样可以只用P3.0(RXD)口来输出显示数据,从而节省了单片机端口资源,在P2.5,P2.6,P2.7三个IO口和P3.1(TXD)的控制下通过74LS138和74LS164来实现8位动态显示。

3.3系统软件设计

系统的软件由三大模块组成:主程序模块、功能实现模块和运算控制模块

3.3.1主程序模块流程图:

3.3.2功能实现模块

以用来执行对可控硅及电炉的控制。功能实现模块主要由A/D转换子程序、中断处理子程序、键盘处理子程序、显示子程序等部分组成。

(1)T0中断子程序

该中断是单片机内部100ms定时中断,优先级设为最高,是最重要的子程序。在该中断响应中,单片机要完成调用PID算法子程序且输出PID计算结果等功能。

(2)T1中断子程序

T1定时中断用于调制PWM信号,优先级低于T 0中断,其定时初值由PID算法子程序提供的输出转化而来,T1中断响应的时间用于输出控制信号。

3.3.3 PID控制算法模块流程图如下:

4.总结

实现了以AT89S52单片机为核心的温度控制器的设计,该控制器可对电热锅炉的温度进行实时精确测量,从而实现自动检测,实时显示及越限报警。■

【参考文献】

[1]于海生编著.计算机控制技术.机械工业出版社,2010,1.

[2]李朝青编著.单片机原理及接口技术.北京航空航天大学出版社,1999,3.

[3]余锡存,曹国华,编著.单片机原理及接口技术(第二版).西安电子科技大学,2007,12.

篇5:数字PID控制器设计

电动舵机模糊PD-常规PID复合控制器设计

控制器是设计高性能电动舵机的关键.建立了直流无刷电动舵机的.数学模型,以此为基础设计了位置环模糊PD-常规PID复合控制系统,利用VC++60离线计算了模糊PD控制表,利用Matlab/simulink进行了仿真,仿真结果表明设计的电动舵机复合控制系统比仅采用PID控制性能好,且工程可行性好.

作 者:郭栋 李朝富  作者单位:中国空空导弹研究院,河南洛阳,471000 刊 名:科技风 英文刊名:TECHNOLOGY WIND 年,卷(期):2009 “”(14) 分类号:V2 关键词:无刷直流电动舵机   位置环控制   模糊PD-常规PID复合控制   计算机仿真  

篇6:PID控制小结

在PID参数进行整定时如果能够有理论的方法确定PID参数当然是最理想的方法,但是在实际的应用中,更多的是通过凑试法来确定PID的参数。

增大比例系数P一般将加快系统的响应,在有静差的情况下有利于减小静差,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏。增大积分时间I有利于减小超调,减小振荡,使系统的稳定性增加,但是系统静差消除时间变长。

增大微分时间D有利于加快系统的响应速度,使系统超调量减小,稳定性增加,但系统对扰动的抑制能力减弱。在凑试时,可参考以上参数对系统控制过程的影响趋势,对参数调整实行先比例、后积分,再微分的整定步骤。

PID控制原理:

1、比例(P)控制 :比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。

2、积分(I)控制 :在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

3、微分(D)控制 :在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。PID控制器参数整定的一般方法:

PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:

一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改; 二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。

现在一般采用的是临界比例法。利用该方法进行 PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。

PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P、I、D的大小。书上的常用口诀:

参数整定找最佳,从小到大顺序查; 先是比例后积分,最后再把微分加; 曲线振荡很频繁,比例度盘要放大; 曲线漂浮绕大湾,比例度盘往小扳; 曲线偏离回复慢,积分时间往下降; 曲线波动周期长,积分时间再加长; 曲线振荡频率快,先把微分降下来; 动差大来波动慢。微分时间应加长; 理想曲线两个波,前高后低4比1; 一看二调多分析,调节质量不会低。

个人认为PID参数的设置的大小,一方面是要根据控制对象的具体情况而定;另一方面是经验。P是解决幅值震荡,P大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长;I是解决动作响应的速度快慢的,I大了响应速度慢,反之则快;D是消除静态误差的,一般D设置都比较小,而且对系统影响比较小。PID参数怎样调整最佳(1)整定比例控制

将比例控制作用由小变到大,观察各次响应,直至得到反应快、超调小的响应曲线。(2)整定积分环节

若在比例控制下稳态误差不能满足要求,需加入积分控制。

先将步骤(1)中选择的比例系数减小为原来的50~80%,再将积分时间置一个较大值,观测响应曲线。然后减小积分时间,加大积分作用,并相应调整比例系数,反复试凑至得到较满意的响应,确定比例和积分的参数。(3)整定微分环节

篇7:双DSP电机控制数字平台设计

摘要:和异步机的各种控直接转矩控制目前已经应用到同步机制系统中,由于其采用Bang?Bang控制,长控制周期将导致大电流和大的转矩脉动这两个突出问题,要使控制性能更为优越必然对控制周期提出更高的要求。提高控制平台性能是解决这些问题的有效途径之一。TI公司的系列DSP是电机控制领域常用芯片,针对电机控制设计的事件管理器具有突出优点。3X系列DSP则是性价比很好的通用芯片,浮点运算,数据处理速度快。为此采用双DSP系统结构,从电机控制领域特点出发,利用TMS320LF2407A控制上的强大功能而专注于控制方面的工作;TMS320VC33浮点运算能力强,则进行数据的分析和处理。使用双口RAMCY7C025实现双机之间的高速数据交流和通信,使得不同MDSP优势充分体现,协同工作,大大提高控制平台的性能。

关键词:电机控制;直接转矩控制;双DSP;双端口RAM;通信

引言

直接转矩控制[1]是目前广为研究的电机控制理论之一,已在异步机上取得了成功,而在同步机方面的应用也已有了一定发展[2]。由于该理论直接对转矩进行控制,故瞬态性能得到了显著的改善。但是,由于其采用的是Bang?Bang控制,控制周期过长会使电流过大;同时大周期会使转矩脉动加大。为了解决这个问题可以从控制策略上加以改进,比如采用SVM?DTC[3]来取代传统DTC方案;也可以在控制平台上加以考虑,提高处理器速度,缩短控制周期。以单个DSP为核心的控制平台(常见的芯片如TI公司的2000系列),由于既要完成复杂的算法,还要执行数据采集、控制信号输出、系统保护以及人机交互等一系列操作,无法有效地缩短控制周期。在综合考虑了各种数字信号处理器的性能之后,决定采用双DSP并行工作的体系结构;并同时考虑到该控制系统的`特点,即在每个控制周期内两个DSP之间交换的信息很少,不同于诸如图像采集系统[4]那样,需要大流量的数据交换。由此采取了一系列特殊的设计思想。首先,在芯片的选型上兼顾了各自不同的特点,即专用于电机控制领域的芯片TMS320LF2407A专注于控制;高速通用数据处理芯片TMS320VC33则着眼于复杂算法的实现,从而充分利用了各自的特点。其次,针对电机控制这一特定领域,需要采集的数据相对较少,同时反馈的也只是计算结果,即PWM波发送策略,并无大量中间结果,因此,需要考虑的重点是控制方法的实现,和数据采集的实现必须占用尽可能少的资源。同时由于数据量较少,可以用较小的代价来实现数据的冗余,使得数据处理时更加灵活和方便,DSP之间并不一定保持同步工作状态。为了实现两个DSP之间的数据交换和通信,选择了双口RAM作为两者之间的媒介。并从硬件和软件上相互配合,避免存储空间争用[5]的同时,使得数据存储过程尽量少耗费各种资源。

1 硬件系统构成

TMS320LF2407A最突出的特点在于其事件管理器模块:共有两个事件管理器EVA及EVB,提供了8个16位脉宽调制(PWM)通道。这些都是针对电机控制而设计的,在PWM波的产生上相当方便可靠;可编程的PWM死区控制可以防止上下桥臂同时输出触发脉冲而导致直通。同时每个模块还提供了两个外部引脚PDPINTA和PDPINTB,当该引脚上出现低电平时事件

篇8:数字PID控制器设计

PID控制结构清晰, 参数可调, 可在现场根据实际调节参数取得较好的控制效果, 适用于各种控制对象, 在动态控制系统中得到广泛的应用。由微机、单片机、DSP等数字芯片实现的数字PID控制算法, 由于软件系统的灵活性, 使算法得到进一步修正和完善, 在实际工业控制场合中大量采用。目前采用单片机或DSP实现PID算法比较普遍, 但是常规处理器在工控恶劣的情况下不能完全避免程序跑飞和计算机误动作对整个控制系统的破坏性影响。现场可编程门阵列FPGA的出现为PID控制器的设计提供了新的实现手段。可编程逻辑器件FPGA的逻辑门数为5000~200万个, 属于大规模甚大规模逻辑器件, 其工作频率可达250MHz, 完全可以满足高速PID控制器的要求。FPGA集成度高、体积小、功耗低, 可靠性高, 可以用独立的数字电路实现PID算法降低计算机故障对控制系统的影响, 提高控制器的可靠性。

2PID控制算法

2.1 基本PID算法

PID控制器根据系统的误差, 系统的误差比例、积分、微分三个环节的不同组合计算出控制量。PID控制系统的原理框图如图1所示。

广义被控对象包括调节阀、被控对象和测控变松元件;虚线内部分是PID控制器, 其输入为给定值与被调量实测值构成的偏差信号e (t)

输出为该偏差信号的比例、积分和微分的线性组合, 即PID控制率。

2.2 数字PID算法

在数字控制系统中, PID控制器控制规律必须用逼近的方法。当采样周期时, 用求和代替积分, 用后向差分代替微分, 使模拟PID离散化为差分方程。

为模拟信号的采样周期, 为采样序列号, 由式 (1.2) (1.3) (1.4) 式得PID位置型控制算式为

由式 (1.6) 得出时刻的算式:

式 (1.6) 与式 (1.7) 相减得增量型控制算式:

整理得:

3PID控制算法的实现

用Verilog HDL语言实现算法的代码, 分别需要调用底层加法器、乘法器的模块。由于PID控制算法的参数是小数形式的数, 所以这里设计使用的加法器有两种:一种是整数的加法, 还有一种是浮点加法;而乘法器则只使用浮点乘法。

对于式 (1.8) 和 (1.9) 即可以用并行结构来实现, 也可以用串行结构来实现。串行实现法基于ALAP (As Last As Possible) 的结构, 由顺序逻辑来实现, 以速度换取资源。串行实现法只需要两个逻辑算子:一个乘法器和一个加法器, 通过设计有限状态机 (FSM) 在不同阶段采用该乘法器和加法器进行不同的逻辑运算, 这种方法需要的资源少但速度慢。并行实现法基于ASAP (As Soon As Possible) 的结构, 基本思想是以面积换取速度, 是拥有较快的运算速度, 但需要的资源较多, 本设计采用并行实现的方法。

按照式 (1.8) 或 (1.9) 将PID算法分成四部分实现, 每一项运算都有其自己独立的算子, 或是乘法器, 或是加法器, 并行结构实现方法示意图如图2所示。

由图2分析整个系统只需要进行加法和乘法的操作, 虽然同时进行的运算很多, 但是运算速度快, 几乎是在e (k) 时移两次得到e (k-2) 时, 直接得出结果u (k) 。

用Verilog HDL语言实现算法的代码, 分别需要调用底层加法器、乘法器的模块。由于PID控制算法的参数是小数形式的数, 所以这里设计使用的加法器有两种:一种是整数的加法, 还有一种是浮点加法;而乘法器则只使用浮点乘法。

通过顶层的例化, 调用底层的模块, 实现PID算法模块中的代码段如下:

4 算法实现中浮点数的处理

FPGA不支持浮点数的运算, 浮点数需要转换成定点数。有符号数和无符号数不可以直接运算。负数用补码表示, 对系数进行扩展, 即将系数增加一个符号位, 1代表负数, 0代表正数, 以此重复利用加法器IP, 降低设计难度。

设计中输入量y (k) 和r (k) 为8位的二进制整数信号, PID控制参数Kp、Ki、Kd输入时是小数, 需转化成浮点输入;输出时又需要将浮点数转化为小数, 四舍五入转化为17位整数补码输出。

对于浮点数的表示, 本设计中输入需要8位整数输入, 如果使用单精度或双精度浮点算法, 则会造成了资源浪费, 所以根据浮点的概念, 结合本设计, 定义浮点表示规则如表1所示。

这样表示的所得实际值就是, 根据调研工作实际的PID控制参数实际值范围如表2所示。

Kp、Kd小数点位于尾数的最低位, Ki小数点位于尾数的最高位。所以Kp、Kd表示范围为:Ki的表示范围为。上述尾数表示范围、小数点位置能够满足要求。对于尾数, 8位数值采用绝对值的形式, 方便了乘法的计算。在乘法运算时, 只需要讲9位的偏差量e (k) 由补码形式变成符号位和绝对值的形式, 就能够实现简单的二进制移位相乘。符号位由相应的乘数和被乘数的符号确定。对于阶码, 无论加法运算还是乘法运算, 做对阶和规范化的时候, 对阶码加减, 将4位阶码使用补码形式, 方便正负数的加减。

5 仿真与测试

在第五个时刻data1的浮点数值转换成十进制形式是1136, data2的浮点数值转换成十进制形式是-6272, 求和结果是-5120, 实际值是-5136, 误差0.31%。

5.1 浮点加法

由前面所述的方法, 编写add_f.do测试文件。给出了具有代表性的5组激励, 编译仿真, 仿真结果如图3所示。

根据仿真结果做误差分析。在第一个时刻data1的浮点数值转换成十进制形式是9.4375, data2的浮点数值转换成十进制形式是-11.1875, 求和结果是-1.75, 实际值是-1.75, 没有误差。在第二个时刻data1的浮点数值转换成十进制形式是1416, data2的浮点数值转换成十进制形式是-11.1875, 求和结果是1400, 实际值是1404.8125, 误差为0.34%。在第三个时刻data1的浮点数值转换成十进制形式是1408, data2的浮点数值转换成十进制形式是-1680, 求和结果是-272, 实际值是-272, 没有误差。在第四个时刻data1的浮点数值转换成十进制形式是2.578125, data2的浮点数值转换成十进制形式是6656, 求和结果是6656, 实际值是6658.578125, 误差0.008%。在第五个时刻data1的浮点数值转换成十进制形式是1136, data2的浮点数值转换成十进制形式是-6272, 求和结果是-5120, 实际值是-5136, 误差0.31%。

经计算并验证, 本算法的浮点加法误差可以控制在±0.4%以内, 能够达到精确要求。

5.2 浮点乘法

由前面所述的方法, 编写mult_f.do测试文件。给出了具有代表性的5组激励, 编译仿真, 仿真结果如图4所示。

根据仿真结果做误差分析。在第一个时刻in_int的浮点数值转换成十进制形式是-239, in_f的浮点数值转换成十进制形式是4.125, 求积结果是-984, 实际值是-985.875, 误差为0.19%。在第二个时刻in_int的浮点数值转换成十进制形式是9, in_f的浮点数值转换成十进制形式是-194, 求积结果是-1744, 实际值是-1746, 误差为0.11%。在第三个时刻in_int的浮点数值转换成十进制形式是-235, in_f的浮点数值转换成十进制形式是-33.5, 求和结果是7872, 实际值是7872.5, 误差0.0064%。在第四个时刻in_int的转换成十进制形式是136, in_f的浮点数值转换成十进制形式是100, 求和结果是13568, 实际值是13600, 误差0.235%。在第五个时刻in_int的浮点数值转换成十进制形式是-233, in_f的浮点数值转换成十进制形式是-1.65625, 求和结果是386, 实际值是386, 误差0.024%。

经计算并验证, 本算法的浮点乘法误差可以控制在±0.3%以内, 能够达到精确要求。

5.3 整体测试

在Simulink中调用DSP Builder的库元件, 搭建好整体模型, 双击HIL模块, 添加Quartus II的工程文件到列表中, 输入输出框中添加输入端口和输出端口, 选择顶层模块输入引脚中的时钟脚, 连接JTAG电缆线从而得到硬件在回路仿真结构示意图如图5所示。

选择FPGA主芯片的型号, 点击“Complies with Quartus II”编译生成硬件在回路仿真下载文件*_HIL.sof。点击“Configure FPGA”将.sof文件通过USB-Blaster下载进FPGA。仿真波形结果如图6所示。

从图6中分析可知, 在Simulink中的示波器中, 上图表示用FPGA实现的硬件在回路仿真的波形, 下图表示同样的参数和同样的被控对象得到的模拟PID控制结果, 输出结果较理想。

6 结语

本文利用FPGA集成度高、速度快、功耗低、能用硬件电路实现算法的优势, 完成了PID算法FPGA的设计实现。通过数学推导得出较易实现的PID位置算式, 由于FPGA不支持浮点数的运算, 着重介绍了算法实现中浮点数的处理。仿真与测试结果表明算法的有效性与正确性。

上一篇:病区护理管理用下一篇:2023—2024下九都中心小学少先队工作总结