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

2024-02-19 08:20

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

本文为使用OpticStudio工具设计优化HUD抬头显示器系统的第三部分,主要包含演示了如何使用OpticStudio非序列模式工具正向分析HUD系统的性能以及后续可能的扩展分析。

上两篇文章中(第一部分点此查看,第二部分点此查看),我们主要介绍了如何以逆向方式对于HUD系统进行建模,以及根据分析系统的初始性能,并结合具体设计指标了解如何对系统进行控制与优化。本篇文章将主要结合OpticStudio非序列模式功能进行正向HUD系统性能的整体评估。(联系我们获取文章附件)

最终步骤:从显示器到虚像(正向)

翻转系统

翻转系统不是直接一步到位的。镜头数据编辑器中的元件翻转工具有一些限制,HUD系统肯定会破坏这些限制,因为该系统包含坐标间断和非标准表面。

棘手的部分是Z轴是“翻转的”。对于像HUD这样的非对称系统,该工具无法正常工作。

另一种解决方案如下所述:

•在镜头数据编辑器中,选择Make Double Pass工具:

该系统在表面12上包含一个反射面,该反射就是LCD。只有我们系统的之后部分才值得关注。

•表面24是新的STOP表面。首先可以固定表面24的半直径,将“孔径”更改为“按光阑大小浮动”,然后将“STOP”表面设置为表面24。

•系统需要整理:删除从“虚像”到“显示器”中定义的所有表面;从表面1到11。设计结果可以在表面13上移除,表面13的厚度是固定值2000mm。“物面厚度(表面0)”设置为0mm。

•表面13即STOP面可以设置为全局坐标参考表面。系统如下所示:

•现在,视场数据编辑器中的视场必须重新定义为LCD视场尺寸:

系统性能

•光斑尺寸(模糊):可以在Afocal image Space中检查图像清晰度,STOP的大小等于白天的瞳孔尺寸,它的直径是4毫米。

光斑的模糊低于2’,1’大约是人眼的分辨率。

•图像模拟:HUD将对车辆的速度进行成像。图像模拟工具可以让用户了解HUD系统图像质量:

•发散/会聚(双目视差):驾驶员的双眼将通过光学系统观看虚像。每只眼睛看到同一图像点的方向之间通常有一个很小的角度差异。垂直(上/下)角度差被称为双会聚。水平(左/右)角度差称为收敛。可以使用结果文件“HUD_Step1_MF_after_optim_2_eyes.zar”进行检查。瞳孔直径为4mm,瞳孔间距设置为50mm。对于视觉系统,这些值的典型极限在1.0 mrad的数量级上,因此系统在该极限范围内。

步骤3:非序列模式 

直接转换为NSC组(非序列组)

系统现在已准备好导出到非序列进行进一步分析。

初始的文件名为“HUD_Step2_reversed.zar”

OpticStudio有一个内置工具“转换为NSC组”,可以将序列表面转换为非序列元件;或者将整个序列系统转换为非序列系统。转换反射镜时,如果基板厚度大于0,则会将反射镜转换为复合透镜物体,其厚度等于反射镜基板厚度。因此,在这个文件中,我们将反射镜4、6、8和11的厚度设置为5毫米。该文件现在已准备好进行转换。

一旦转换了文件,就需要进行一些整理。下面的列表说明了不同的步骤。最后的非序列文件可以在文章的顶部下载:  

“HUD_Step3_NONSEQ_after_tidying_up.zar”

•在全局坐标系中定义所有的物体:

 

•只保留一个光源:以视场1为中心,第4行的椭圆光源。删除所有其它光源(第1行至第3行和第5行至第12行)。将该光源更改为“矩形光源”,其宽度为±12.5mm,尺寸为±5mm。将布局光线的数量设置为10:

•逆追迹光线:

•删除在序列模式中对翻转系统有用的表面2以及表面3。删除所有空物体。

•删除平面反射镜:在非序列模式下只需要一个平面反射镜(删除第10-14行)。

•将风挡玻璃的材料改为N-BK7(第14行)。

•将Eyebox(第15行)更改为Detector Color(检测器颜色),并添加约为-8度的Tilt(倾斜)X。速度将显示在Detector Color的底部。眼盒尺寸为X半宽=50mm,Y半宽=20mm。将X中的像素数设置为400,将Y中的像素数目设置为200。此外,Detector Color半角设置为X 20度和Y 10度,并且添加了180度的倾斜Y和倾斜Z,使得最终图像在右方向上显示。

•将检测器25更改为矩形光源,并将注释更改为“虚像”。添加-8度的“倾斜X”,并将“Y位置”更改为275 mm,以使其位于探测器的中心。

20条布局光线,X半宽=1000mm,Y半宽=500mm,光源距离=2000,翻转光线。

•删除所有其他探测器(16至24)。

在这一点上,来自LCD窗口的布局光线似乎与风挡玻璃没有相互作用。风挡玻璃是一个布尔原生对象:它是矩形体积和由2个扩展多项式曲面组成的复合透镜。

要了解发生了什么,让我们通过取消勾选“Do Not Draw Object”选项卡中的“不绘制对象”选项来绘制矩形体积:

三维布局显示“光源”位于矩形体积内,矩形体积是布尔体的父对象之一。在这种情况下,需要启用Source的Inside Of f标识才能指向布尔对象。还需要在NSCE(非序列数据编辑器)中的布尔物体之后定义光源,以便内部能正常工作。

 

•在第1行剪切矩形光源物体,并将其复制到风挡玻璃下方。更改Inside Of flag。现在光线在风挡玻璃上散射了。

•添加一个幻灯片物体作为LCD显示屏上显示速度的源图像,并将其放在LCD光源的前面。将“X全宽”设置为26 mm,将“纵横比”设置为1.0。

•虚拟图像处的矩形光源(物体#17)将用于模拟建立太阳光照射。添加一个幻灯片物体以表示司机看到的背景场景(Object Properties >Sources> Raytrace> Reverse Rays,以便光线向探测器发射)。将“幻灯片X全宽”设置为2000 mm,将“纵横比”设置为1.0。

•在第17行设置矩形光源的光谱,以匹配太阳光谱。

•光源14(LCD显示器):功率=1W,分析射线数=1E6

•光源17(照明背景):功率=10W,分析射线数=1E7

整理后,NSC实体模型中的最终系统如下所示。

结论

可以使用Detector Viewer显示驾驶员看到的模拟图像。首先单击 Analyze > Ray Trace 执行光线追迹,然后设置“光线追迹控制”,如下所示。然后通过单击 Analyze > Detector Viewer 来查看探测器查看器。在“设置”菜单下,设置“显示为:真彩色”和“显示数据:角度空间”。角度空间是序列非无焦像空间设置的非序列同等形式设置。这里使用它是因为人眼模型没有在这个系统中建模。

探测器查看器现在以真彩色显示驾驶员将使用设计的HUD系统看到的内容:

除此之外

在非序列模式下,用户可以执行其他分析,例如Straylight Analysis(杂散光分析),或由驾驶员头部移动引起的图像观察亮度变化等。

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



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

相关文章

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 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完