用S参数设计LNA的笔记

[复制链接]
 楼主| 840A 发表于 2024-8-22 12:27 | 显示全部楼层 |阅读模式
本帖最后由 840A 于 2024-8-22 12:28 编辑

今天翻到了minicircuits的LNA:
还有原理图:

是一个达林顿的电压并联负反馈电路。
由于是负反馈电路,RF的反馈作用范围大于米勒电容的作用,遂画出简化的小信号图

用节点法:

得到矩阵U后,
对U(1)和U(2)求I1和I2的偏微分。
得到二端口Z参数
有了Z参数,就可以转化为S参数,转换公式为:

展开为:

U为前一步,算出来的矩阵U,二端口只需要U1和U2,50为输入和输出都是50欧的系统。
以上为解析计算,得到一个代数式子。
根据S参数的性质:
当S11=0,对应输入回波损耗RL
当S22=0,对应输出回拨损耗RL
S21为增益,在这个电路中S21为负值,相位相反。
根据上述条件去搜,rb和re2,rf,三个电阻的取值。
仿真电路:

s参数:

用计算搜的E6电阻的解,接近目标。
当然更为精确的匹配,需要用E24电阻和实际电路,网络分析仪。理论计算步骤就是这个步骤。

本帖子中包含更多资源

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

×
 楼主| 840A 发表于 2024-8-22 12:39 | 显示全部楼层
本帖最后由 840A 于 2024-8-22 12:41 编辑

补:单管


s参数:

计算步骤相同.
matlab单管
  1. clear all;
  2. clc;

  3. syms rf rb re rbe ro rc gm I1 I2
  4. R0=50
  5. M=[1,0;0,1]
  6. VA=50
  7. VT=26e-3
  8. IC=10e-3
  9. beta0=150
  10. gm=IC/VT
  11. ro=VA/IC
  12. rbe=beta0/gm
  13. rc=330

  14. Y11=1/rb+1/rbe+1/rf
  15. Y12=-1/rf
  16. Y13=-1/rbe

  17. Y21=-1/rf+gm
  18. Y22=1/rf+1/ro+1/rc
  19. Y23=-1/ro-gm

  20. Y31=-1/rbe-gm
  21. Y32=-1/ro
  22. Y33=1/rbe+1/re+1/ro+gm
  23. Y=[Y11,Y12,Y13;Y21,Y22,Y23;Y31,Y32,Y33]
  24. I=[I1;I2;0]
  25. U=inv(Y)*I
  26. Z=[diff(U(1),I1),diff(U(1),I2);diff(U(2),I1),diff(U(2),I2)]
  27. S=inv(Z+R0*M)*(Z-R0*M);
python:穷举电阻_单管
  1. import math
  2. import itertools

  3. def generate_E_set(a='E6',minmax=[0,1]):
  4.     E24_T=[1.0,1.1,1.2,1.3,1.5,1.6,1.8,2,2.2,2.4,2.7,3,3.3,3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1]
  5.     E6_T=[1.0,1.5,2.2,3.3,4.7,6.8]
  6.     E12_T=[1.0,1.5,2.2,3.3,4.7,6.8]
  7.     _E_ALL=[]
  8.     if(a=='E6'):
  9.         _E_T=E6_T
  10.     elif(a=='E12'):
  11.         _E_T=E12_T
  12.     elif(a=='E24'):
  13.         _E_T=E24_T
  14.     else:
  15.         return []
  16.     for i in range(minmax[0],minmax[1]):
  17.         for v in _E_T:
  18.             _E_ALL.append(v*math.pow(10,i))
  19.     return _E_ALL

  20. def get_s11(rf,re,rb):
  21.     return -(1888475000.0*re + 103350000.0*rf + rb*(1888475.0*re - 1802000.0*rf - 793157.0*re*rf + 1893350000.0) + 39660475.0*re*rf + 4875000000.0)/(1888475000.0*re + 103350000.0*rf + 39660475.0*re*rf + rb*(77427475.0*re + 2332000.0*rf + 793262.0*re*rf + 2088350000.0) + 4875000000.0)


  22. def get_s22(rf,re,rb):
  23.     return -(1888475000.0*re - 91650000.0*rf + rb*(1888475.0*re - 2068000.0*rf - 717618.0*re*rf + 1893350000.0) - 35878525.0*re*rf + 4875000000.0)/(1888475000.0*re + 103350000.0*rf + 39660475.0*re*rf + rb*(77427475.0*re + 2332000.0*rf + 793262.0*re*rf + 2088350000.0) + 4875000000.0)

  24. def get_s21(rf,re,rb):
  25.     return (100.0*rb*(755390.0*re - 750000.0*rf + re*rf + 1950000.0))/(2088350000.0*rb + 1888475000.0*re + 103350000.0*rf + 77427475.0*rb*re + 2332000.0*rb*rf + 39660475.0*re*rf + 793262.0*rb*re*rf + 4875000000.0)

  26. def show(comb):
  27.     rf=combination[0]
  28.     re=combination[1]
  29.     rb=combination[2]
  30.     print("rf=%.0f,re=%.1f,rb=%.0f,s11=%.3f,s22=%.3f,s21=%.3f" % (rf,re,rf,get_s11(rf,re,rb),get_s22(rf,re,rb),get_s21(rf,re,rb)))

  31. # 子收敛函数
  32. def good_enough_approach(x,ref):
  33.     return ((abs(x-ref)/ref)<ERROR_MAX)

  34. def good_enough_less(x,ref):
  35.     return abs(x)<ref

  36. def good_enough_great(x,ref):
  37.     return abs(x)>ref

  38. # 总收敛函数
  39. def set_is_good_enough(comb):
  40.     rf=combination[0]
  41.     re=combination[1]
  42.     rb=combination[2]
  43.     s11=get_s11(rf,re,rb)
  44.     s21=get_s21(rf,re,rb)
  45.     s22=get_s22(rf,re,rb)
  46.     return good_enough_less(s11,0.05) and good_enough_less(s22,0.05) and good_enough_great(s21,4.0)

  47. E_RF=generate_E_set('E6',[2,3])
  48. E_RE=generate_E_set('E6',[0,1])
  49. E_RB=generate_E_set('E6',[2,4])
  50. # 穷举
  51. for combination in itertools.product(E_RF,E_RE,E_RB):
  52.     if(set_is_good_enough(combination)):
  53.         show(combination)
用的E6电阻,考虑到模型的精度,E24,还是到实践环节解决吧。E6电阻搜索结果
  1. rf=330,re=4.7,rb=330,s11=-0.041,s22=-0.008,s21=-5.305
  2. rf=330,re=4.7,rb=330,s11=-0.033,s22=-0.013,s21=-5.348
  3. rf=330,re=4.7,rb=330,s11=-0.028,s22=-0.016,s21=-5.375
  4. rf=330,re=4.7,rb=330,s11=-0.025,s22=-0.019,s21=-5.395
  5. rf=330,re=4.7,rb=330,s11=-0.022,s22=-0.020,s21=-5.407
  6. rf=330,re=4.7,rb=330,s11=-0.021,s22=-0.022,s21=-5.416
  7. rf=470,re=3.3,rb=470,s11=0.026,s22=0.048,s21=-7.366
  8. rf=470,re=3.3,rb=470,s11=0.030,s22=0.045,s21=-7.394
  9. rf=470,re=3.3,rb=470,s11=0.032,s22=0.043,s21=-7.412
  10. rf=470,re=3.3,rb=470,s11=0.034,s22=0.042,s21=-7.424
  11. rf=680,re=1.0,rb=680,s11=-0.046,s22=0.012,s21=-11.634
  12. rf=680,re=1.0,rb=680,s11=-0.041,s22=0.008,s21=-11.694
  13. rf=680,re=1.0,rb=680,s11=-0.037,s22=0.005,s21=-11.736
  14. rf=680,re=1.0,rb=680,s11=-0.035,s22=0.004,s21=-11.762
  15. rf=680,re=1.0,rb=680,s11=-0.034,s22=0.002,s21=-11.780




本帖子中包含更多资源

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

×
 楼主| 840A 发表于 2024-8-22 12:49 | 显示全部楼层
总结:
1、从节点电压法,求解个点电压,用求解的节点电压构建二端口网络,Z参数
2、从Z参数转换为S参数
3、s11=0,s22=0,s21=目标增益,为收敛条件。
相较于模电教材的,输入阻抗,需要连接负载。输出阻抗,输入需要短路。比较麻烦。
S参数在阻抗匹配的线性电路设计,还是值得学习的。如果输入电阻和输出电阻不是50欧,需要用到S’参数。
xch 发表于 2024-8-23 09:36 | 显示全部楼层
没等算完就被炒鱿鱼了。

评论

纸上游戏不必上头,这个是吃饱了没事,研究的。  发表于 2024-8-26 08:23
叶春勇 发表于 2024-8-26 08:20 | 显示全部楼层
实测电路,单管。rf=680 ,b=1e3,re=2

断电

通电:
swr:

本帖子中包含更多资源

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

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

本版积分规则

7

主题

49

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

7

主题

49

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部