`
Michaelmatrix
  • 浏览: 222387 次
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Fedoar 15开始的新网卡命名方式

阅读更多
Fedora 15采用了新的网卡命名方式 Consistent Network Device Naming (CNDN)。CNDN 并不是一个多大的改动,但它所引起的争论以及带来的影响却不小,看看 NetworkWorld,LWN 以及 Slashdot 上铺天盖地的争论,质疑甚至嘲讽你就知道了。当然这并不表示 CNDN 这个新功能就完全一无是处,或者是画蛇添足。CNDN 还是有一定的益处,前提是你深入理解了作者的意图。现在让我们来仔细看看这个即将影响你日常 Linux 生活的新的网卡命名方式。
具体的命名方式之前已经介绍过,这里不再赘述,需要说明一点的是这个命名方式依赖于机器的 BIOS,如果你的机器比较旧,那么安装后的 Fedora 15 仍然会采用 ethX 的命名规则,并且新的命名规则只适用于有线网卡。
我在 4 个不同的环境中安装了 Fedora 15,得到了不同的结果。在一台 Dell 台式机上,网卡被命名为 em1;在一台稍旧的 hp 笔记本上,网卡仍然命名为 eth0;在 VirtualBox 4.0 虚拟机里,两块虚拟网卡分别被命名为 p2p1 与 p7p1;在 KVM 虚拟机里,网卡仍然被命名为 eth0。现在你是不是觉得这个命名方式应该叫 Inconsistent,而不是 Consistent。
当然任何处于过渡期的新功能都不可避免的会有这样不一致的现象,CNDN 这里的 Consistent 指的也并不是不同的硬件类型都 Consistent,而是在 BIOS 支持的机器上,网卡的命名将一致,最主要的命名规则是两条,主板内置的网卡将变成 emX,外插到 PCI 卡槽上的网卡将变成 pXpX,所有的数字都从 1 开始。
除了名字的字符串前缀与以前不一样以外(这一点你将在接下来的 Linux 生活中不断去适应,如果你习惯于使用 ifconfig, tcpdump 等命令行工具的话),更重要的是网卡的命名依据也将改变,网卡的名字不再与网卡的 MAC 地址绑定,而是依据网卡在主板上的位置。
在 CNDN 出现之前,可以说网卡的命名经历了几个阶段,不过在讲述这些命名方式之前,需要先指出的一点是 Kernel 内部对网卡的命名方式一直未变,那就是先探测到的网卡被命名为 eth0,其次是 eth1 等等,当然 Kernel 探测网卡的顺序结果也不是一成不变的,如果相关的硬件发生了变化的话,Kernel 探测的顺序结果也可能会改变,不过硬件不变(或者硬件型号不变)的情况下,探测顺序通常是不变的。
在 udev 出现之前(RHEL 4 或更早?),RedHat 系列对网卡的命名是简单的,在 /etc/modprobe.conf 文件里会有类似下面这样的配置:
alias eth0 e100
alias eth1 3c59x
...modprobe.conf 配置文件并不是对网卡的名字进行修改,而是控制 Kernel 加载网卡驱动的顺序,当然也就控制了 Kernel 探测网卡的顺序,从而变相固定了网卡的名字。你可以看出这种方法只对那些不同网卡属于不同驱动的硬件配置有效,如果一个驱动对应多块网卡,则顺序就无法这样确定了。如果 Kernel 某次启动改变了某块网卡的探测顺序,那么 RHEL 系统是否会对该网卡进行重命名,从而可以继续使用之前的网卡配置文件,我已经记不清了。
到了 RHEL 5 系列之后,udev 已经引入,此时主流的发行版都会根据网卡的 MAC 地址使用 udev 对网卡设备进行命名以确保网卡的名字不会变动。举例来说,假设一个系统有两块网卡 eth0 与 eth1,如果将两块网卡调各个,系统启动后,虽然 Kernel 内部对网卡的命名发生了改变(这里假设两块网卡由相同驱动加载),即原来的 eth0 变成了 eth1,eth1 变成了 eth0,但 /etc/udev/rules.d/60-net.rules 文件会调用 /lib/udev/rename_device 对网卡进行命名,而 rename_device 会搜索系统里的网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth*,如果该网卡的 MAC 地址匹配到某个配置文件中的 HWADDR 项,就将网卡命名为该文件中的 DEVICE 项。此时用 ip addr 命令查看,你会发现每块网卡仍然使用与之前相同的名字,并且 IP 地址也与之前相同,只不过 ip addr 命令的输出会将 eth1列在前面,因为 eth1 在 Kernel 内部对应的名字是 eth0。
当然这样的情况并不常见,没有人会闲得蛋疼去交换两块网卡玩。常见的与网卡名字相关的情况是替换其中的某块网卡,比如将某个虚拟机映像拷到另一个虚拟机 Host 里,此时就相当于将网卡替换。在 RHEL 5 里,系统启动后,你会发现替换后的网卡名字未变,但网卡配置变成了 DHCP,原来的配置文件自动保存为 /etc/sysconfig/network-scripts/ifcfg-ethX.bak。名字未变是因为 rename_device 未找到 MAC 地址对应的配置文件,所以保留该名字与 Kernel 里的名字一致(当然这里还有一个前提是网卡的型号未变,并且 Kernel 的探测顺序也未变,大部分情况都是这样的),至于配置文件改变则是 Kudzu 造成的,Kudzu 会检测硬件,并对新添加的网卡默认生成 DHCP 配置,当然这里与网卡命名无关了。
到了 RHEL 6 后,仍然使用 udev 对网卡进行命名,所以原理上对网卡进行命名的方式未变,不过 udev 的规则有了一些改变,变成了 /etc/udev/rules.d/70-persistent-net.rules。该文件由 /lib/udev/write_net_rules 在每次启动时生成,里面的内容与如下类似:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:be:19:20",
ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"也就是说不管 Kernel 启动时检测到的网卡顺序如何,udev 都会按照该文件里 MAC 地址对应的名字对网卡进行命名。如果某块网卡被替换了,那么在启动时 /lib/udev/write_net_rules 会更新该 70-persistent-net.rules 文件,更新的方式并不是将该行里的 MAC 地址修改为新网卡的 MAC 地址,而是在该文件后面附上新的一行,并生成一个新的网卡名字,此时用 ip 命令查看,你会发现网卡名字变成了 eth1。
现在我们来看看 CNDN 是怎么命名的,CNDN 的原理其实很简单,它仍然采用了 udev 的机制,只不过将 70-persistent-net.rules 文件去掉,换成了 /lib/udev/rules.d/71-biosdevname.rules 文件,71-biosdevname.rules 比起 70-persistent-net.rules 文件要稍微复杂点,但也无非就是调用 biosdevname,并根据该命令的输出对网卡进行相应的命名。biosdevname 内部则调用了 dmidecode 等 BIOS 工具来获取 PCI 号等 BIOS 信息,从而为网卡取一个有意义(但愿如此)的名字,比如 em1 表示网卡内置在主板上,p2p1 表示 PCI 第二个插槽的网卡上的第一个口,还有其它更特殊的命名方式等等。
CNDN 对于那些每天与包含 N 个网卡设备打交道的人来说是一个福音,这会减轻他们在辨别网卡名字所对应的物理网卡时的痛苦。但对于普通用户来说,即使你某天心血来潮买了个包含四块网卡的 Dell 服务器,即使你知道 em1 对应的是第一块内置网卡,你也很难从服务器的后面板上区分出哪块网卡是第一块内置网卡。
不过由于 CNDN 的命名方式不再将网卡名字与 MAC 地址绑定,那么上面所说的那种替换网卡的问题也许会得到解决,即如果将某块网卡替换,那么系统在包含新的网卡启动之后,应该不需要做任何网卡配置上的改动,就能保持与之前网卡相同的网络设置。不过目前这一点还做不到,因为 /etc/sysconfig/network-scripts/ifcfg-ethX 里的 HWADDR 选项还在。不清楚 Fedora 15 或者后继版本是否会将 HWADDR 从生成的网卡配置中去掉,或者说这种需求根本就不是一个正常的需求?
最后,如果你无法忍受这个新的憋八的命名方式,你仍然可以回退到之前的命名方式。在 Kernel 的启动参数里加上 biosdevname=0 ,系统在下次启动时会为你生成熟悉的 70-persistent-net.rules 文件,由于该文件在 /etc/udev/rules.d 下,所以优先级要比在 /lib/udev/rules.d/ 下的 71-biosdevname.rules 文件高。如果哪天你又想再回来试试该命名方式,只需将 Kernel 的 biosdevname 参数置成 1,同时不要忘了将 70-persistent-net.rules 文件删掉。

另一种将命名方式改为之前命名方式的方法:

vim /etc/default/grub
在 GRUB_CMDLINE_LINUX="rd.lvm.lv=VolGroup/LogVol01 rd.lvm.lv=VolGroup/LogVol00 rd.dm=0 LANG=zh_CN.UTF-8 KEYTABLE=us quiet rhgb rd.md=0 rd.luks=0 " 中加入biosdevname=0
变成
GRUB_CMDLINE_LINUX="rd.lvm.lv=VolGroup/LogVol01 rd.lvm.lv=VolGroup/LogVol00 rd.dm=0 LANG=zh_CN.UTF-8 KEYTABLE=us quiet rhgb rd.md=0 rd.luks=0 biosdevname=0 "

$grub2-mkconfig -o /boot/grub2/grub.cfg

$touch /etc/udev/rules.d/70-persistent-net.rules
#写入
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="44:37:e6:19:46:5e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

$cd /etc/sysconfig/network-script/

$cp ifcfg-p3p1 ifcfg-eth0

#再把里面的DEVICE="p3p1" 改成DEVICE="eth0"
reboot机器就可以了

分享到:
评论

相关推荐

    Linux之fedoar flasher网页播放器

    Linux之fedoar flasher网页播放器

    MATLAB实现的语音信号加密解密系统设计与应用 - GUI界面交互与相位扰动加密技术

    内容概要:本文详细介绍了基于MATLAB的语音信号加密解密系统的开发过程及其关键技术。系统主要分为三大模块:录音、加密和解密。录音功能利用audiorecorder对象进行音频采集,支持多种采样率设置。加密算法采用了相位扰动方法,通过傅里叶变换将语音信号转换到频域,添加随机相位偏移并用密码作为随机种子确保唯一性和安全性。解密过程则是逆向操作,通过正确的密码恢复原始相位。此外,系统还包括了一个友好的图形用户界面(GUI),方便用户操作和查看波形变化。文中还探讨了一些实际应用中的挑战,如硬件兼容性和误码容忍度等问题。 适用人群:适用于对语音信号处理、信息安全以及MATLAB编程感兴趣的科研人员和技术爱好者。 使用场景及目标:本系统可用于保护隐私通话、防止窃听等场合,旨在提供一种简单易用且高效的语音加密解决方案。它不仅能够满足日常生活中对于私人对话安全性的需求,也为相关领域的研究提供了有价值的参考资料。 其他说明:作者分享了许多开发过程中遇到的问题及解决办法,强调了细节处理的重要性。例如,针对不同设备间的采样率差异进行了适配调整;为了提高用户体验,加入了密码记忆功能和支持中文密码等功能。

    YTCB2509 非接触式转速测量仪 20250323

    题目:非接触式转速测量仪 主控:STM32 显示屏:Oled 电机驱动:L298 电机(带编码器可测速的三线电机) 按键(增速或者减速等)

    基于MATLAB的含齿轮啮合误差激励的轴系动力学建模与Newmark-β法实现

    内容概要:本文详细介绍了如何利用MATLAB实现含齿轮啮合误差激励的轴系动力学模型。首先,文章解释了为什么传统欧拉梁理论在轴系建模时存在局限性,并引入了Timoshenko梁单元来考虑剪切变形和转动惯量。接着,重点讲解了Newmark-β法的具体实现步骤,包括预处理系数矩阵、迭代公式的推导以及如何处理时变刚度和误差激励。此外,还提供了关于稀疏矩阵优化、频谱分析等方面的实用技巧。最后,通过具体案例演示了整个仿真的流程和注意事项。 适合人群:机械工程领域的研究人员和技术人员,尤其是那些从事齿轮传动系统振动分析工作的专业人士。 使用场景及目标:适用于需要精确模拟齿轮传动轴系动态特性的场合,如汽车变速箱、风力发电机等设备的设计与故障诊断。主要目标是提高仿真精度,缩短计算时间,从而更好地指导实际工程应用。 其他说明:文中不仅给出了详细的数学推导和代码实现,还分享了许多宝贵的实践经验,如如何避免常见的数值不稳定性和调试技巧等。这使得读者不仅能学到理论知识,还能掌握解决实际问题的方法。

    增材制造中元胞自动机模拟枝晶生长及CET转变的Matlab实现

    内容概要:本文详细介绍了如何使用元胞自动机(Cellular Automaton, CA)和Matlab来模拟增材制造过程中微观组织的生长,尤其是枝晶生长及其从柱状晶到等轴晶的转变(CET)。首先解释了元胞自动机的基本概念,即通过定义网格和状态转移规则来模拟微观结构的变化。接着给出了具体的Matlab代码实现步骤,包括初始化、生长规则制定、枝晶生长模拟以及CET转变的模拟方法。文中还探讨了温度梯度、晶核密度等参数对CET转变的影响,并提供了优化后的高效算法版本。最后强调了此类仿真的重要性和应用价值,如帮助预测和优化增材制造产品的微观结构和性能。 适合人群:从事材料科学、增材制造领域的研究人员和技术人员,以及对元胞自动机和材料微观结构建模感兴趣的学习者。 使用场景及目标:①用于研究和教学,帮助理解和掌握增材制造过程中微观组织演变规律;②辅助工业生产中的工艺参数选择,提高产品质量;③为后续更复杂的多物理场耦合仿真提供基础。 其他说明:随文附带完整的源代码和相关文献资料,便于读者深入学习和扩展研究。

    房地产 -阿那亚生活式品牌社群运营 -读懂生活式品牌的社群运营 .pptx

    房地产 -阿那亚生活式品牌社群运营 -读懂生活式品牌的社群运营 .pptx

    基于自抗扰控制的预测函数控制(PFC)在永磁同步电机(PMSM)中的高效应用

    内容概要:本文详细介绍了基于自抗扰控制的预测函数控制(PFC)在永磁同步电机(PMSM)中的应用。首先阐述了PFC的基本概念及其相对于其他模型预测控制的优势,特别是其在快速响应和鲁棒性方面的表现。接着,文章深入探讨了三个关键技术:1.5延时补偿、全电压前馈补偿和扩展状态观测器(ESO)。1.5延时补偿通过线性外推解决计算延时问题;全电压前馈补偿利用电压信息提前调整控制输入,增强响应速度;ESO则用于实时观测并补偿系统中的不确定因素。此外,文中还提供了具体的代码示例,展示了这些技术的实际应用效果。最终,实验结果显示,采用PFC结合自抗扰控制的方法可以显著改善PMSM的速度控制性能,特别是在应对负载扰动方面。 适合人群:从事电机控制领域的工程师和技术研究人员,尤其是关注永磁同步电机控制的从业者。 使用场景及目标:适用于需要对永磁同步电机进行精确、快速响应控制的应用场景,如工业机器人、自动化生产线等。主要目标是提高电机控制系统的稳定性、响应速度和抗干扰能力。 其他说明:文章不仅理论讲解详尽,还附有大量实用的代码片段,便于读者理解和实践。同时提醒读者在实际应用中需要注意参数调整和系统噪声的影响。

    ### 中国企业级SaaS上市公司2023-2024年财务绩效回顾及未来展望、前言

    内容概要:本文聚焦中国企业级SaaS上市公司2023-2024年的财务绩效,通过详尽的数据分析和行业趋势展望,揭示了该领域的发展现状与未来方向。文章指出,尽管收入和毛利持续增长,但整体毛利率偏低,销售费用率高企,研发投入大,盈利艰难,资产周转效率下降,现金流承压等问题普遍存在。针对这些问题,提出了提升客户价值、深耕行业、延伸商业价值、审视并购可能性、盈利模式多样化、抓住AIGC(生成式人工智能)机遇、把握出海机遇以及积极利用资本市场等策略建议。未来,企业级SaaS市场将围绕中小企业需求、细分领域产品爆发式增长及行业生态协同化发展。 适用人群:对中国企业级SaaS市场感兴趣的投资者、企业管理者、行业分析师以及相关从业人员。 使用场景及目标:①帮助投资者评估企业级SaaS上市公司的投资价值;②为企业管理者提供战略规划和运营管理的参考;③为行业分析师提供详实的数据支持和趋势预测;④为从业人员提供职业发展和技能提升的方向。 其他说明:本文基于2024年10月底的财务数据,结合安永的研究分析,提供了对企业级SaaS市场的深入洞察。文中还强调了SaaS企业在数字化转型中的重要作用,并呼吁行业内企业积极应对挑战,把握发展机遇。

    Comsol仿真技术在聚合物电解质膜燃料电池堆热管理中的应用与优化

    内容概要:本文详细探讨了使用Comsol进行聚合物电解质膜(PEM)燃料电池堆的热管理建模。首先强调了保持燃料电池堆温度均匀性的关键意义,因为温度不均会影响电池性能。接着介绍了由五个电池单元组成的模型结构及其与冷却剂的交互方式。文中具体讲解了多个关键物理量的求解方法,如温度、电极和电解质相电位、反应物质的质量传递以及流体的压力和速度。此外,还讨论了如何通过调整冷却液入口温度、选择合适的湍流模型、优化电化学反应和传质的耦合、合理划分网格以及采用分阶段求解策略来改进仿真效果。最后,作者分享了一些实用的经验和技术细节,例如在冷却液中加入荧光粒子示踪剂进行实验验证,以及针对不同参数做出相应的调整以确保模型的准确性。 适合人群:从事燃料电池研究的技术人员、工程师以及相关领域的科研工作者。 使用场景及目标:适用于需要深入了解和掌握PEM燃料电池堆热管理系统设计与优化的人群。主要目的是帮助他们更好地理解和运用Comsol软件来进行复杂的多物理场耦合仿真,从而提高燃料电池堆的工作效率并延长使用寿命。 其他说明:文章不仅提供了理论知识,还包括了许多具体的实施步骤和技巧,有助于读者快速上手并在实践中不断积累经验。

    基于Vue+javaScript实现的电动汽车充电桩管理系统+源码+项目文档(毕业设计&课程设计&项目开发)

    基于Vue+javaScript实现的电动汽车充电桩管理系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于Vue+javaScript实现的电动汽车充电桩管理系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于Vue+javaScript实现的电动汽车充电桩管理系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于Vue+javaScript实现的电动汽车充电桩管理系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于Vue+javaScript实现的电动汽车充电桩管理系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档

    python-3.11.12-arm64.exe

    windwos环境下python 3.11系列ARM64位安装包,仅推荐个人学习、开发、娱乐或者测试环境下使用。

    基于COMSOL的石墨烯可见光宽带完美吸收器的设计与仿真

    内容概要:本文详细介绍了利用COMSOL软件设计和仿真的石墨烯可见光宽带完美吸收器。首先,文章解释了石墨烯在可见光波段的独特性质及其应用潜力,接着深入探讨了结构设计的关键要素,如双层光子晶体结构、介质层厚度选择以及金纳米棒的周期性排列。文中还提供了具体的代码片段用于设置材料参数、网格划分和边界条件,并强调了参数优化和后处理的重要性。最终展示了仿真结果,包括吸收率曲线和平坦的宽带吸收特性。 适合人群:从事光电子器件研究的科研人员和技术开发者,尤其是熟悉COMSOL仿真平台的用户。 使用场景及目标:适用于希望深入了解石墨烯在可见光波段的应用并掌握相关建模技巧的研究者。目标是通过理论分析和实验验证相结合的方式,探索提高光吸收效率的新方法。 其他说明:文中提到的一些具体数值和代码片段对于实际建模非常有价值,同时也指出了常见错误和注意事项,帮助读者避开潜在陷阱。此外,作者分享了一些个人经验,使内容更加生动实用。

    (源码)基于Arduino的HID按键项目.zip

    # 基于Arduino的HID按键项目 ## 项目简介 HID按键项目是一个基于Arduino的自动键盘替代工具,旨在通过单一按键实现Windows或其他类似操作系统的登录请求自动填写登录凭证。该项目提供了针对不同Arduino或兼容板的多种版本,适用于安全验证、快捷登录等场景。 ## 项目的主要特性和功能 1. 自动填写登录凭证通过一键操作,自动填写用户名和密码,简化登录流程。 2. 多版本支持支持ATTiny85板和Arduino Micro板等多种硬件平台,用户可根据需求选择合适的版本。 3. 开源与免费项目遵循GPL2.0only开源协议,用户可以自由获取和使用。 ## 安装使用步骤 2. 准备硬件根据所选版本准备相应的Arduino或兼容板(如ATTiny85板或Arduino Micro板),并确保硬件正常工作并连接电脑。

    2000-2023年 企业资源配置效率

    企业资源配置效率是指在一定的技术水平条件下,企业如何将其拥有的资源(如资金、人力、物资等)在各产出主体或生产环节中进行分配,以产生最大的效益。 企业资源配置效率的提高对于企业的生产发展具有至关重要的作用。因此,企业应该注重优化资源配置,提高资源配置效率,以实现企业的可持续发展和竞争优势的提升。 企业资源配置效率指标1:残差小于等于的全部取0 企业资源配置效率指标2:残差取绝对值 数据 代码、年份、e、Overinvest、Ineff

    (源码)基于OpenHarmony和BES2600WM芯片的多模态V200ZR开发板.zip

    # 基于OpenHarmony和BES2600WM芯片的多模态V200ZR开发板 ## 项目简介 本项目是基于恒玄科技BES2600WM芯片和OpenHarmony操作系统的多模态V200ZR开发板。该开发板由湖南欧智通科技有限公司出品,集成了四核ARM处理器、双频WiFi、双模蓝牙等功能,适用于各种AIoT多模态VUI + GUI交互硬件场景。 ## 项目的主要特性和功能 ### 硬件特性 CPU: 双核Cortex M33 Star(最高300MHz) + 双核Cortex A7(最高1GHz) RAM: 最大2MB SRAM + 40MB PSRAM ROM: 最大32MB Nor Flash,支持XIP 网络: 支持WiFi4 2.4G5G双频,BT5.2,BT classic,LE Audio,SIG mesh 显示: 支持MIPI DSI及CSI,2D graphics engine

    (源码)基于 JavaScript 和 Vite 框架的客户端信息获取系统.zip

    # 基于 JavaScript 和 Vite 框架的客户端信息获取系统 ## 项目简介 InfoJs 是一个基于 JavaScript 和 Vite 构建的系统项目,其核心目标是让开发者能够方便快捷地获取客户端信息。借助简单的配置与使用方式,开发者可轻松获取如浏览器信息、设备信息、运行环境等关键数据。 ## 项目的主要特性和功能 1. 简单易用只需进行简单的配置和导入操作,就能在项目中获取丰富的客户端信息。 2. 高效性能采用 Vite 作为构建工具,实现快速开发和热更新。 3. 丰富的 API提供涵盖浏览器信息、设备信息、运行环境等多种类型的 API,满足不同的开发需求。 4. 可扩展性支持自定义插件和扩展,方便开发者根据个性化需求进行定制。 ## 安装使用步骤 ### 一、安装依赖 可通过 npm 或 yarn 安装 InfoJs 库和相关插件 shell npm install sudongyuinfojs save

    光子学领域中手性BIC十字结构的Python与Lumerical联合仿真及自定义设计

    内容概要:本文详细介绍了手性BIC(连续域束缚态)十字结构的设计与仿真方法。首先,通过Python代码生成十字结构的基本参数,确保对称性破缺以产生BIC效应。接着,在Lumerical FDTD环境中进行电磁场仿真,重点探讨了不同材料(如SiN、GaAs)对手性响应的影响,并展示了如何通过调整结构参数(如臂长、宽度、高度)来优化圆二色性(CD)响应。此外,文章还讨论了电场分布的可视化及其与BIC模式的关系,以及如何利用遗传算法和反向设计方法进一步优化结构性能。 适合人群:从事光子学研究的专业人士,特别是对纳米光子器件设计感兴趣的科研人员和技术开发者。 使用场景及目标:适用于希望深入了解手性BIC结构设计原理的研究人员,旨在帮助他们掌握从理论到实践的具体步骤,包括参数选择、仿真工具使用、数据分析等方面的知识。 其他说明:文中提供了大量具体的代码示例,涵盖Python、Matlab和Lumerical等多种编程环境,便于读者直接应用于自己的研究项目中。同时,文章强调了实验过程中需要注意的实际问题,如材料选择、仿真参数设置等,有助于提高仿真的准确性和可靠性。

    Plecs平台下VSG并联控制中动态虚拟复阻抗技术的应用与优化

    内容概要:本文深入探讨了在Plecs平台上实现虚拟同步发电机(VSG)并联控制时所面临的挑战及其解决方案,尤其是针对线路阻抗差异导致的功率分配不均和系统振荡问题。文章介绍了动态虚拟复阻抗技术的基本原理,通过PI调节器实时调整虚拟阻抗值来平衡无功功率分配,并提供了详细的代码实现和调试经验。此外,还讨论了控制周期设置、相位补偿以及参数整定等方面的技术细节,强调了动态虚拟阻抗对于提高系统稳定性和鲁棒性的显著效果。 适合人群:从事微电网研究和技术开发的专业人士,尤其是对VSG并联控制感兴趣的科研人员和工程师。 使用场景及目标:适用于需要解决VSG并联运行中功率分配不均和系统不稳定的问题,旨在通过动态虚拟复阻抗技术优化并联系统性能,确保系统的高效稳定运行。 其他说明:文中提供的代码片段和调试技巧有助于读者更好地理解和应用这一先进技术。建议结合相关文献进一步深入研究,以获得更好的理论支持和技术指导。

    基于GOOSE算法优化CEEMDAN参数的非平稳信号分解与分析

    内容概要:本文详细介绍了利用鹅优化算法(GOOSE)优化完全集成经验模态分解(CEEMDAN)的关键参数,以提高非平稳信号分解的质量。首先,通过数据预处理步骤如Butterworth滤波和归一化处理,确保输入信号的质量。然后,构建GOOSE优化器,采用样本熵或其他熵指标作为适应度函数,自动搜索最佳的噪声标准差和噪声重复次数。接下来,进行CEEMDAN分解,并通过多种可视化手段(如三维希尔伯特谱、瀑布图等)展示分解结果。最后,通过误差分析验证分解效果,结果显示模态混叠现象减少了约23%,特别是在机械振动信号分析中表现优异。 适合人群:从事信号处理、机器学习以及数据分析的研究人员和技术人员,尤其是对非平稳信号处理感兴趣的读者。 使用场景及目标:适用于需要精确分解非平稳信号的应用场景,如机械故障诊断、生物医学信号处理等领域。主要目标是通过优化CEEMDAN参数,减少模态混叠,提高信号特征提取的准确性。 其他说明:文中提供了详细的代码实现和优化技巧,帮助读者更好地理解和应用这一方法。同时,强调了在实际应用中需要注意的一些细节,如参数范围的选择、可视化工具的使用等。

    React函数式简易Pc项目代码

    下载解压后,需先npm i下载依赖包

Global site tag (gtag.js) - Google Analytics