Ansys Zemax | 设计抬头显示器时要使用哪些工具 – 第一部分

2024-02-19 08:20

本文主要是介绍Ansys Zemax | 设计抬头显示器时要使用哪些工具 – 第一部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文演示了如何使用OpticStudio工具设计分析抬头显示器(HUD)性能,即全视场像差(FFA)和NSC矢高图。(联系我们获取文章附件)

初始结构

HUD简介

以下为HUD的示意图。液晶显示器作为光源发光,光线被HUD的两个反射镜反射,然后通过风挡玻璃反射,最后进入驾驶员的眼睛。驾驶员将在道路上看到虚拟图像,比如给他指示此时的速度影像的投影。

司机在开车时会转动头部导致视线的偏移,司机的视角我们可以使用眼盒代替。眼盒本质上是一个虚拟方框,表示驾驶员眼睛位置的范围。

系统规格

•虚像距离:2米

•显示当前车速

•机械限制:HUD主要受到仪表板下可用空间的限制,风挡玻璃将充当一个分束器

•眼盒:驾驶员眼睛的位置在宽度为±50毫米、高度为±20毫米的眼盒范围内

•瞳孔:在明亮的光线下直径为2至4毫米,在黑暗中直径为4至8毫米。对于该研究,它被设置为4毫米

•液晶显示器尺寸宽为±12.5毫米,高为±5毫米

•放大倍数=6

设计选择

HUD的起始结构是一个折叠系统,在仪表板下保持足够小的尺寸。示例HUD由两个反射镜构成:一个平面,一个自由曲面。反射镜在成像系统中具有不增加任何色差的优点。系统中自由曲面反射镜需要被优化。

HUD设计流程

•从虚像到显示器:设计在序列模式中反向进行。原因从驾驶员看到的虚像开始进行光学系统建模相对容易。然后可以将光阑表面放置在系统的前部,即眼盒所在的位置。在光阑表面上放置一个矩形孔径,以描述对眼睛位置的限制。

•从显示器到虚拟图像:系统将在序列模式下翻转。允许评估从显示器到虚像的“真实”性能,即正向性能。

•最后,系统将转换为非序列(NSC)模式。这提供了一个更真实的模型,其中用户可以包括杂散光分析。它将显示驾驶员使用抬头显示器看到的真实图像。

步骤1:从虚像到显示器(逆向设计)

初始结构

为了方便起见,已经构建了一个模板,其中包含所有的初始结构。在附件中即可看到。初始结构中包含整个风挡玻璃的自由曲面模型。风挡玻璃可视为一个扩展多项式表面。

系统选项:

•孔径:眼盒是系统的光阑面,因此它代表了驾驶员眼睛的位置范围:宽度=±50毫米,高度=±20毫米,所以我们将该尺寸的矩形孔径放置在光阑面。

入瞳直径(EPD)计算可得2 × (20ˆ2 +50 ˆ2) ˆ2 = 108毫米。 

•视场:视场类型为物高,规格定义为矩形。在实际系统中,LDC显示器上的图像为虚像尺寸的6倍,因为当前的设计是逆向从虚拟图像到LCD显示器的,因此可以计算虚像的大小,并将其用作“视场编辑器”中定义视场大小的物高。液晶显示器尺寸为:宽度=±12.5毫米,高度=±5毫米。因此,物高尺寸应该是此值的6倍。

视场宽度=±75毫米(6 x 12.5),视场高度=±30毫米(6 x 5)

•波长:LCD显示器将发出0.55微米的波长   

风挡玻璃

可以对整个风挡玻璃进行建模,也可以仅对HUD使用的风挡玻璃区域进行建模。

要找到“考察”区域,可以使用Footprint Diagram工具显示叠加在风挡玻璃表面上的光线迹点情况:

风挡玻璃建模:

风挡玻璃模型:

风挡玻璃可以用序列模式表面来描述,如自由曲面或非序列CAD零件。如果将其描述为插入序列系统的非序列CAD零件,则系统变为混合模式。这在从虚像到显示器的逆向系统建模时效果良好,但在正向工作时会出现问题,因为光阑面位于非序列结构表面之后(违反混合模式建模规则)。这也会使光线瞄准更加困难,并可能导致其它光线追迹问题。

一种解决方法是测量CAD零件的矢高,然后使用序列网格矢高表面对其进行建模。通过这种方式,系统保持在纯序列模式,OpticStudio可以将网格矢高表面转换为非球面类型表面。可在 Optimize…Convert Asphere Type 下找到对应转换工具。

将风挡玻璃转换为网格矢高表面:

非序列模式下的矢高分析是ZOS-API的扩展,用于测量CAD零件的矢高。

该分析使用探测光源光线并记录该探测光线击中NSC物体的位置。文件“HUD_windshield_sag.zar”可以在文章顶部下载。它包含风挡玻璃CAD零件和资源。

风挡玻璃的X和Y尺寸需要在NSC矢高图中进行设置。可以近似使用相机视图结合活动光标位置读取需要设置的X-Y:

可以为NSC矢高工具输入以下设置:

在设置中,您可以:

•取消勾选“移除XY倾斜”。NSC矢高不会将NSC物体的倾斜设置为0。

•勾选“保留保存的文件”,将.zmx和.zrd文件保存到当前文件夹。

NSC矢高图以伪彩色显示。如果在“设置”下,“显示”选项设置为“文本”,则它也可以显示为文本列表。然后可以保存此文本输出并将其转换为正确的数据格式.DAT,该数据可以用于网格矢高表面。为了简单起见,本示例中风挡玻璃采用扩展多项式曲面进行建模。

定位所有元件

这是一个表示所有元件位置的示意图:

可以利用以下实用工具将表面进行放置:

•坐标间断-返回:坐标间断面可以通过坐标返回来定义表面倾斜和偏心情况,可以在以下位置找到:Surface Properties…Tilt/Decenter。OpticStudio随后将计算该“坐标间断”面的对应参数,以便在该坐标间断面之后,局部坐标与先前序列表面的局部坐标相同。

•主光线计算:计算坐标间断面的倾斜和偏心,使其垂直于主光线并以主光线为中心:

现在我们已经完成了对于 HUD 系统的元件定位与设置,下一步我们可以根据当前的系统去评估系统的初始性能以及进行后续优化。

在后续的文章中,我们会进行进一步的介绍。

这篇关于Ansys Zemax | 设计抬头显示器时要使用哪些工具 – 第一部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/724087

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时