水箱液位基于PID调节控制_第1页
水箱液位基于PID调节控制_第2页
水箱液位基于PID调节控制_第3页
水箱液位基于PID调节控制_第4页
水箱液位基于PID调节控制_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0 过程控制系统与仪表课程设计报告过程控制系统与仪表课程设计报告 设计题目 基于单片机的一阶水箱液位控制 学学 生生 姓姓 名 名 设计时间 设计时间 2014 年年 5 月月 1 摘要摘要 本文介绍了一阶水箱控制过程的设计方案 主要设计了一个基于 51 单片机 的液体转移监控装置 通过建立控制对象的数学模型 完成系统 PID 参数整定 达到液位控制效果 并通过外设界面实时显示液位高度 控制对象是一单容储液箱重量控制过程 其具有自衡特性 便于传递函数 建模 通过 Matlab 上的 simulink 仿真工具进行 PID 仿真测试 确定理论控制 参数 在硬件方面 装置以升级版 51 芯片 STC125A60S2 为主控 运用了矩阵键 盘作为输入设备 LCD1602 为显示设备 4 块电阻应变片组成的全桥测量电路作 为传感检测设备 以及通过 PWM 控制 LM298 电机驱动模块实现水泵输出量可调 本文从系统方案选择与论证 硬件电路设计和系统软件等方面介绍了基于 单片机的液位测量监控系统的设计过程 最终实现了液位的实时测量与显示 最后 本文总结了设计过程中出现的问题及解决方法 简要叙述了所获数据的 处理方法 引出了进一步设计开发的思路 关键词 关键词 传感器测量电路 PID 控制 AD 转换 电机控制 2 目录目录 摘要 2 一 设计题目 4 二 设计报告正文 6 2 1 设计思路及总体方案 6 2 1 1 设计思路 6 2 1 2 系统控制总体方案 6 2 2 过程控制建模系统框图 6 2 2 1 系统的结构框图 6 2 2 2 被控对象解析 7 2 2 3 传递函数参数的确立 8 2 2 4 一阶环节的阶跃响应特性及惯性环节的参数确定 9 实际参数本该由实际装置取样 通过上述方法得到 但本设计我们未制作实物 故只 能参考其他设计取如下值 9 2 2 5 Simulink 仿真及 PID 参数整定 9 2 2 6 经验法测定 PID 参数 11 2 3 硬件电路设计 11 2 3 1 硬件设计总体方案 12 2 3 2 51 单片机最小系统硬件设计 12 2 3 3 按键设计 14 2 3 4 显示单元硬件设计 14 2 3 5 传感检测模块设计 15 2 3 6 A D 转换单元硬件设计 16 2 3 7 电机驱动硬件设计 16 2 3 8 通信模块设计 17 2 3 9 原理图 18 2 4 程序设计 18 2 4 1 程序流程 18 2 4 2 PID 控制器 19 2 4 3 矩阵扫描程序 20 2 4 4 LCD1602 显示程序 20 2 4 5 AD 采集程序 21 2 4 6 PWM 电机驱动程序 23 三 结果分析 23 四 设计总结 25 参考文献 25 3 一 设计题目一 设计题目 设计并制作一个液体转移监控装置 示意图如下图所示 4 图 1 设计示意图 放置两个盛水容器 分别为 A 容器和 B 容器 A 容器盛有足量的水 B 容器 为空 底部中心挖一个出水圆孔 从 A 容器转移水到 B 容器 使 B 容器中的水 的重量达到预设值 并保持该状态 60 秒钟 基本要求 1 制作一个数显装置 当系统开始执行抽水任务时 能实时显示 B 容器中水 的重量和任务执行时间 任务结束后 计时停止 2 通过键盘任意设定转移到 B 容器中的水的重量 设定范围为 500 克 1000 克 调整时间范围为 3 分钟 3 B 容器中的水达到预设值后 保持该状态 60 秒钟 要求能发出短暂的声 音提示信号 4 控制误差范围为10 克 5 B 容器中的水临近溢出时启动报警 并停止系统运行 6 主站能实时显示 B 容器中水的重量变化曲线 注意 1 控制泵类型及水的重量的测量方法不限 其装置安装位置及安装方式自定 2 A 容器大小不限 能够装入足够的水即可 B 容器为 3 3 升矿泉水桶 3 B 容器底部中心制作一个直径 3 毫米的圆孔 4 现场控制不能用系统机 水的重量预设值由评委当场给出 5 二 设计报告正文二 设计报告正文 2 1 设计思路及总体方案设计思路及总体方案 2 1 1 设计思路设计思路 本次课程设计中 我们主要做单容水箱模型的建立 仿真和 PID 参数的整定以及 软件的编写 就课程设计题目来看 为了方便仿真可以将系统等效为一个一阶惯性 环节 为了等效为惯性环节 可以将水的重量乘上一个比例系数换算成为液位的高 度 这样就可以完全按照一阶惯性环节来进行系统的设计 由于只做概念设计故我 们通过查阅资料 假设得到惯性环节的两个参数 T 和 K 接着在加上 PI 调节器之前 仿真出惯性环节的闭环特性图方便与后面作比较 加上 PI 调节器校正系统的误差 并仿真出图形 其中 PI 调节器的参数是通过经验法测定 至于软件方面 主要可 以通过增量式的 PI 算法进行程序的调试 直到得到最佳的值为止 2 1 2 系统控制总体方案系统控制总体方案 单片机控制系统的结构框图如图 2 1 所示 其主要组成部分有 以 51 单片机为 核心的控制单元 基于电阻应变片的传感器检测单元 A D 转换单元 PWM 电机控制 单元 液体重量 g 图 1 1 系统控制框图 单片机控制具体的工作过程是 设定与稳定的水箱液体高度并转换成重量 通 过检测元件获取水箱的实际液位重量 经 A D 转换芯片将模拟信号转换为数字信号 送单片机与设定值进行比较 得到偏差信号 e e 经过调节器做 PID 运算 给 PWM 控 制器输出一个转速控制信号 u 从而调节水泵的输出流量 达到调节水箱液体重量的 目的 2 2 过程控制建模系统框图过程控制建模系统框图 2 2 1 系统的结构框图系统的结构框图 单片机PWM 控制器水泵水箱 检测单元 6 注明注明 考虑到实际情况的单容水箱主要的参数是液位的高度 所以通过液位高 度与重量之间的比例关系将液位高度转化为重量 具体转化关系是 2 1 水的重量 液位高度gmm 256 0 被控制量给定量 调节器 被控对象 测量变送器 执行器 图 1 2 单闭环典型控制系统框图 2 2 2 被控对象解析被控对象解析 如图 1 3 可知 单容储液槽流量特性 储液槽的出水量与液压有关 液压又与液 位的高低成正比 因此 当液位升高时 出液量也随之增大 所以 若阀开度适当 在不溢出的情况下 当储液槽的进液体量恒定不变时 液位的上升速度将逐渐变慢 最终达到平衡 H C Q2 V1 Q1 V2 图 1 3 单容储液槽结构图 水流入量 Q1 由调节阀开度 u 加以控制 流出量 Q2 则由用户根据需要通过负载阀来 改变被调量为水位 h 它反映水的流入与流出之间的平衡关系 根据动态物料平衡方程 2 2 将式 2 2 表示为增量形式 2 3 12 d h QQC dt 式中 分别为偏离某一平衡状态 的增量 C 1Q 2Q h 10 Q 20 Q 0 h 储液槽底面积 在静态时 当发生变化时 液位 h 随之变化 阀处的静 21 QQ 0 dtdh 1 Q 2 V dt dh CQQ 21 7 压也随之变化 也必然发生变化 由流体力学可知 流体在紊流情况下 液位 h 2 Q 与流量之间为非线性关系 但为简化起见 经线性化处理 则可近似认为与 1 Q 成正比 而与阀的阻力成反比 即 h 2 V 2 R 或者 2 4 2 2 R h Q 2 2 Q h R 式中 为阀的阻力 称为液阻 2 R 2 V 将公式 2 4 代入 2 3 得 2 5 122 QRh dt hd CR 在零初始条件下 对上式求拉斯变换 得 2 6 11 2 2 1 0 Ts K CsR R sQ sH sG 即 2 7 1 1 0 t T eKRth 当 得 0 KRht 2 8 阶跃输入 输出稳态值 0 R h K 当 t T 时 有 2 9 632 0632 0 1 0 1 0 hKReKRTh 通过单容水箱建模知道单容水箱的传递函数是一阶惯性环节及表达式为 2 10 1 Ts K sG 2 2 3 传递函数参数的确立传递函数参数的确立 根据阶跃响应曲线 求出模型参数 对于一阶模型 此次用切线法来定 实际生产过程的阶跃响应曲线呈现如图 1 3 1 所示的 S 型曲线是最常见的 用 切线法确定一阶惯性加纯滞后的特征参数方法如下 8 t T 0 632 h h h 图 1 4 切线法确定一阶惯性加纯滞后的特征参数 由切线和稳态值的交点的横坐标可以得到常数 T 而由可以得到参 632 0 h 数 K 进而得到单容水箱的传递函数为 2 11 1 Ts K sG 2 2 4 一阶环节的阶跃响应特性一阶环节的阶跃响应特性及惯性环节的参数确定及惯性环节的参数确定 实际参数本该由实际装置取样 通过上述方法得到 但本设计我们未制作实物 故 只能参考其他设计取如下值 2 12 92 16 116 K T 2 2 5 Simulink 仿真及仿真及 PID 参数整定参数整定 1 系统的简化框图 9 图 1 7 简化框图 2 Simulink 仿真的系统的结构框图和开环特性图 图 1 8 系统的结构框图 由系统结构框图去掉 PID 部分可以用 Simulink 得到开环系统的阶跃响应图如下 图 1 9 系统的开环特性图 根据图可以明显看到函数图像与一阶惯性环节基本吻合 10 2 2 6 经验法测定经验法测定 PID 参数参数 比例调节是基本的控制作用 应首先把比例度调好 待过渡过程基本稳定后 再加积分作用以消除余差 最后加入微分作用以进一步提高控制质量 1 因为对象的开环传递函数是一阶惯性环节 所以它的闭环传递函数还是惯 性环节 由此我们对 P 值的整定可以根据调节时间的大小来大概确定它的值 暂时 先取 6 P K 2 对于 PI 调节器 先设置 按比例环节调整比例度 P 使过渡 0 d T i T 过程达到 4 1 衰减比 然后 将 P 放大 10 20 将积分时间由大到小逐步增加 直至获得衰减比为 4 1 过渡过程 仿真图如下 图 1 10 PI 整定过后系统图 此时 由经验法得到的参数为 2 13 9 0 1 5 6 i p T K 经过 PI 整定过后得到的闭环系统的结构图 由于题目对时间的要求不是很严格 所 以在保证系统的稳态误差的情况下足以满足题目要求 所以没有必要再加入微分调 节 2 3 硬件电路设计硬件电路设计 注明此处的硬件设计只用于仿真 以及对于器件选型的讨论 不做实物 11 2 3 1 硬件设计总体方案硬件设计总体方案 硬件以升级版 51 芯片 STC125A60S2 为主控 运用了矩阵键盘作为输入设备 LCD1602 为显示设备 LED 作为报警指示 4 块电阻应变片组成的全桥测量电路作 为传感检测设备 由于其输出电压为毫伏级别 所以采用了 24 位高精度 A D 模数转 换芯片 HX711 进行重量采集 以及通过 PWM 控制 LM298 电机驱动模块实现水泵输出 量可调 控制过程中的数据由 LCD1602 实时显示 硬件总体设计方案如下 图 1 11 硬总体设计方案 2 3 2 51 单片机最小系统硬件设计单片机最小系统硬件设计 单片机最小系统也叫最小应用系统 是指用最少的元件组成的单片机可以工作的 系统 对 51 系列单片机来说 最小系统一般该包括 电源电路 单片机 晶振电路 复位电路 其电路图如下 1 电源电路 电源电路设置了 10uF 和 0 1uF 的电容起滤波作用 并带有指示灯 提供 5V 的工作电压 12 图 1 12 电源电路 2 时钟电路 单片机工作时 从取指令到译码再进行微操作 必须在时钟信号控制下才能有 序地进行 时钟电路就是为单片机工作提供基本时钟的 单片机的时钟信号通常有 两种产生方式 内部时钟方式和外部时钟方式 我们这里选用内部时钟方式 如下 图 内部时钟是指在单片机 XTAL1 和 XTAL2 引脚上跨接上一个晶振和两个稳频电容 可以与单片机片内的电路构成一个稳定的自激振荡器 晶振的取值范围一般为 0 24MHz 外接电容的作用是对振荡器进行频率微调 使振荡信号频率与晶振频率一 致 同时起到稳定频率的作用 一般选用 20 30pF 的瓷片电容 图 1 13 时钟电路 3 复位电路 无论是在单片机刚开始接上电源时 还是运行过程中发生故障都需要复位 复 位电路用于将单片机内部各电路的状态恢复到一个确定的初始值 并从这个状态开 始工作 单片机的复位条件 必须使其 RST 引脚上持续出现两个 或以上 机器周期 的高电平 单片机的复位形式 上电复位 按键复位 这里我们最小系统所使用的 是按键复位 按键复位电路如下 当按键没有按下时 对电容进行充电 如在单片 机运行过程中 按下 RESET 键 已经充好电的电容会快速通过接地电阻的回路放电 从而使得 RST 引脚上的电位快速变为高电平 此高电平会维持到按键释放 从而满 足单片机复位的条件实现按键复位 13 图 1 14 复位电路图 2 3 3 按键设计按键设计 矩阵键盘是用 4 条 I O 线作行线 4 条 I O 线作列线 在行线和列线的每个交叉 点上 设置一个按键 键盘中的按键有 16 个 这种行列式键盘结构能够有效地提高 单片机系统中 I O 口的利用率 图 1 15 矩阵键盘 2 3 4 显示单元硬件设计显示单元硬件设计 1602 共 16 跟管教 5V 电压 能够同时显示 16x02 即 32 个字符 16 列 2 行 电路图以及控制功能列表 14 图 1 16 显示电路 表 2 LCD1602 指令控制表 RSR W操作说明 00写入指令码 D0 D7 01读取输出的 D0 D7 状态字 10写入数据 D0 D7 11从 D0 D7 读取数据 2 3 5 传感检测模块设计传感检测模块设计 本装置运用了 4 个电阻应变片组成的全桥测量电路作为测量电路 原理图如下 图 1 17 全桥差动 使用全桥差动测量电路不仅没有非线性误差 且电压灵敏度是单臂电阻应变片工作时的 4 倍 15 2 3 6 A D 转换单元硬件设计转换单元硬件设计 A D 转换器是用来通过一定的电路将模拟量转变为数字量 模拟量可以是电压 电流等电信号 也可以是压力 温度 湿度 位移 声音等非电信号 但在 A D 转 换前 输入到 A D 转换器的输入信号必须经各种传感器把各种物理量转换成电压信 号 HX711 采用了海芯科技集成电路专利技术 是一款专为高精度电子秤而设计的 24 位 A D 转换器芯片 与同类型其它芯片相比 该芯片集成了包括稳压电源 片 内时钟振荡器等其它同类型芯片所需要的外围电路 具有集成度高 响应速度快 抗干扰性强等优点 降低了电子秤的整机成本 提高了整机的性能和可靠性 图 1 18 HX711 2 3 7 电机驱动硬件设计电机驱动硬件设计 1 L298N 芯片 L298N 是 SGS 公司产品 内部包含 4 通道逻辑驱动电路 是一种二相和四相电 机的专用驱动器 即内含二个 H 桥电路 可以用来驱动直流电机和步进电机 继电 器线圈等感性负载 采用标准逻辑电平信号控制 具有两个使能控制端 在不受输 入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端 使内部逻辑电路 部分在低电压下工作 可以外接检测电阻 将变化量反馈给控制电路 其可驱动 46V 2A 以下的电机 并可以直接连接单片机 I O 提供信号可以很方便的利用 PWM 脉宽调制法进行控制 2 PWM 控制电压调节电机速度原理 用大功率晶闸管控制的 PWM 永磁式直流电机驱动装置 是高精度伺服电机控 制领域应用最为广泛的驱动形式 该装置能实现宽范围内的速度和位置控制 PWM 驱动原理是直流斩波原理 里用大功率晶闸管的开关特性来调制固定电压 的直流电源 按一个固定频率来接通和关段 并根据需要改变一个周期内通短时 16 间的长短 通过改变调节直流电枢上的占空比来改变平均电压的大小 从而调节 转速 若周期为 T 一个周期内道统时间为 t 则平均电压为 1 UVcc t TVcc 其中为占空比 为电源电压 Vcc 直流电机的转速与电机两端的电压成正比 而电机两端的平均电压与成 正比 占空比越大速度越快 当占空比为一时加载电机两端的平均电压最大 电机转速也最大 3 H 桥电路 H 桥式电机驱动电路包括 4 个三极管和一个电机 因其外形酷似 H 字母而得名 如下图 要使 M 运转 必须使对角线上的三极管导通 如当 Q1 管和 Q4 导通时 电 流就从电源正极经 Q1 从左至右穿过电机 然后经 Q4 回到电源负极 电机顺时转动 当三极管 Q2 和 Q3 导通时 电流从右至左流过电机 驱动电机逆时针转动 图 1 19 H 桥电路 2 3 8 通信模块设计通信模块设计 在串口通信方面采用了 PL2303 芯片 好处在于该器件内置 USB 功能控制器 USB 收发器 振荡器和带有全部调制解调器控制信号的 UART 只需外接几只电容 就可实现 USB 信号与 RS232 信号的转换 能够方便嵌入到各种设备 该器件作为 USB RS232 双向转换器 一方面从主机接收 USB 数据并将其转换为 RS232 信息流格 式发送给外设 另一方面从 RS232 外设接收数据转换为 USB 数据格式传送回主机 这些工作全部由器件自动完成 开发者无需考虑固件设计 17 图 1 20 PL2303 通信模块 2 3 9 原理图原理图 1 原理图 图 1 21 原理图 2 4 程序设计程序设计 2 4 1 程序流程程序流程 设备上电之后便会进行各模块的初始化 包括 LCD1602 的初始化 HX711AD 模块 初始化 定时器及 PWM 模块初始化 其次将等待预设值的输入 预设值输入之后将 18 通过相应运算得到调节时间 程序便开始进行 PID 控制 同时在显示模块上同步显 示液体高度 程序流程图如下 图 1 23 程序流程图 2 4 2 PID 控制器控制器 在该控制系统中运用了增量式 PID 的控制方式 增量式 PID 的公式如下 1 kukuku 2 2 1 2 1 kekeke T T ke T T kekeK d i p 11 PID 程序通过获得传感器测得的实时数据与目标值做差 得到误差量 进行 PID 运算之后再通过改变 PWM 的量达到对水泵流量的控制 PID 控制流程图如下 PID 控制程序入口 e k 给定值 测量值 PID 运算 各模块初始化 PID 控制 显示 设定目标 值 获取重量 19 图 1 24 PID 程序流程图 2 4 3 矩阵扫描程序矩阵扫描程序 在矩阵键盘扫描程序中 首先将端口置为检测是否有按键按下 在检测到按键 按下之后进行消抖操作 再对返回的值做分析 得到返回键值 2 4 4 LCD1602 显示程序显示程序 显示流程图如下 图 1 25 PID 程序流程图 在 LCD12864 显示文字时要先进行初始化 初始化时需要将相应指令输入到 LCD12864 中 程序如下 void lcd init 1602 void 1602 初始化 ifdef LCD 1602 parallel 8 lcdrw 0 lcden 0 write 1602 0 x38 0 设至显示模式 write 1602 0 x0c 0 设置显示和光标 write 1602 0 x06 0 设置光标移动 LCD 初始化 确定输入坐标 返回控制量 更新历史数据 e k 1 e k 2 输入显示数据 20 write 1602 0 x01 0 清屏 endif ifdef LCD 1602 parallel 4 u8 date 1602 lcdrw 0 lcdrs 0 lcden 1 delay ms 2 根据系统时钟不同而不同 date 1602 0 x02 LOW BIT I0 lcd1602 I0 lcd1602 delay ms 2 根据系统时钟不同而不同 I0 lcd1602 I0 lcd1602 date 1602 lcden 0 write 1602 0 x28 0 设至显示模式 write 1602 0 x0c 0 设置显示和光标 write 1602 0 x06 0 设置光标移动 write 1602 0 x01 0 清屏 endif 显示时用到了显示字符串函数 void write string1 1602 u8 addr y u8 addr x u8 string 写带地址的字符串 write addr 1602 addr y addr x 写地址 write string 1602 string 写字符串 void write 1602 u8 date bit com 写 1602 操作 lcdrs com 数据或命令 I0 lcd1602 date 数据传送 delay ms 2 lcden 1 LCD1602 使能 delay ms 2 lcden 0 1602 失能 2 4 5 AD 采集程序采集程序 装置运用了 24 位的 HX711A D 转换模块获取传感器测量电压 其测量程序时序 操作图如下 21 图 1 26 HX711 时序图 unsigned long HX711 Read void unsigned long count unsigned char i HX711 DOUT 1 Delay hx711 us HX711 SCK 0 count 0 while HX711 DOUT for i 0 i 24 i HX711 SCK 1 count count 1 HX711 SCK 0 if HX711 DOUT count HX711 SCK 1 count count 0 x Delay hx711 us HX711 SCK 0 return count 22 2 4 6 PWM 电机驱动程序电机驱动程序 首先有两个寄存器 CCAPnL 和 CL CCAPnL 用来存放一个 0 255 之间的一个 数据 用来作比较的 假如是 100 CL 是一个计数器 假如 CL 0 那么 CL 从 0 不断加 1 一直加到 99 这段时间 PWM 引脚输出为低电平 当 CL 的值变为 100 然后一直加到 255 这段时间 PWM 引脚输出为高电平 CL 再加 1 的话会翻 转到 00 重新计数 CL 的计数速度可选 FOSC 作为 PWM 的输入时钟 使用固定的 PWM 的信号频率 这里可以看到 CCAPnL 存放的数值影响着输出脉冲高低电平的 宽度 通过修改 CCAPnL 的值 也就是说输出脉冲宽度可以随时改变 由此将 PWM 输出给 L298 电机驱动芯片实现电机转速可调 相关初始化程序与控制程序如下 void PWM ini PWM 初始化 CMOD 0 x00 选择 FOSC 12 作为时钟源 CL 0 x00 清零自由递增计数的 16 位定时器的值 PWM1 相关寄存器设置 PCA PWM1 0 x00 CCAPM1 0 x42 CR 1 CR 1 启动 PCA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论