草庐IT

【电赛实战】混沌信号产生实验装置 2022年D题

FmixZA 2023-07-13 原文

浙江赛区二等奖方案
事实证明根据公式做功能全同运算电路上限太低,没戏

混沌信号产生实验装置

一、题目要求

点击查看题目详情:TI 杯 2022 年省级大学生电子设计竞赛联赛 7月参考赛题公示

二、系统方案

摘要:系统基于蔡氏电路,以运算放大器单元构成主拓扑结构,搭建蔡氏电路系统的功能全同电路,使用电阻、电容和运算放大器三种基本器件设计了一个能生成稳定周期信号和混沌信号的信号产生实验装置。装置采用单电源供电,通过拨码开关选择产生不同种类信号。经测试,系统完成了题目部分要求,能够产生单倍、二倍、三倍周期的稳定周期相图以及单涡旋混沌信号相图和双涡旋混沌信号相图,且幅度不小于电源电压 VCC 的 80%,基本满足题目对装置性能的要求。

2.1 方案设计

混沌信号的电路实现具有多种方案如下:
方案一:蔡氏电路(Chua’s circuit)
方案二:范德坡电路(Vanderbilt circuit)
方案三:考比兹电路(Colpitts circuit)
方案一中的蔡氏电路是一种简单的非线性电子电路,由蔡少棠教授发表,它可以表现出标准的混沌理论行为。蔡氏电路达成的标准简单,实现方便。电路主要由两个电容、一个电感、一个有源电阻和一个蔡氏二极管构成。电感可以与模拟电感替代,蔡氏二极管由复阻抗转化器替代。因此,整个电路只由电阻、电容、运放构成。方案二依靠范德坡震荡(一种非保守的、非线性阻尼振荡)实现信号输出,需要外部激励源,不适合本题。方案三中存在三极管,由于赛题要求装置中不得使用三极管,同样不适用于该题。
综上,本设计基于方案一进行混沌信号产生实验装置开发。混沌电路基于蔡氏电路进行全等效设计,实现在保持经典蔡氏电路状态方程严格不变的情况下,完全由运放和电阻、电容搭建,不包含电感器件,满足要求(3)。

2.2 元器件选型

电阻具有碳膜电阻、金属氧化物电阻等类型;电容具有瓷片电容、陶瓷电容、独石电容等。由于蔡氏电路工作对元件精度要求较高,采用高精度基本电子元器件器件和电位器搭建电路。

2.3 状态控制方案

方案一:单片机控制继电器,由于赛题要求装置中不得使用三极管,而驱动继电器需要使用三极管扩流,故放弃该程控方案。
方案二:单片机控制模拟开关,模拟开关内部内阻较大不适合在该题使用。
方案三:拨码开关手动调节。开关内阻小,切换方便。
最终选择方案三为本实验装置状态控制方案。

三、理论分析和计算

3.1 混沌电路原理分析

蔡氏电路由一个电感、两个电容、一个电阻和一个非线性电阻组成,如图 2(a)所示。非线性电阻(即蔡氏二极管)的伏安关系(VCR)特性如图 2(b)所示,它是一个由分段线性函数描述的非线性负电阻。电路中电感 L 和电容 C 构成了一个 LC 振荡电路,有源非线性电阻 R(称为蔡氏二极管)和电容 C 组成了一个有源 RC 滤波电路,它们通过一个电阻 R 线性耦合在一起,形成了只有五个元件的、能够产生复杂混沌现象的非线性电路。

蔡氏电路由两个电容 C1,C2,和一个电感 L 充当能量储存元件。一个常规电阻 R 作为本地有源电阻。以及一个蔡氏二极管 RNL 作为电路中的非线性元件。
其中非线性元件满足:

(式中 Ga,Gb 以及 E 为由元件特性决定的常数)
蔡氏电路有三个动态元件,分别是电容 C1、C 和电感 L,对应的三个状态变量是电容两端的电压𝑢1和𝑢2,流过电感的电流𝑖𝐿。根据电阻、电容和电感元件的伏安关系特性,应用基尔霍夫电压、电流定律(KVL 和 KCL),可以导出基于这三个状态变量的微分方程组为:

其中,𝑓(𝑢1)是描述蔡氏二极管𝑅𝑁的伏安特性函数,𝑟是电感的寄生电阻值。为了便于分析,基于蔡氏电路的状态方程推导出其无量纲方程。将蔡氏混沌电路中各个电路变量和参数重新进行如下标度处理,令:


式中,G 为电阻 R 的电导值,有 G=1/R,则式子改写为:

且有

为蔡氏方程或者蔡氏系统,通过计算,得出蔡氏方程典型参数值为 a=-1.1970、b=-
0.6464、𝛼=10 和𝛽=14.5140,通常等效形式为:

所以电路中的非线性部分由 A5(运放单元)实现,电路方程为

3.2 宽带混沌电路设计

蔡氏电路混沌信号频带宽由于其非线性,采用估算的方法。

由于混沌信号的非周期性,其带宽无穷大,利用 Hopf 分叉时的频率来估算混沌信号其谱能量已经减弱,因此,实际混沌信号带宽比估算的结果要大。根据前面公式,可见电路中影响带宽最大的因素为电容。电容越小,带宽越大。因此同时减小三个电容,增加其带宽。但由于失真原因和电容容值的限定,带宽最高到 40K。选用增益带宽积较大的运算放大器实现。

3.3 不使用电感的处理

通过全运放蔡氏系统,由五个运算放大器构造出基本运算单元组合在电路中实现蔡氏系统状态方程,可以实现在电路中去除电感而与原先的电路功能保持一致。通过改变反馈计算单元电阻值或电容值来改变图像的函数。

四、电路与程序设计

4.1 混沌信号发生电路设计

混沌电路设计采用基于运算放大器的蔡氏电路的功能全同电路设计。该电路可以通过改变 R3 电阻值或 C2 电容值来实现不同混沌图像的生成。

4.2 状态控制电路设计

状态控制电路采用拨码开关切换回路内连接的电阻,通过阻值的变化改变相图的形状,稳定性相较于切换修改电容方案更好。

五、测试方案

5.1 测试仪器

  • LPS-305 数控式线性直流稳压电源
  • RIGOL DS1102E 示波器
  • Tektronix MDO3032 示波器 RIGOL
  • DSA815 频谱分析仪。

5.2 测试数据完成性

表 1 通过调节电容 C2 改变对应相图

相图类型是否实现对应容值
单倍周期68nf
双倍周期88nf
三倍周期103.3nf
单涡旋混沌信号102.55nf
双涡旋混沌信号147nf

表 2 通过改变电阻 R3 改变对应相图

相图类型是否实现对应阻值
单倍周期1.81k
双倍周期1.71k
三倍周期1.65k
单涡旋混沌信号1.65k
双涡旋混沌信号1.61k


5.3 测试结果分析

通过测试,所制作的实验装置基本实现了题目要求(1)(3)(4)主词条,要求(2)未达到部分指标。系统以运放单元搭建主拓扑结构,利用全运放蔡氏电路完成了蔡氏混沌信号产生的功能,效果良好,但双涡旋混沌信号的信号带宽较小。

结论

系统基于蔡氏电路,搭建功能全同电路,使用电阻、电容和运算放大器设计一个能生成稳定周期信号和混沌信号的信号产生实验装置,装置采用单电源供电。可以通过编程设置或开关选择,产生多种稳定周期信号、单涡旋混沌信号和双涡旋混沌信号。经测试,系统完成了题目部分要求,能够产生单倍、二倍、三倍周期的稳定周期相图以及单涡旋混沌信号相图和双涡旋混沌信号相图,且幅度不小于电源电压 VCC 的 80%

实物仿真相图标准

有关【电赛实战】混沌信号产生实验装置 2022年D题的更多相关文章

  1. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  2. 映宇宙2022年营收63亿元:同比下降三成,毛利率提升4.3个百分点 - 2

    3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升

  3. Verilog使用inout信号的方法 - 2

    目录一、inout在设计文件中的使用方法1.1、inout的第一种使用方法1.2、inout实现的第二种使用方法1.3、inout使用总结 二、inout在仿真测试中的使用方法一、inout在设计文件中的使用方法在FPGA的设计过程中,有时候会遇到双向信号(既能作为输出,也能作为输入的信号叫双向信号)。比如,IIC总线中的SDA信号就是一个双向信号,QSPIFlash的四线操作的时候四根信号线均为双向信号。在Verilog中用关键字inout定义双向信号,这里总结一下双向信号的处理方法。1.1、inout的第一种使用方法  实际上,双向信号的本质是由一个三态门组成的,三态门可以输出高电平,低电

  4. ruby - 猴子修补 float 中缀运算符产生意想不到的结果 - 2

    重新定义Float#/似乎没有效果:classFloatdef/(other)"magic!"endendputs10.0/2.0#=>5.0但是当另一个中缀运算符Float#*被重新定义时,Float#/突然采用了新的定义:classFloatdef/(other)"magic!"enddef*(other)"spooky"endendputs10.0/2.0#=>"magic!"我很想知道是否有人可以解释这种行为的来源,以及其他人是否得到相同的结果。ruby:ruby2.0.0p353(2013-11-22)[x64-mingw32]要快速确认错误,请运行thisscript.

  5. ruby - 在 Ruby 中使用 GTK3 自定义信号 - 2

    我想从gtk3中的Widget发出自定义信号。在GTK2中,有一个名为signal_new的函数来创建一个新信号。您可以在此处查看示例:https://github.com/ruby-gnome2/ruby-gnome2/blob/ec373f87e672dbeeaa157f9148d18b34713bb90e/glib2/sample/type-register.rb在GTK3中,这个功能似乎不再可用。那么在ruby​​的GTK3中创建自定义信号的新方法是什么? 最佳答案 GTK3更改为使用define_signal方法而不是si

  6. ruby - QtRuby 使用参数/参数连接信号和槽 - 2

    我想知道如何连接到带参数的信号(使用Rubyblock)。我知道如何连接到一个不带参数的:myCheckbox.connect(SIGNAL:clicked){doStuff}但是,这不起作用:myCheckbox.connect(SIGNAL:toggle){doStuff}它不起作用,因为切换槽采用参数voidQAbstractButton::toggled(boolchecked)。我怎样才能让它与参数一起工作?谢谢。 最佳答案 对您的问题的简短回答是,您必须使用slots方法声明要连接的插槽的方法签名:classMainGU

  7. ruby - 为什么 Gemfile 语义版本控制运算符 (~>) 会产生与一个数字不一致的结果? - 2

    gemspec语义版本控制运算符~>(又名twiddle-wakka,又名pessimistic运算符)允许限制gem版本但允许进行一些升级。我经常看到它可以读作:"~>3.1"=>"Anyversion3.x,butatleast3.1""~>3.1.1"=>"Anyversion3.1.x,butatleast3.1.1"但是有了一个数字,这条规则就失效了:"~>3"=>"Anyversionx,butatleast3"*NOTTRUE!*"~>3"=>"Anyversion3.x"*True.Butwhy?*如果我想要“任何版本3.x”,我可以只使用“~>3.0”,这是一致的。就

  8. ruby - 发送信号时运行代码,但不要在 Ruby 中捕获信号 - 2

    我有在服务器上运行的代码,在服务器硬关闭之前,发送了一个信号SIGTERM让我的代码知道它需要清理。我想在发生这种情况时运行代码并将信号发送回同一个程序,以便任何其他需要清理的代码都可以这样做。我不想捕获信号或改变信号行为,我只需要在我的程序的其余部分解释SIGTERM之前运行一些东西。目前我可以做类似的事情Signal.trap('TERM')doputs"Gracefulshutdown"exitend但如果同一个应用中的多段代码试图做同样的事情,它就不起作用了。例如:Signal.trap('TERM')doputs"Gracefulshutdown"exitendSignal.

  9. 网络实验之RIPV2协议(一) - 2

    一、RIPV2协议简介  RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对

  10. ruby - 为什么 openssl 在 windows 上产生错误但在 centos 上不产生错误:PKCS12_parse: mac verify failure (OpenSSL::PKCS12::PKCS12Error) - 2

    require'openssl'ifARGV.length==2pkcs12=OpenSSL::PKCS12.new(File.read(ARGV[0]),ARGV[1])ppkcs12.certificateelseputs"Usage:load_cert.rb"end运行它会在Windows上产生错误,但在Linux上不会。错误:OpenSSL::PKCS12::PKCS12Error:PKCS12_parse:macverifyfailurefrom(irb):21:ininitializefrom(irb):21:innewfrom(irb):21fromC:/Ruby192/

随机推荐