用SIMULINK建立的系统模型是多层次的,当在上一个层次观察系统模型时,双击一个系统模块就能进入下一个层次。可以直接使用已存在的模块来建立多层次的系统模块,而各个子系统的细节隐藏在各个子系统的模块中,从而开发出更多有新功能的模块。SIMULINK的Mask可以对子系统进行封装,这样用户能根据自己的喜好和需要定制子系统的图标和参数对话框。
S-function是System Function的简称,其作用为通过MATLAB或其他语言,设计出实现所需功能的模块,这样使得SIMULINK的的功能完成了参数化和极大扩展。如图2.2所示,S-function中定义了一个主函数和优尔个子函数,包括初始化函数、连续状态积分函数、连续微分状态、更新离散状态函数、输出函数、对下一采样时间计算的函数和模拟结束函数,每个子函数都对应一个Flag值。这样一个模块的仿真流程就被划分为优尔个不同的阶段,仿真流程所处的阶段是取决于每个阶段相应的Flag值(仿真流程标志向量)。具体做法是,使用switch-case语句,判断Flag的值决定转移哪个相应的子函数,一般情况下flag0、3、9这三个函数一定会被调用,从而有序控制S函数模块的仿真过程。S函数格式非常严格,在SIMULINK中有一个模板M文件(sfuntmpl.m),使用时可以在此模板上简单修改使用。
MATLAB提供了编写S-function的模块,位于toolbox/SIMULINK/blocks下的名称为S-function.m的M函数,拷贝后改写该函数即可。S-function的仿真流程图如图2.2。
为了更直观地观察实验效果,SIMULINK还提供了丰富的接收器模块,如Scope、Vector Scope等。
作为描述雷达系统的基本单元,模块也就成为我们要建立的模型库的基础研究对象。将本课题得到的雷达系统相关模块加入SIMULINK库后,如图2.3所示。
2.2 雷达系统仿真模型库的建模
雷达系统的建模要遵循普遍的建模规范:设计模块的规范、编写文档的规范和库组织架构的规范。设计模块的规范是指模块的命名、外形要可以明确表达模块实现的功能,输入、输出端口易于辨认,要为自定义模块设置参数屏并进行封装 (Mask) ,在封装时简要书写模块功能、子系统与S-function的所有参数名称,以此避免逐个打开子系统中的模块对话框进行参数设置的繁琐。为了提高模块的可用性,还要建立help文件的链接。组织架构的规范是指将繁多的模块进行合理地分类、组合,从而为用户提供高效的寻找途径。本课题所开发的模块就是依照“库/子库/模块”的结构进行分类的,在一个雷达系统仿真库下,有五个子库,每个子库包含一至多个模块 基于MATLAB的雷达系统建模与仿真(3):http://www.youerw.com/tongxin/lunwen_17518.html