PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 76932|回复: 0

电路分析作业解答验证

[复制链接]
发表于 2024-1-1 22:43:47 | 显示全部楼层 |阅读模式


video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_2847519999333531649

一、前言

  在信号与系统第三次作业中, 有一道关于电路分析的题目, 要求建立电路输入输出之间的微分方程。 很多同学反映, 这个题目虽然最后得到了微分方程结果, 但感觉它是否正确也无从验证。 下面将从两个方面来验证结果的正确性。 电路s域分析方法,建立电路的微分方程。 LTspice电路仿真, 对比微分方程求解与仿真信号之间是否一致。


二、电路s域分析

  利用电路原理中 S 域分析方法,  将电路中电容、电感使用 S 域模型替换。 然后将其等效成电阻分压网络获得输入输出之间的传递函数。 为了便于化简, 这里使用 Python 符号推导的方式进行化简, 利用电阻网络分压公式,得到输入输出之间的比值。 利用 simplify 函数将结果化简成有理分式。 最后得电路输入输出端口之间的转移函数。 根据转移函数, 可以写出对应的微分方程。 对比一下前面参考答案中的结果, 可以看它们的结果是一致的。



▲ 图1.1.1 利用是域网络分析得到输入输出之间的微分方程

  虽然这里使用了另外一种方法验证了微分方程的正确性, 但是对方程是否真的描述了电路的动态行为并没有进行验证。 下面通过对该方程求解对应的单位阶跃响应, 再对照电路仿真软件 LTspice 给出的结果进行对比。
from headm import *
from sympy                  import symbols,simplify,expand,print_latex
from sympy                  import *

s,t = symbols('s,t')

x1 = 2+1/(2*s)
x2 = 2*s*x1/(2*s+x1)
x3 = 1+1/s
f1 = x2/(x2+x3)
f2 = f1* 1/(2*s)/(2+1/(2*s))

result = simplify(f2)

print_latex(result)
_=tspexecutepythoncmd("msg2latex")
clipboard.copy(str(result))
三、方程求解

  下面,利用 Laplace 变换求解该微分方程的解。这是前面给出的电路输入输出之间的微分方程。 对方程左右进行拉普拉斯变换。方法很简单,将微分运算替换成 s 。具体原理将会在第五章进行解释。 这里假设输入信号 e(t) 为 单位阶跃信号。请注意这里的 u(t) 代表着单位阶跃信号, 不是上面方程中的输出电压信号 u(t) 。 它对应的 Laplace 变换为 s 分之一。 这样,上面的方程右边就等于 2s。 由此,便可以求解电路的零状态响应对应的 Laplace 变换 U(s)。 这里给出了 U(s) 的对应的有理分式。



▲ 图1.1.2 微分方程求解过程

  将 U(s) 进行 Laplace 反变换, 便可以得到电路单位阶跃响应 u(t)。 这里借助于 Python 进行 Laplace 反变换。 声明符合变量:s t。 这是 U(s) 的表达式, 利用 inverse laplace tranform 工具进行 Laplace 反变换。 便可得到对应的 u(t) 表达式。 下面看一下结果, 这个表达式的确有点吓人, 不过还好,是利用软件帮助求解得到的, 结果还是值得信任。 请注意,这里的 theta t,表示单位阶跃信号 u(t), 说明这个表达式是反变换的因果形式的结果, 对应Laplace变换的收敛域为左半平面。实际上任何一个 Laplace 表达式,还有一个反因果形式的变化结果,对应收敛域为s 平面的右边区域。


from headm import *
from sympy                  import symbols,simplify,expand,print_latex
from sympy                  import *

s,t = symbols('s,t')
Us = 2*s/(12*s**3 + 10*s**2 + 5*s + 1)
ut = inverse_laplace_transform(Us,s,t)
result = ut

print_latex(result)
_=tspexecutepythoncmd("msg2latex")
clipboard.copy(str(result))

  下面通过Python 绘制出u(t)在0到35之间的信号波形。



▲ 图1.2.2 通过Python绘制电路单位阶跃相应在35秒之间的信号波形
from headm import *

def f(t):
    a = sin(sqrt(3)*t/4)
    b = sqrt(3) * cos(sqrt(3)*t/4)
    c = sqrt(3)*(2*a+b) * exp(t/3)
    d = 2*(c-3*exp(t/4)) * exp(-7*t/12)
    return d/21

t = linspace(0, 35, 10000)
ft = f(t)

plt.plot(t, ft, lw=3)

plt.xlabel("t")
plt.ylabel("u(t)")
plt.grid(True)
plt.tight_layout()
plt.show()
四、LTspice仿真

  这是在LTspice 中建立的电路仿真电路图,参数与题目中给定的数值保持一致。 激励信号源使用的是一个幅值为1V,持续时间35秒的脉冲信号。 这里给出了仿真结果曲线。 看起来与前面方程求解的单位阶跃响应的波形很相似。 将LTspice仿真输出导出,与求解公式曲线绘制在一起, 可以看到它们重合在一起了。 由此验证了 LTspice 电路仿真结果与微分方程求解的结果是一致的。





※ 总  结 ※

  本文对于信号与系统第三次作业中电路分析题目求解结果进行了验证, 通过电路 s 域分析方法, 验证了结果微分方程的正确性。 然后利用了 LTspice 仿真软件, 构建了作业题目中的电路, 通过对比仿真结果与微分方程的解析解,可以看到电路单位阶跃响应曲线是一致的。 这个过程也展示了分析线性电路的各种方法。 有些方法将会在信号与系统第五章才会讲解。


参考资料

[1]
信号与系统 2023(春季) 作业要求 - 第三次作业: https://zhuoqing.blog.csdn.net/article/details/129423119
[2]
信号与系统 2023(春季) 作业参考答案 - 第三次作业: https://zhuoqing.blog.csdn.net/article/details/129516292

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-5-9 00:41 , Processed in 0.045481 second(s), 27 queries .

快速回复 返回顶部 返回列表