第章单片机常用算法设计.pptVIP

  • 4
  • 0
  • 约7.74千字
  • 约 54页
  • 2019-03-06 发布于江苏
  • 举报
二 数字PID控制器 模拟形式 离散化形式 模拟PID控制规律的离散化形式 数字PID控制器的差分方程: 式中: ,为比例项; ,为积分项; ,为微分项。 常用的控制方式: ① P控制 ② PI控制 ③ PD控制 ④ PID控制 PID算法的两种类型 ① 位置型控制 ② 增量型控制 三 PID算法的程序流程 增量型PID算法的程序流程 算式: 式中: 位置型PID算法的程序流程 递推形式: 第7章 单片机常用算法设计 7.1 单片机滤波算法的设计 7.2 信号处理的FFT变换 7.3 SPWM正弦逆变算法的设计 7.4 PID控制算法 7.5 51单片机PID算法程序 7.6 模糊控制算法 7.1 单片机滤波算法的设计 电路的滤波分为模拟滤波与数字滤波。其中数字滤波器具有精度高、高可靠性和高稳定性的特点 ,因此被广泛应用。用数字滤波算法克服随机误差主要有如下优点: 数字滤波由软件程序实现 ,不需要硬件 ,因此 不存在阻抗匹配的问题; 对于多路信号输入通道 ,可以共用一个软件“滤波器”,降低仪表的设计成本; 只要改变滤波器程序或元算参数 ,就能方便的改变滤波特性。 下面我们介绍几种主要的数字滤波法: A.限幅滤波法 对于随机干扰 , 限幅滤波是一种有效的方法; 基本方法:比较相邻n 和 n - 1时刻的两个采样值y(n)和 y(n – 1),根据经验确定两次采样允许的最大偏差。如果两次采样值的差值超过最大偏差范围 ,认为发生可随机干扰 ,并认为后一次采样值y(n)为非法值 ,应予删除 ,删除y(n)后 ,可用y(n – 1) 代替y(n);若未超过所允许的最大偏差范围 ,则认为本次采样值有效。 下面是限幅滤波程序:( A 值可根据实际情况调整,value 为有效值 ,new_value 为当前采样值滤波程序返回有效的实际值 ) #define A 10 char value; char filter() {?? char new_value; ??? new_value = get_ad(); ??? if ( ( new_value - value A ) || ( value - new_value A )) return value; ??? return new_value; } B.中位值滤波法 中位值滤波法能有效克服偶然因素引起的波动或采样不稳定引起的误码等脉冲干扰; 对温度 液位等缓慢变化的被测参数用此法能收到良好的滤波效果 ,但是对于流量压力等快速变化的参数一般不宜采用中位值滤波法; 基本方法:对某一被测参数连续采样 n次(一般 n 取奇数) ,然后再把采样值按大小排列 ,取中间值为本次采样值。 #define N?? 11 char filter() {? char value_buf[N], count,i,j,temp; ??? for ( count=0;countN;count++) ??? {? value_buf[count] = get_ad();??? delay();?? } ??? for (j=0;jN-1;j++) ??? {? for (i=0;iN-j;i++) ?????? {??if ( value_buf[i]value_buf[i+1] ) ????????? {temp = value_buf[i]; value_buf[i] = value_buf[i+1]; value_buf[i+1] = temp;? } ?????? } ??? } ??? return value_buf[(N-1)/2]; }? 下面是中位值滤波程序: C.算术平均滤波法 算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。这种信号的特点是信号本身在某一数值范围附近上下波动 ,如测量流量、 液位; 基本方法:按输入的N 个采样数据 ,寻找这样一个 Y ,使得 Y 与各个采样值之间的偏差的平方和最小。 编写算术平均滤波法程序时严格注意: 一.为了加快数据测量的速度 ,可采用先测量数据 存放在存储器中 ,测完 N 点后 ,再对 N 个数据进行平均值计算; 二.选取适当的数据格式 ,也就是说采用定点数还是采用浮点数。其程序如下所示: #define N 12 char filter() {int?? sum = 0,

文档评论(0)

1亿VIP精品文档

相关文档