S-Plane 튜토리얼 (파트 A): Cooke triplet을 위한 자동 매개변수 스캔
1. 소개
이 튜토리얼에서는 OghmaNano의 매개변수 스캔 도구를 사용한 렌즈 최적화 및 광학 설계의 실용적인 워크플로를 보여줍니다. 고전적인 Cooke triplet 렌즈 시스템에 초점을 맞추어 표면 곡률 및 요소 두께와 같은 핵심 광학 매개변수를 체계적으로 변화시키고 이것이 영상 성능에 미치는 영향을 분석합니다. 대규모 광선 추적 시뮬레이션을 사용하여 설계 공간을 탐색하고 RMS 스폿 반경, 스폿 크기 및 중심, 장축 및 단축 스폿 반경, 스폿 타원률 및 방향, 포위 에너지 반경(EE50, EE80, EE90)을 포함한 지표와 3D 광선 추적 보기에서 광선 경로의 시각적 검토를 통해 성능을 정량화합니다. 이 접근법은 광학 시스템 최적화, 민감도 분석, 및 공차 연구를 위한 재현 가능한 프레임워크를 제공하며, 초기 단계 렌즈 설계와 실제 광학적 절충의 신속한 평가에 직접 적용할 수 있습니다.
2. OghmaNano에서 Cooke triplet 시뮬레이션 시작하기
이 튜토리얼에서는 미리 구성된 Cooke triplet 렌즈 시뮬레이션을 시작하는 것부터 진행합니다. 먼저 Windows 시작 메뉴에서 OghmaNano를 실행합니다. 메인 창에서 새 시뮬레이션 버튼을 클릭하여 그림 2a–b에 표시된 시뮬레이션 라이브러리를 엽니다. 장치 범주 목록에서 광선 추적을 더블클릭합니다. S-plane 광학 데모가 나타나면 Cooke triplet 예제를 찾아 더블클릭하여 바로 실행 가능한 렌즈 시스템을 엽니다.
💡 팁: 최상의 성능을 위해 이 시뮬레이션을
C:\와 같은 로컬 드라이브에 저장하십시오. 이 튜토리얼에서는 대규모 매개변수 스캔을 실행하면서
광선 추적 데이터와 3D 메시 파일을 반복적으로 디스크에 덤프합니다. 이 작업은 많은 양의 작은 읽기/쓰기
연산을 생성하므로 네트워크, USB 또는 클라우드 동기화 폴더
(예: OneDrive)에서는 심각한 병목이 될 수 있으며, 이로 인해 시뮬레이션이
상당히 더 느리게 실행될 수 있습니다.
3. Cooke triplet 시뮬레이션을 열고 S-plane 편집기에서 검사하기
Cooke triplet 시뮬레이션을 저장하면 OghmaNano의 메인 창이 열리며 ??와 같이 보여야 합니다. 3D 보기에서 고전적인 triplet 배치를 확인할 수 있습니다. 녹색 광원, 빨간색 첫 번째 렌즈 요소, 파란색 조리개 스톱, 주황색 두 번째 렌즈 요소, 노란색 세 번째 렌즈 요소, 그리고 보라색 검출기 평면이 표시됩니다.
다음으로 왼쪽 도구 모음에서 S-plane 버튼을 클릭하여 ??에 표시된 S-plane 편집기를 엽니다. 이 표에는 렌즈 요소와 해당 매개변수(재료, 표면 반경, 두께, 지름 등)가 나열됩니다. OghmaNano의 다른 시뮬레이션과 마찬가지로 실행 (재생) 버튼(또는 F9)을 눌러 이 모델을 실행하고 출력 탭에서 결과를 확인할 수 있지만, 개별 시뮬레이션 실행은 이 튜토리얼의 중심이 아닙니다. 다음 단계에서는 이 편집기를 사용하여 어떤 매개변수를 스캔할지 선택합니다.
4. 자동화
4.1 스캔 창 열기
이 튜토리얼에서는 자동화 도구를 사용하여 체계적인 매개변수 스캔을 수행합니다. 이러한 도구는 메인 창의 자동화 리본에서 접근할 수 있습니다 (?? 참조). 매개변수 스캔 버튼을 클릭하여 매개변수 스캔 창을 엽니다 (?? 참조). 기본적으로 new라는 항목이 보이며, 이를 더블클릭하면 개별 매개변수 스캔 편집기가 열립니다 (?? 참조).
매개변수 스캔 도구는 매뉴얼의 매개변수 스캔에서 더 자세히 설명되어 있습니다. 이 튜토리얼의 목적상 중요한 점은 매개변수 스캔 창이 새로 만들기 버튼을 사용하여 여러 개의 독립적인 스캔을 정의하고 관리할 수 있게 하며, 각 스캔은 서로 다른 자동화된 매개변수 공간 탐색에 해당한다는 것입니다.
마지막 그림에서는 이미 하나의 스캔이 구성되어 있는 것을 볼 수 있습니다.
변수 이름 Splane.object.lens1 (b).thickness는 첫 번째 렌즈 요소의 후면 표면 두께를
스캔하고 있음을 의미하며, 스캔 값은 미터 단위로 명시적으로
지정되어 있습니다.
4.2 스캔 편집
이 작업에서는 하나 이상의 렌즈 요소에서 매개변수를 스캔할 수 있도록 추가 스캔 행을 넣겠습니다. 매개변수 스캔 편집기에서 플러스 버튼을 클릭하여 ??에 표시된 것처럼 새 스캔 행을 만듭니다. 그러면 표에 변경할 매개변수, 값, 연산 열이 있는 새 줄이 추가됩니다. 이 두 번째 행을 사용하여 추가 스캔을 정의하면 동일한 자동 실행에서 여러 렌즈 매개변수를 동시에 변화시킬 수 있습니다.
편집 전에 올바른 스캔 행이 선택되어 있는지 확인하는 것이 매우 중요합니다. 새 행을 클릭하여 강조 표시되도록 한 다음, 점 세 개 버튼을 클릭하여 매개변수를 선택합니다. 그러면 ??에 표시된 매개변수 선택 대화상자가 열립니다. object → Lens 2 (b)로 이동하여 두 번째 렌즈 요소의 후면 표면 두께에 해당하는 Thickness를 선택합니다. 선택한 후 확인을 클릭합니다.
두 스캔 행을 모두 구성한 후에는 매개변수 스캔 창이 ??에 표시된 최종 구성처럼 보여야 합니다. 이 시점에서 스캔은 자동 실행 중에 두 개의 서로 다른 렌즈 요소 두께를 동시에 변화시키도록 설정됩니다.
💡 팁: OghmaNano의 객체는 3차원 광학 세계의 일부로 존재합니다. S-plane은 이 3D 형상의 광학 전용 1차원 표현입니다. ??에 표시된 매개변수 트리는 광학 매개변수를 선택하고 스캔하는 편리한 방법을 제공하지만, 이러한 S-plane 값은 최상위 data 트리에 정의된 기본 3D 객체로부터 파생된 값입니다.
??에 표시된 대로 매개변수 스캔이 구성되면 실행 버튼을 클릭합니다. 그러면 스캔에 정의된 모든 시뮬레이션이 실행됩니다. 이 경우 OghmaNano는 스캔 매개변수의 모든 조합을 순회합니다. 첫 번째 스캔 행의 각 값에 대해 두 번째 스캔 행에 정의된 모든 값을 실행합니다. 그 결과 광학 시스템의 모든 매개변수 조합을 완전히 탐색하게 됩니다.
스캔이 끝나면 출력 탭으로 전환합니다
(?? 참조).
출력은 스캔된 매개변수를 반영하는 디렉터리 트리로 구성됩니다.
최상위 수준에서 1.1e-2, 1.2e-2,
1.3e-2, 1e-2라고 표시된 폴더는 첫 번째로 스캔된 매개변수 값에
해당합니다. 이 디렉터리 중 하나로 들어가면
??에 표시된 것처럼
두 번째 스캔 매개변수 값에 해당하는 하위 디렉터리가 나타납니다.
각 말단 디렉터리는 수동으로 단일 시뮬레이션을 실행한 것과 동일한 개별
시뮬레이션 실행을 나타냅니다. 이 디렉터리 안에는 device.csv와 같은 파일이 있으며,
여기에는 광학 시스템의 삼각분할된 3D 형상이 들어 있고, ray_trace
출력에는 해당 매개변수 조합에 대한 추적 광선이 저장됩니다.
이러한 파일은
?? 및
??에 표시된 것처럼
직접 시각화할 수 있습니다.
이를 통해 스캔된 매개변수 공간의 특정 지점에 해당하는 개별 시뮬레이션의 동작을
검사하고 분석할 수 있습니다.
4.3 다중 플롯 파일
메인 스캔 출력 디렉터리(??)에서는 multiple-curves가 있는 여러 개의 다채로운 아이콘을 볼 수 있습니다.
이것들은 스캔 생성 파일의 특별한 유형을 나타냅니다. 단일 데이터 파일이 아니라
전체 매개변수 스캔 트리 전반에서 생성된 데이터에 대한 링크 모음입니다.
예를 들어 all_triangles.csv는 모든 스캔 지점에서 생성된 모든 삼각분할 메시를
연결하고, ray_trace는 스캔 중 생성된 모든 광선 추적 출력에 연결됩니다.
all_triangles.csv를 더블클릭하면 메시 뷰어가 열립니다
(?? 참조).
창 하단의 슬라이더를 사용하면 생성된 개별 시뮬레이션들을 순차적으로 볼 수 있습니다.
슬라이더를 움직이면 렌즈 형상이 현재 매개변수 조합을 반영하도록 업데이트되고,
활성 시뮬레이션 경로가 창 하단에 표시됩니다.
표시된 예에서는 경로가
1.2e-2 / 1.4e-2 매개변수 조합을 나타내며,
이는 두 스캔된 렌즈 두께 값(미터 단위)에 해당합니다.
마찬가지로 ray_trace를 더블클릭하면 광선 추적 뷰어가 열립니다
(?? 참조).
이 뷰어는 일반적으로 두 개의 슬라이더를 제공합니다. 위쪽 슬라이더는 스캔 트리의 서로 다른 시뮬레이션을
순회하고, 아래쪽 슬라이더는 파장을 순회합니다.
이를 통해 매개변수 공간과 파장에 따라 광선 경로가 어떻게 변하는지 동시에 검사할 수 있습니다.
??에 표시된
두 번째 예는 동일한 스캔을 다른 파장 범위에서 본 모습을 보여줍니다.
처음에 아무것도 보이지 않으면 플롯 표에서 플러스 버튼을 클릭하여
플롯할 파일을 추가해야 할 수 있습니다.
all_triangles.csv 보기: 전체 매개변수 스캔 전반에서 생성된 삼각분할 메시를 순차적으로 확인합니다.
이러한 스캔 메타 파일의 또 다른 예로, detector0 출력 폴더로 이동하여 그것을 더블클릭합니다
(?? 참조).
다시 여러 검출기 출력에 해당하는 multiple-curves 항목이 표시됩니다. detector_efficiency0.csv를
더블클릭하면 OghmaNano가
??에 표시된 플롯을 엽니다.
이 플롯은 파장의 함수로서 시스템이 얼마나 많은 빛을 전달하는지(백분율)를 보여주며, 매개변수 스캔에서 탐색된
각 렌즈 형상에 대해 하나의 곡선이 있습니다.
이 예제는 광학 메시 점을 세 개만 사용하므로 각 곡선에는 세 개의 파장 샘플만 포함된다는 점에 유의하십시오.
detector0 출력 폴더입니다.
detector_efficiency0.csv: 스캔에서 탐색된 렌즈 형상당 하나의 곡선입니다.
이 절에서는 OghmaNano가 다중 플롯 메타 파일을 사용하여 매개변수 스캔 결과를 정리하는 방식을 살펴보았습니다. 이러한 메타 파일은 데이터를 중복하지 않으면서 대규모 시뮬레이션 집합을 탐색할 수 있는 구조화된 방법을 제공합니다. 소수의 대화형 뷰어를 사용하여 메시, 광선 추적 및 검출기 출력을 순차적으로 살펴보면 형상, 파장 및 광학 성능이 매개변수 공간 전반에서 어떻게 변하는지 효율적으로 확인할 수 있습니다. 이 접근법은 대규모 스캔 연구를 실용적으로 만들어 주며, 많은 설계 변형에 걸친 광학적 거동의 정성적 검사와 정량적 비교를 모두 가능하게 합니다.
5. 최적화기
이전 절에서는 매개변수 스캔 도구를 사용하여 광선 경로, 형상 및 검출기 출력을 보면서 직접 검사할 수 있는 많은 수의 시뮬레이션을 브루트포스 방식으로 생성했습니다. 이는 물리적 직관을 구축하는 데 매우 유용하지만, 동시에 많은 파일을 생성하고 상당한 디스크 공간을 소비하며 전체 시뮬레이션 워크플로를 느리게 만듭니다. 많은 경우에는 전체 출력 데이터보다는 정량적 성능 지표에 초점을 맞춰 매개변수 공간을 빠르게 훑는 것이 더 바람직합니다.
이를 위해 최적화기를 사용합니다. 매개변수 스캔 편집기로 돌아가서 (?? 참조) 빠른 최적화기 버튼을 클릭합니다. 이 모드는 기본 시뮬레이션과 통계 지표 수집은 계속 수행하면서도 상세 출력 파일(광선 추적, 메시 등)의 생성을 비활성화합니다. 중요한 점은 이전 스캔에서 생성된 모든 출력 파일은 그대로 유지되어 계속 검사할 수 있으며, 최적화기는 단지 새 파일 생성을 피할 뿐이라는 점입니다.
빠른 최적화기를 활성화한 후 시뮬레이션을 다시 실행합니다. 완료되면 출력 탭을 엽니다
(?? 참조).
그러면 optimizer_output.csv라는 새 파일이 표시됩니다.
전체 스캔과 달리 새 디렉터리 트리는 생성되지 않습니다. 최적화기의 주요 결과는
집계된 성능 데이터가 포함된 이 단일 CSV 파일입니다.
optimizer_output.csv 파일입니다.
optimizer_output.csv를 더블클릭하여 선호하는 스프레드시트 프로그램
(Excel, LibreOffice 또는 CSV 파일을 읽을 수 있는 모든 도구)에서 엽니다. 내용은
??에 표시되어 있습니다.
첫 번째 열에는 스캔된 매개변수(이 경우 S-plane 렌즈 두께)가 나열되고,
그 뒤에 각 시뮬레이션에서 추출된 다양한 정량적 성능 지표가 이어집니다.
이러한 지표에는 x 및 y 방향 스폿 위치의 표준편차, 스폿 반경의 표준편차(r_std), 스폿 분포의 장축과 단축 (sigma_major, sigma_minor), 스폿 방향 각도 (spot_theta), 포위 에너지 반경(예: EE50, EE80, EE90), 그리고 관련 적합도 측정값이 포함됩니다. 이들을 함께 사용하면 스캔된 매개변수 공간의 모든 지점에 대한 광학 성능을 간결하게 정량 요약할 수 있습니다.
optimizer_output.csv의 내용입니다.
데이터가 표 형식이므로 쉽게 정렬하거나 필터링하여 최적 설계를 찾을 수 있습니다.
예를 들어 ??에서는
스프레드시트가 스폿 반경의 표준편차인 r_std로 정렬되어 있습니다.
이를 통해 어떤 렌즈 두께 조합이 가장 작은 스폿을 생성하는지 즉시 확인할 수 있습니다.
이 경우 첫 번째 렌즈 두께는 0.013, 두 번째 렌즈 두께는
0.0106입니다.
6. 최적화기 결과 검사
이제 체계적인 매개변수 스캔과 최적화기를 모두 실행했으므로 결과를 더 자세히 살펴볼 수 있습니다. 최적화기를 사용하면 유망한 매개변수 공간 영역을 빠르게 식별할 수 있고, 전체 스캔을 사용하면 해당 시뮬레이션을 더 물리적이고 시각적인 방식으로 검사할 수 있습니다.
첫 번째 단계로, 광선 추적 출력으로 돌아가 최적화기가 식별한 최소 스폿 크기 해에 해당하는 시뮬레이션을 찾을 수 있습니다. 이는 ??에 표시되어 있습니다. 광선 추적 뷰어의 선택 막대를 사용하여 시뮬레이션 트리를 이동하면 가장 작은 스폿을 생성한 매개변수 조합에 도달할 수 있습니다.
그런 다음 시뮬레이션 트리를 더 깊이 조사하여 서로 다른 매개변수 선택에 따라 광학 시스템이 어떻게 거동하는지 비교할 수 있습니다. 예를 들어 ??는 거의 최적에 가까운 설계에 해당하는 비교적 작고 잘 초점이 맞은 스폿을 보여주고, ??는 스캔된 매개변수 공간의 다른 지점에서 생성된 더 크고 덜 최적인 스폿을 보여줍니다.
이를 종합하면 전형적인 워크플로를 보여줍니다. 먼저 최적화기를 실행하여 매개변수 공간을 빠르게 탐색하고 유망한 영역을 찾은 다음, 최적화기를 비활성화하고 관심 영역에서 전체 스캔을 수행합니다. 이렇게 하면 광선 추적, 형상 및 검출기 이미지와 같은 상세 출력을 생성하여 해가 예상대로 거동하고 설계 목표를 충족하는지 물리적으로 검사할 수 있습니다.
7. 대체 빔 형상을 사용하여 시뮬레이션 가속하기
이전 절에서는 매개변수 스캔과 최적화기 모두에 사각형 빔을 사용했습니다. 이는 합리적인 기본값이지만 사각형 빔에는 많은 수의 광선이 포함되어 있어 시뮬레이션을 상당히 느리게 만들 수 있습니다. 많은 경우 시스템 거동을 이해하기 위해 전체 사각형 빔 프로파일이 필요하지 않으며, 더 단순한 빔 형상으로도 충분합니다.
빔 형상을 변경하려면 ??에 표시된 것처럼 3D 보기에서 광원을 마우스 오른쪽 버튼으로 클릭하고 객체 편집을 선택합니다. 광원 편집기에서 구성 탭으로 이동한 후 (?? 참조) 빔 형상을 사각형에서 별형으로 변경합니다. 결과 광선 패턴은 ??에 표시되어 있습니다.
이제 최적화기를 다시 실행하면 시뮬레이션이 더 빠르게 완료되는 것을 확인할 수 있습니다. 이는 별형 빔이 전체 사각형 빔보다 훨씬 적은 수의 광선을 사용하면서도 광학 시스템을 효과적으로 샘플링하기 때문입니다. 또한 십자형 빔 형상 옵션도 있는데, 이는 두 주축을 따라 비점 수차를 독립적으로 검사하는 데 유용하며 계산 비용을 더욱 줄여 줍니다. 따라서 이러한 대체 빔 형상은 탐색적 스캔과 최적화 실행을 가속하는 실용적인 방법입니다.
8. 요약
이 튜토리얼에서는 OghmaNano의 S-plane 광학 워크플로를 사용하여 고전적인 Cooke triplet 렌즈 시스템을 체계적으로 조사하고 최적화하는 방법을 살펴보았습니다. 사전 정의된 예제에서 시작하여, S-plane 편집기가 완전한 3차원 광학 시스템을 콤팩트하고 광선 광학 친화적인 방식으로 보여주며, 모든 S-plane 매개변수가 기본 3D 형상으로부터 일관되게 파생된다는 점을 배웠습니다.
그런 다음 매개변수 스캔 도구를 사용하여 여러 렌즈 매개변수를 동시에 변화시키고 그 결과 생성되는 광학 시스템의 모든 조합을 실행함으로써 렌즈 설계 공간을 브루트포스 방식으로 탐색했습니다. 이를 통해 개별 시뮬레이션을 자세히 검사하고, 광선 경로와 형상을 시각화하며, 렌즈 두께와 간격의 변화가 시스템 성능에 어떤 영향을 주는지에 대한 물리적 직관을 쌓을 수 있었습니다.
더 빠른 탐색을 위해 빠른 최적화기를 도입했으며, 이는 무거운 출력 생성을 비활성화하는 대신 정량적 성능 지표를 하나의 CSV 파일로 수집합니다. RMS 스폿 크기, 포위 에너지, 스폿 타원률과 같은 이러한 지표를 분석함으로써 최적 매개변수 조합을 효율적으로 식별하고, 이를 특정 렌즈 형상과 연결할 수 있었습니다.
마지막으로 별형 및 십자형과 같은 대체 빔 형상이 핵심 광학 거동을 유지하면서도 계산 비용을 크게 줄일 수 있음을 보여주었으며, 따라서 최적화 및 탐색적 스캔에 매우 적합합니다.
이러한 도구들은 함께 실용적이고 재현 가능한 최적화 루프를 구성합니다. 먼저 최적화기를 사용하여 유망한 매개변수 공간 영역을 찾고, 그 다음 상세 출력이 포함된 전체 매개변수 스캔으로 전환하여 광선 거동을 검사하고 물리적 성능을 검증합니다. 이 워크플로는 단순한 렌즈 시스템에서 더 복잡한 광학 설계로 자연스럽게 확장되며, OghmaNano에서 체계적인 렌즈 최적화를 위한 견고한 기반을 제공합니다.
💡 다음 단계: 이 튜토리얼을 완료한 후에는 OghmaNano의 다른 광학 시스템 워크플로도 살펴볼 수 있습니다. 예를 들어 Cooke triplet 렌즈 튜토리얼, 200 mm 단렌즈 예제, 또는 마이크로렌즈 및 광학 필터링 데모를 통해 동일한 최적화 및 분석 도구가 서로 다른 광학 시스템에 어떻게 적용되는지 확인할 수 있습니다.