3.11 操作实例——蓝藻的成长模型
蓝藻是水产养殖行业的一大难题,每年一到的高温季节,蓝藻就开始大面积爆发,给水产养殖行业造成了很多困难,甚至会造成难以挽回的巨大损失。蓝藻作为一种繁殖十分迅速的藻类原核生物,在温度高、气压低的时候容易大量爆发。爆发时常在下风口形成深绿色油漆状油膜,取水仔细观察可以看见水中悬浮着针尖大小的绿色颗粒。
为了解决水产养殖池塘有害藻问题,本实例模拟蓝藻的繁殖或死亡模型。假定蓝藻的繁殖率和当前蓝藻的总数成正比,死亡率和当前的总数的平方成正比。若以x代表当前蓝藻的总数,则
◆ 蓝藻的繁殖率可表示为:birth_rate=bx。
◆ 蓝藻的死亡率可表示为:death_rate=px。
◆ 蓝藻总数的总变化率可表示为繁殖率与死亡率之差。因此系统可表示为如下的微分方程形式:x=bx-px2。
假定b=10/h,p=5/h,当前蓝藻的总数为1000,显示蓝藻总数的生长模式,标注高峰期,进行水产放苗管理避开该时段。为抑制蓝藻总数的生长,采取短时间蓝光照射,观察该措施对生长模式的影响。
操作步骤如下。
1.创建模型文件
在MATLAB主页主窗口选择“新建”→“Simulink Model(仿真模型)”命令,打开Simulink模型文件。
2.打开库文件
选择功能区中的“Library Browser(模块库浏览器)”命令,弹出如图3-49所示的“仿真模块库浏览器”窗口。
3.模型保存
图3-49 “Simulink Library Browser(仿真模块库浏览器)”窗口
选择“SIMULINK(仿真)”功能区中的“Save As(另存为)”命令,将生成的模型文件保存为Seaweed_growth.slx。
4.放置模块
在模块库中,打开“Simulink(仿真)”→“Commonly Used Block(常用模块)”模块库,选择2个增益模块Gain、1个积分模块Integrator、1个示波器模块Scope、1个乘法模块Product、1个求和模块Sum,如图3-50所示。
图3-50 选择模块
5.模型中布局与连接
1)将图3-50中选中的模块拖动到模型中,按照系统框图进行放置,如图3-51所示。
2)选中Product模块,按〈Ctrl+R〉快捷键,旋转模块。使用同样的方法旋转Gain、Gain1模块。
3)将鼠标指针移动到模块输出端口,鼠标变为十字形状,按住鼠标左键将鼠标向外拖动,显示带箭头红色虚线,移动到模块输入端口松开鼠标,连接两模块。模块连接结果如图3-52所示。
图3-51 放置模块
图3-52 模块连接
6.仿真模型中参数的设定
1)双击Gain模块,弹出“Block Parameters:Gain”对话框,设置Gain增益值为5,如图3-53所示。Gain1中增益值为10。
2)在积分模块Intergrator参数中设置Initial condition为1000,如图3-54所示。
3)在Sum求和模块中设置1个减法、1个加法,如图3-55所示。
4)双击示波器模块Scope弹出“Scope(示波器)”对话框,选择“File(文件)”→“Open at Start of Simulation(仿真时打开)”命令,开始仿真后自动打开示波器窗口。
完成设置的模型图如图3-56所示。
图3-53 “Block Parameters:Gain”对话框
图3-54 “Block Parameters:Integrator”对话框
图3-55 “Block Parameters:Sum”对话框
图3-56 创建模型图(一)
7.仿真分析
单击工具栏中的“Run(运行)”按钮,运行结束后,在示波器中显示分析结果,如图3-57所示。
8.模型设计
蓝光照射10s后,对藻类的繁殖死亡产生影响。在模块库中打开“Simulink(仿真)”→“Commonly Used Block(常用模块)”模块库并选择Delay模块,设置Delay length为10,如图3-58所示。设置完成的模型图如图3-59所示。
9.仿真分析
单击工具栏中的“Run(运行)”按钮,运行结束后,在示波器中显示分析结果,如图3-60所示。
图3-57 示波器显示分析图(一)
图3-58 “Block Parameters:Delay”对话框
图3-59 创建模型图(二)
图3-60 示波器显示分析图(二)