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使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完