关于雷达的基于模型开发简要介绍
基于模型的设计思想是围绕可以执行的模型,将算法的研究,具体模型的细化设计,产品级代码的产生过程,以及验证过程平滑无缝的联系在一起。
因为模型是可以执行的,通过执行能够及早发现算法及设计过程中的缺憾,及早改正问题,避免在实现或验证阶段发现问题并修改问题带来的巨大代价;自动代码产生工具,及联合仿真验证流程,减轻了手工编写代码,传统测试验证的巨大工作量付出,使科研人员有更多的时间和精力关注于算法,尝试更多思想,找到最佳方案,大大加快科研进程,显著提高科研效率。
所以这样逐步细化的设计流程可以帮助工程师及早发现问题和解决问题。
基本上,在这个流程中的每一个模型都是下一步细化的起点。
同时这个模型的输入输出也就可以用来验证细化后模型的行为。
在MathWorks的产品中,最适合用来描述客户需求的是MATLAB以及其上的工具箱。
客户可以提供快速建模的便利使得自己需求得到准确的描述。
从某种程度上来讲,在用
户需求确定以后,所用的MATLAB模型就可以被认为是用户需求的另一种描述。
至于用于系统建模的工具,比较合适的是各种System Toolbox,比如DSP System Toolbox, Phased Array System Toolbox,以及Simulink和之上的模块库,象是SimRF
或者SimPowerSystem。
这些工具可以提供一个系统整合平台,实现多领域的联合仿真,
并用Simulink V&V来验证
用于系统实现的工具包括MATLAB Coder, HDL Coder, 以及Embedded Coder之类的产品。
类似的,HDL Verifier可以用来验证这个层次的模型。
目前在,在控制,信号处理,通信等领域,已经广泛采用基于模型的设计理念来加快
科研、开发进程,雷达系统的设计也可以通过基于模型的设计来提高开发效率。
对于典型的雷达系统,一般包括如下部分:
在统一的MATLAB/Simulink环境下,信号处理工程师,射频工程师,目标和阵列处理工程师可以各自搭建自己的模型,然后集合在一起,对雷达系统进行整体的仿真与测试,研究各自的部分对系统整体的影响与促进,共同合作,创建最优的雷达系统。
上图是一个简单雷达模型的例子,包括信号产生,射频特性,目标特性,干扰,天线阵列,接收信号处理的部分;负责不同部分的工程师,可以很方便的采用MathWorks提供的信号处理、射频、相控阵处理等工具,来搭建自己的算法模型,并与其他部门同事一起研究雷达整体的各项性能与指标,找到最佳的方案。
负责不同部分的工程师,可以在系统模型上对自己的部分进行细化、研究,找到自己部分最优的设计;这些设计可以封装成独立的算法模块库,供自己部门使用,或者与其他部门分享;而且工程师可以采用多种方式创建自己的算法库,包括直接封装原有的C代码创建算法模块,采用MATALB程序创建模块,用Simulink模块搭建更加复杂模块等方法。
这些自创的库,可以提高部门间的合作效率,而且便于管理,如下图:
对于大数据量和较长时间的仿真,如杂波仿真,MathWorks提供了并行计算的工具,可以把程序提交到集群上进行计算,并且支持GPU计算,可以大大提高仿真速度,减少仿真时间。
当系统级的算法与设计达到一个比较理想的阶段,可以采用自动代码产生工具,针对不同的实现需求,自动产生产品级高效的嵌入式C/C++ 代码或者HDL代码,用于真实系统的DSP硬件或者FPGA芯片,大大提高从理论算法到硬件实现的效率,减少手工编写代码的复杂性,避免手工编写代码可能引入的错误。
同时,工程师可以使用上述搭建好的系统模型作为测试平台,对算法的硬件实现代码(DSP或者FPGA代码)进行验证,保证设计的算法在硬件平台上执行的效果与理论算法一致。
由于重复使用系统模型作为测试平台,而不需要重新搭建,并采用硬件在环等高效测试方法,能够大大提高测试效率,减少测试时间。
编译器使用及方便性
MATLAB Compiler可以将MATLAB程序自动转换为独立的应用程序和软件组件并将其与最终用户共享使用 MATLAB 编译器创建的应用程序和组件无需 MATLAB 即可运行。
MATLAB Compiler重要功能包括:
∙将 MATLAB 应用程序打包为可执行文件和共享的库文件
∙您可免费分发独立运行的可执行文件和软件组件
∙您可将基于 MATLAB 的算法整合至用其他语言和技术开发的应用程序
∙对 MATLAB 代码加密使其不被查看或修改
MATLAB 编译器允许您在 MATLAB 之外的环境下运行 MATLAB 程序。
此架构无需手动将代码转换为其他语言,极大地节省了应用程序开发时间。
如果您要构建独立运行的程序,MATLAB 编译器可为最终用户提供可执行文件。
如果您需要整合至 C 或 C++,MATLAB 编译器提供了一个接口可将代码用作共享的库文件。
MATLAB Builder JA使您能够创建您的MATLAB程序的Java™类。
这些Java类都可以集成到Java程序和部署在台式计算机或Web服务器上。
开发人员可以使用MATLAB Builder JA创建用于部署的组件,把基于MATLAB的计算,可视化和图形化用户界面交给Java程序员做集成。
当Java程序部署到Web,多个用户可以通过Web浏览器访问它。
射频库支持
SimRF是用于设计和仿真RF系统的工具箱,它提供了用于设计RF系统的器件库和仿真引擎,包括放大器,混频器,S参数模块和其他用在通信和雷达系统中常用模块。
你可以把这些模块连接起来构建多种发送和接收器架构。
放大器模块可以让你描述增益,噪声,偶阶和奇阶交调(比如IP2 和IP3)。
混频器模块可以让你预测镜像消除比,对称混频,本地振荡器的相位偏移,和DC转换。
S参数模块可以让你引入多端口的S参数文件比如S1P,S2P,S3P,S4P,S2D和P2D文件,并支持S 参数的可视化。
SimRF能在不同的抽象层次给RF系统建模。
电路包络求解器可以让你仿真高保真度,多载波,任意拓扑结构的网络。
等效基带求解器可以让你仿真快速,单载波的级联系统,和进行Link Budget (链路预算)分析。
外部接口和软件开放性
MATLAB是一个非常开放的平台,有很多的外部接口。
Java接口让你能引入各种Java类,在MATLAB里方便的调用Java类的各种方法,在MATLAB变量和Java对象之间传递数据。
.NET库让你能创建和引入.NET类,在MATLAB里调用.NET类的各种方法,在MATLAB变量和.NET之间传递数据。
COM接口可以让你引入COM对象,在MATLAB里调用COM对象的各种方法。
通过MATLAB来使用COM组件和ActiveX控制。
同时你也可以把MATLAB作为一个自动服务器,用COM组件来调用。
Web Services可以让你在MATLAB里连接网络中使用SOAP和WSDL的Web Services。
C共享库可以让你在MATLAB里调用C函数。
MATLAB应用程序接口让你可以用C/C++, Fortran等常用语言编写在MATLAB中可调用的功能模块。
合作伙伴计划
6。