对于作用时间较为短暂的快速干扰,例如采样器,A/D转换器的偶然出错等,我们可以简单地采用连续多次采样求平均值的办法予以滤除。例如围绕着采样时刻ti连续采样N次,可得到ei1、ei2、… 、eiN。由于快速干扰往往比较强烈,只要有一个采样数据受到快速随机干扰,即使对它们求平均值,干扰的影响也会反映出来。因此,应剔除其中的最大最小值,对其余的N-2次采样求平均值。由于在N次中连续偶然出错的可能很小,故这样做已足以消除这类快速随机干扰的影响。
2.5 PID调节器的参数整定
PID调节器的设计一般来说可分为两个部分,首先是选择调节器的结构,以保证闭环系统的稳定,并尽可能消除稳态误差。如要求系统稳态误差为零,则应选择包含积分环节的调节器如PI,PID等。对于有滞后性质的对象,往往引入微分环节等。另外,根据对象和对控制性能的要求,还可采用一些改进的PID算法。一旦调节器的结构确定下来,下一步的任务就是调节器参数的整定。
2.5.1 采样周期的选定
进行数字PID控制器参数整定时,首先应该解决的一个问题是确定合理的采样周期T。采样周期T必须足够短,才能保证有足够的精度。但采样周期短则会加重计算机的任务,影响工作效率,因此应合理选择采样周期。
采样周期T应远远小于系统中其它的时间常数,否则可能会由于采样的频带宽度不够而无法反映系统的动态过程。一般来说,采样周期T的最大值受系统稳定性条件和香农采样定理的限制而不能太大。T的最小值则受到计算机在一个采样周期内能完成的计算工作量的限制,实际中常选2PAI/T为系统有用信号最高频率的4~10倍。系统的给定频率较高时,采样周期T相应减少,以使给定的变化得到反映。采样周期还与所采用的控制算法和执行机构的类型有关。当采用数字PID控制算法时,积分作用和微分作用都与采样周期有关。选择T太小时,e(k)变化就很小,积分和微分作用将都不明显。此外,通常执行机构惯性较大,采样周期T应能与之相适应。如果系统的干扰是高频的,则要适当的选择采样周期,使得干扰信号的频率处入采样器频带之外,从而使系统具有足够的抗干扰能力。如果干扰是频率已知低频干扰,为了能够采用滤波的方法排除干扰信号,采样频率应该与干扰信号的频率成整数倍的关系。
21
2.5.2 PID参数的整定
采样周期T通常远远小于系统的时间常数,因此,PID参数的整定可以按模拟调节器的方法来进行。参数整定通常有两种:理论设计法和实验确定法。前者需要有被控对象的精确模型,然后采用最优化的方法确定PID的各参数。被控对象的模型可通过物理建模或系统辨识方法得到,但这样通常只能得到近似的模型。因此,通过实验确定法(如试凑法,工程整定法)来选择PID参数是经常采用又行之有效的方法。本方案采用了试
凑法。试凑前先要知道PID各调节参数对系统响应的影响。
试凑法是通过计算机仿真或实际运行,观察系统对典型输入作用的响应曲线,根据各调节参数(Kp,Ti,Td)对系统的影响,反复调节试凑,直到满意为止,从而确定PID参数。
增大比例系数Kp将加快系统响应并减小系统稳态误差,但过大会产生较大的超调量,产生震荡,破坏系统的稳定性。
增大积分时间常数Ti可使减小超调,提高系统稳定性,但系统误差的消除将随之变慢。
增大微分时间常数Td可加速系统的响应,使超调量减小,增加系统的稳定性,但系统抗干扰能力下降。
试凑时,可参考以上参数对控制系统性能的影响趋势,实行先比例,后积分,再微分的反复调整。
(1)首先只调比例系数,将Kp由小到大,使响应曲线略有超调。此时系统若无稳态误差或稳态误差已小到允许范围内,并且认为响应曲线已属满意,那么,只须用比例调节器即可。
(2)若在比例调节的基础上,系统稳态误差太大,则必须加入积分环节。整定时先将第一步所整定的比例系数略为缩小(如0.8倍),再将积分时间常数Ti置为一较大值并连续减小,使得在保持良好动态性能的前提下消除稳态误差。这一步可反复进行。
(3)若使用PI调节器消除了稳态误差,但系统动态响应经反复调整后仍不能令人满意,则加入微分环节,构成PID控制器。在整定时先将微分时间常数Td设定为零,再逐步增加Td并同时进行前面两步的调整,以获得满意的调节效果和控制参数。
需要指出,PID调节器的参数对控制系统性能的影响通常并不十分敏感,参数整定结果可以不唯一。
22
第三章 软件实现
本章是整个设计中的重点,电机的同步需要一个合理的数字控制器来实现,就要将前面介绍的PID控制算法用软件来实现。以下首先介绍了用C51语言给单片机编程的优点,接着对所用到的单片机内部资源作了介绍,这是编程过程中前期要做的工作。对主体程序各模块子程序的功能以及设计思想作了描述。调试是程序设计中一个重要的组成部分,用C语言给单片机编程序,且单片机功能相对也比较多,程序是在多次调试中完善的。具体程序部分见附录2。
3.1 C51语言
在单片机的开发和应用中,汇编语言曾是单片机工程师进行软件开发的惟一选择。汇编是一种面向机器的程序语言,可以直接控制硬件,指令执行速度快,效率很高。但其语言形式晦涩,可读性差,难于编写和调试,也不便于移植。目前,C语言已渐成为国内外开发单片机的主流语言。C语言是一种通用的编译型结构化程序设计语言,兼顾了多种高级语言的特点,并具备汇编语言的功能。它支持当前程序设计中广泛采用的由顶向下的结构化程序设计方法。一般的高级语言难以实现汇编语言对于计算机硬件直接进行操作的功能,而C语言既有一般高级语言的特点,又能直接对硬件进行操作。C语言有功能丰富的库函数,运行速度快,编译效率高,并且便于在不同类型计算机之间进行移植。因此,C语言应用范围广,是单片机开发和应用的必然趋势。
C语言在单片机开发中有以下突出优点:
1.语言简洁,使用方便灵活。C语言是现有程序设计语言中规模最小的语言之一,关键字少,ANSI C标准一共只有32个关键字,9种控制语句。C语言书写形式自由,表达方式简洁,使用一些简单的方法就可以构造出相当复杂的数据类型和程序结构。
2.可移植性好,不同公司开发的C语言都必须符合ANSI C的标准真正存在差异的是非ANSI C的扩展部分。
3.表达能力强。C语言具有丰富的数据结构类型来实现各种复杂数据结构的运算,C还具有多种运算符,增强了程序处理能力。对于直接与单片机相关的中断服务程序的现场保护和恢复,中断向量表的填写问题,都由C编译器代办。
4.可进行结构化程序设计。C以函数作为程序基本设计单元,一个函数即相当于一个程序模块。
23
5.可直接操作计算机硬件。C语言可直接访问片内外存储器,还可进行位操作,提供auto、static、register、const等和data、idata、pdata、xdata、code等存储类,自动为变量合理分配地址。针对8051的派生芯片,还提供等small、compact、large编译模式以适应存储器的大小。
3.2 单片机片内的资源配置 3.2.1 单片机内各功能模块配置
程序设计中所需要的单片机内部各功能模块如表3.1,包括5个定时计数器,PCA0以及串口控制器UART0。其中,Timer0和Timer1与传统MCS-51的设计是一样的,可按传统51用法使用,这里就不介绍了,具体工作方式见初始化程序模块。T2、T3和T4是增强型16位自重载和捕捉定时/计数器,可用作定时ADC采样、DAC波形生成、方波输出和通常用途。PCA0为可编程计数器阵列,提供了增强型计数器功能,使得MPU软件干预更少,更易于信号生成和处理。UART0为增强型串行通信总线,C8051F040的UART0与传统MSC-51的相比增加了帧错误检验和通讯地址识别功能。以下具体地对这些功能模块作一些介绍。
表3.1 单片机内部功能模块使用情况说明表
Timer0:PCA0定时/计数器时基 定时器 PCA0 UART0 Timer2:计主电机的速度脉冲 PCA0:产生主电机PWM波 Timer1:UART0使用 Timer3:计从电机的速度脉冲 PCA1:产生从电机PWM波 Timer4:25ms定时器,循环4次构成采样时间和计算时间 单片机与上位机串行通信控制器 T2、T3和T4的功能是相同的,不能作为8位定时/计数器,只能工作在16位模式下,可自动重载、捕捉和产生50%占空比的频率可调脉冲方波,且可以控制计数的方向。它们的时钟源可以是系统时钟及其分频、外部时钟或它们输入引脚的脉冲。这些都是通过特殊功能寄存器TMRnCN和TMRnCF设置的。双向计数模式对电机速度控制很方便,可计电机的正反转。捕捉模式常用来测量脉宽。方波输出模式可产生50%占空比的频率可调脉冲方波。
PCA0提供了一个16位定时/计数器和6个捕捉/比较模块。每个捕捉/比较模块都有独立的I./O口,可通过交叉开关配置到CEXn。PCA定时/计数器时钟源可为系统时钟、系统时钟4分频、系统时钟12分频、外部时钟8分频、T0溢出和ECI。ECI可配置到P口上,作为PCA时钟的一个扩展。6个模块共用一个时钟,可分别独立工作在以下6
24
中模式:①边沿触发捕捉;②软件定时;③高速输出;④频率输出;⑤8位PWM脉宽调制;⑥16位PWM脉宽调制。其中在8位PWM脉宽调制模式下的输出波形频率为PCA时钟频率的256分频,8位PWM占空比公式为:
256?PCACPHn0 DutyCycle? (3-1)
256此时,只要将PCA0开启,为PCA配置一个时钟源,将相应模块设在8为PWM模式下,并将PWM输出开启,再将该模块配置到一个I/O口上,则不再需要处理器的干预,PCA会自动地向外端口输出PWM波,只有当需要改变占空比的时候,修改一下该模块的捕捉比较寄存器PCA0CPHn即可。
UART0有同步(半双工)和异步(全双工)模式,同步模式下MPU只能处于主机模式,无法作为从机模式,因此,双MPU不能直接通信。同步模式常用来作为移位寄存器的接口。异步模式有三种,这里仅介绍模式1。
模式1为标准的异步全双工通信,用10位表示一字节信息:1个起始位、1个停止位和8位数据信息。数据由TX0发送,RX0接收,总线上不带时钟,靠主从机预先指定的波特率进行通信。向SBUF0写数据即启动UART0发送数据,当数据帧停止位发送完毕,TI0自动置1。接收数据时当接收到停止位时将数据载入SBUF0,同时将RI0自动置1。模式1波特率时钟靠定时器溢出产生,系统可根据需要选择T1~T4之间的任一个定时器作为UART0波特率发生器。其中,T1作为波特率发生器时工作在8位自动重载模式下。波特率计算公式如下:
2SMODBAUDRATE??FT1 (3-2)
323.2.2 单片机的端口配置
单片机的外部输入输出端口配置如表3.2。C8051F040单片机由于体积小,不可能把每一个功能都设计成一个关口,而是采用交叉开关的设计方法,通过优先级解码,将各个功能按优先级顺序配置到P0~P3口上。P0~P3口既可作为普通通用输入/输出口,又可作为特殊功能口,比如UART、PWM、定时器输入输出口及外部事件中断等,由交叉开关寄存器XBR0,XBR1,XBR2和XBR3配置决定。优先级高的模块会自动分配到前面的端口上。大部分被交叉开关配置的端口其输出模式仍受PnMDOUT控制,有推挽和开漏两种输出模式。
25
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库多电机同步控制(5)在线全文阅读。
相关推荐: