开关电容转换器的合成器研究(Python代码实现)

2023-12-05

???????????????? 欢迎来到本博客 ❤️❤️????????

????博主优势: ???????????? 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️ 座右铭: 行百里者,半于九十。

???????????? 本文目录如下: ????????????

目录

????1 概述

????2 运行结果

????3 参考文献

????4 Python代码实现


????1 概述

开关电容转换器是一种用于电能转换的电子器件,它可以将直流电能转换为不同电压或电流的形式。合成器研究是指对开关电容转换器的工作原理、性能特点、控制策略等进行研究和分析,以便优化其设计和应用。

在合成器研究中,首先需要对开关电容转换器的工作原理进行深入理解,包括其基本结构、工作模式、电路拓扑等方面的知识。然后可以通过数学建模和仿真分析等方法,对其性能特点进行研究,比如输出电压波形、效率、稳定性等方面的特性。

另外,合成器研究还涉及到对开关电容转换器的控制策略进行优化,包括传统的PWM控制、电流模式控制、电压模式控制等方面的研究。通过对控制策略的优化,可以提高开关电容转换器的性能表现,使其在不同应用场景下具有更好的适用性。

合成器研究是对开关电容转换器的工作原理、性能特点和控制策略进行系统研究和分析,旨在优化其设计和应用,提高其性能表现,推动其在电能转换领域的应用和发展。

本研究致力于开发一种基于可重构转换器的合成器研究,即Reconfigurable-Converter-Synthesiser,旨在实现切换表和线路图的自动生成。我们采用了一种开关电容转换器的设计思路,在电容器之间切换以控制输出电压。该转换器通过可编程技术实现配置存储单元的控制,可根据不同的负载和输入电压需求,实现快速地重新配置。因此,我们的设计方案具有高度的灵活性和适应性,且具有很好的转换效果。

我们的研究主要围绕可重构转换器的合成器展开,以实现切换表和线路图自动生成。如此一来,我们的合成器能够自动生成所需的电路,无需手动输入电路设计,同时也避免了设计中可能出现的误差。我们通过对不同电容值进行数值计算和仿真,对电容切换状态进行控制,以实现转换器工作电路的合成。同时还引入了可编程技术,以便快速、准确地重新配置转换器。最终,我们通过将切换表和线路图输出至Excel表格中,实现了快速、方便的电路设计。

综上,我们的研究提供了一种基于可重构转换器的合成器研究方案,该方案具有重要的实际应用价值。我们的合成器能够自动生成切换表和线路图,极大地提高了设计和开发效率,同时也避免了人为因素带来的设计误差。我们的研究成果将为相关领域的电路合成研究提供新的思路和方法,应用于电路制造方面也具有广泛的发展前景。

???? 2 运行结果

主函数:

if __name__ == "__main__":
    

    designer_SPTT,SW_connection,capacitors,top_sw,SW_init= main(["2","3","4"],1)
    caps = max(capacitors)
    # now we create the dataframe (or excel sheet switching table)
    df = pd.DataFrame(designer_SPTT)
    df.to_excel("../results/switching_table.xlsx")
    # draw the circuit
    d = draw_fib(caps,SW_connection,top_sw,SW_init)
    #d.draw()
    d.save('../results/my_circuit.svg')

if __name__ == "__main__":
    

    designer_SPTT,SW_connection,capacitors,top_sw,SW_init= main(["2","3","4"],1)
    caps = max(capacitors)
    # now we create the dataframe (or excel sheet switching table)
    df = pd.DataFrame(designer_SPTT)
    df.to_excel("../results/switching_table.xlsx")
    # draw the circuit
    d = draw_fib(caps,SW_connection,top_sw,SW_init)
    #d.draw()
    d.save('../results/my_circuit.svg')  

部分代码:


# if ivalid input the list will be empty
    #return requested_SPTT
    if len(requested_SPTT.keys()) == 0:
        #print Invalid input
        return 0
# we have multiple VCRs
# this will calaculte the dissimilarity between options
requested_SPTT = flip_connection(lengh_match(requested_SPTT))


mintrans_SPTT = dissimilarity(requested_SPTT)

requested_SPTT = min_dissimilarity(mintrans_SPTT) 
# the minmum transition doesn't include the VCR, thereofre, I'm recalculating it here.
selected_VCR =  defaultdict(list)
for i in requested_SPTT:
  three_count = (i == 3).sum()
  temp_VCR = str(calc_VCR(i, np.flip(weights_list[str(len(i)-three_count-2)]),three_count))
  selected_VCR[temp_VCR].append(i)

#print ('\nNumber of capacitors needed: ' + str(capacitors) + '\n')
# to order the gain in inc order :
od = OrderedDict(sorted(selected_VCR.items(),key = lambda x: float(Fraction(x[0]))))
# Create dictionary for the order, reversed gains

VCR_CODE,top_gear,top_sw = defaultdict(list),defaultdict(list),defaultdict(list)

# I have used flip with v so I can reverse the order, where the input comes first
for (k, v) in od.items():
    w = [("GND" if str(val) == '0' else val) for val in v[0] ]
    w = [("Vin" if str(val) == '1' else val) for val in w]
    w = [("Vout" if str(val) == '2' else val) for val in w]
    w = [("X" if str(val) == '3' else val) for val in w]

# print("Gain: "+str(round(float(Fraction(k)),3)),", State: "+str(w))

    VCR_CODE[str(round(float(Fraction(k)), 3))] = w


sptt_code = VCR_CODE
VCR_set = list(sptt_code.keys())
capacitors.sort()

 # topswitchies list 
for j,i in sptt_code.items():
  three_count = i.count("X")
  top_sw[three_count].append(i[three_count])
  if (three_count>0):
    top_gear[j].append(i[three_count])
    i[three_count] = "X"


designer_SPTT,SW_connection,SW_init = desiner_code_generator(sptt_code,VCR_set,top_gear,top_sw)


return designer_SPTT,SW_connection,capacitors,top_sw,SW_init  

????3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]梅纯.开关电容变换器的研究[D].华中科技大学,2007.DOI:10.7666/d.d089490.

[2]梅纯.开关电容变换器的研究[D].华中科技大学,2009.DOI:CNKI:CDMD:2.2009.036841.

[3]邹志鹏.应用于射频LNA的开关电容DC-DC转换器的研究[D].南京航空航天大学,2014.

???? 4 Python代码实现

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开关电容转换器的合成器研究(Python代码实现) 的相关文章

随机推荐

  • 算法设计与实现--贪心篇

    贪心算法 贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法 以期望能够通过一系列局部最优的选择达到全局最优 贪心算法的关键是定义好局部最优的选择 并且不回退 即一旦做出了选择 就不能撤销 一般来说 贪心算法适用于满足以下两个条件的
  • 算法设计与实现--动态规划篇

    什么是动态规划算法 动态规划算法是一种求解复杂问题的方法 通过将原问题分解为相对简单的子问题来求解 其基本思想是将待求解的问题分解为若干个子问题 阶段 按顺序求解子阶段 前一子问题的解 为后一子问题的求解提供了有用的信息 在求解任一子问题时
  • 光伏储能虚拟同步发电机并网仿真模型(Simulink仿真实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真实现 1 概述 光伏储能虚拟同步发电
  • 【无标题】

    Postman是大家最常用的API调试工具 那么有没有一种方法可以不用手动写入接口到Postman 即可进行接口调试操作 今天给大家推荐一款IDEA插件 Apipost Helper 写完代码就可以调试接口并一键生成接口文档 而且还可以根据
  • 浅谈Django之单元测试

    一 什么是 单元测试 单元测试 是用来对一个模块 一个函数或者一个类来进行正确性检验的测试工作 如果测试通过则说明我们这个函数或功能能够正常工作 如果失败要么 测试用例 不正确 要么函数有bug需要修复 二 如何使用单元测试 from dj
  • 代码写完直接调试!IDEA插件还能这么用

    IDEA是一款功能强大的集成开发环境 IDE 它可以帮助开发人员更加高效地编写 调试和部署软件应用程序 我们在编写完接口代码后需要进行接口调试等操作 一般需要打开额外的调试工具 今天给大家介绍一款IDEA插件 Apipost Helper
  • 基于WOA-BP鲸鱼算法优化BP神经网络多维分类预测研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据 讲解文档
  • 英语学习(去餐馆篇)

    一 预定餐位 1 餐馆 1 谈论食物 Seafood is their specialty 海鲜是他们的特色菜 They serve authentic Italian food 他们供应正宗意大利菜 2 谈论餐馆名声 The restau
  • 《LeetCode力扣练习》代码随想录——哈希表(四数之和---Java)

    LeetCode力扣练习 代码随想录 哈希表 四数之和 Java 刷题思路来源于 代码随想录 18 四数之和 排序双指针 class Solution public List
  • 国产API调试插件:Apipost-Helper

    前言 Idea 是一款功能强大的集成开发环境 IDE 它可以帮助开发人员更加高效地编写 调试和部署软件应用程序 Idea 还具有许多插件和扩展 可以根据开发人员的需要进行定制和扩展 从而提高开发效率 今天我们就来介绍一款国产的API调试插件
  • BP-AdaBoost算法研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及数据
  • 频次最高的38道selenium面试题及答案

    1 selenium的原理是什么 selenium的原理涉及到3个部分 分别是 浏览器 driver 一般我们都会下载driver client 也就是我们写的代码 client其实并不知道浏览器是怎么工作的 但是driver知道 在sel
  • ssh免密登录gitee

    文章目录 一 简介 二 实现流程 1 生成公钥和私钥 2 在Gitee上创建仓库 3 GoLand的连接Gitee 4 上传 实现本机与Gitee码云之间的免密码登录 通过SSH协议 用于通过Git与远程仓库进行通信 将本地仓库推送到远程仓
  • Python中查看对象的所有属性和方法以及查看属性是否存在

    Python中查看对象的所有属性和方法以及查看属性是否存在 作者 爱编程的小金毛球球 日期 2023年12月3日 Python提供许多的内置函数和模块来帮助开发人员查看对象的所有属性 例如 dir vars dict 等 dir 函数查看对
  • 重磅签约!美团携手用友推进数智化升级

    近期 用友成功签约北京三快在线科技有限公司 美团 债权融资管理项目 此次合作 将基于用友BIP全球司库 为美团构建多层级的集团授信管控体系 实现债权融资精细化 风险防控前置化 集团管控科学化 助力美团进行科学融资决策 全面提升融资效益 高效
  • 人体姿态估计算法

    人体姿态估计算法 1 什么是人体姿态估计 2 基于经典传统和基于深度学习的方法 2 1 基于经典传统的人体姿态估计算法 2 2 基于深度学习的人体姿态估计算法 OpenPose AlphaPose RMPE
  • “微流控芯片建模与肿瘤标志物/感染性疾病细胞分析:合成生物学的新前沿“

    在微流控芯片建模应用中 实现肿瘤标志物的识别通常包括以下步骤 设计和制备微流控芯片 根据需要检测的肿瘤标志物类型和检测要求 设计和制备具有特定功能的微流控芯片 芯片上固定抗体或抗原 将与待检测肿瘤标志物特异性结合的抗体或抗原固定在芯片的特定
  • 基于PaddleSeg开发的人像抠图web api接口

    前言 基于PaddleSeg开发的人像抠图web api接口 提取官方代码 适配各种系统 通过api的接口进行访问 环境要求 1 Python3 7以上 2 源码 文章最后下载 源码结构 测试module py中添加如下代码 if name
  • 【单载波调制方案】正交时序多路复用调制:分析和低复杂度接收机设计(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据 文献下载
  • 开关电容转换器的合成器研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码实现