MATLAB Simulink 2020系统仿真从入门到精通
上QQ阅读APP看书,第一时间看更新

3.11 操作实例——蓝藻的成长模型

蓝藻是水产养殖行业的一大难题,每年一到的高温季节,蓝藻就开始大面积爆发,给水产养殖行业造成了很多困难,甚至会造成难以挽回的巨大损失。蓝藻作为一种繁殖十分迅速的藻类原核生物,在温度高、气压低的时候容易大量爆发。爆发时常在下风口形成深绿色油漆状油膜,取水仔细观察可以看见水中悬浮着针尖大小的绿色颗粒。

为了解决水产养殖池塘有害藻问题,本实例模拟蓝藻的繁殖或死亡模型。假定蓝藻的繁殖率和当前蓝藻的总数成正比,死亡率和当前的总数的平方成正比。若以x代表当前蓝藻的总数,则

◆ 蓝藻的繁殖率可表示为:birth_rate=bx

◆ 蓝藻的死亡率可表示为:death_rate=px

◆ 蓝藻总数的总变化率可表示为繁殖率与死亡率之差。因此系统可表示为如下的微分方程形式:xbx-px2

假定b=10/hp=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 示波器显示分析图(二)