实验6b:闭环过程控制

下载本文档

1.目标

  1. 生成PWM输出以实现模拟电机电源电压。
  2. 使用PIC32定时器实现转速表操作。
  3. 开发实现闭环电机控制的MPLAB X项目。
  4. 开发C程序代码以实现PI控制器和移动平均数字滤波器。
  5. 在中断驱动的系统中管理多个后台任务。
  6. 将实时数据发送到监视设备。

2.基础知识

  1. 基础知识的线性系统。
  2. 如何在Microchip®Pic32PPS微处理器上配置IO引脚。
  3. 如何使用抢占式前景背景任务控制来实现实时系统。
  4. 如何用PIC32处理器产生PWM输出。
  5. 如何将模拟发现2配置为显示逻辑跟踪。
  6. 如何实现基于嵌入式处理器的系统的设计过程。

3.设备列表

3.1.硬件

  1. 工作站计算机运行Windows 10或更高版本,MacOS.,或linux

此外,我们建议以下工具:

3.2.软件:

必须在您的开发工作站上安装以下程序:

  1. 波形(如果使用模拟发现2)
  2. 电子表格应用程序(例如Microsoft Excel)

4.项目外卖

  1. 如何用PIC32处理器读取模拟电压。
  2. 如何使用PIC32输出进行比较实现PWM模拟输出。
  3. 如何使用PIC32定时器外部输入来测量频率以实现转速计。
  4. 如何使用PIC32输入捕获时段测量来实现转速计。
  5. 用于数据平滑和闭环控制的基本模拟和过滤概念。

5.基本概念

该实验室练习的目的是实施闭环控制系统,以控制直流电动机的速度。处理涉及两种不同类型的模拟输入并使用脉冲宽度调制产生模拟输出。我们将了解模拟和数字信号调节如何降低可能降低系统性能的测量噪声。该实验室要求构造电子电路以在Basys MX3板和DC电机转速表之间提供界面。

5.1。反馈控制

在设计控制系统时,反馈控制是一种常见而强大的工具,可以补偿负载变化和扰动。考虑到系统输出,如图5.1所示的反馈回路。这使得系统能够调整其性能,以满足期望的输出响应,尽管在系统的任何地方可能引入的电机特性、噪声和干扰的变化。

利用数字滤波和数字控制理论实现了控制器的动作和反馈补偿。数字滤波是离散时间和时产生的离散振幅信号连续信号用模数转换器按固定时间间隔进行采样。1)控制系统的主要目标是实现零误差,指定为图5.1中的“$ e_n $”。误差信号是控制输入,$ r_n $和反馈信号的总和之间的差异,$ y_n $。变量$ C_N $是用于驱动系统机器或过程的控制算法的输出。这些变量上的下标“n”表示它们在离散时间产生的事实。

图5.1。闭环电机控制框图。图5.1。闭环电机控制框图。

除了电动机上机械负载的变化之外,控制回路的主要噪声或干扰源来自输出放大器,该过程将电能转换为机械能,以及用于测量机械输出的转速计。也可以在模拟和离散输入上引入噪音。在我们的系统中,我们将仅考虑在转速表的输出和信号调节比较器的输出时的受干扰的信号。

5.2。闭环运动控制

负反馈通常促进更快地沉降到平衡条件,并降低了扰动的影响,而不是正反馈。采用负反馈环路的系统,其中仅使用最佳定时施加正确的校正量,可以非常稳定,准确,响应。

考虑到控制直流电机速度的问题,我们将使用负反馈来使电机速度线性地取决于模拟输入控制电压。由于电动机的速度大致与施加的电压成比例,因此似乎人们只需要构造一个描述速度的等式,该等式将描述速度的电压,然后基于所需的速度设定电动机电压。这是我们在Lab 6a中采取的方法。然而,电动机速度也是施加到电动机和动态效果的负载的函数,例如摩擦和惯性。闭环控制器用于补偿影响电机速度的那些问题并为线性输入提供线性响应。

该问题现在选择了微处理器必须实现的算法,以提供在不同负载条件下的所需速度控制。如单元6的附录C,古典控件使用比例加上积分加上导数(PID)控制,适用于控制许多动态系统。其他类型的控制器使用模糊逻辑人工神经网络(ANN)并且最适合控制极其非线性系统。

由于“调整”PID控制器避免不稳定的难度,因此本实验将使用只是比例加积分(PI)控制。经典控制设计使用数学方程来描述连续系统并定义控制器动作,特别是微分方程和拉普拉斯变换。对于实现控制器动作的数字计算机,必须将连续等式转换为可以转换为数字代码的形式,如单元6中所讨论的。


6.问题陈述

如图5.1所示,闭环控制将反馈信号与模拟和离散输入结合到控制过程中。通过使用PIC32的输入捕获来测量转速计频率以确定反转以产生频率的信号时段。通过LAB 6A中所述,通过移动平均低通量数字滤波器过滤转速计时段测量。

该实验室是在控制回路中使用比例加积分(PI)控制的数字实现。电机的速度将线性地取决于模拟输入控制电位计控制的电压。这是由EQ描述的。6.1导致线性电机速度控制,可在最大电机速度的30%和90%之间变化。

$$电机速度= \ bigg [\ bigg(\ frac {模拟控制电压* 0.6} {最大模拟控制电压} \ bigg)+ 0.3 \ bigg] \ cdot最大电机速度\ qquad(eq.6.1)$$

在我们使用用于Lab 6a和6b的DC电动机的特性上选择30%至90%的范围。通过实验,确定当电动机电源设定为5.0 V时,必须将%PWM设置为高于25%至28%,或者电机不会如图8.3的实验室6a所示。如果电机未转弯,则没有输入捕获中断以在控制算法中设置RPS变量。


7.背景信息

7.1。关闭控制回路

由于易于实现和稳定性,我们将在该实验室中实施比例加积分(PI)控制。PI控件的控制算法由清单7.1的伪代码实现。此代码以PWM周期建立的频率执行。当计时器2重置时,将进行PWM占空比的任何更新。

Lab 6a的清单B.6所示的软件指定在哪里为下面清单7.1中的伪代码添加PI控制代码。(这段代码是从第六单元的清单C.1中复制的。)使用设备清单中指定的电机,将常数(KP+KI)设置为60/1024,将常数(KP-KI)设置为60/1024。这些常数是通过实验选择的,只是为了演示的目的,可能需要调整其他类型的电机。

清单7.1。数字PI控制器的伪代码

#define PWM_MAX (GetPeripheralClock()/10000) //设置输出范围#define PWM_MIN 0 static int ERROR = 0;//初始化en-1 int CTRL = 0;// cnn-1的初始值TACH =读取电机转速(Hz);/ / InputCapture ISR设定的全局变量/ / SET_SPEED参考输入是天平使用一阶多项式形式y = ax + b组斜率,,/ /单位rp / ADC,“b”ADC输入时的最低速度是零SET_SPEED =按比例缩小的电位器设置/ /确定速度设定值ADC ERROR_LAST =错误;//保存之前的错误和控制值CTRL_LAST = CTRL;错误= set_speed - tach;//计算新的错误值CTRL = (KP + KI)* error - (KP - KI)*ERROR_LAST + CTRL_LAST;//计算新的控制输出值,如果(CTRL > PWM_MAX) then PWM_CONTROL = PWM_MAX;If (CTRL < PWM_MIN) then PWM_CONTROL = PWM_MIN;else PWM_CONTROL = CTRL; // Output PWM value }

图7.1是通过使用输入捕获ISR中被切换的模拟发现2连接器上的SPI_CK DIO 4引脚监控电机转速表生成的,如图6a中的清单B.4所示。检查图7.1中转速表的图,我们可以看到PI算法需要大约150ms才能达到稳定状态。

图7.1。电动机速度响应,对于PI闭环控制的30%PWM,从CW到CWW的步进输入。图7.1。电动机速度响应,对于PI闭环控制的30%PWM,从CW到CWW的步进输入。


8.实验6B.

实验室6a和6b中使用的直流电机在输出轴上有一个19比1的减速齿轮。用于转速表的霍尔效应传感器安装在电机轴上,因此旋转速度将比输出轴快19倍。所有电机的速度测量都是基于转速表。

这个实验室将分为两个阶段。第一阶段使用开环控制与比例控制,包括转速计输入到处理器。转速表的输入将被一个移动平均数字滤波器滤波,然后显示在液晶并送到UART。

第二阶段采用比例加积分控制的电机速度控制。参考输入$r_n$,将根据之前在公式6.1中描述的关系从模拟控制输入中导出。

8.1。要求

  1. 阶段1:后台任务
    1. 与实验室6A的后台任务相同。
    2. 设置外围总线时钟为10MHz.在config_bits.h中。
    3. 定时器2用于PWM生成
      1. 设置定时器2输入时钟为10兆赫兹
      2. 设置定时器2周期10000计数
    4. 计时器3将用作输入捕获的时间参考。
      1. 设置定时器3输入时钟为625000。
      2. 设置定时器3,以获得最大计数(65536)。
  2. 第1阶段:前景任务
    1. 与实验室6a的前台任务相同。
    2. Basys MX3 JA-10(PIC32MX370端口G引脚9)用于输入捕获通道1。
    3. 输入捕捉ISR
      1. 在转速计信号的每个正过渡时会产生中断。
      2. 读取捕获的计时器3值。
      3. 计算转速计信号的周期,因为两个连续定时器3捕获之间的差异。
      4. 实现第四阶移动平均低通滤波器,以减少周期测量的噪声。
      5. 在PI控制回路和背景显示任务中计算RPS中的电机速度,假设每秒转数(RPS)的电机速度与转速计频率相同。
    4. 定时器2 ISR
      1. 读了ADC
      2. 使用EQ计算设定速度。6.1上方
      3. 当PWM设置为100%时,将实际电机速度计算为最大速度的百分比。
      4. 按照清单7.1所示的伪代码实现控制算法,并使用第六单元背景文本中提供的控制常量。
  3. 阶段2:后台任务
    1. 所有后台任务每250毫秒进行一次服务。
    2. 电机转速设置(spd)、转速表测量(rps)、PWM控制输出(cn)和控制误差(en)将在Basys MX3上显示液晶如图8.1所示。
    3. 除了显示的数据液晶在图8.1中,如图8.1所示,在工作站终端上显示测量的模拟输入控制电压。8.2。
    4. 在Basys MX3板上使用滑块开关,请控制如表8.1所列的电机操作。
  4. 第2阶段:前景任务
    1. 输入捕捉ISR
      1. 计算转速计的两个连续正过渡之间的定时器3滴定的差异。
      2. 在转速表周期上实现四阶移动平均。
      3. 在RPS中计算电机转速。
    2. 定时器2将提供以下功能:
      1. pic32ADC将读取“模拟输入控制”电压的数字化值。
      2. 按照EQ描述缩放模拟控制电压。6.1。
      3. 从比例加积分(PI)算法计算PWM输出。
      4. 写入输出比较生成PWM输出的辅助寄存器(OCXR)。

图8.1。液晶显示闭环操作。图8.1。液晶显示为闭环操作。

图8.2。闭环电机控制的终端屏幕。图8.2。闭环电机控制的终端屏幕。

表8.1。电机控制模式。

滑动开关 低的 高的
SW5 按SW7设定的方向运行电机 海岸经营
SW6. 按SW7设定的方向运行电机 制动(停止)
SW7. 以模拟输入控制设定的速度旋转CCW 通过模拟输入控制速度旋转CW

回到第六单元回到6a实验室转到第七单元