matlab 化简传递函数方法

该篇文章详细描述了如何在Matlab中利用SFG/DPI方法化简电路方程,通过定义符号变量、计算电路节点阻抗和电流关系,然后使用eliminate函数消除部分变量,最后求解得到简化后的vo和vy表达式。
摘要由CSDN通过智能技术生成

列式子使用SFG/DPI方法,化简用到matlab。

%清除命令行和工作区的内容
clc;
clear;

%定义符号变量 (根据电路节点和电路里面的元器件设置)
syms R0 R1 R2 R3 vin vx vy vs vo gm2 gm3

%电路节点的输出阻抗
zx=1/(1/R1+1/R2+1/R3);
zy=1/(1/R1+gm2);
zs=1/(gm3+1/R0);
zo=R2;

%流入各个节点的电流x电路节点的输出阻抗得到下列式子,将需要化简的式子赋值给eqns
eqns=[
       vx==(vin/R3+vy/R1+vo/R2)*zx,
       vy==(vx/R1)*(zy),
       vs==vy*gm3*zs,
       vo==(vx/R2-(vy-vs)*gm3)*zo,
     ];

%将需要消除的变量赋值给vars
vars_1=[vx vy vs];
vars_2=[vx vo vs];

%使用eliminate函数将eqns中的vars包含的变量消除
solvo=eliminate(eqns,vars_1);
solvy=eliminate(eqns,vars_2);

% solvo的值是一个1x2的sym包含了两个式子, solvo(1)代表其中第一个式子。这一步将
% solvo(1)化成vy=...的形式, 方便后续实时脚本的使用。
vo_1=solve(solvo(1),vo)
vy_1=solve(solvy(1),vy)

%使用subs将数值代入符号
%vo_sub_1=subs(vo_1,[R0 R1 R2 R3 gm2 gm3],[800 2.4E3 7.2E3 3.28E3 300E-6 100E-6]);
%vy_sub_1=subs(vy_1,[R0 R1 R2 R3 gm2 gm3],[800 2.4E3 7.2E3 3.28E3 300E-6 100E-6]);

%转换成小数
%vo=vpa(vo_sub_1,4)
%vy=vpa(vy_sub_1,4)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值