简单阈值算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
……
遗传算法
阈值控制
常见控制算法
PID控制
神经网络模糊控制
简单阈值控制算法
简单阈值控制算法适用于将对象的某种物理参数控制在一个预定的范 并且对精度要求不高的场合。 围,并且对精度要求不高的场合。
稍微超出预定的范围也可接受 控制对象参数
控制范围
时间
边界值(即阈值)是控制的技术指标
目
录
简介
算法原理
应用实例
本章目的
数据结构和计算方法方面的教材虽然很多, 数据结构和计算方法方面的教材虽然很多,但大多是为计算机专业编 写的,侧重于理论的叙述。本书针对嵌入式系统的硬件特点, 写的,侧重于理论的叙述。本书针对嵌入式系统的硬件特点,偏向于实际应 希望起到一个引导入门的作用。 用,希望起到一个引导入门的作用。
简单阈值 控制算法
TMOD = 1; \ TH0 = 0; \ TL0 = 0; \ TR0 = 0; \ ET0 = 0; \ EA = 0
设置定时器 定时器 定时器 启动定时器 使能定时器中 使能全局中断
导读
嵌入式领域发展趋势
十年前 现在
硬件
软件
硬件特点
集成度 高 低 标准化 复杂
软件特点
代码量 大 小 高 低
设计
复杂程度
软件的灵魂
软件
数据结构
研究“非数值运算”的程 序设计学科,主要研究计算机 操作对象和它们之间的关系及 操作方法等问题。
计算方法
又称“数值分析”,侧 重于解决科学与工程的实际问 题,适应计算的特点。
上、下限阈值控制算法的一种等效算法
单阈值定时控制算法
上限阈值 ∆x 阈值 ∆t 单阈值定时控制状态曲线 ∆t为执行机构开启时间 为执行机构开启时间 下限阈值 ∆tx 上、下限阈值控制状态曲线 ∆x决定执行机构开启时间 x 决定执行机构开启时间∆t 决定执行机构开启时间
令∆t ≈ ∆tx,则实现两种算法等效
Байду номын сангаас
上、下限阈值控制的状态曲线
被控对象状态 上限 下限 时间
执行机构 启动 关闭 时间
执行机构频繁启动的问题 得到了缓解。
上、下限阈值控制算法实现
开始
上、下限阈值
检测控制 对象状态 Y 开启执行机构
超过 上限阈值? 上限阈值? N 低于 下限阈值? 下限阈值? Y 关闭执行机构
#define HTmp #define LTmp
28.0 25.0
N
void TmpSampleCtrl() { float CurTmp; CurTmp = Sample(); if (CurTmp > HTmp) else if (CurTmp > LTmp) }
CtrlOut(1); CtrlOut(0);
结束
上、下限阈值控制流程图
上、下限阈值控制函数
定时阈值控制算法实现
开始
Y 执行机构 已启动? 已启动 N 检测控制 对象状态 N 超过预定 阈值? 阈值? 关闭执行机构 Y 启动执行机构 并开始计时 N 计时时间到? 计时时间到? Y
结束
#define HTmp 28.0 #define Time 30 int out = 0; int count; void TmpSampleStrl() { float CurTmp; if (out == 0) { CurTmp = Sample(); if (CurTmp > HTmp) { out = 1; CtrlOut(out); Count = 12 * Time; } } else { Count--; if (Count == 0) { out = 0; CtrlOut(out); }
阈值
!
执行机构
启动 关闭
当∆1和∆2 较小时,执 和 较小时, 行机构启停频繁
时间
时间
引入上、下限阈值控制
采用类似于施密特触发器的设计
执行机构
控制特点
启动
1
1 状态值超过上限阈值时,开启执行机构 2 状态值小于 下限阈值时,关闭执行机构
关闭
2
下限 阈值 上限 阈值 被控对象 状态值
回差 = 上限阈值 - 下限阈值
检测的水位阈值 即探头与塔底的距离
自来水塔
水塔水位控制电路
水位下限 探头 水位上限 探头
220K 220K +5V
1 0 1 0
P1.0
80C51
P1.1 P1.2
0 1
水泵电机 驱动电路
自来水塔
水塔水位控制程序
#include <8051.h> sbit Out = P1^2; volitile unsigned char SecCnt; void T0_Server(void)interrupt 1 using 1{ if (SecCnt) SecCnt = SecCnt - 1; } void SampleCtrl(); void main(void) { TIMER_INIT(); while(1){ EA = 0; SecCnt = 70; EA = 1; while(SecCnt) SampleCtrl(); } } 定义输出引脚 Out=1:开启水泵;Out=0,关闭水泵 :开启水泵; , 定义秒定时计数器 定时器0中断服务程序 定时器 中断服务程序 若秒计数器不为0, 若秒计数器不为 ,则向下计数 void SampleCtrl() { unsigned char CurStat; #define TIMER_INIT() CurStat = P1 & 0x03; if (CurStat == 3) { Out = 1; else if (CurStat == 0) { 设定定时, 设定定时,约5秒检测一次 秒检测一次 Out = 0; } }
循环队列
常用 检错算法
应用实例
本章内容
3.1 简单阈值控制算法
目
录
简介
算法原理
应用实例
简单阈值控制算法 常见自动控制算法
自动控制是嵌入式系统的重要应用领域, 自动控制是嵌入式系统的重要应用领域,由于控制对象的物理特性千 差万别,技术指标要求高低不同,控制算法种类繁多。 差万别,技术指标要求高低不同,控制算法种类繁多。
输入信号
?
简单阈值控制下的被控 对象的状态曲线?
阈值控制系统 执行机构 输出控制信号
单阈值控制的状态曲线
假设
执行机构开启时,被控对象状态值逐渐下降; 执行机构关闭时,被控对象状态值在其它因素的影响下逐渐上升。 控制延迟∆t 控制延迟 1和∆t2
被控对象状态
∆t1
∆t2
由传感器或执行机构的延迟所导致
阈值控制系统工作过程
在采用阈值控制系统中,控制系统通过传感器检测被控对象的状态, 在采用阈值控制系统中,控制系统通过传感器检测被控对象的状态, 当此状态超出预定范围,输出控制信号, 当此状态超出预定范围,输出控制信号,由执行机构将对控制对象的状态 调整到预定范围。 调整到预定范围。
对象状态 传感器
目
录
简介
算法原理
应用实例
自来水塔水位控制
影响水位的两个因素 1 水泵向水塔供水使水位上升 2 用户用水会使水位下降
需要避免的两种情况 1 水位不能过高,以免溢出 2 水位也不能太低,避免用户断水
自来水塔
自来水塔水位检测
VCC 输出低 输出高 输出低电平 高
水位探头
水位检测机制 1 水塔中的水接地 2 水位探头接上拉电阻