本文提供了一个抛物面牛顿光学系统反射式望远镜尺寸设计的Matlab小程序,读者可以通过测量或者设计下述指定位置的尺寸,即可运行该程序,准确计算得到调焦座安装的位置,以及副镜安装的偏距等信息。(由于圆锥曲线的性质,利用一个平面即副镜去切割主镜的几何光锥后,得到的平面也是一个椭圆,但是其中心不在主镜轴线上,会偏移一些,因此副镜为了不漏光,也应当偏心安装,该程序即可计算这个偏移的最佳距离,如下图所示)

这里要强调的是,本程序基于下述这种特殊结构(自制)的反射式望远镜,但笔者认为,大部分反射式望远镜均是按照此种结构设计制造的。为了便于下文的说明,这里规定:镜筒的顶部为靠经副镜的一侧的镜筒端面;镜筒底部为靠近主镜的一侧的镜筒端面。

由于图像过大,以下将图中所需的参数放于表格中:

参数名称(符号)

测量方法

主镜弹簧长度(L1)

与主镜直接接触的主镜架靠近镜筒底部一侧底面与没有和主镜直接接触的主镜座靠近镜筒顶部一侧的面直接的距离

副镜弹簧长度(L2)

与副镜直接接触的45°倾角形状的副镜架靠近镜筒顶部一侧平面与没有和副镜直接接触的副镜座靠近镜筒底部一侧的平面之间的距离

镜筒长度(L3)

镜筒顶部和底部的距离

主镜直径(d1)

主镜有效光学口径(例如小黑:d1 = 150mm)

副镜直径(d2)

副镜椭圆短轴的长度

镜筒直径(d0)

镜筒的外径

主镜焦距(f)

抛物面主镜的焦距

主镜面边缘到主镜架底部距离(A)

主镜面抛物面一侧距离镜筒顶部的最近点与直接与主镜接触的主镜架靠近镜筒底部一侧平面的垂直距离

主镜座高度(B)

没有与主镜直接接触的主镜座靠近镜筒顶部一侧平面与靠近镜筒底部一侧平面之间的垂直距离

主镜座底部与镜筒底部间隙(E)

没有与主镜直接接触的主镜座靠近镜筒底部一侧平面与镜筒底部的垂直距离

副镜厚度(k)

副镜片的厚度

副镜座顶部与镜筒顶部间隙(F)

没有与副镜直接接触的副镜座靠近镜筒顶部一侧平面与镜筒顶部的垂直距离

副镜座高度(D)

没有与副镜直接接触的副镜座的高度

副镜架椭圆平面与副镜架顶部距离(C)

与副镜直接接触的副镜架椭圆平面中心点距离副镜架底部平面间的垂直距离

所有尺寸都会最后影响望远镜的外形以及遮挡率。得到这些参数后,应当按照以下的格式将上述数据填写入Excel表格中。注意这个表格应当与下表严格一致!

而后将该表保存在某个位置,将其路径复制下来,放入下列的Matlab代码中:

clc
clear
%!!!!!!!!!!!!这里放置文件路径
file_name = 'E:\Shixuan Liu\资料文本类文件\150mm反射式望远镜设计\尺寸设计MATLAB\参数表.xlsx';
[num,~,~] = xlsread(file_name);
%------------------------------------------------------------------
%输入数据部分
%变量--------------------------------------------
L1 = num(1,1);%主镜弹簧长度
L2 = num(2,1);%副镜弹簧长度
L3 = num(3,1);%镜筒长度
%常量--------------------------------------------
%主镜光学参数
d1 = num(4,1);%主镜直径
d2 = num(5,1);%副镜直径
d0 = num(6,1);%镜筒直径
f = num(7,1);%主镜焦距
%主镜参数
A = num(8,1) - d1^2/(16*f);%主镜面中心点到主镜架底部的距离
B = num(9,1);%主镜座高度
F = num(10,1);%主镜座底部与镜筒底部的间隙
%副镜结构参数
k = num(11,1);%副镜厚度
E = num(12,1);%副镜座顶部与镜筒顶部的间隙
D = num(13,1);%副镜座高度
C = num(14,1) + sqrt(2) * k;%副镜平面与光轴焦点和副镜架之间的距离
%------------------------------------------------------------------
%计算部分
%关键点
P1 = [-f ; 0];
P2 = [-d1^2/(16*f) ; 0.5*d1];
P3 = [-d1^2/(16*f) ; -0.5*d1];
P4 = [-(L3 - A - L1 - B - F - E - D - L2 - C) ; 0];
M = f - (L3 - A - L1 - B - F - E - D - L2 - C);%焦点折断线伸出长度
k_P1_P2 = (P2(2,1) - P1(2,1))/(P2(1,1) - P1(1,1));
k_P1_P3 = -k_P1_P2;
N1 = [-k_P1_P2 1;1 1] \ [-k_P1_P2 * P1(1,1);P4(1,1)];
N2 = [-k_P1_P3 1;1 1] \ [-k_P1_P3 * P1(1,1);P4(1,1)];
d_d2_ = abs(N1(2,1) - N2(2,1));%光锥副镜截面短轴长度,需要小于副镜长轴
d_d2_long = sqrt(2) * d_d2_;%光锥副镜截面长轴长度
L_t = -P4(1,1) + A + L1 + B + F;%镜筒底部到调焦座轴线的距离
mid_N = 0.5 * (N2(1,1) + N1(1,1));
mid_N_y = 0.5 * (N2(2,1) + N1(2,1)) * sqrt(2);
d_d2_short = 2 * k_P1_P2 * (mid_N - P1(1,1));
long_index = d_d2_long / (d2 * sqrt(2));
short_index = d_d2_short / d2;
disp('参数计算完毕!');
if(0.5 * (long_index + short_index) * 100< 100)
str_ = ['副镜(椭圆短轴长度:' num2str(d2) ' mm)' '通光面利用率:' num2str(0.5 * (long_index + short_index) * 100) ' %'];
disp(str_);
elsestr_ = ['副镜(短轴长度' num2str(d2) ' mm)' '通光面利用率:' num2str(100) ' %;损失:' num2str(0.5 * (long_index + short_index) * 100 - 100) ' %'];disp(str_);
end
if(mid_N_y < 0)
str_ = ['副镜安装理论偏心距:' num2str(abs(mid_N_y)) ' mm'];
disp(str_);
elsestr_ = ['副镜安装偏距:' num2str(abs(mid_N_y)) ' mm'];
disp(str_);
end
str_ = ['主镜面(有效抛物反射面直径:' num2str(d1) ' mm)' '理论有效通光面积:' num2str(pi*d1^2/4 - pi*d2^2/4) ' mm^2'];
disp(str_);
str_ = ['主镜面通光面积损失:' num2str(100*(pi*d2^2/4)/(pi*d1^2/4)) ' %'];
disp(str_);
str_ = ['调焦座轴线与镜筒底部距离:' num2str(L_t) ' mm'];
disp(str_);
str_ = ['焦点远离镜筒外边缘长度:' num2str(M - 0.5*d0) ' mm'];
disp(str_);

点击运行即可:

由该程序计算得到的参数可以减少副镜的损失。

Matlab - 抛物面牛顿光学系统反射式望远镜尺寸设计相关推荐

  1. 基于matlab的纸币面额面向识别方法设计

    基于matlab的纸币面额面向识别方法设计 摘 要:本设计的主要研究内容是在获取人民币的基础上通过FPGA.CIS传感器进行纸币图像采集,并对采集到的纸币图像进行预处理,包括去噪.边缘检测和倾斜校正. ...

  2. 基于MATLAB的数字图像处理系统GUI界面设计

    基于MATLAB的数字图像处理系统GUI界面设计 图像读入 从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图 ...

  3. 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组

    <matlab实现牛顿迭代法求解非线性方程组>由会员分享,可在线阅读,更多相关<matlab实现牛顿迭代法求解非线性方程组(5页珍藏版)>请在人人文库网上搜索. 1.matla ...

  4. MATLAB中PI调节器设计,华中科技大学电气学院matlab选修课大作业pi控制器的设计...

    华中科技大学电气学院matlab选修课大作业pi控制器的设计 2008 级<MATAB 语言与控制系统仿真>课程大作业姓 名 赖智鹏 学 号 u200811806 所在院系 电气与电子工程 ...

  5. matlab的dft谱分析,数字信号处理基于matlab(用DFT作谱分析,窗函数的设计)

    数字信号处理基于matlab(用DFT作谱分析,窗函数的设计) 1实验一用DFT作谱分析X11111X212344321N108X3COSN1PI/4N208X4SINN2PI/8FIGURESUBP ...

  6. matlab演示系统,基于Matlab的通信原理演示系统的设计与应用

    基于 Matlab的通信原理演示系统的设计与应用 李 强 , 明 艳 , 吴坤君 (重庆邮电大学 通信学院 , 重庆 400065) 摘 要 : 利用 Matlab图形用户界面的开发环境和强大的通信仿 ...

  7. UA SIE545 优化理论基础0 优化建模6 罐头的尺寸设计

    UA SIE545 优化理论基础0 优化建模6 罐头的尺寸设计 我们的目标是设计一种罐头,这种罐头产品按件出售,一件12个罐头,按3行一行四个的形式排列,同时有以下信息: V0V_0V0​:罐头的最小 ...

  8. 基于matlab的捷联惯导算法设计及仿真,基于 Matlab 的捷联惯导算法设计及仿真1doc.doc...

    基于 Matlab 的捷联惯导算法设计及仿真1doc 基于 Matlab 的捷联惯导算法设计及仿真1 严恭敏 西北工业大学航海学院,西安 (710072) E-mail:yangongmin@163. ...

  9. 用matlab编程简单电子琴,基于MATLAB的数字信号发生器及简易电子琴设计论文.doc...

    基于MATLAB的数字信号发生器及简易电子琴设计论文 基于MATLAB的数字信号发生器及简易电子琴设计 摘 要 数字信号发生器是一种基于软硬件结合实现的函数波形产生仪器.在工程实践中需要检测和分析的各 ...

最新文章

  1. 中国电子学会图形化四级编程题:食堂取餐
  2. android native堆内存泄露,Android Native内存泄露检测
  3. 2018年终总结之人工智能学习
  4. sql多变量 双引号设置
  5. winrar皮肤的更换
  6. 60岁有30万资金,如何存款最安全?
  7. mysql 查询分组平均数_9、mysql分组查询-----group by 和 having
  8. pwn环境搭建_pwndbg、pwntools环境搭建(Unix系统)
  9. duration java_Java Duration类| 带示例的dividBy()方法
  10. 格而知之11:我所理解的内存管理(2)
  11. 25 个超棒的 HTML5 JavaScript 游戏引擎开发库
  12. unity2d自动生成敌人_【A*Pathfinding】超级简单的Unity2D寻路
  13. MySql学习笔记——存储函数
  14. ComboBox控件值对类
  15. php按钮打开文件选择框,在Select file(选择)页面单击Select file(选择文件)按钮
  16. 差异基因p为0_【i春秋杯网络安全联赛WriteUp】为逆行者加油
  17. php递归函数详解,php递归函数的调用讲解
  18. 小白练习cocos creator——property用法记录
  19. showdialog 尝试读取或写入受保护的内存_轻松一键上4000MHz,XPG龙耀D50 重装RGB内存值不值得高端用户选购?...
  20. 看穿 137 亿光年,中国天眼会帮我们找到「三体星」吗?|创新大会 2021

热门文章

  1. 差分分组的合作协同进化的大规模优化算法详解
  2. 华夏 JSH_ERP(二)表格弹窗popupJsh与选中
  3. Alfred v5.0.0-EA9 Mac效率神器 兼容 M1
  4. 计算机毕业设计springboot+vue+elementUI智慧养老平台
  5. python基础教程:Django框架的中的setting.py文件说明详解
  6. 浅析第三方收款码,固定收款码、收款二维码的未来发展
  7. 【大数据之Hadoop】三十一、HDFS集群迁移之Apache和Apache集群间数据拷贝
  8. 【C++笔记三】- 英语相关/英语工具
  9. 安装conda环境出现bug
  10. html入门经典百度,html入门经典