探索水箱系统:从单容到三容的奇妙之旅
三容水箱报告含simulink仿真和代码ppt适合大学生结课报告也有单容双容报告。在自动化控制领域水箱系统是一个经典的研究对象无论是单容、双容还是三容水箱都蕴含着丰富的控制理论实践知识。今天咱们就来深入唠唠这几种水箱系统还会分享Simulink仿真以及相关代码文末再聊聊适合大学生结课报告的PPT制作思路。一、单容水箱系统单容水箱相对简单它主要由一个水箱、进水口和出水口组成。从控制角度看我们可以把水箱的水位当作被控变量进水流量作为控制变量。一建模假设水箱横截面积为$A$进水流量为$q{in}$出水流量$q{out}$与水位$h$满足关系$q{out}k\sqrt{h}$这里$k$为出流系数。根据质量守恒水箱内水体积的变化率等于进水量与出水量之差即$A\frac{dh}{dt}q{in}-q{out}q{in}-k\sqrt{h}$。二Simulink仿真在Simulink中搭建模型也不复杂。首先添加一个积分模块来实现对$\frac{dh}{dt}$的积分得到水位$h$。进水流量$q{in}$可以用一个阶跃信号模拟而出水流量模块通过自定义函数来实现$q{out}k\sqrt{h}$。连接好各个模块后设置好参数就能运行仿真观察水位变化曲线啦。三代码实现以Python为例import numpy as np import matplotlib.pyplot as plt # 参数设置 A 1.0 # 水箱横截面积 k 0.5 # 出流系数 t_end 100 # 仿真总时间 dt 0.01 # 时间步长 time np.arange(0, t_end, dt) # 初始化变量 h np.zeros(len(time)) q_in np.zeros(len(time)) q_out np.zeros(len(time)) # 设定进水流量为阶跃信号从第10秒开始有流量 for i in range(len(time)): if time[i] 10: q_in[i] 1 # 模拟水箱动态过程 for i in range(1, len(time)): q_out[i] k * np.sqrt(h[i - 1]) h[i] h[i - 1] (q_in[i - 1] - q_out[i - 1]) * dt / A # 绘图 plt.plot(time, h, labelWater Level) plt.xlabel(Time (s)) plt.ylabel(Water Level (m)) plt.legend() plt.show()这段代码里我们首先设定了水箱的参数比如横截面积$A$和出流系数$k$。然后通过循环模拟时间推进在每个时间步长里根据质量守恒方程更新水位$h$。最后用matplotlib库绘制出水位随时间变化的曲线。二、双容水箱系统双容水箱在单容水箱基础上增加了一个水箱两个水箱通过管道相连。此时系统变得更复杂有两个水位变量需要考虑控制难度也有所提升。一建模设两个水箱横截面积分别为$A1$和$A2$第一个水箱进水流量为$q{in}$两水箱间连接管的流量$q{12}$与两水箱水位差有关比如$q{12}k{12}(h1 - h2)$第二个水箱的出水流量$q{out}k2\sqrt{h_2}$。根据质量守恒对两个水箱分别列方程$A1\frac{dh1}{dt}q{in}-q{12}q{in}-k{12}(h1 - h2)$$A2\frac{dh2}{dt}q{12}-q{out}k{12}(h1 - h2)-k2\sqrt{h_2}$二Simulink仿真在Simulink里搭建双容水箱模型除了像单容水箱那样有积分模块、流量信号模块外还需要一些计算模块来实现两水箱间流量以及各水箱进出流量的关系。三代码实现Pythonimport numpy as np import matplotlib.pyplot as plt # 参数设置 A1 1.0 A2 1.0 k12 0.3 k2 0.5 t_end 100 dt 0.01 time np.arange(0, t_end, dt) # 初始化变量 h1 np.zeros(len(time)) h2 np.zeros(len(time)) q_in np.zeros(len(time)) q12 np.zeros(len(time)) q_out np.zeros(len(time)) # 设定进水流量为阶跃信号从第10秒开始有流量 for i in range(len(time)): if time[i] 10: q_in[i] 1 # 模拟双容水箱动态过程 for i in range(1, len(time)): q12[i] k12 * (h1[i - 1] - h2[i - 1]) q_out[i] k2 * np.sqrt(h2[i - 1]) h1[i] h1[i - 1] (q_in[i - 1] - q12[i - 1]) * dt / A1 h2[i] h2[i - 1] (q12[i - 1] - q_out[i - 1]) * dt / A2 # 绘图 plt.plot(time, h1, labelWater Level in Tank 1) plt.plot(time, h2, labelWater Level in Tank 2) plt.xlabel(Time (s)) plt.ylabel(Water Level (m)) plt.legend() plt.show()这里相比单容水箱代码多了对第二个水箱相关变量的处理。同样通过循环在每个时间步长里更新两个水箱的水位模拟双容水箱系统的动态特性。三、三容水箱系统三容水箱就更有挑战性啦它由三个水箱相互连接组成系统有三个水位变量相互之间的耦合关系更复杂。一建模设三个水箱横截面积为$A1$、$A2$、$A3$进水流量为$q{in}$各水箱间连接管流量以及出水流量类似双容水箱那样根据水位差等关系建立。比如水箱1到水箱2的流量$q{12}k{12}(h1 - h2)$水箱2到水箱3的流量$q{23}k{23}(h2 - h3)$水箱3的出水流量$q{out}k3\sqrt{h_3}$。质量守恒方程如下三容水箱报告含simulink仿真和代码ppt适合大学生结课报告也有单容双容报告。$A1\frac{dh1}{dt}q{in}-q{12}q{in}-k{12}(h1 - h2)$$A2\frac{dh2}{dt}q{12}-q{23}k{12}(h1 - h2)-k{23}(h2 - h3)$$A3\frac{dh3}{dt}q{23}-q{out}k{23}(h2 - h3)-k3\sqrt{h_3}$二Simulink仿真搭建三容水箱的Simulink模型模块更多更复杂要精确设置各模块参数以及连接关系来准确模拟系统动态。三代码实现Pythonimport numpy as np import matplotlib.pyplot as plt # 参数设置 A1 1.0 A2 1.0 A3 1.0 k12 0.3 k23 0.3 k3 0.5 t_end 100 dt 0.01 time np.arange(0, t_end, dt) # 初始化变量 h1 np.zeros(len(time)) h2 np.zeros(len(time)) h3 np.zeros(len(time)) q_in np.zeros(len(time)) q12 np.zeros(len(time)) q23 np.zeros(len(time)) q_out np.zeros(len(time)) # 设定进水流量为阶跃信号从第10秒开始有流量 for i in range(len(time)): if time[i] 10: q_in[i] 1 # 模拟三容水箱动态过程 for i in range(1, len(time)): q12[i] k12 * (h1[i - 1] - h2[i - 1]) q23[i] k23 * (h2[i - 1] - h3[i - 1]) q_out[i] k3 * np.sqrt(h3[i - 1]) h1[i] h1[i - 1] (q_in[i - 1] - q12[i - 1]) * dt / A1 h2[i] h2[i - 1] (q12[i - 1] - q23[i - 1]) * dt / A2 h3[i] h3[i - 1] (q23[i - 1] - q_out[i - 1]) * dt / A3 # 绘图 plt.plot(time, h1, labelWater Level in Tank 1) plt.plot(time, h2, labelWater Level in Tank 2) plt.plot(time, h3, labelWater Level in Tank 3) plt.xlabel(Time (s)) plt.ylabel(Water Level (m)) plt.legend() plt.show()代码在双容水箱基础上进一步扩展增加了对第三个水箱的处理详细模拟了三容水箱系统中三个水箱水位随时间的变化情况。四、大学生结课报告PPT制作一封面简洁明了写上“三容水箱或单容、双容水箱系统研究报告”加上学校、专业、姓名、日期等信息。二目录列出报告的主要章节像研究背景、系统建模、仿真与代码实现、结论等。三内容页研究背景阐述水箱系统在工业控制等领域的应用引出研究意义。系统建模用简单易懂的图表和公式说明单容、双容、三容水箱的建模过程别写太复杂突出关键方程就行。Simulink仿真放Simulink模型截图配上简短解释再展示仿真结果曲线分析曲线特征。代码实现选关键代码片段展示像前面Python代码里模拟水箱动态过程那部分解释代码思路不用把整个代码都放上去。结论总结研究成果说说从中学到什么还有哪些不足可以改进。四致谢页感谢老师指导和同学帮助。希望这篇博文能帮助大家更好地理解单容、双容和三容水箱系统在结课报告中取得好成绩