WaveFarer教程

WaveFarer:突破动态雷达追踪场景仿真的局限
WaveFarer 是为解决传统电磁仿真在动态雷达追踪场景中的短板而设计的软件。通过结合 GPU 加速技术和优化的算法引擎,WaveFarer 不仅提升了仿真效能,还简化了复杂动态场景的建模与分析流程。

传统电磁仿真对动态雷达场景的两大短板
1. 难以处理动态场景
传统电磁仿真软件通常依赖网格生成技术,但在动态场景中(如车辆移动),物体位置的变化需要反复更新网格。这不仅耗时,还会产生大量冗余数据,用户还需手动整合不同时间点的仿真结果,增加了后处理的复杂性。
2. 射线跟踪算法的效率与精度问题
射线跟踪算法是电磁波传播仿真的常用方法,但其均匀投射射线的特性在动态雷达追踪场景中存在明显缺陷:
- 目标物上的射线密度不足,导致精度下降;
- 大量射线浪费在非目标区域,拖累计算效能。
提高精度通常需要增加射线密度,但这会进一步加剧算力浪费,影响整体效能。
WaveFarer 的优势
WaveFarer 通过以下创新,彻底解决了上述问题:
1. 动态场景建模支持
WaveFarer 提供参数化设置和脚本编写 API,用户可直接在软件内创建包含运动物体的动态场景,无需反复更新网格或手动整合数据,大幅简化了动态仿真的流程。
2. 优化的射线跟踪算法
改进后的射线跟踪算法能够智能地将射线集中投射在研究区域内的目标物上,避免算力浪费,同时确保仿真精度。结合 GPU 加速技术,WaveFarer 显著提升了计算效率,让用户能够在合理的时间和算力成本内完成复杂仿真。
3. 支持 GPU 加速
WaveFarer 利用 CUDA兼容GPU 的算力,解决了传统射线跟踪算法的效能瓶颈。
视频教程与资源支持
为帮助用户快速上手,在此提供了三组详细的视频教程,涵盖以下内容:
1. 基本操作
2. 动态场景建模
3. 基本动态交通场景建模
每组教程包含 8-9 个短视频,用户可学习掌握软件的核心功能。
视频教程
1. 棱锥反射体

雷达距离方程通常被用作一种分析工具,用于计算在收发器特定距离处的目标接收功率。

该方程可以针对多个距离进行求解并绘制图表以进行比较。正如本教程所演示的,WaveFarer 能够生成与雷达距离方程相同的结果。
在本教程中,一个由一台发射器和一台接收器组成的收发器使用了增益为16 dBi的24.1 GHz天线,并发射0 dBmW的功率。模拟了一个20 dBsm角反射器在5米至160米之间递增距离上的接收功率,然后将WaveFarer生成的结果与雷达距离方程进行对比并绘制成图。
本教程所需的脚本等相关文档请在这里下载:教程腳本

l 用户需要下载的文档

l RAR 压缩文档中包含的档案
本教程覆盖了以下操作技能:
- 通过定义一个棱锥体来创建角反射器。
- 定义一个参数,用于改变角反射器与原点之间的距离。
- 为角反射器分配PEC(理想电导体)材料,以定义其电磁特性。
- 添加两个收发器组件,每个组件包含一个45度定向天线:一个为发射器,波形频率为24.1 GHz;另一个为接收器。
- 设置仿真条件,包括2次反射、1次衍射、面目标以及MEC衍射。
- 编写并执行脚本,用于动画化几何体并确认参数扫描行为的正确性。
- 运行仿真,执行从5米位置到160米位置、以2.5米为增量的参数扫描。
- 评估接收功率与其到原点距离的关系。
- 导入脚本以绘制雷达距离方程的图表。
B站教程视频:
1. 视频链接:总览
2. 视频链接:建立几何体
角反射器将被建模为朝向发射和接收天线的空心金字塔形状,
首先,创建零件。
1. 在项目树中右键单击“Parts”,然后选择“Create New ❯ Pyramid”以打开编辑器。
2. 在“Edit Pyramid ”页签下,通过键入(.247 m)/sqrt(3)作为“高度”值来定义其大小。
3. 输入(.247 m)*sqrt(2/3)作为“半径1”值。
4. 输入(.247 m)*sqrt(2/3)作为“半径2”值。
5. 输入0 m作为“Top”值。
6. 输入3作为“Sides”值。
7. 使用“Create as”下拉caidan1选择“Sheet”。
8. 在“Name”栏位键入“Corner Reflector”,为名称。
9. 在“Specify Orientation”页签下,从“Preset”下拉菜单中选择“YZ Plane”。
10. 在“Geometry”窗口中,右键单击W轴,然后选择“Rotate around W”。
11. 输入-90
12. 单击窗口右上角的“Done”以关闭编辑器。
然后,移除其中一个面。
13. 在project tree的Corner Reflector上单击鼠标右键,然后选择“Modify ❯ Remove Faces”。
14. 单击右侧边栏中的“Zoom to Extents ”按钮。
15. 单击YZ平面中的面。
16. 在“Preview”页签下,取消“Close gaps left by removed faces”。
17. 单击“Done”关闭编辑器。
3. 视频链接:参数化角反射器
参数可以用为单个值或公式的方式来定义,之后可以接着在WaveFarer的大多数设置栏位中使用。在这个案例中,我们将使用参数化来沿x轴移动角反射器。
首先,创建一个参数。
1. 单击WaveFarer窗口右侧的”Parameters”按钮。
2. 单击“Parameters”窗口左上角的“Add”按钮。
3. 在突出显示的字段中键入”targetLocation” 作为参数名称。
4. 按Tab键,在“Formula”单元格中键入”10 m”。
5. 按Tab键,然后在“Description”单元格中键入“Distance to the corner reflector”。
6. 单击”Apply”。
然后,将参数应用于反射器。
7. 在Project tree中的Corner Reflector上单击鼠标右键,然后在菜单中选择“Modify ❯ Transform ❯ Translate”。
8. 在“Specify Translation”页签下,单击并拖动W'箭头,以验证棱角反射器是否沿x轴移动。
9. 输入稍早设置的参数”targetLocation”作为W'值。
10. 单击“Done”关闭编辑器。
通过单击“Zoom to Extents”按钮,然后单击Project tree中的“Corner Reflector”,在“Geometry”窗口的边界框中查看棱角反射器的新坐标。通过在“Parameterss”窗口中将定义更改为”15 m”,单击“Apply”,然后重新检查边界框,验证棱角反射器是否根据参数的公式移动。
4. 视频链接:定义及配置PEC材料
零件的散射行为跟材料参数相关,因此首先需要定义材料,然后将其配置给棱锥反射器。WaveFarer的Definitions节点允许用户定义电磁属性,并用于多个零件使用它,这段是基础教程,只用于一个零件。
首先,定义反射器材料。
1. 在Project tree中的“Materials”单击鼠标右键,然后选择“New Material Definition”。
2. 输入新材料名称为PEC。
3. 按Enter键确认名称。
4. 双击Project tree中的PEC打开材质编辑器。
5. 点开窗口顶部的“Type”下拉式菜单,选择Perfect Electrical Conductor 将材料设为PEC”。
6. 如果需要,选择“Apperance”页签,更改显示颜色。
7. 单击“Done”以完成PEC材料设置。
然后,将材质指定给“Corner Reflector”。
8. 从Project tree的“Definitions”分支中单击并拖动刚才设置的PEC材料,然后将其放置在项目树的零件分支中的Corner Reflector的顶部,将零件与材料关联起来。
5. 视频链接:建立收发机
仿真场景中收发机作为发送和接收射线的点,这段教程包括设置一个发射机和一个接收机,以及相关的波形和天线定义。
首先设置天线。
1. 在project tree的“Definitions”分支右键单击“Antennas”,然后选择“New Antenna Definition”。
2. 在Project Tree中,输入天线名称”Directional (45 deg)”。
3. 按Enter键将新天线添加到项目中。
4. 鼠标双击名为”Directional (45 deg)”的新天线,打开天线编辑器。
5. 在编辑器中,单击“Type”打开菜单,选择“Directional”。
6. 设置E-Plane Half Power Beam Width为45 (度)。
7. 设置H-Plane Half Power Beam Width为45 (度)。
8. 取消勾选“Auto”,并输入16 dBi作为最大增益。
9. 单击“Done”关闭编辑器。
接下来,建立收发器。
10. 右键单击Project tree的transceiver分支,然后选择”New Transceiver Points Layout” 打开编辑器。
11. 在“Layout”页签,单击“Type”栏位的下拉式菜单,选择“Transmitter”。
12. 在下一行中(眼睛图示),勾选在此位置显示方向图的框。
13. 单击右侧工具栏中的“Zoom to Extents”按键,使用鼠标滚轮进行放大。
14. 勾选“Changes to Radius Affects All Points”选项。
15. 单击“Radius”列,输入0.02 m。
16. 单击Layout页签右侧的Add按钮。
17. 在第二个点的“Type”行打开下拉式菜单选择“Receiver”。
18. 按Enter键确认设置。
19. 选择表格中的Transmitter列。
20. 选择页签顶部的工具按钮来切换至方向设置。
21. Y值栏位输入0.02 m。
22. 按Enter键确认更改。
23. 将页签顶部的Point更改为2以选择Receiver。
24. Y值栏位输入-0.02 m
25. 按Enter键确认更改。
26. 在名称字段中键入收发器w/1 Tx,1 Rx,输入收发器名称。
27. 单击“Done”关闭编辑器。
接着设置波形。
28. 在Project tree的定义分支中,双击Sinusoid打开波形编辑器。
29. 频率输入24.1 GHz。
30. 键入“ 24.1 GHz Sinusoid”为波形名称。
单击“Done”关闭编辑器。
6. 视频链接:设置仿真条件
用户可以在Analysis Configurations分支中设置输入,调节计算引擎进行仿真以获得精度和运行时间之间的平衡。寻径条件允许的反射和衍射次数决定了射线路径与几何面或边缘的最大相互作次数。允许的次数越高精确度越高,运行时间也越长。
1. 鼠标右键单击Project Tree中的”Analysis Configurations”分支,选择“New Physical Optics Configuration“
2. 在新建的分支名称输入”2R1D”,作为配置名称。
3. 按Enter键将确认2R1D添加Analysis Configurations中。
4. 双击Project tree中的“2R1D”打开Physical Optics Configuration Editor。
5. 在“Properties”页签确认设置,本教程使用默认设置。反射次数为2,衍射次数为1,最小角射线间距为0.01度, Gain Threshold 为30dBi,在Physical Optics 区块勾选“Include MEC Diffractions”以及“Allow Knife Edges”。
6. 单击“Done”完成设置。
7. 视频链接:动态化场景
项目设置完成后,用户可以通过编写和执行一个简短的脚本来设置几何体的动画。此步骤不是必需的,但建议执行,因为这让用户可以直观的确认创建模拟时参数扫描按预期运行。
1. 右键单击Project tree 的Scripts分支,然后选择“New Macro Script”以打开脚本编辑窗口。
2. 在项目树中,右键单击“New Macro Script”,然后选择“Rename”
3. 键入Sweep targetLocation命名脚本。
4. 按下Enter键完成命名。
在脚本窗口中输入以下脚本:
var list = App.getActiveProject().getParameterList();
for( var t = 5; t <= 160; t += 5 )
{
list.setFormula( "targetLocation", t + " m" );
App.sleep( 100 );
}
5. 按下工具栏中的“Commit”按钮保存脚本,然后关闭“Scripting”窗口。
6. 通过单击右侧边栏中的“Zoom to Extents”将几何图形放置在视图中。
7. 在Project tree中右键单击Sweep targetLocation脚本打开菜单,然后选择Execute以运行脚本。
8. 观察Corner Reflector沿x轴移动,直到它位于视野范围之外。
8. 视频链接:创建及执行仿真
项目设置完成后,需要存盘,便于开始仿真和写入输出文件
首先,将项目存盘。
1. 单击WaveFarer窗口左上角的“File”,然后选择“Save Project As”。
2. 输入“Corner Reflector”作为项目名称。
3. 单击“Save”。
然后,开始设置仿真。
4. 单击WaveFarer右上角的Simulation按键打开仿真设置窗口。
5. 单击“Simulations”窗口左上角的“Create New Simulation”按钮。
6. 在“Create Simulation”窗口中,通过在“Name”栏位中键入“Sweep from 5 to 160 m”命名。
7. 使用下拉箭头选择2R1D作为配置。
8. 如果适用于用户的电脑,请更改“Resource”页签设置,以匹配用于仿真的硬件。
9. 在“Setup Parameter Sweep” 页签,勾选“Perform Parameter Sweep”。
10. 单击“Add a new parameter sequence“按钮设置一组参数扫描。
11. 确认“targetLocation”是要扫描的参数。
12. 使用“Sweet Type”下拉式菜单选择设置“开始(Start)”、“结束 (End)”、“计数(Count)”。
13. 输入63作为Count值。
14. 输入5m作为Start值。
15. 输入160 m作为End值。
16. 确认参数值变化是否在5米至160米之间,每次增量为2.5米(即5米、7.5米、10米等)。
17. 单击“Create&Queue Simulation”按键开始仿真。
用户会注意到,仿真现在显示在“Simulations”窗口的顶部,“Sweep”字段指示正在模拟63个参数值中的哪一个。仿真完成并生成结果后,状态字段将更改为完成。
9. 视频链接:查看接收功率与距离的关系
经由仿真得到的接收功率可以通过运行脚本根据项目定义的参数绘制。接着可以导入第二个macro(宏),用于将WaveFarer的结果与雷达距离方程结果进行比较。
首先绘制接收功率与参数的关系图。
1. 下载所需脚本,已经下载脚本的用户就直接后续操作,将其中的"Plot Received Power Versus Parameter"脚本保存在WaveFarer的宏(Macro)文件夹中。
2. 在WaveFarer窗口左上角,选择Macro,接着选择Results ❯ Plot Received Power Versus Parameter打开编辑器。
用户需要注意到,Project、Simulation和Sensor设置各只有一个可用选项。这些默认值用于绘制此项目所需的接收功率大小。
3. 单击“OK”完成编辑
用户需注意,单位选择为“Distance”,两个收发器框均已勾选。这些默认值将绘制Rx 0从Tx 0接收到的功率与距离的关系图。
4. 单击“OK”再次更改编辑器。
用户需注意,这会创建一个XY平面图,并且可以自定义其标题和标签。
5. 单击“OK”关闭编辑器。
确认图形是否出现在Project tree的Graphs分支中,然后双击它进行查看。
接着导入求解雷达距离方程的脚本。
6. 下载所需脚本 (前面已经下载的用户可以跳过这一步)。
7. 右键单击Project Tree的Scripts分支,然后选择Import Scripts。
8. 从脚本文件中选择Plot Radar Range Equation.xmacro。
9. 单击“Open”将脚本添加到项目中。
10. 在Project tree的Scripts分支中右键单击”Plot Radar Range Equation”,然后选择Execute。
11. 双击Project tree中的接收功率与目标位置图,查看雷达距离方程脚本生成的图。
验证雷达距离方程生成的图与模拟结果是否匹配。
2. 用户自定义天线

用户自定义的天线辐射场型可以被写入*.uan文件并导入WaveFarer使用,天线被导入WaveFarer后,用户可以在场景中使用这个天线。
本教程的第一部分探讨了一个在XFdtd中模拟的77 GHz雷达,确定了发射器和两个接收器的3D辐射场型。这些场型数据被写入三个*.uan文件,随后作为天线文档导入WaveFarer。接着创建一个包含1个发射器(波形频率为77 GHz)和2个接收器的收发器并至于原点。
本教程的第二部分包括创建一个参数化的球体,并这个目标物体以一个弧形轨迹扫过雷达的前方。模拟运行时,参数从-90度到90度以1度为增量描述运动轨迹进行扫描,WaveFarer模拟在弧线上的每个点信号从球体上的散射。当180度的扫描完成后,将两个接收器之间的相位差与预期结果进行比较。基于相位差结果证实天线方向图已正确导入。
本教程涉及以下技能点:
1. 从XF项目中导入*.uan文件作为天线定义;
2. 添加一个收发器,包含一个发射器(波形频率为77 GHz)和两个接收器;
3. 创建并应用距离和旋转参数;
4. 添加一个球体,并在距离原点10米的位置上,对其进行180度的位置扫描;
5. 为球体分配PEC材料,以定义散射目标的电磁特性;
6. 设置分析配置,包括1次反射、0次衍射以及面元目标;
7. 编写并执行脚本,用于动画演示几何结构并确认参数扫描行为的正确性;
8. 运行仿真,执行从-90度到90度、以1度为增量的参数扫描;
9. 评估两个接收器之间的相位差。
本教程所需的教程及脚本可以在此链接下载: 课程文档

l 用户在下载区需要找到的文档

l RAR文档中包含的项目文档

l User-defined-antennas-uan-files.zip 文档中包含的天线文档
教程视频:
1. 视频链接:总览
本教程演示以下功能操作:
1 从XFDTD导入一个*.uan文件作为天线。
2 增加一组77GHz频率的收发器,由一个发射器和两个接收器组成。
3 创建并应用距离和旋转参数。
4 添加一个距离原点10米的球体,并设置其移动轨迹扫掠180度。
5 将球体材料设置为PEC,以定义散射目标的电磁特性。
6 将分析配置设置为包括1次反射、0次衍射和面瞄准。
7 编写并执行一个脚本,为几何体设置动态并确认参数扫描设置正确。
8 执行仿真,以1度为增量从-90度到90度执行参数扫描。
9 评估两个接收器之间的相位差。
2. 视频链接:导入天线
通过导入XFDTD支持的*.uan文件可以使用自定义天线。本教程会使用三个用户自定义天线。*.uan格式文档可以从XFDTD导出或从其他仿真软件输出文档转换
1 确认三个*.uan文件已经准备好,没在前面链接下载的访客请点此下载。
2 在Project tree中右键单击“Antennas”,然后选择“New Antenna Definition”。
3 输入新天线名称为Tx。
4 按Enter键确认名称更改。
5 双击Project Tree中的天线以打开天线编辑器。
6 使用“Type”下拉菜单选择“User-defined”。
7 在“Properties”选项卡下,单击“Select UAN file to import”。
8 选择所需的*.uan文件。
9 单击“Open”将导入的文件加载到天线编辑器中。
10 单击“Done”关闭编辑器。
11 重复步骤2至10,以Rx 1作为名称导入第一个接收器。
12 重复步骤2至10,以Rx 2作为名称导入第二个接收器。
3. 视频链接:添加收发机
收发机(Transceiver)是发送和接收射线的点(天线或通讯模块安装的位置)。本教程将包括一个发射机和两个接收机,以及相关的天线和波形设置。
首先,创建收发器。
1. 右键单击Project tree的Transceivers分支,然后选择” New Transceiver Points Layout”以打开编辑器。
2. 在“Layout”页签单击“Type”栏位,然后使用下拉菜单选择“Transmitter”。
3. 勾选下一列中的方框,可以在此收发机位置显示3D天线方向图
4. 单击右侧边栏中的“Zoom to Extents”,然后使用鼠标滚轮进行放大。
5. 勾选“Changes to Radius Affects All Points”选项。
6. 在的“Radius”列中单击,然后输入1.5 mm。
7. 单击Layout页签右侧的添加( + 按键)按钮以添加第一个接收器。
8. 在Type字段中单击鼠标,然后使用下拉菜单选择Receiver。
9. 在Antenna栏位中单击鼠标,然后使用下拉菜单选择Rx 1。
10. 单击Layout页签右侧的添加(+ 按建)按钮以添加第二个接收器。
11. 在天线字段中单击,然后使用下拉箭头选择Rx 2。
12. 按Enter键确认更改。
13. 通过单击Transmitter选择表格中的第一个点。
14. 通过单击Layout页签顶部的“Switch to orientation editing mode”按钮来切换至方向编辑设置。
15. 输入“-15 mm”作为Y值。
16. 按Enter键确认更改。
17. 选择编号为2的点以编辑第一个接收器的位置。
18. 切换至方向编辑设置,输入14 mm作为Y值。
19. 按Enter键确认更改。
20. 选择编号为3的点设置第二个接收器的设置。
21. 切换至方向编辑设置,输入16 mm作为Y值。
22. 按Enter键确认更改。
23. 在Layout页签右上的Name栏位中键入”Transceriverw/1 Tx,2 Rx”来命名收发器。
24. 单击“Done”关闭编辑器。
然后,设置波形的属性。
25. 在Project tree的Definitions分支中,双击Sinusoid波形打开波形编辑器。
26. 输入77 GHz作为频率。
27. 在“Name”框中键入”77 GHz Sinusoid”来命名波形。
28. 单击“Done”关闭编辑器。
通过打开收发器编辑器并检查发射器的属性来验证更改。
4. 视频链接:建立参数化的球体
首先,建立散射体几何模型。
1. 在Project的“Parts”分支上单击鼠标右键,打开菜单,选择“Create-》Sphere”。
2. 输入0.05 m作为“Radius”值。
3. 单击“Done”关闭编辑器。
接下来,定义参数。
4. 单击WaveFarer窗口右侧的”Parameters”按钮。
5. 单击“Add”按钮。
6. 在“Name”栏位中键入“translationDistance”。
7. 按Tab键,然后在“Formula”字段中输入10m。
8. 如果需要,按Tab键并输入简短说明。
9. 单击”Add”按钮。
10 在“名称”栏位中键入“rotationAngle”。
11. 按Tab键,然后在“Formula”字段中输入”90 deg”。
12. 单击“Apply”并关闭Parameters窗口。
接着,修改几何图形。
13. 在Project tree的“Parts”分支中右键单击“Sphere”,然后在菜单选择“Modify->Transfor->Translate”。
14. 在“Specify Translation”页签下,输入translationDistance参数作为U值。
15. 单击“Done”关闭编辑器。
16. 在Project tree 的“Parts”分支中右键单击“Sphere”,然后在菜单选择“Modify ->Transform->Rotation”。
17. 在“Specify Rotation”页签下,输入“rotationAngle”参数作为“Angle”值。
18. 单击“Done”关闭编辑器。
通过在“Parameters”窗口中将Formula栏位数值更改为”45 deg”单击“Apply”,并在“Geometry”窗口中检查边界框,验证球体是否根据参数的公式移动。
5. 视频链接:建立并配置PEC材料
用户需要设置模型的材料仿真软件正确呈现其散射特性,WaveFarer的definitions节点允许用户定义电磁材料特性,并应用模型中的各种物体跟表面,本教程是基础教程,所以只有一个物体。
首先,定义材料。
1. 在项目树中的“Materials”上单击鼠标右键,然后选择“New Material Definition”。
2. 在突出显示的栏位中键入PEC为材料名称。
3. 按 Enter 键确认名称设置。
4. 双击PEC以打开材料编辑器。
5. 使用下拉菜单将“Type”更改为“Perfect Electrical Conductor (PEC)”。
6. 如果需要,请导切换“Appearance”页签,然后选择 PEC 材料的显示颜色。
7. 单击“Done”以完成 PEC 材料设置。
然后,将材料设置給球体。
8. 从项目树的“Definitions”分支中单击并拖动PEC材料,并将其放置在项目树“Parts”分支中的Sphere。
6. 视频链接:设置分析条件
用户可以在”Analysis Configurations”设置中输入,控制计算引擎如何进行仿真,从而在精度和运行时间取得平衡。反射和衍射值决定了射线路径与几何体面和边的最大相互作用次数。这些值设的越大,精度越高,同时运行时间也越长。
1. 在项目树中右键单击“Analysis Configurations”,然后选择“New Physical Optics Configuration”。
2. 输入配置名称1R0D。
3. 按 Enter 键确认名称。
4. 双击项目树中刚才建立的”1R0D”,打开配置编辑器。
5. 在“Properties”页签,在”Number of Reflections”输入 1, 接着在“Number of Diffractions”输入 0 作为衍射数。
6. Minimum Angular Ray Spacing保留默认设置0.01度,确认勾选“”Restrict Rays By Gain Threshold“,增益阈值设为30 dB
7. 确认有勾选” Include MEC Diffractions” , 同时确认未勾选Allow Knide Edges。
8. 单击“Done”关闭编辑器。
7. 视频链接:动态化场景
项目设置完成后,用户可以通过编写和执行脚本来为几何图形制作动画。此步骤不是必需的,但建议执行,因为它可以用于直观地确认创仿真时参数扫描将按预期运行。
1. 右键单击项目树的Scripts分支,然后选择”New macro Scripts”以打开脚本窗口。
2. 右键单击项目树中的新建脚本,然后选择Rename。
3. 输入脚本的名称为Sweep rotationAngle。
4. 按 Enter 键确认名称更改。
5. 在脚本窗口中输入以下代码:
var list = App.getActiveProject().getParameterList();
for( var a = -90; a <= 90; ++a )
{
list.setFormula( "rotationAngle", a + " deg" );
App.sleep( 20 );
}
6. 通过单击工具栏中的Commit图标来保存脚本。
7. 右键单击项目树中的 Sweep rotationAngle 并选择Execute来验证脚本,在几何窗口中观察球体绕原点旋转。
8. 视频链接:建立并执行仿真
建模及相关设置完成后,必须存盘才能创建新的仿真并产生输出文件。
首先,保存项目。
1. 单击 WaveFarer 窗口左上角的 ”File”,然后选择Save Project As。
2. 输入” User-Defined Antennas” (需使用英文)为项目名称。
3. 单击Save。
然后,创建并运行仿真。
4. 单击 WaveFarer 右上角的Simulations按钮以打开Simulation窗口。
5. 单击Simulations窗口左上角的Create New Simulation按钮。
6. 在Create Simulation窗口中,通过在名称键入仿真名称为 Sweep -90 to 90 deg at 10 m 。
7. 在Configuration菜单选择 1R0D 作为配置。
8. 在Resource 区块,依照用户的硬件资源具体的条件设置仿真要运用的硬件资源。
9. 在Setup Parameter Sweep页签下,勾选Perform Parameter Sweep。
10. 单击Add a new parameter sequence按钮以定义参数扫描。
11. 在Parameter to Sweep 选择 rotationAngle 为要扫描的参数。
12. 使用Sweep Type下拉菜单选择Start, End, Count。
13. Count输入 181 。
14. Staring Value输入 -90 度。
15. Ending Value输入 90 度。
验证评估值是否在 -90 度和 90 度之间,增量为 1 度(即 -90 度、-89 度、-88 度等)。
16. 单击 Create & Queue Simulation进行仿真。
仿真现在出现在仿真窗口的顶部,扫描字段指示正在仿真 181 个参数值中的哪一个。仿真完成并生成结果后,状态字段将更改为完成。
9. 视频链接: 绘制相位差图
到这边仿真结果已生成,接着通过运行脚本,可以将每个接收器接收到的功率与项目定义的参数进行对比并绘制成图。此外,还将使用第二个macro来绘制接收器之间的相位差。这两个脚本可以在此下载取得
首先,生成接收功率的图表。
1. 将“Plot Received Power Versus Parameter”脚本保存到 WaveFarer 的macro文件夹中。
2. 在 WaveFarer用户界面的左上角,选择 Macros,然后依次点击 Results ❯ Plot Received Power Versus Parameter 以打开编辑器。
请注意,Project、Simulation 和 Sensor 设置中每个选项仅有一个可用选项。
3. 通过从下拉菜单中选择 Phase 来更改复数部分。
4. 点击 OK 以确认更改并关闭编辑器。
请注意,虽然参数的名称显示在括号中,但其单位不会与仿真输出数据数据一起存储。此外,默认勾选的三个收发器框将会依照本项目的需求绘制 Tx 0 到 Rx 0 和 Rx 1 的接收功率随距离变化的曲线。
5. 通过从下拉菜单中选择 Angle 来更改参数的单位。
6. 再次点击 OK 以确认更改并关闭编辑器。
请注意,WaveFarer将生成一个 XY 图,其标题 (title) 和标签(labels)均可自定义。
7. 点击 OK 关闭编辑器。
确认图表已出现在项目树的 Graphs 分支中,鼠标双击即可查看。
接下来,使用第二个脚本来绘制相位差。
8. 在 WaveFarer 的左上角,选择 Macros,然后依次点击 Results ❯ Plot Phase Difference 以打开编辑器。
请注意,编辑器的上半部分将 Rx 0 和 Rx 1 分别指定为 Plot A 和 Plot B。这表明接收功率图是数据源,我们将计算其两个图表之间的差值。
9. 在编辑器的 Destination 部分,输入图表名称 Rx 0 - Rx 1。
10. 点击 OK 关闭编辑器。
确认相位差图表与基于步骤 1 中 XF dtd项目的预期结果一致
3. 追踪动态车辆目标

本教程通过模拟使用车辆目标进行的雷达驾驶测试,并对结果进行后处理以生成距离-多普勒图。
教程引导用户,导入车辆目标组件文档以及用于定义地面电磁特性的沥青材料。随后,添加了一个收发器,该收发器包含一个发射器(使用77 GHz正弦波形)和一个接收器。每个收发器组件均配备了一个30度的定向天线。
车辆目标和雷达的位置是基于各自起点和在0到9秒时间范围内的速度进行参数化的。用户可以通过编写并执行一个简短的脚本来动画化几何图形,以确认时间参数将按预期行为。模拟从3秒开始,并一次性发射一帧包含51个线性调频脉冲的信号,起始频率和终止频率分别为77 GHz和81 GHz。
用户可以对WaveFarer的结果进行后处理,以生成3秒时的距离-多普勒图。该输出显示了目标在指定时间段内根据所应用的速度参数移动时,对雷达的响应。
本教程需要几个辅助程序,3个均为完成教程必须,用户可以在此下载(包含较大文档):
1. Create Liner Chirp simulation 脚本

l 下载区的Create linear Chirp Simulation 文档

l Create Linear Chirp Simulation.rar压缩包中的文档
2. Generate Range Doppler Matlab Runtime

l 下载区的GenerateRangeDoppler_MATLAB_Runtime_Update_7的rar分割压缩包
这个文档较大,所以分割成7个压缩文档,用户需要把这7个文档都下载,放在同一个文件夹里面,鼠标双击part1,用最新版WINRAR解压缩

l 压缩包中包含的安装包文件夹

l 解压缩后进入文件夹点击setup.exe安装
3. Generate Range doppler脚本包

l 下载区的generate-range-doppler.zip

l 压缩包中的文档内容
视频教程:
1. 视频链接:总览
2. 视频链接:添加车辆目标
导入车辆目标模型,随后创建参数以对目标应用运动。
首先,添加车辆目标模型
1. 点击WaveFarer窗口右侧的“Libraries”按钮,打开编辑器。
2. 在编辑器左侧的“Libraries”区块,选择“Automotive Radar”。
3. 在“Filters”区块,选择“Parts”。
4. 在编辑器的下半部分,点击“Euro NCAP Vehicle Target”并将其拖拽到项目树的“Parts”分支中。
5. 在“Material Assignments”窗口中点击“OK”,将车辆添加到项目中。
6. 关闭Libraries窗口。
确认车辆模型出现在项目树的“Parts”分支中。同时,确认相关的材料已被添加到项目树的“Definitions”分支中。
接下来,创建参数。
7. 点击WaveFarer窗口右侧的“Parameters”按钮,打开参数窗口。
8. 在参数窗口的左上角点击“Add”按钮。
9. 输入参数名称 “targetVelocity”。
10. 按下Tab键,在Formula栏位中输入10 m/s (数值跟单位间要有空格)。
11. 按下Tab键,在Description栏位中输入Velocity of vehicle target。
12. 按下Tab键以添加第二个参数。
13. 在Name栏位中输入startLocation
14. 按下Tab键,并在Formula栏位中输入100 m(数值跟单位间要有空格)。
15. 按下Tab键,并在Description栏位中输入Separation between target and sensor at t=0 s。
16. 按下Tab键以添加第三个参数。
17. 在“Name”字段中输入 t。
18. 按下Tab键,在Formula栏位中输入0 s(数值跟单位间要有空格)
19. 按下Tab键,在Description栏位中输入Time
20. 按下Tab键以添加第四个参数。
21. 在Name栏位中输入targetLocation。
22. 按下Tab键,在Formula栏位输入 startLocation + targetVelocity*t 。
23. 按下Tab键,在Description栏位中输入 Location of target at time t。
24. 点击“Apply”并关闭参数窗口。
接下来,将参数应用到项目中。
25. 在项目树中右键点击Euro NCAP Vehicle Target这个零件打开菜单,然后选择 Modify ❯ Specify Orientation。
26. 点击编辑器右侧的Advanced Mode 按钮。
27. 在编辑器左侧选择Anchor。
28. 在Anchor: Fixed Position区块,将 U 值设置为 targetLocation。
29. 点击 Done 关闭编辑器。
在几何窗口中,点击Zoom to Extents按钮,然后在项目树中点击Euro NCAP Vehicle Target,查看车辆目标的新坐标边界框。确认目标已移动到 100 米 处。
3. 视频链接:创建沥青地面
这个场景的地面被建模为一个片体(Sheet Body),这个阶段通过创建并几何模型并配置一种(dielectric half space)材料。
首先,创建地面。
1. 在项目树的“Parts”分支上点击右键,选择“Create New”,然后选择“Sheet Body”以打开编辑器。
2. 通过点击几何窗口右侧的“View from+Z (top)”来改变视角。
3. 在“Edit Profile”页签下,使用下拉箭头从形状工具栏中选择“Rectangle”工具。
4. 在绘图窗口中,点击位置 -5, -10, 0来选择几何模型的第一个点。
5. 按下Tab键,在“Specify Position”窗口中输入”200 m”作为U′值。
6. 再次按下Tab键,输入”10 m”作为V′值。
7. 点击“OK”。
8. 在Name栏位输入“Ground”来命名这个零件。
9. 点击“Done”以保存对项目的更改。
接下来,设置材料。
10. 点击WaveFarer窗口右侧的“Libraries”按钮。
11. 在数据库窗口中,通过点击“Materials”来更改检索。
12. 点击窗口下方的“Asphalt (沥青)”材料,并将其拖拽到项目树的“Materials”节点中。
13. 在项目树的“Definitions”分支中,点击“Asphalt”并将其拖拽到“Parts”分支中的“Ground”上。
14. 关闭“Libraries”窗口。
然后将地面设置为环境。
15. 在项目树中右键点击“Ground”,选择“Set as Environment”。
右键点击项目树的“parts”分支,选择“View Parts List (All Parts)”以打开窗口,确认部件设置正确。确保第二列显示所有车辆部件均设置为散射体,地面设置为环境,然后关闭窗口。
4. 视频链接:创建并参数化收发机
收发器是射线被发射及抵达的位置。在本段落中,它由一个发射器和一个接收器组成,并包含相关的天线和波形定义。同时设置一个参数代表收发机移动速度速度并应用于仿真。
首先,定义天线。
1. 在项目树的“Definitions”分支中,右键点击“Antennas”,然后选择“New Antenna Definition”。
2. 输入“Directional (30 deg)”来命名天线。
3. 按下回车键以确认名称更改。
4. 在项目树中鼠标左键双击“Directional (30 deg)”以打开天线编辑器。
5. 在编辑器中,使用“Type”下拉菜单选择“Directional”。
6. 在“E平面半功率波束宽度(E-Plane Half Power Beam Width)”中输入30度。
7. 在“H平面半功率波束宽度(H-Plane Half Power Beam Width)”中输入30度。
8. 点击“完成”以关闭编辑器。
接下来,创建收发器 (Transceiver)。
9. 在项目树的“Transceivers”分支上右键点击,然后选择“New Transceiver Points Layout”。
10. 在“Layout”页签,点击“Type”并使用下拉箭头选择“Transmitter”。
11. 在下一列中,勾选“Activates the antenna pattern for viewing at this location”的勾选框。
12. 勾选“Changes to Radius Affects All Points ”选项。
13. 点击“Radius”栏位并输入0.025 m (数字跟单位间需要空格)。
14. 点击“Layout”标签右侧的“+”按钮。
15. 点击第二个点的“Type”栏位,并使用下拉箭头选择“Receiver”。
16. 按下回车键以应用更改。
17. 通过点击“Transmitter”来选择表格中的第一个点。
18. 点击标签顶部的“方向编辑”按钮以切换方向编辑设置。
19. 输入0.007 m作为Y值。
20. 输入0.5 m作为Z值。
21. 按下回车键以应用更改。
22. 选择点二的“接收器”。
23. 输入-0.007 m作为Y值。
24. 输入0.5 m作为Z值。
25. 按下回车键以应用更改。
26. 中输入“Radar”作为收发器的名称。
27. 点击“完成”以关闭编辑器。
然后,对收发器进行参数化。
28. 点击WaveFarer窗口右侧的“Parameters”按钮以打开参数窗口。
29. 点击窗口左上角的“+”按钮。
30. 输入“sensorVelocity”作为参数名称。
31. 按下Tab键,并在“Formula”栏位中输入“20 m/s”。
32. 按下Tab键,并在“Description”栏位中输入“Velocity of radar sensor”。
33. 按下Tab键,并在输入“sensorLocation”作为下一个参数名称。
34. 按下Tab键,并在“Formula”中输入“sensorVelocity*t”。
35. 按下Tab键,并在“Description”字段中输入“Location of radar sensor at time t”。
36 点击“Apply”以保存更改并关闭参数窗口。
37. 在项目树的“Transceivers”分支中,双击“Radar”以打开编辑器。
38. 在“Specify Orientation”标签下,点击编辑器右侧的“Advanced Mode”按钮。
39. 在编辑器左侧选择“Anchor”。
40. 在“Anchor:Fixed Position栏位输入“sensorLocation”作为U值。
41. 点击“Apply”。
42. 点击“Done”以关闭编辑器。
接下来,设置波形
43. 在项目树的“Definitions”分支中,双击“Sinusoid”波形编辑器。
44. 输入“77 GHz”作为频率。
45. 输入“77 GHz Sinusoid”作为波形名称。
46. 点击“Done”以关闭编辑器。
5. 视频链接:设置分析边界
Analysis Boundary(分析边界)定义了仿真覆盖的区域。在本教程中,边界设置在道路内部,以消除不必要的衍射,从而获得更加真实的结果。
1. 在项目树中右键点击“Analysis Boundaries”,然后选择“New Analysis Boundary”以打开编辑器。
2. 在X1栏位中输入199 m。
3. 在Y1栏位中输入-9 m。
4. 在Z1栏位中输入-1 m。
5. 在X2栏位中输入-4 m。
6. 在Y2栏位中输入9 m。
7. 在Z2栏位中输入5 m。
8. 在Name栏位中输入“Analysis Boundary”。
9. 点击“Done”以关闭编辑器。
6. 视频链接:设置分析设置
Analysis configuration(分析配置)控制计算引擎如何评估仿真空间。用户可以通过调整反射和衍射值在仿真精度与运行时间之间做权衡,这些值决定了射线路径与几何面和边缘的最大交互次数。数值越高,精度越高,但运行时间也会相应增加。对于车辆目标,射线必须至少从三个面反射才能返回到接收器,因此设置值将允许三次反射和两次衍射。
1. 在项目树中右键点击“Analysis Configurations”,然后选择“New Physical Optics Configuration”。
2. 输入配置名称为“3R2D”。
3. 按下“Enter”键以确认名称更改。
4. 在项目树中双击“3R2D”以打开物理光学配置编辑器。
5. 在“ Properties”选项卡下,输入“3”作为反射次数。
6. 输入“2”作为衍射次数。
7. 在“ Specialized Output Requests ”选项卡下,勾选“ Enable Time-Sampled Data”设置(2.1版不用这个操作)。
8. 点击“Done”以关闭编辑器。
7. 视频链接:场景动态化
项目设置完成后,用户可以通过编写并执行一个简短的脚本来对几何体进行动画演示。此步骤并非必需,但建议执行,因为它能提供视觉上的确认,确保在创建模拟时参数扫描会按预期行为运行。
1. 在项目树中右键点击“Scripts ”分支,然后选择“New Macro Script”以打开脚本窗口。
2. 在项目树中右键点击“New Macro Script”,然后选择“Rename”。
3. 在项目树中输入脚本名称“Sweep t”。
4. 按下“Enter”键以确认项目中的更改。
5. 在脚本窗口的上半部分输入以下脚本代码:
var list = App.getActiveProject().getParameterList();
for( var i = 0; i <= 9; i += 0.1 )
{
list.setFormula( "t", i + " s" );
App.sleep( 10 );
}
6. 点击工具栏中的“Commit ”按钮以保存脚本,然后关闭脚本窗口。
7. 在项目树中右键点击“Sweep t”,然后选择“Execute ”以运行脚本。
8. 视频链接:仿真线性调频信号(Linear Chrip)
项目设置完成后,必须将其保存,以便脚本可用于创建新的模拟并写入输出文件。
1. 首先,如果还没有在前面下载脚本的用户,在此链接下载脚本 “Create Linear Chirp Simulation script ”并将其保存到 WaveFarer 的 Macros 文件夹中。
接下来,保存项目。
2. 在 WaveFarer 的左上角,点击“ File ❯ Save Project ”以打开编辑器。
3. 选择所需的位置,并输入“Euro NCAP Vehicle Target”作为项目名称。
4. 点击“Save”以保存项目。
然后,在创建模拟之前检查硬件设置。
5. 点击 WaveFarer 窗口右侧的“Simulations”按钮以打开仿真设置窗口。
6. 点击“Create New Simulation”按钮以打开编辑器。
7. 确认“Resource”选项卡下的设置适合用于运行仿真的硬件。
8. 点击“Done”以关闭编辑器。
创建并运行模拟。
10. 在 WaveFarer 的左上角,点击“Macros ❯ Simulate Linear Chirp ”以打开编辑器。
11. 输入“Linear Chirp Simulation at 3 s”来命名仿真。
12. 通过从下拉菜单中选择“t”来更改时间参数。
13. 将每帧的起始时间更改为“3 秒”。
14. 输入“77 GHz”作为起始频率。
15. 输入“81 GHz”作为终止频率。
16. 输入“20 us”作为Chirp长度。
17. 输入“0 s”作为Chirp之间的重置时间。
18. 输入“101”作为每帧的Chirp次数。
19. 勾选“Queue simulation”选项。
20. 点击“Create Simulation”按钮。
9. 视频链接:生成距离-多普勒图
用户可以生成一个距离-多普勒图,该图根据车辆目标对雷达信号的响应显示其距离和速度。
1. 如果还没有在前面的链接下载,用户可以在这个链接下载“generate range-doppler”这个脚本,同时下载并安装所需的Matlab Runtime
接下来,进行距离-多普勒后处理。
2. 在 WaveFarer 窗口的左上角,点击“Macros ”并选择“ Generate Range-Doppler ”以打开编辑器。
3. 在“Chirp Simulation Inputs”部分,使用“Simulation”下拉箭头选择“000001”。
4. 在“ Chirp Sampling Parameters ”部分,输入“2 us作为“First Sample”。
5. 输入“2.5 ns”作为“采样间隔”。
6. 输入“6400”作为“采样数量”。
7. 点击“OK”。
该图显示了 3 秒时的距离-多普勒数据,其中包含车辆目标基于其对雷达信号响应的距离和速度信息。