- 博客(1089)
- 资源 (25)
- 收藏
- 关注
原创 根据Zenike多项式绘制光场的强度分布
泽尼克多项式可用于描述光学波前相位差,但人眼无法直接感知相位信息。本文通过模拟Zernike多项式(如Z7)对应的光强分布,展示像差的可视化效果。采用Python实现仿真过程:首先建立80×80mm传感器模型,设置15mm出瞳直径和632.8nm波长;然后构建包含Z7像差的复振幅分布;最后通过傅里叶变换获得焦平面光强图,呈现典型的y向慧差图案。该模拟方法通过fftshift和fft2函数实现,能有效展示光学系统中常见的像差现象,为理解Zernike多项式在实际应用中的表现提供了直观参考。
2025-07-24 08:53:28
445
原创 Vimba相机二次开发教程,基于Python
本文介绍了Vimba Python模块的安装和使用方法。安装需通过Vimba软件安装路径下的setup.py文件进行。使用示例展示了如何获取连接的相机、捕获图像帧,并将Frame对象转换为numpy数组或OpenCV图像格式。文章还演示了如何获取相机的工作参数,如设备温度、曝光时间和帧率,这些参数与Vimba软件中的All选项卡对应,采用大驼峰命名方式访问。文中提供了完整的代码示例,包括图像显示和参数获取的实际操作过程。
2025-07-24 08:28:54
745
原创 tkinter中的spinBox样式详解
Python Tkinter中的Spinbox组件是一个支持数字增减和列表选择的输入控件。本文演示了Spinbox的基本用法,包括设置数字范围(from_, to, increment参数)和列表选项(values参数)。同时介绍了Spinbox丰富的样式设置选项,如背景色、前景色、箭头样式、边框样式等,可以自定义控件外观。示例代码展示了如何创建基础Spinbox和设置不同样式参数,帮助开发者快速掌握该组件的使用方法。
2025-07-22 10:03:06
519
原创 根据梯度场重建曲面及其Python实现
本文提出了一种基于离散梯度场重建曲面z=f(x,y)的数值方法。通过矩阵积分和边界条件处理,将梯度场(Fx,Fy)转化为曲面函数。算法分为三步:梯度积分、求解边界项、矩阵重建,并给出了Python实现。测试结果表明,该方法能有效重建原始曲面,标准差在0.02-0.06之间。该方法适用于离散化矩阵表示的梯度场,通过矩阵运算求解边界条件项,最终实现对曲面的数值重建。
2025-07-21 10:32:45
685
原创 Autohotkey v2 入门教程
本文介绍了AutoHotkey(AHK)的基本使用,包括热键设置、热字串和按键重映射。主要内容有:1)安装AHK后创建简单脚本,通过Win+空格打开指定网址;2)热键的基本语法和常见修饰符说明;3)针对特定程序(如记事本)定制热键的方法;4)使用热字串实现文本自动替换;5)实战应用:在cmd中为Python导入语句设置快捷输入。通过几个具体示例,展示了AHK在自动化操作和提升效率方面的实用功能。
2025-07-21 08:15:55
829
原创 用Autohotkey v2 获取窗口中控件的文本
本文介绍了使用AutoHotKey(AHK)获取软件控件数据的方法,适用于无法保存实时数据的软件。首先通过Window Spy工具定位目标窗口,使用#HotIf和WinActive语法锁定窗口。然后利用WinGetControls获取窗口内所有控件列表,并通过文件操作函数FileOpen将控件信息保存为文本。最后通过ControlGetText提取控件中的文本内容。该方法能有效解决无法导出数据的软件监控需求,尤其在WinForm程序中效果显著,实现了对窗口控件内容的完整获取流程。
2025-07-17 10:37:47
495
原创 WPF中ListView控件详解
摘要 ListView是WPF中功能强大的列表控件,支持数据绑定和自定义显示。通过ItemsSource属性可以快速绑定数据源,默认显示对象的ToString()结果。使用GridView可以实现表格布局,通过GridViewColumn定义列名和绑定属性,使数据整齐排列。ListView既支持简单列表也支持复杂的表格视图,是ListBox的升级版,能够灵活展示和编辑数据内容。
2025-07-15 11:17:54
671
原创 WPF中的ListBox详解
摘要:WPF中的ListBox控件可以包含多个ListBoxItem或其他控件,支持自动滚动条和样式定制。ListBoxItem可自定义外观(如颜色、图片)和内容(如嵌入复杂控件)。ListBox支持项目选中事件(SelectionChanged)和双击事件(MouseDoubleClick),并可通过代码动态添加/删除项目(Items.Add/Remove)。该控件既能作为简单选项列表,也能通过内容定制实现复杂交互界面。
2025-07-15 09:31:34
845
原创 simscape中刚性变换rigid transform详解
本文研究了多体动力学仿真中的Rigid Transform模块,通过底座和长杆模型演示了坐标变换规律。重点分析了平移和旋转变换:平移变换包括笛卡尔坐标、单轴和柱坐标三种方式,演示了物体间的相对位置变化;旋转变换包含六种方法,以单轴旋转为例,揭示了变换顺序对最终位置的影响。实验表明,平移和旋转的先后顺序不同会导致物体空间位置的显著差异,为理解复杂空间变换提供了直观参考。
2025-07-14 11:29:12
771
原创 simscape中坐标系和坐标变换Frames and Transforms
摘要:Simscape Multibody中的框架与变换模块提供了四种坐标系工具:世界坐标系(固定基准)、刚性变换(实现坐标转换,含6种旋转和3种平移方案)、参考坐标系(辅助定位)和变换传感器(测量坐标系间的相对运动参数)。刚性变换支持矩阵/四元数等多种转换方式,而变换传感器可输出旋转/平移等6类物理量。这些工具协同解决了多体系统中坐标系转换与运动测量的核心问题。(149字)
2025-07-14 10:39:31
726
原创 用Simulink创建一个撸管
本文是Matlab Simulink中Simscape Multibody模块的学习笔记,重点介绍了如何构建一个多体动力学模型。通过官方教程示例,作者逐步创建了四个刚性体(A、B、C、D),详细说明了坐标系变换设置和各部件的参数配置。其中,Body D被重点描述,包括其圆柱体尺寸、密度等参数设置,以及端口定义和子系统封装过程。完成后的模型可以模拟一个可运动的机械结构("可撸动的管子")。文章提供了完整的建模步骤和参数表,省略了教程中的PD控制器部分,专注于多体系统的基础构建方法。
2025-07-10 09:00:00
1379
原创 simscape中的关节(joints)介绍
本文介绍了Simscape Multibody中的多种关节类型,包括焊接、旋转、滑动、丝杠等16种关节,详细说明了每种关节的自由度(平移和旋转)和典型应用场景。通过立方体和长杆的连接实验,展示了六自由度关节、万向节和恒速关节的实际运动差异。文章还简要提及了杆件封装时的坐标变换注意事项,但由于视角限制,部分关节的运动特性可能无法完全显现。这些关节模型适用于机械臂、传动系统、精密平台等多种工程场景的仿真需求。
2025-07-10 08:46:59
1205
原创 万向节死锁公式推导
欧拉角的万向节死锁是指在特定旋转角度下自由度丢失的现象。当采用x→y→z旋转次序时,若中间旋转角β=90°,旋转矩阵中α和γ会简并成一个参数θ=γ-α,导致两个自由度合并为一个。此时旋转轴被限制在x=-z平面内,方向由k1=-k3和k2=(sinθ)/(1-cosθ)k3决定。这种现象使得系统丢失一个旋转自由度,影响控制精度,是欧拉角表示法的重要缺陷。
2025-07-09 08:56:48
625
原创 三种波前恢复模型:Hudgin, Friend, Southwell
摘要:本文介绍了三种波前斜率差分模型(Hudgin、Friend、Southwell)及其矩阵表示。通过微透镜阵列测量质心偏移计算波前斜率,推导了斜率与相位的关系。Hudgin模型假设子光束斜率相同,Friend模型将数据置于区域中央,Southwell模型则需对斜率取平均。最后给出了三种模型的矩阵形式和波前恢复表达式,其中涉及不同差分微元处理方式。这些方法为波前相位重构提供了理论基础。
2025-07-09 08:41:03
662
原创 simscape用Extruded Solid生成多边形柱体
Extruded Solid是一种创建多边形柱体的工具,提供两种模式:Regular模式可生成规则正多边形柱体,通过边数、外接圆半径和厚度设置;General模式则允许自定义多边形截面坐标。文中展示了使用General模式创建六边形底座的示例,并提供MATLAB代码计算坐标点。该工具适用于《Serial and Parallel Robot Manipulators》书中描述的机器人底座建模。
2025-07-08 08:45:00
486
原创 Simulink单摆和双摆仿真
本文介绍了使用Matlab Simscape工具箱建模单摆和双摆的方法。首先通过smnew命令创建模板,搭建包含World Frame、Revolute Joint、Brick Solid和自定义ConnRod模块的结构。设置连杆尺寸、颜色及重力参数(Y轴方向-9.81),并调整关节初始角度为30度。运行后可见单摆摆动效果。为进一步观察复杂运动,在单摆基础上添加第二组关节和连杆,构建双摆模型,通过偏移设置实现两连杆衔接,最终获得更丰富的摆动动态。整个过程展示了Simscape在多体动力学建模中的便捷应用。
2025-07-08 08:30:00
939
原创 【Simulink】simscape封装零件
本文介绍了在Matlab Simscape中建立简单连杆模型的步骤。首先使用smnew命令创建多体模型模板,通过添加Brick Solid、Rigid Transform等模块构建基础结构。然后讲解了参数设置方法,包括尺寸、密度和颜色等属性。文章重点演示了如何将多个模块封装为子系统,并设置自定义参数界面,最后通过调整参数生成了一个长棍子模型。该教程为Simscape多体建模的入门操作,展示了从模块搭建到参数化设计的基本流程。
2025-07-07 08:45:42
617
原创 【Simulink】Simscape入门教程
本文介绍了基于Simscape构建带控制器的质量-弹簧-阻尼系统的步骤。首先通过sscnew模板搭建物理网络,使用Translational Elements、Mechanical Sources和Sensors等模块,设置弹簧刚度(400N/m)、阻尼系数(100N·s/m)和质量(3.6kg)参数。然后连接Simulink模块,包括脉冲发生器(0.5振幅)、PID控制器(P=700)和加法器,完成系统建模。最后通过示波器观察各节点信号变化。该案例展示了从物理建模到控制系统的完整实现过程。
2025-07-07 08:30:00
563
原创 二关节机器人系统模型推导
本文基于拉格朗日力学方法,推导了二连杆机械手的动力学模型。首先建立了系统的动能和位能表达式,通过拉格朗日方程得到关节力矩与运动参数的关系。最终将动力学方程表示为矩阵形式,包含惯量项、向心力和科氏力项。推导结果与刘金琨著作中的模型一致,验证了该方法的有效性。该模型为后续机器人控制系统的设计与仿真提供了理论基础。
2025-07-04 11:54:44
1186
2
原创 基于Simulink的二关节机器人独立PD控制仿真
本文基于刘金琨的《机器人控制系统的设计与MATLAB仿真》,学习了二关节机器人系统的PD控制仿真。首先建立了机器人动力学模型,推导了惯性矩阵和离心力矩阵的表达式,采用独立PD控制律设计控制器。通过MATLAB/Simulink搭建仿真系统,使用S函数分别实现控制算法和动力学模型。仿真结果表明,该PD控制器能够有效跟踪期望位置信号。文章详细说明了S函数的编写方法、参数配置及仿真流程,为机器人控制系统仿真提供了完整的技术实现方案。
2025-07-04 09:49:45
1001
原创 罗德里格斯公式推导及其Python实现
本文介绍了利用罗德里格斯公式构建旋转矩阵的方法。旋转矩阵通过旋转轴和旋转角两个参数来描述三维空间中的旋转。文章详细推导了罗德里格斯公式,将向量分解为平行和垂直于旋转轴的分量,结合叉乘矩阵转换,最终得到旋转矩阵表达式R=Icosθ+(1-cosθ)nn^T+Nsinθ。文中还提供了Python实现代码,包括旋转矩阵生成、旋转轴/角计算等功能,并通过向量绕轴旋转的实例验证了公式的正确性。该方法避免了传统欧拉角旋转的繁琐拆分,直接通过旋转轴和角度实现高效计算。
2025-07-01 10:42:42
927
原创 OpenModelica初步教程
OpenModelica是一款基于Modelica语言的开源多领域物理系统建模与仿真工具。本文介绍了OpenModelica的安装步骤(包括环境变量配置)和基础使用方法,通过创建RLC电路案例展示了图形化建模流程:从元件库拖拽电阻、电容、电感等组件,设置参数并连接电路,最后进行仿真和结果可视化。文章还解析了自动生成的Modelica代码结构,说明图形化操作与编程语言的对应关系,包括模型定义、元件声明、参数设置和连接语句。该工具支持机械、电气、热力等多领域系统建模,兼具可视化操作和代码编程能力。
2025-06-30 15:37:48
840
原创 Stewart平台简介
Stewart平台是一种六自由度并联机构,通过六个可伸缩连杆连接静平台和动平台。其运动学问题包括逆解和正解两部分:逆解是通过给定动平台位姿(位置和姿态)计算各连杆长度;正解则是已知连杆长度求解动平台位姿。逆解可通过旋转矩阵和位移向量直接计算,而正解由于多约束方程可能无解,通常采用非线性优化方法最小化误差。该平台在实际控制中需同时考虑正逆解问题。
2025-06-30 14:25:42
761
原创 2025无套路网盘搜索引擎推荐
本文推荐8个无需注册、无套路的主流网盘搜索工具(截至2025年6月)。包含学霸盘、小白盘等百度网盘专用搜索,以及兄弟盘、混合盘等支持多平台的聚合搜索。各网站对比显示,学霸盘、口袋云等支持时间排序/资源大小筛选,多数提供直达链接。其中兄弟盘覆盖阿里/夸克/迅雷等7种网盘,1号线报支持6种网盘资源。这些工具普遍无强制关注要求,部分网站含广告。
2025-06-30 09:21:26
1262
原创 Python实现Gauss消元法
摘要:本文介绍了Gauss消元法的原理及其Python实现。该方法通过逐次消去未知数将线性方程组转化为等价的三角方程组,便于求解。算法实现分为前向消元和回代两个步骤,包括主元选取和行交换操作。Python代码演示了完整的Gauss消元过程,并用随机矩阵测试验证了算法的正确性,结果显示计算误差在可接受范围内。该方法为线性方程组提供了一种有效的数值解法。
2025-06-27 15:11:50
716
原创 Python实现多元最小二乘法
本文介绍了多元线性回归的最小二乘法原理及其Python实现。通过构建误差方程组并求偏导数,推导出矩阵形式的求解方程。其中,X矩阵为自变量样本的乘积之和,Y向量为因变量与自变量的乘积之和。在存在常数项时,只需在自变量中增加一组值为1的样本。Python实现部分提供了imgFit函数,通过numpy求解线性方程组,并通过测试验证了算法的准确性。测试结果显示拟合值与预设值的误差较小,证明了该方法的有效性。
2025-06-27 15:04:33
763
原创 Python光学设计库rayoptics初步
RayOptics是一个Python光学分析库,支持几何光学建模、光线追迹和像差分析。可通过pip或conda快速安装,但GUI界面文档尚不完善。文中演示了如何创建简单的双凸透镜模型,包括设置光学参数(孔径、视场、波长)、添加光学表面(曲率半径、厚度、折射率)以及可视化光路图。代码示例展示了从创建模型到生成光线追踪图的完整流程,并通过数据表格形式输出透镜参数,如曲率半径、厚度等。该工具适合进行基础光学元件设计与分析,但需进一步探索高级功能使用方法。
2025-06-25 11:47:15
484
原创 用Python做一个手机镜头
摘要:本文介绍了使用rayoptics库设计手机镜头的过程。首先通过OpticalModel类创建光学模型,设置光圈、视场和波长参数。然后使用SequentialModel添加多个光学表面,定义曲率、厚度、折射率和半径等参数,并通过RadialPolynomial设置非球面轮廓。最后调用update_model更新模型并绘制光路图。代码示例展示了完整的镜头设计流程,包括参数设置、光学元件添加和可视化结果。
2025-06-25 11:17:13
483
原创 Python光学玻璃库opticalglass
光学玻璃数据库opticalglass是一个Python库,提供主流厂商(Schott、Ohara等)光学玻璃的折射率、色散等参数查询功能。支持通过型号和厂商创建玻璃对象,计算特定波长折射率,并可视化玻璃数据对比图。安装简单,可通过glassmap命令或Python代码调用,适合光学设计和研究使用。主要功能包括折射率计算、光谱线查询和数据表格导出等。
2025-06-24 17:36:00
605
原创 Python绘制Zernike多项式
摘要:Zernike多项式是定义在单位圆上的正交多项式,广泛应用于光学波前像差分析。本文列出了前15项Zernike多项式表达式及其对应的光学像差类型,包括平移、倾斜、离焦、像散、慧差等。同时提供了Python绘图代码实现多项式可视化,通过极坐标转换生成各阶多项式图像。代码包含Zernike多项式函数定义、极坐标转换函数和绘图函数,使用matplotlib库绘制15阶多项式图像,直观展示各项像差的分布特征。
2025-06-24 13:34:06
917
原创 基于C#的Baumer相机二次开发教程
本文介绍了Baumer相机SDK的环境配置和二次开发流程。在环境配置中,需添加动态链接库并设置相关属性。相机接口采用分层结构,包含system、api和device三级。开发时需要依次打开system、api、设备和数据流,并初始化buffer进行数据采集。通过ImageProcessor可将采集的buffer数据转换为图像格式。文中提供了详细的C#代码示例,包括系统检测、设备启动和数据读取等关键步骤,特别针对USB和GigE两种接口类型进行了说明。
2025-06-19 17:21:55
779
1
原创 python绘制伯德图(Bode图)
本文介绍了伯德(Bode)图的概念,并调用sympy中的bode_plot函数进行了伯德图绘制,最后讲解了bode_plot函数的参数。
2025-05-12 09:30:00
1255
原创 Python绘制奈奎斯特图(nyquist plot)
本文介绍了奈奎斯特图的基本概念,并通过sympy中的nyquist_plot函数进行绘图,最后详解了nyquist_plot的各参数
2025-05-12 08:30:00
1303
1
原创 Julia图像处理
本文介绍了如何在Julia中进行图像处理。首先,需要安装Images和ImageView两个包,并可以通过更改环境变量JULIA_PKG_SERVER来解决网络问题。安装完成后,使用using调用这些包。文章详细说明了如何加载、显示、保存图像,以及如何将图像转换为灰度图、截取图像区域等基本操作。此外,还介绍了如何使用TestImages包加载测试图像,并将多维数组转化为图像。最后,文章展示了如何使用ImageFiltering包进行图像滤波,包括高斯滤波、拉普拉斯滤波和Sobel滤波,并提供了相应的代码示例
2025-05-09 12:15:18
3238
原创 Python用状态空间求解RLC电路
本文探讨了RLC电路的状态空间表示及其求解方法。首先,根据基尔霍夫电压定律,推导了电路中电流和电容电压的微分方程。接着,将这些方程转化为状态空间形式,定义了状态向量$X(t)$和状态空间矩阵$A, B, C, D$。随后,使用Python的Sympy库中的StateSpace类构造了RLC电路的状态空间模型,并通过dsolve方法求解了状态方程。
2025-05-09 10:27:16
649
原创 不同版本Python的循环效率对比
本文对比了不同版本的Python和cython,pypy等编译器和解释器的速度。对于Python来说,3.11是一个速度门槛,其后的版本速度提升有限。
2025-05-09 08:30:00
695
原创 用Python推导傅里叶变换和拉普拉斯变换
本文介绍了在【sympy】库中实现的傅里叶变换和拉普拉斯变换的符号推导函数。傅里叶变换通过【fourier_transform】函数实现,其逆变换通过【inverse_fourier_transform】函数实现,适用于周期函数且要求函数不发散。拉普拉斯变换通过【laplace_transform】函数实现,其逆变换通过【inverse_laplace_transform】函数实现,适用于控制系统,通过加入衰减因子处理发散问题。文中还提供了使用这些函数的Python代码示例,展示了如何对特定函数进行变换和逆
2025-05-08 10:04:17
1064
原创 拉格朗日方法求解转盘
本文解读了使用拉格朗日方法求解转盘问题的代码。首先,通过dynamicsymbols定义了位置和速度变量,并创建了参考坐标系及三个关联坐标系。接着,定义了刚体的位置、速度和惯性并矢,并计算了其势能和拉格朗日量。最后,利用LagrangesMethod构建了拉格朗日方程,并简化了方程及其右侧表达式。整个过程展示了如何通过SymPy库实现拉格朗日力学中的符号计算,最终得到了转盘运动的动力学方程。
2025-05-08 08:30:00
742
Python(Tkinter+matplotlib)实现光斑处理系统源代码
2024-11-14
windows批处理数值计算实战
2024-04-02
PyGame俄罗斯方块源代码
2023-12-09
go语言包管理测试代码
2023-10-11
C语言实现计算器源代码,支持四则混合运算以及三角函数
2023-09-26
Python打造动态绘图系统
2023-09-14
Python文件整理工具
2023-09-07
Tkinter+WordCloud做一个词云生成工具
2023-08-24
Blender绘制足球烯C60
2023-07-29
C语言实现二叉搜索树,可插入、删除搜索节点
2023-06-27
WPF实战,实现一个txt阅读器,支持提取目录
2023-06-01
用C#写的串口UDP转换工具
2023-04-21
C# WinForm对话框示例程序
2023-04-21
C#串口通信测试软件源代码
2023-03-27
winform在窗口中拖动按钮
2023-02-01
Fourier级数和Taylor级数对原函数的逼近动画
2023-01-28
爱心源码-通过Python画一颗跳动的心
2022-12-11
纯Python实现遗传算法
2022-12-02
我的第一个WinForm程序,基础控件的使用
2022-11-24
鸡群算法之Python实现
2022-11-20
C#面向对象初步 源代码
2022-11-17
超分辨网络SRCNN的Pytorch实现用到的T91数据集 搬运自网络,所以不需要积分
2022-09-30
OpenGL 着色器初步,颜色变化的三角形
2022-05-18
electron爬虫:定制CSDN App
2022-05-08
PCL环境配置以及测试案例,显示斯坦福兔子
2022-05-05
electron做一个丐版浏览器,只有输入网址显示网页的功能,适合学习
2022-05-04
Python动态绘图,包括椭圆、双曲线、抛物线、摆线、心形线等常见曲线的生成。
2022-05-02
QT布局:实现动态布局
2022-05-01
从零开始,用electron做一个倒计时工具
2022-04-30
QT异步命令行,通过信号和槽进行响应
2022-04-28
【C#】WPF 3D 选中并挪动几何体
2022-04-27
Python动态绘制圆锥曲线,并封装成类
2022-04-26
【QT】通过QProcess实现一个命令行
2022-04-25
C++ QT调用外部程序(QProcess)
2022-04-23
WPF 3D 光线颜色(给地球点颜色看看)
2022-04-23
QT文件读写实战代码C++
2022-04-22
QT多线程实战源代码(QThread)
2022-04-20
用C#搓一个地球(WPF 3D)
2022-04-20
二次元老婆们的画廊WPF3D@VisualStudio
2022-04-17
WPF3D+鼠标控制相机视角+封装成类
2022-04-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人