1 / 4
文档名称:

用python绘制电路图像.pdf

格式:pdf   大小:177KB   页数:4页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用python绘制电路图像.pdf

上传人:鼠标 2023/6/8 文件大小:177 KB

下载得到文件列表

用python绘制电路图像.pdf

相关文档

文档介绍

文档介绍:该【用python绘制电路图像】是由【鼠标】上传分享,文档一共【4】页,该文档可以免费在线阅读,需要了解更多关于【用python绘制电路图像】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。?python绘制电路图像?scipy中的odeint模块可以求微分?程的数值解,笔者基于此功能创作了?个极其简陋的电路计算器,给定电路参数,可以绘制出对应的波形。from??mpor?todeintimpor??s?pltimpor?tnumpya?s?npimpor?tmath'''以下所有数据均为国际单位!!'''Vs?=?1??#?电压源电压(恒压源值,?波峰值,交流源峰值)iS?=?1??#?电流源电流(同上)T0?=?5??#?周期R?=?1C?=?1L?=?1dots1=??200??#??阶电路采样点数dots2=??1000??#???阶电路采样点数def?pulse(t):??#?成?个低值为0,?值为1的?波,周期为T0的?波????pulse=?1????fo?r?ki?n?range(1,?100,?1):????????pulse=?pu?lse+??4?*?(???????(?2??*???k?-??1)?*?2?*??*?t/??T0)?/?((2?*?k-??1)?*?)???re?turn??*?pulse#??阶RC电路,返回电容电压def?RC_diff(Vc,?t):???if?flag=?=?0:?????r?e?tu?rn?(-Vc?/?(R?*?C)?+?Vs?/?(R?*?C))???e?lif?flag=?=?1:?????r?e?tu?rn?(-Vc?/?(R?*?C)?+?Vs?*?(2?*??*?t/??T0)?/?????????????(?R???*???C?))????????e?lif?flag=?=?2:?????r?e?tu?rn?(-Vc?/?(R?*?C)?+?Vs?*?pulse(t)?/?(R?*?C))#??阶RL电路,返回电感电流def?RL_diff(iL,?t):???if?flag=?=?0:?????r?e?tu?rn?(-iL?*?R?/?L?+?R?*?iS?/?L)???e?lif?flag=?=?1:?????r?e?tu?rn?(-iL?*?R?/?L?+?R?*?iS?*?(2?*??*?t/??T0)?/?L)???e?lif?flag=?=?2:?????r?e?tu?rn?(-iL?*?R?/?L?+?iS?*?pulse(t)?*?R?/?L)#??阶RLC电路def?RLC_diff(state_vector,?t):????V,?ciL?=?state_vector???if?flag=?=?0:?????r?e?tu?rn?([iL?/?C,?-R?*?iL?/?L?-?Vc?/?L?+?Vs?/?L])???e?lif?flag=?=?1:?????r?e?tu?rn?([?????????/??C,??-iLR??*?iL?/?L?-?Vc?/?L?+?Vs?*?(2?*??*?t/??T0)?/?L?????])??????e?lif?flag=?=?2:?????r?e?tu?rn?([iL?/?C,?-R?*?iL?/?L?-?Vc?/?L?+?Vs?*?pulse(t)?/?L])def?plot(mode,?submod)e:???if?(mode=?=?1):?????if??(?s?ubmode=?=?1):??????????=???Rta?*?uC?????????=???n?p?.lti?nspace(0,?5?*?tau,?dots1)????????????=re?osudlet?in(RtC_diff,?[0,?0],?t)?????????.?x?la?bpelt(l't')?????????.?y?la?bpelt(l'Vc')?????????.?x?li?mp(0lt,?5?*?tau)???????if???f?la?g?=?=?0:???????????.?y?li?m?(?0p,?ltVs)???????e?l?s?e:?????????????.?y?li?m?(?-Vpslt,?Vs)?????????.?p?lo?pt(tl,t?resul)t?????????.?sh??opwl(t)?????e?li?f??(submode=?=?2):??????????=???Lta?/?uR?????????=???n?p?.lti?nspace(0,?5?*?tau,?dots1)????????????=re?osudlet?in(RL_difft,?[0,?0],?t)?????????.?x?la?bpelt(l't')?????????.?y?la?bpelt(l'iL')?????????.?x?li?mp(0lt,?5?*?tau)?????????.?y?li?mp(0lt,?iS)???????if???f?la?g?=?=?0:???????????.?y?li?m?(?0p,?ltiS)???????e?l?s?e:?????????????.?y?li?m?(?-ipSl,t?iS)?????????.?p?lo?pt(tl,t?resul)t?????????.?sh??opwl(t)???e?lif?(mode=?=?2):????????damping_fact=?Ror?*??(C?/?L)?/?2??#?阻尼系数ξ????????omega=?1?/??(L?*?C)??#??由振荡频率?????if??(?s?ubmode=?=?1):???????'?''???????????谐?L振C腔的品质因数Q?=?1/(2*ξ)?????经??过?Q个周期,%以下?????经??过?,振铃幅度衰减为1%以下?????经??过?,%以下????????????'''???????if??(?d?a??mping_facto<r??1?and?damping_factor>??0):??#?阻尼???????????=??2??*???mTa??/?(omega*??(1?-?damping_fact*o*2r)???????????????????)????#???R??L?C电??路??的??周??期????????????=??1???/??(2Q?*??damping_fact)or??????????=???n??p.?li?nts?pace(0,??*?Q*??T,?dots2)??????????????=??oredseuilnt(?RtLC_diff,?[0,?0],?t)???????????.?x?la?b??ep(l'ltt')???????????.?y?la?b??ep(l'lVtc/iL)'???????????.?x?li?m?(?0p,??*?Q*??T)???????????.?y?li?m?(?-Vpslt,?2?*?Vs)???????????.?p?l?o?t(t?,p?rletsul)t???????????.?s?h?o?w?(p)lt?????????'?''???????????过??阻?尼下的时间常数τ1=(ξ+sqrtξ(^2-1))ω/(长寿命项),τ2=(ξ-sqrtξ(^2-1))ω/(短寿命项)?????短??期??为看短寿命项,长期寿命看长寿命项????????????????'''???????e?l?if?(?d?amping_facto>r??1):??#?过阻尼?????????????=??(?d?ataump?ing_facto+r???????????????????.s?q?r?t(?damping_fact?mathor**2?-?1))?/?omega??????????=???n??p.?li?nts?pace(0,?5?*?tau,?dots2)??????????????=??oredseuilnt(?RtLC_diff,?[0,?0],?t)???????????.?x?la?b??ep(l'ltt')???????????.?y?la?b??ep(l'lVtc/iL)'???????????.?x?li?m?(?0p,?l5t?*?tau)???????????.?y?li?m?(?-Vpslt,?2?*?Vs).?y?li?m?(?-Vpslt,?2?*?Vs)???????????.?p?l?o?t(t?,p?rletsul)t???????????.?s?h?o?w?(p)lt?????????'''????????????临??界?阻尼中有?项是e^(-ωt),有?项是t*e^(ω-t),这?定义其时间常数τ=1/ω????????????????'''???????e?l?if?(?damping_fact?or=?=?1):??#?临界阻尼?????????????=??1???/?tauom?ega??????????=???n??p.?li?nts?pace(0,?5?*?tau,?dots2)??????????????=??oredseuilnt(?RtLC_diff,?[0,?0],?t)???????????.?x?la?b??ep(l'ltt')???????????.?y?la?b??ep(l'lVtc/iL)'???????????.?x?li?m?(?0p,?l5t?*?tau)???????????.?y?li?m?(?-Vpslt,?2?*?Vs)???????????.?p?l?o?t(t?,p?rletsul)t???????????.?s?h?o?w?(p)lt???????e?l?s?e:????#??阻尼???????????=??2??*???mTa??/?omega??????????=???n??p.?li?nts?pace(0,?5?*?T,?dots2)??????????????=??oredseuilnt(?RtLC_diff,?[0,?0],?t)???????????.?x?la?b??ep(l'ltt')???????????.?y?la?b??ep(l'lVtc/iL)'???????????.?x?li?m?(?0p,?l5t?*?T)???????????.?y?li?m?(?-2p?l*t?Vs,?2?*?Vs)???????????.?p?l?o?t(t?,p?rletsul)t???????????.?s?h?o?w?(p)ltdef?main():???glob?al?flag????flag=?i?nt(inpu(t'choose?the?power?mode?(0--vdc?1--vsin?2--vpulse):'))????mode=?i?nt(inpu(t'choose?the?order?of?the?circuit?(1))?or?2):'???if?(mode=?=?1):????????subm=o?(?inpu(t'choose?the?circuit?type?(1--RC?2--RL):'))????????(pmlotde,?submod)e???e?lif?(mode=?=?2):????????subm=o?(?inpu(t'choose?the?circuit?type?(1--RLC(in?series)):'))????????(pmlotde,?submod)eif?__name__?==?"__main__":????main()效果?波激励RC电路:?阻尼下的RLC电路: