当前位置: 首页 > news >正文

Ansys Zemax|在设计抬头显示器(HUD)时需要使用哪些工具?

图片

附件下载

联系工作人员获取附件

汽车抬头显示器或汽车平视显示器,也被称为HUD,是在汽车中显示数据的透明显示器,不需要用户低头就能看到他们需要的重要资讯。这个名字的由来是由于该技术能够让飞行员在头部“向上”并向前看的情况下查看信息,而不是斜着眼睛看下面的仪表。

这篇文章节选了在设计和分析抬头显示器(HUD)的性能时所使用的 OpticStudio 工具。

HUD 概述

下面是 HUD 的简图。液晶显示器(LCD)会发光,这些光被构成 HUD 的两个镜子反射,然后再被挡风玻璃反射,最后进入驾驶员的眼睛。驾驶员看到的是位于道路上的虚像,该虚像为驾驶员提供例如速度等信息。

驾驶员在驾驶过程中会移动头部改变视角。视窗(eyebox)是一个虚拟空间,代表驾驶员在该空间内都能看到虚像。

图片

图片

让我们来看一个 HUD 系统示例,其规格参数如下。

  • 虚像距离: 2 m

  • 显示车辆当前的行驶速度

  • 结构限制:HUD 将主要受到仪表盘下可用空间的限制。挡风玻璃将充当分光镜。

  • 视窗: 驾驶员眼睛的位置将位于一个宽度为 ± 50mm,高度为 ± 20mm的空间内。

  • 人眼瞳孔:在亮光下为2至4毫米,在黑暗中为4至8毫米。在本示例中,它将被设定为4毫米。

  • LCD 显示屏尺寸为宽 ± 12.5mm,高 ± 5mm。

  • 放大倍数 = 6

设计 HUD 的步骤

从虚像到显示器:设计是在序列模式下反向进行的。为什么呢?因为从驾驶员看到的虚像开始模拟很方便。这样就可以将光阑面放置在系统前方,即视窗所在的位置。在光阑面放置矩形孔径以表述对眼睛位置的约束。

从显示器到虚像:之后在序列模式下将系统反转,这将能够“真实”模拟人眼在汽车前进方向上看到的画面的成像质量。

最后,系统将被转换为非序列(NSC)模式,该模式下,用户可以进行杂散光分析,从而实现更加真实的模拟。在该模式下,将显示驾驶员使用 HUD 看到的真实图像。

第一步:从虚像到显示器(反向)

  • 设计选择:

HUD 的初始设计是一个折叠系统,这保证了它在仪表盘下可以保持足够小的尺寸。HUD 由两面镜子组成:一面平面镜,还有一面是自由曲面。镜子的优点在于不会在成像系统中引入任何色差。自由曲面的镜子还需要进行优化。

为了方便起见,我们建立了一个模板,其中包含了所有初始元素以及整个挡风玻璃的自由曲面模型。挡风玻璃由扩展多项式面型模拟。让我们一起来看看这个文件是如何建立的。

  • 系统选项:

孔径:视窗为系统光阑,它表明了驾驶员眼睛位置可移动的范围:宽度 = ± 50mm,高度 = ± 20mm,这个尺寸的矩形孔径被放置在光阑面。

然后计算入瞳直径 (EPD) 为 2 x (sqrt (20^2+50^2)) = 108 mm。

图片

  • 视场:

视场类型被设置为物高,归一化被定义为矩形。在实际系统中,LCD显示器上的图像被放大了6倍以形成虚像。因为目前的设计是反向的,从虚像到LCD显示器,虚像的尺寸可以被计算出来,并作为物高在视场数据编辑器里面定义视场大小。LCD显示器尺寸为: 宽度 = ± 12.5mm,高度 = ± 5mm。因此,物面尺寸应该是这个尺寸的6倍:

图片

波长: LCD 显示器发光波长为0.55µm。

  • 挡风玻璃

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

为了找到这个“有效”区域,可以使用光迹图(Footprint Diagram)工具,该工具可以在分析菜单栏下的光线迹点(Rays & Spots)中找到。它显示了光束在挡风玻璃表面上叠加的光迹:

图片

  • 挡风玻璃建模:

挡风玻璃可以通过序列模式下面型表征,例如自由曲面面型,或者也可以被看作非序列 CAD 零件。如果它被表征为一个非序列 CAD 零件插入到一个序列模式下的系统中,那么系统就变成了混合模式。当对系统反向建模时,即从虚像到显示器,这样做效果很好,但在正向建模时就会出现问题,因为光阑面现在位于非序列组件表面之后,这使得光线瞄准更加困难,也可能导致其他光线追迹问题。

在本例中,挡风玻璃是使用扩展多项式面型建模的。

  • 定位所有元素

所有元素的位置布局如下图所示:

图片

  • 每个面的放置是通过一些便利的工具来完成的:

坐标断点返回:坐标断点面可以使用表面属性下的倾斜/偏心中的坐标返回来定义。OpticStudio 之后将计算该坐标断点面的参数,以便在该坐标断点面之后,局部坐标(“返回”至)与之前的序列面型的局部坐标相同。

图片

  • 主光线求解:该求解会计算坐标断点面的倾斜和偏心,使其垂直于主光线并以其为中心。

图片

因为篇幅关系,本次推文节选了部分内容,了解更多关于如何完成这一工作,以及如何将设计导出到非序列模式进行进一步分析,请联系工作人员获取全文和附件。

相关文章:

Ansys Zemax|在设计抬头显示器(HUD)时需要使用哪些工具?

附件下载 联系工作人员获取附件 汽车抬头显示器或汽车平视显示器,也被称为HUD,是在汽车中显示数据的透明显示器,不需要用户低头就能看到他们需要的重要资讯。这个名字的由来是由于该技术能够让飞行员在头部“向上”并向前看的情况下查看信息…...

Linux系统移动光标类命令

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...

Vitis Accelerated Libraries 学习笔记--Vision 库的组织结构

1. 简介 Vision 库的组织结构如下: ├── L1/ │ ├── README.md │ ├── examples/ │ ├── include/ │ ├── lib/ │ └── tests/ ├── L2/ │ ├── README.md │ ├── examples/ │ └── tests/ ├── L3/ │ ├── R…...

HTML+CSS 彩色浮雕按钮

效果演示 实现了一个彩色按钮特效,包括一个按钮(button)和一个前景色(::before)。按钮具有四种不同的颜色,当鼠标悬停在按钮上时,前景色会出现渐变效果,并且按钮的颜色、文本阴影和边…...

ChatBI开源实现: 基于SuperSonic的AI+BI的产品设计

产品起源 为什么要做这样的产品?文章《ChatBI开源实现: AIBI的产品设计》中有介绍 为什么要自己做这样的产品?1、低成本试错;2、未来数据生态入口; 为什么要基于Supersonic做? 开源协议友好:可魔改商用 社区…...

【嵌入式Linux】i.MX6ULL 外部中断服务函数的初始化

文章目录 1. Cortex-A7 中断系统1.1 分析1.2 具体处理流程 2. 外部中断服务函数的初始化2.1 基本流程分析2.2 具体代码分析2.2.1. 定义中断处理类型和结构体2.2.2. 初始化中断系统2.2.3. 注册中断处理函数2.2.4. 具体的中断处理逻辑2.2.5. 默认的中断处理函数 3. 完整代码 本文…...

线性代数、矩阵计算

一、线性代数 1、对于向量,若a是标量,为a的绝对值乘以b的向量长度。 2、点乘 3、范数:向量或者矩阵的长度 L1范数:(对向量)每个元素的绝对值求和 L2范数:(对向量)torch.…...

PostgreSQL 高级功能(五)

1. 存储过程与函数 1.1 创建存储过程 存储过程是一组预编译的SQL语句,可以简化复杂的操作。以下是一个简单的存储过程示例: CREATE OR REPLACE FUNCTION add_user(username VARCHAR, email VARCHAR) RETURNS VOID AS $$ BEGININSERT INTO users (use…...

食品企业仓储式批发零售一体化解决方案

食品企业需要有效应对日益复杂的市场挑战和消费者需求的快速变化的挑战并提升市场竞争力,仓储式类的批发零售一体化需求应运而生。这一全新的商业模式不仅整合了传统的批发和零售模式,还优化了供应链管理和客户体验,成为食品行业发展的新引擎…...

chrome插件,修改对应URL的http请求的header头,包括ajax请求

要创建一个可以灵活修改HTTP请求头的Chrome扩展,包括一个用户界面来动态设置头部名称和值,可以按照以下步骤进行。我们会用到 chrome.storage API 来保存用户的设置,并在后台脚本中使用这些设置来修改请求头。 文件结构 my_chrome_extensio…...

C语言 | Leetcode C语言题解之第191题位1的个数

题目: 题解: int hammingWeight(uint32_t n) {int ret 0;while (n) {n & n - 1;ret;}return ret; }...

【C++11(二)】lambda表达式和可变参数模板

一、可变参数模板 C11的新特性可变参数模板 能够让您创建可以接受 可变参数的函数模板和类模板 // Args是一个模板参数包&#xff0c;args是一个函数形参参数包 // 声明一个参数包Args...args&#xff0c;这个参数包中可以包含0到任意个模板参数。 template <class ...Arg…...

昇思25天学习打卡营第2天|张量Tensor

张量Tensor 创建张量张量的属性张量索引张量运算 稀疏张量 总结 简单讲讲张量&#xff0c;数学和物理学界以一种方式定义张量&#xff0c;机器学习上则是以另一种方式定义张量&#xff0c;这里的张量也与神经网络联系紧密&#xff0c;神经网络需要进行大量的数学计算&#xff0…...

[leetcode]valid-triangle-number. 有效三角形的个数

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int triangleNumber(vector<int>& nums) {int n nums.size();sort(nums.begin(), nums.end());int ans 0;for (int i 0; i < n; i) {for (int j i 1; j < n; j) {int left j 1, righ…...

java SQL server 多实例的情况

而对于java&#xff0c;对付多个数据库实例就有些要注意的了&#xff1a; 首先&#xff0c;同样连接字符串上加上“\实例名”&#xff1a; jdbc:sqlserver://127.0.0.1\\mssqlserver2008;DatabaseNameLPT; 此处应去掉端口1433。因为连接数据库自命名实例的url中没有端口号1433…...

html--404页面

<!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <meta http-equiv"X-UA-Compatible" content"IEedge,chrome1"> <title>404 错误页面不存在&…...

[word] Word如何删除所有的空行? #职场发展#学习方法

Word如何删除所有的空行&#xff1f; 很多网友从网页复制文字粘贴到word文档后发现段落之间有空行&#xff0c;如果文字不多&#xff0c;手动删除这些空行也没有多少工作量&#xff0c;但是如果文字的字数达到成千上万&#xff0c;一个个手动删除这些空行还是很繁琐的。那么&a…...

【CSS】深入探讨 CSS 的 `calc()` 函数

深入探讨 CSS 的 calc() 函数 calc() 是一个 CSS 函数&#xff0c;用于在样式表中进行数学计算&#xff0c;从而动态地设置 CSS 属性值。它允许开发者在指定长度、百分比、数值等时&#xff0c;进行加减乘除运算。通过 calc() 函数&#xff0c;我们可以实现更灵活和响应式的设…...

MongoDB异地备份数据文件脚本(带日志打印,便于排查)

此脚本是以文件夹的形式备份&#xff0c;非压缩包形式 如需备份成加密压缩包&#xff0c;可用此脚本&#xff1a;MongoDB定时异地备份所有数据库为加密压缩包-CSDN博客 1.可以直接下载本文件使用&#xff0c;将其放到mongo安装目录的bin目录下&#xff08;可手动执行&#xf…...

论文导读 | Manufacturing Service Operations Management近期文章精选

编者按 在本系列文章中&#xff0c;我们梳理了顶刊Manufacturing & Service Operations Management5月份发布有关OR/OM以及相关应用的文章之基本信息&#xff0c;旨在帮助读者快速洞察行业/学界最新动态。 推荐文章1 ● 题目&#xff1a;Robust Drone Delivery with Weath…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...