Ansys Speos | 挡风玻璃光学畸变分析

news2024/12/25 8:55:25

附件下载

联系工作人员获取附件

此示例介绍了基于 TL 957 标准和43号法规(ECE R43)的挡风玻璃光学畸变分析的工作流程,以及 GitHub Ansys 光学自动化中提供的分析自动化工具。

如果您从未使用过任何 GitHub 仓库,可以根据光学自动化库的介绍进行操作,该文章在运行以下的工作流程之前可以提供一些必备知识。

该工作流程使用了于 2023R1 发布的light expert function光源专家功能和light path find光路径查找 API 功能。在使用 API 时要注意指定特定的 Python 版本。例如,在 Speos 2023R1 版本中,需要 python 3.9 或更高版本才能与 2023R1 的结果交互;在 Speos 2024R2 版本中,需要 python 3.10.12 或更高版本。使用前可以查看 Speos 版本用户指南,以确认工作流程中需要哪个 Python 版本。

图片

概述

了解仿真工作流程和关键结果

图片

在汽车行业中,TL 957 标准和ECE R43法规(即43号法规)是最受青睐的光学畸变评估准则。尽管测量这两种标准下的光学畸变所采用的方法大体相似,但存在两个关键参数上的差异,这些参数包括测量半径和周边光线的数量,稍后将对它们进行更详尽的阐释。本示例将采用TL 957标准来展示具体的工作流程。至于ECE R43,它在“Taking the Model Further”部分有详细说明,旨在为那些对ECE R43定义感兴趣的用户提供参考。

本文阐述了运用 Speos 软件进行挡风玻璃光学畸变分析的方法。文中提供的示例将展示如何利用 TL 957 标准,在 Speos 环境下创建挡风玻璃项目。通过该示例,用户将能够生成基于特定挡风玻璃几何形状的光学畸变图和屈光度图。

TL 957 标准规定了硅酸盐玻璃车辆玻璃板的要求和测试,其中第9.2节详细说明了光学畸变测试。尽管测试名为“光学畸变”,但实际测量的是屈光率。屈光度的计算方式如图所示:

图片

图中展示了挡风玻璃的横截面。两条光线自左向右穿过玻璃。位于顶部的光线在点M与玻璃发生相互作用,而底部的光线则在点M’处发生相互作用。两个偏转角分别标记为α1和α2,它们代表了从挡风玻璃射出的光线(即透射光线)与入射光线之间的夹角。

在位置M处的屈光度DM可以通过在M点的光学畸变值ΔαM除以ΔX来计算。光学畸变值定义为在距离上的偏转角度差。基于上图,光学畸变值是通过计算位置M和M′处存在的挡风玻璃上的两条传输光线之间的角度来得到的。在标准TL 957中,使用在4个M′点测量的最大光学畸变值来计算折射力,如下图所示。

图片

本文阐述了如何运用Speos软件分析汽车挡风玻璃的光学畸变。本示例将介绍一个Speos挡风玻璃分析项目。基于特定挡风玻璃几何形状,将生成一个光学畸变图和一个屈光度图。

绿色点代表位于M位置的光线。在中心光线M′的上方、下方、左侧和右侧的其他四条光线被用来获得最大的光学畸变值。在标准的TL 957中,距离值∆X被设定为12毫米。

还有其他标准以类似但略有不同的方式定义了光学畸变分析。例如:联合国欧洲经济委员会的第43号法规(ECE R43)。在第43号法规中,距离值∆X设定为4毫米,并且要求使用16条光线来获得最大光学畸变值。

在这个例子中,为了演示目的,使用了材料为PMMA的简单单层挡风玻璃。光学畸变是根据TL 957标准的定义计算的。您需要安装以下工具:

  • Ansys Speos 2023R2或更高版本。

  • 在链接中说明的Python版本。

  • PyCharm 或其他 Python IDE

第 1 步:创建 rayfile 文件

在这一步中,使用附件项目中的脚本生成 5 个不同的光线文件。

在示例中,z轴是车辆的朝上方向,负X轴是车辆前进方向。如果您的项目有不同的方向设置,可以自行调整。

每个光线文件都包含许多光线,这些光线的传播信息稍后将用于计算挡风玻璃畸变。示例项目中还提供了5个预生成的光线文件:第一个光线文件包含中心光线,其他4个光线文件包含围绕中心光线的光线,半径为12mm。这些射线文件的属性可以针对不同的目的进行定制。在本挡风玻璃分析示例中,创建的射线具有以下属性:

  • X 位置为3500mm

  • Y 位置是根据用户选择的挡风玻璃表面的形状计算的,其中2条相邻光线之间的距离为30毫米。 

  • Z 位置是根据用户选择的挡风玻璃表面的形状计算的,2条相邻光线之间的距离为 30 毫米。

  • 起始位置:

  • 方向:-x 方向

  • 波长:555nm

  • 能量:1

第 2 步:Speos 模拟

在此步骤中,将5个光线文件导入到 speos 项目中,该项目将光线发送到挡风玻璃,如下所示:

图片

2d 和 3d 传感器都可以用于仿真生成所需的 *.lpf 文件。在本示例中,使用了3D传感器,记录所有从挡风玻璃射出的折射光线。

图片

保持使用“light expert”功能,以生成 *lpf 文件。lpf 文件记录光线通过挡风玻璃的传播信息:光线文件中的每条光线向前传播,与挡风玻璃相互作用,折射两次,并存在于挡风玻璃中。起始位置、交互位置、出射方向等信息都记录在 LPF 文件中。

图片

第 3 步:通过处理 LPF 文件进行失真分析

这里使用 GitHub 光学自动化中的 python 脚本。该脚本从中心、顶部、底部、左侧和右侧模拟中逐个选择 *.lpf/*.lp3 模拟文件。然后,计算畸变和折射功率并绘制图像。

 

运行和结果

运行模型的说明和关键结果的讨论

第 1 步:创建 rayfile 文件

1. 从此应用程序库下载示例 zip。可以在 zip 文件夹中找到“distortion step 1 enhanced.py”python 脚本。

2. 将脚本python文件“Distortion step 1 enhanced.py”拖放到Ansys Speos中。

3. 在第 100 行,用户需要定义脚本使用windshield_surfaces的位置来生成光线。

4. 选择脚本内容,如下面的截图所示。

5. 选择内挡风玻璃表面或外挡风玻璃表面。

6. 单击脚本编辑器中的“Insert selection”工具按钮。

7. (第 96 行和第 97 行)默认情况下,horizontal_step和vertical_step设置为 30mm。这意味着 2 条中心光线之间的水平和垂直距离为 30 毫米。

8. (第 98 行和第 99 行)默认情况下,样本和半径设置为 5 和 12mm。这代表 TL 957 的要求:每次局部计算总共需要 5 条射线,中心射线与圆上其他 4 条射线之间的距离为 12 毫米。

9. (第 106 行)默认情况下,光线的起始位置的 X 坐标设置为3500mm。如果用户的挡风玻璃的x坐标位置大于3500mm,则用户需要调整此值。

10. (第 120 行)默认情况下,所有 ray 文件都将在 C:\temp 文件夹下生成。如果用户不存在此文件夹或希望保存在不同的位置,用户可以自定义目标生成文件夹。

图片

在 c:\temp 文件夹中,创建了 5 个不同的 rayfile 文件:ray_file_0.ray 包含中心光线。打开每个光线文件并检查,光线数量应该相同,即每个文件里面有 463 条光线。

图片

此步骤还可以选择直接使用示例项目中提供的 rayfile 文件。

第 2 步:Speos 模拟

1. 在 Speos 2023R2 中,打开 speos 项目 “windshield_distotion_study.scdocx” 并创建 5 个 rayfile 源。

2. 选择从步骤 1 中生成的 5 个光线文件定义光线文件源。

3. 编辑每个direct simulation并选择 1 个光线文件源。检查direct simulation使用的光线数量和 LPF 最大路径的设置是否与光线文件中的光线数量匹配。

4. 更新每个方向的模拟。每个模拟将生成一个 *.lp3 文件。

请注意,如果此项目中使用的挡风玻璃形状由分离的曲面定义,即此几何图形中没有挡风玻璃体积。为了描述被表面包围的体积的光学特性,应该使用挡风玻璃表面的Name-Selection/Group来定义挡风玻璃体积。

第 3 步:通过处理 LPF 文件进行失真分析

1. 使用链接下载或复制 Ansys 光学自动化存储库。

2. 如图所示安装所有必要的 python 库。

3. 从光学自动化存储库内的应用程序文件夹中获取 example_windshield_distortion_lpf_reader.py 脚本。

4. 运行脚本。

5. 在执行过程中,系统会要求用户选择 5 个 *.lp3 结果文件。用户需要首先选择中心光线文件,然后使用其他 4 个光线文件来选择剩下的 4 个 *.lp3 文件。

运行完成后,该脚本会绘制 2 个图形:畸变图和屈光度图:

图片

图片

畸变图描述了最大偏转角的分布,屈光度图描述了折射率值。

 

重要的模型设置

对此模型中使用的重要对象和设置的说明

CAD 几何图形方向

在此示例中,向前方向沿x轴。最终结果产生了在 y-z 平面上的图像结果。因此,需要确保挡风玻璃的几何形状使用 x 轴作为前方向和 z 轴作为向上方向。

对挡风玻璃使用精细网格划分

Speos 使用网格来描述几何形状和光线传播的计算。因此,网格划分质量直接影响挡风玻璃分析计算的精度。为挡风玻璃几何形状设置精细网格非常重要。在此示例中,因为挡风玻璃是曲面结构,需要对其进行精细网格划分以准确模拟其性能,因此将sag mode设为固定模式,其值为 0.001mm。

在挡风玻璃上使用全透明表面光学特性

在畸变研究中,通过比较入射光线和折射出射光线来计算光学畸变。因此,需要在挡风玻璃表面涂覆全透明涂层避免反射。

使用相同数量的光线进行模拟和light expert function

光线文件明确定义了要在模拟中使用的光线。在使用 rayfile 源进行模拟时,Speos 引擎将根据 rayfile 文件内定义的光线信息列表逐个创建光线,因此,在仿真过程中不要产生更少或更多的光线,这一点很重要。因此,用于direct simulation的光线数量,LPF 最大光线数与光线文件中的光线数量相匹配。

 

根据参数更新模型

根据设备参数更新模型

使用较小的步长值生成更详细的结果映射

在此示例中,结果图的步长值/分辨率设置为 30 毫米。为了生成更详细的结果图,用户可以通过在步骤 1 中创建更高密度的光线文件来提高分辨率,即减小脚本内“step_size”的值。

请注意,由于光线文件中的光线数量会发生变化,因此需要调整模拟光线数,即LPF LPF最大光线数,与光线数量相匹配。

使用lightbox可避免每次模拟都重新划分网格

在挡风玻璃分析中,对挡风玻璃的几何形状进行了极其精细的网格划分。因此,对几何体进行网格划分需要大量的仿真时间。为避免重复网格划分,用户可以使用挡风玻璃几何体创建lightbox导出。由于lightbox是应用了光学属性的pre-meshed几何体,因此在仿真运行期间可以节省对挡风玻璃进行网格划分的成本。

 

进一步推广模型

为想要进一步自定义模型的用户提供信息和提示

更改参数以实施 ECE No. 43 法规

第 43 号法规将挡风玻璃分析定义为一种非常相似的方法。区别在于距离为4mm ,中心光线周围的光线数量为12 (∆X = 4 mm,surrounding rays = 12)。用户可以在创建 rayfile 文件的第一步中实施更改:

1. 将半径值更改为 4

2. 将样本值更改为 13(即 1 条中心射线和 12 条周围射线)

然后,用户将获得 13 个不同的 rayfile 文件进行模拟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2079951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构(邓俊辉)学习笔记】串 07——KMP算法:分摊分析

文章目录 1.失之粗糙2.精准估计 1.失之粗糙 以下,就来对 KMP 算法的性能做一分析。我们知道 KMP 算法的计算过程可以根据对齐位置相应的分为若干个阶段,然而每一个阶段所对应的计算量是有很大区别的。很快就会看到,如果只是简单地从最坏的角…

K8S的持久化存储

文章目录 一、持久化存储emptyDir实际操作 hostPath建立过程 NFS存储NFS 存储的优点NFS 存储的缺点具体操作 pv和pvcPersistent Volume (PV)使用场景 Persistent Volume Claim (PVC)使用场景 使用 PV 和 PVC 的场景实际操作 StorageClassStorageClass 概述应用场景实际应用 一、…

实用攻略:亲身试用,高效数据恢复软件推荐!

今天要跟大家分享一下我使用几款数据恢复软件的经历。如果你曾经丢失过重要的文件,那除了注意备份外,也可以尝试一下这些非常棒的免费数据恢复软件! 第一款:福昕数据恢复 链接:www.pdf365.cn/foxit-restore/ 首先聊…

Nginx+ModSecurity(3.0.x)安装教程及配置WAF规则文件

本文主要介绍ModSecurity v3.0.x在Nginx环境下的安装、WAF规则文件配置、以及防御效果的验证,因此对于Nginx仅进行简单化安装。 服务器操作系统:linux 位最小化安装 一、安装相关依赖工具 Bash yum install -y git wget epel-release yum install -y g…

大模型企业应用落地系列二》基于大模型的对话式推荐系统》核心技术架构设计图

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 大模型企业应用落地系列二基于大模型的对话式推荐系统》心技术架…

【精品】计算机毕业设计之:springboot游戏分享网站(源码+文档+辅导)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

win11,vscode上用docker环境跑项目

1.首先用dockerfile创建docker镜像 以下是dockerfile文件的内容: FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-devel LABEL Service"SparseInstanceActivation"ENV TZEurope/Moscow ENV DETECTRON_TAGv0.6 ARG DEBIAN_FRONTENDnoninteractiveRUN apt-…

JavaScript:js;知识回顾;笔记分享

一,js前奏 1,js简介: Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题&a…

数据结构与算法(1)

抽象数据类型定义 算法的效率 时间效率 一个算法的运行时间是指一个算法在计算机上运行所耗费的时间 大致可以等于计算机执行一种简单的操作(如赋值、比较、移动等) 所需的时间与算法中进行的简单操作次数乘积。 比较时间复杂度(看数量级) 空…

【STM32】RTC

忠实的时间记录者——RTC,板子断电也能继续记录(当然,得有纽扣电池供电)。 大部分图片来源:正点原子HAL库课程 专栏目录:记录自己的嵌入式学习之路-CSDN博客 目录 1 概述 2 应用 3 RTC方案 4 …

javacv-ffmpeg ProcessBuilder批量旋转图片

javacv-ffmpeg ProcessBuilder实现对图片的旋转,最近需要处理很多图片,量有点多,所以不能一个一个去编辑旋转图片,所以写一个工具类,实现对图片的旋转 maven配置文件,加上对ffmpeg的依赖,由于f…

关于自定义控件,头文件找不到问题的解决办法

在ui文件中使用控件提升的时候,突然发现ui_xxxx.h竟然报错了, 这在之前是没有碰到过,苦思过后认为是环境变量的问题,因为现在正在用的构建套件是 mingw 的,但在此之前我一直用的是msvc,并且环境变量的配置…

骑行耳机该怎么选?精选南卡、骨聆、小米多款顶尖实用品牌!

骨传导耳机,作为运动骑行领域的黑科技伴侣,以其独特的传音方式,让众多骑行运动爱好者在享受音乐的同时,依然能清晰感知外界环境,提升运动安全与乐趣。然而,随着骨传导耳机热度增加,市面上开始出…

Prometheus监控Kubernetes ETCD

文章目录 一、kubeadm方式部署etcd1.修改etcd指标接口监听地址2.prometheus中添加etcd的服务发现配置3.创建etcd的service4.grafana添加etcd监控模版 二、二进制方式部署k8s etcd1.将etcd服务代理到k8s集群2.创建etcd证书的secrets3.prometheus挂载etcd证书的secrets4.promethe…

63. 不同路径 II -dp7

63. 不同路径 IIhttps://leetcode.cn/problems/unique-paths-ii/ 输入:obstacleGrid [[0,0,0],[0,1,0],[0,0,0]] 输出:2 解释:3x3 网格的正中间有一个障碍物。 从左上角到右下角一共有 2 条不同的路径: 1. 向右 -> 向右 ->…

Chrome 中的 RCE 会在 JIT 编译器中产生不正确的副作用

此类漏洞通常是“一键式”攻击的起点,当受害者访问恶意网站时,该漏洞会危害受害者的设备。Chrome 中的渲染器 RCE 允许攻击者危害 Chrome 渲染器进程并执行任意代码。但是,渲染器进程的权限有限,因此攻击者需要将此类漏洞与第二个“沙盒逃逸”漏洞串联起来:Chrome 浏览器进…

C#WinFrom 中实现可自定义按钮和事件的消息提示框

实现效果: public partial class CustomMessageBox : Form {// 声明按钮和标签控件private Button btnOption1;private Button btnOption2;private Label lblMessage;// 自定义属性用于获取对话框的结果public DialogResult DialogResult1 { get; private set; }// …

一文弄懂SQL事务隔离级别

SQL 事务隔离级别 在多用户数据库系统中,为了保证数据的完整性和一致性,SQL 标准提出了四种事务隔离级别,以规避脏读、不可重复读和幻读等问题。以下是四种隔离级别的简要介绍: 读未提交(read uncommitted&#xff09…

产业报告 | 2024年中国低空经济产业研究报告

低空经济是指以各种有人驾驶和无人驾驶航空器的各类低空飞行活动为牵引,辐射带动航空器研发、生产、销售以及低空飞行活动相关的基础设施建设运营、飞行保障、衍生综合服务等领域产业融合发展的综合经济形态。 基于启信产业大脑的海量数据与专业研判模型&#xff0…

【Linux C++】log4cpp日志库的安装和使用详解

log4cpp 是一个开源的 C 日志库,灵感来源于 Java 的 log4j。它提供了灵活的日志记录功能,可以帮助开发者在 C 应用程序中记录、管理和格式化日志信息。log4cpp 支持多种日志记录策略和输出目标,可以满足各种不同的需求。 1.安装 下载压缩包…