以 python 库的形式实现 NSGA-II 算法。 该实现可用于解决多变量(多于一维)多目标优化问题。目标和维度的数量不受限制。一些关键算子被选为:二元锦标赛选择、模拟二元交叉和多项式变异。请注意,我们并不是从头开始,而是修改了wreszelewski/nsga2的源代码。我们非常感谢 Wojciech Reszelewski 和 Kamil Mielnik - 这个原始版本的作者。修改了以下项目: 修正拥挤距离公式。 修改代码的某些部分以适用于任意数量的目标和维度。 将选择运算符修改为锦标赛选择。 将交叉运算符更改为模拟二元交叉。 将变异算子更改为多项式变异。 用法 班级问题 在question.py中定义。 用于定义多目标问题。 论据: objectives:函数列表,表示目标函数。 num_of_variables: 一个整数,代表变量的个数。 variables_range:两个元素的元组列表,表示每个变量的下限和上限。 same_range: 一个布尔参数,默认 = False。如果为真,则所有变量的范围都相同(这种情况下variables_range只有一个
2024-07-10 15:51:59 69KB python 源码软件 开发语言
EtherCAT(Ethernet for Control Automation Technology)是一种实时工业以太网通信协议,被广泛应用于嵌入式控制系统中。本文将深入探讨基于ECM-XF芯片的EtherCAT主站系统,包括其数据手册、参考原理图和使用说明中的关键知识点。 `ECM-XF datasheet.pdf`是关于ECM-XF芯片的技术规格说明书。该文档详细介绍了芯片的功能特性、电气参数、引脚定义以及应用电路。ECM-XF芯片作为EtherCAT主站,负责管理EtherCAT网络的通信,并提供与微控制器的接口。其中可能包含以下重要信息: 1. **功能特性**:ECM-XF可能支持高速EtherCAT通信,具有低延迟和高精度时间同步能力。 2. **电气参数**:包括电源电压范围、电流消耗、工作温度范围等,这些参数在设计硬件时必须考虑。 3. **引脚定义**:每个引脚的功能,如PHY连接、中断、时钟输入等,对于正确连接外部组件至关重要。 4. **应用电路**:提供了推荐的外围电路配置,如晶振选择、电源滤波、以太网PHY连接等。 `ECM-XF-SK USER GUIDE.pdf`和`ECMXF使用手冊 Ver.038.pdf`是用户指南和使用手册,它们提供了如何使用ECM-XF芯片的详细步骤和示例。其中可能涵盖以下内容: 1. **系统配置**:如何配置ECM-XF与微控制器的接口,如STM32,以及如何设置 EtherCAT 网络参数。 2. **固件开发**:可能涉及如何编写和烧录固件,实现EtherCAT从站设备的通信控制。 3. **故障排查**:提供常见问题及解决方法,帮助开发者在遇到问题时快速定位和修复。 4. **实验指导**:包括如何搭建开发环境,进行功能验证和性能测试。 `ECM_XF_SK_v12_PRO.DSN`和`ECM_XF_SK_v12_PRO.pdf`很可能是ECM-XF开发板的原理图和PCB布局文件,用于理解硬件设计。开发者可以参考这些文件来了解如何实际构建基于ECM-XF的EtherCAT主站系统,包括: 1. **硬件布局**:PCB上的元件分布和信号路径,这对于理解和复制设计非常有用。 2. **电源管理**:如何为ECM-XF芯片及其周边组件提供稳定电源。 3. **连接性**:如何通过RJ45连接器接入以太网,以及如何连接外部传感器和执行器。 `STM32_sample_pack_V147.zip`可能包含STM32微控制器的示例代码和库文件,帮助开发者快速上手STM32与ECM-XF的接口编程。这可能涉及到: 1. **API接口**:STM32如何通过SPI或GPIO与ECM-XF通信的示例函数。 2. **固件库**:包含必要的驱动程序和RTOS(实时操作系统)支持,以便进行 EtherCAT 协议栈的开发。 3. **调试工具**:如JTAG或SWD接口的调试配置,以及如何使用IDE进行代码调试。 通过深入研究这些文件,开发者可以全面了解ECM-XF芯片在EtherCAT系统中的应用,掌握从硬件设计到软件开发的全过程,从而构建自己的EtherCAT主站系统。无论是对嵌入式系统开发者还是对自动化技术感兴趣的工程师,这些资料都是宝贵的资源。
2024-07-10 15:15:57 37.64MB ethercat
1
三调符号 二调 仿Google风格地图符号库 山洪灾害调查字体与符号库 影像地图符号库 林业图例 水利符号库 矢量地图符号库 体育运动符号.zip 场所-彩色.zip 1264_地图常用符号.zip Arcgis制图规范符号库.rar ArGIS符号库-1:1万地形图线型符号库.zip ArGIS符号库-1:5万土地利用现状.zip ArGIS符号库-S-57海图符号库.zip ArGIS符号库-天地图风格_符号库.zip ArGIS符号库-林业制图.zip ArGIS符号库-水土保持制图.zip ArGIS符号库-谷歌风格_符号库.zip ArGIS符号库土地利用总体规划图 GaoTingTravel 1222_桌面点符号库.zip 1223_桌面线符号库.zip 1224_桌面面符号库.zip 1226_海图符号库.zip 1250_交通管理.zip 1252_道路附属设施.zip 1255_交通服务.zip 地图符号库(google风格)
2024-07-10 14:20:58 80.37MB 交通物流 ARCGIS
"程序员的自我修养—链接、装载与库" 在计算机科学中,链接、装载和库是三个紧密相连的概念,它们都是程序员需要掌握的重要知识点。下面,我们将详细解释这些知识点。 一、链接 链接(Linking)是指将多个目标文件(Object File)组合成一个可执行文件的过程。在这个过程中,链接器(Linker)将多个目标文件中的代码和数据组合起来,生成一个可执行文件。链接有两种方式:静态链接和动态链接。 静态链接是指在编译时将目标文件链接成一个可执行文件的方式。静态链接的优点是生成的可执行文件具有良好的性能和安全性,但缺点是生成的可执行文件较大。 动态链接是指在运行时将目标文件链接成一个可执行文件的方式。动态链接的优点是生成的可执行文件较小,缺点是需要在运行时加载库文件。 二、装载 装载(Loading)是指将可执行文件加载到内存中的过程。在这个过程中,操作系统将可执行文件加载到内存中,并将其映射到虚拟地址空间中。 装载有两种方式:静态装载和动态装载。静态装载是指在编译时将可执行文件加载到内存中的方式。动态装载是指在运行时将可执行文件加载到内存中的方式。 三、库 库(Library)是指一组预编译的目标文件的集合。库文件可以被多个程序共享,以提高程序的可重用性和开发效率。库有两种类型:静态库和动态库。 静态库是指将目标文件静态链接到可执行文件中的库文件。静态库的优点是生成的可执行文件具有良好的性能和安全性,但缺点是生成的可执行文件较大。 动态库是指将目标文件动态链接到可执行文件中的库文件。动态库的优点是生成的可执行文件较小,缺点是需要在运行时加载库文件。 四、库的使用 在程序设计中,库的使用是非常重要的。库可以帮助程序员提高开发效率和可重用性。常见的库有:标准库、数学库、数据库库等。 五、结论 链接、装载和库是程序员需要掌握的重要知识点。它们都是计算机科学中的基本概念,理解它们可以帮助程序员更好地设计和实现程序。
2024-07-09 18:00:59 35.93MB
1
Free Spire.PDF for .NET 允许开发人员在 .NET( C#, VB.NET, ASP.NET, .NET Core) 程序中创建、读取、写入、编辑和操作 PDF 文档。 Free Spire.PDF for .NET 支持的功能十分全面,例如文档安全性设置(电子签名),提取 PDF 文本、附件、图片,PDF 合并和拆分,更新 Metadata,设置 Section,绘制图形、插入图片、表格制作和加工、导入数据等等。除此以外,Free Spire.PDF 还可以将 TXT 文本、图片、HTML 高质量地转换为 PDF 文件格式。
2024-07-09 17:06:50 85.16MB .NET PDF
1
《16x32 LED点阵屏电路设计详解》 LED点阵屏作为一种常见的显示设备,广泛应用于广告、信息展示、艺术创作等多个领域。本文将深入解析一款基于51单片机控制的16x32 LED点阵屏的电路原理,以及其核心组件74HC595和74HC154芯片的功能与应用。 我们来理解16x32 LED点阵屏的基本结构。这款点阵屏由16行、32列的LED像素组成,总共包含512个独立可控的LED灯。每个像素由红、绿、蓝三种颜色的LED灯珠组成,通过不同颜色的组合实现色彩丰富的显示效果。点阵屏的每一行和每一列都需要单独的控制信号,以便精确控制每个LED的亮灭状态。 接下来,我们重点探讨51单片机在其中的角色。51单片机是一款广泛应用的8位微处理器,具有丰富的I/O口资源,能够轻松处理点阵屏所需的复杂控制任务。它通过编程来控制每个LED的状态,实现动态扫描和数据传输,以达到显示各种图案和文字的目的。 74HC595是常用的串行到并行转换器,也是51单片机控制LED点阵屏的关键芯片之一。它的功能是接收51单片机发送的串行数据,并将其转化为并行输出,从而驱动点阵屏的列线。74HC595拥有8个输出引脚,可以同时驱动8个LED列,通过级联多片74HC595,就能实现对32列LED的控制。 另一款重要的芯片74HC154则是数据选择器/多路复用器,用于控制点阵屏的行线。74HC154可以接收多个输入信号,根据这些信号的组合选择一个输出。在16x32的点阵屏中,通常需要四片74HC154来控制16行LED。通过单片机改变74HC154的控制信号,就可以切换不同的行,实现逐行点亮或熄灭LED,从而达到显示的效果。 在实际应用中,为了确保点阵屏的稳定运行,还需要考虑电源管理、驱动电路设计、抗干扰措施等细节问题。例如,合理布局电路板以减小电磁干扰,选用合适的限流电阻以保护LED,以及设置合适的扫描频率以保证显示流畅性。 此外,文中提到的“提供仿真”意味着设计者可能提供了电路的仿真模型,这对于理解和调试电路设计非常有帮助。而“实物等”则表明可能包括实际制作的硬件示例,这有助于实践操作和验证理论知识。 16x32 LED点阵屏的电路设计涵盖了单片机控制、数字逻辑、接口通信等多个方面的知识,通过理解和掌握这些原理,可以为设计更复杂的LED显示系统打下坚实的基础。无论是电子爱好者还是专业工程师,深入研究这一主题都将受益匪浅。
2024-07-09 16:46:37 146KB 16x32点阵
1
opencv 455版本java语言依赖库 linux环境so文件
2024-07-09 16:46:35 58.94MB opencv java linux
1
个人声明:仅供布局借鉴,不保证最终实物的使用效果,请依照原理图自己绘制。 一、任务:设计并制作一个晶体管放大器非线性失真研究装置。 二、要求 外接信号源输出频率10kHz、峰峰值20mV的正弦波作为晶体管放大器输入电压ui,要求输出无明显失真及失真波形uo,且uo的峰峰值不低于2V,电源电压 ≤ 6v。 1、放大器能够输出无明显失真、“顶部失真”、“底部失真”、“双向失真”、“交越失真”的正弦波。 2、采用单个按键控制轮流输出以上五种波形并有相应的指示。 3、信号源输出频率50kHz、峰峰值2mV的正弦波作为晶体管放大器输入电压ui,要求输出无明显失真波形uo,uo的峰峰值不低于2V。 4、按格式要求撰写设计报告。设计报告主要内容: 1)方案论证:系统组成,比较与选择,方案描述。 2)电路设计:系统各部分电路原理图、原理分析,应结合电路设计方案阐述出现各种失真的原因,电路相关参数设计。 3)程序设计:若采用单片机控制,提供系统软件与流程图。 4)电路仿真:仿真电路图及仿真测试结果。 5)测试结果:完整测试结果列表,对测试结果分析。
2024-07-09 16:31:16 817KB
1
复制粘贴增强器 根据我们的基准测试和某些其他论文,将类的实例复制粘贴到图像中有助于提高检测和分割网络的性能。 我们在 Cityscapes 上运行语义分割,结果如下所示。 我们使用 DeepLabV3 和 ResNet101 主干,该主干在 COCO train2017 上进行了预训练。 我们切换 Cityscapes 分割,使用 500 张图像进行训练,使用 2975 张图像进行验证。 如果我们为每个图像增加 1 个实例,我们将在训练集中引入该类的 500 个以上实例。 如果我们为每个图像添加 2 个,则增加 1000 个实例,依此类推。 我们可以使用 4 种增强: 适当的缩放和适当的放置 适当的缩放和随机放置 随机缩放和适当放置 随机缩放和随机放置 在我们开始增强之前,我们需要将实例复制到图像中。 如果我们想将People到图像中,我们为 people 运行class_extr
2024-07-09 15:58:48 23.77MB Python
1
XXTEA(Extreme eXtended eXtremely Fast Data Encryption Algorithm)是一种简单的对称加密算法,由David Wheeler和Roger Needham在1998年提出。它主要用于解决微小数据块的加密问题,比如在嵌入式系统或资源有限的环境中。XXTEA算法在设计上考虑了速度和效率,但同时也保持了一定的安全性。 标题中的“xxtea-ardupy”指的是将XXTEA加密库与MicroPython进行了结合,以便在Arduino平台上使用。MicroPython是一种轻量级的Python实现,适合在微控制器上运行,如Arduino。它允许开发者用Python语言进行硬件编程,简化了开发过程,提高了灵活性。 描述中提到的“micropython绑定”意味着xxtea-ardupy库为MicroPython提供了一个接口,使得开发者可以在MicroPython环境下调用XXTEA的加密和解密功能。这在需要保护嵌入式设备上的敏感数据时非常有用,比如存储密码、密钥或其他隐私信息。 标签“C”表明这个库可能采用了C语言编写,因为C语言是MicroPython通常使用的底层语言,它能提供较好的性能和内存管理。C语言编写的库可以更高效地与MicroPython的C内核交互。 在压缩包“xxtea-ardupy-master”中,我们可以预期找到以下内容: 1. `README.md`:项目介绍、安装指南和使用示例。 2. `xxtea.c` 和 `xxtea.h`:XXTEA算法的C源代码和头文件,包含加密和解密的函数定义。 3. `xxtea.py`:MicroPython的绑定文件,将C语言实现的XXTEA库转化为Python可用的模块。 4. `setup.py` 或其他构建脚本:用于构建和安装库的Python脚本。 5. `test` 或 `examples` 目录:包含测试用例和示例代码,帮助用户了解如何使用这个库。 通过这个库,开发者可以在MicroPython环境中进行如下操作: 1. 导入xxtea模块:`import xxtea` 2. 初始化密钥:`key = b'\x01\x02\x03\x04\x05\x06\x07\x08'` 3. 加密数据:`encrypted_data = xxtea.encrypt(data, key)` 4. 解密数据:`decrypted_data = xxtea.decrypt(encrypted_data, key)` 总结来说,"xxtea-ardupy"为MicroPython环境提供了XXTEA加密算法的支持,使得在资源有限的Arduino平台上也能实现安全的数据加密。开发者可以通过阅读源代码、测试用例和使用示例来理解和应用这个库,从而在嵌入式系统中实现数据的加密保护。
2024-07-09 15:52:21 1KB
1