fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. // 定义圆周率
  5. #define PI 3.1415926535
  6.  
  7. int main() {
  8. // 变量定义
  9. double Z0, RL, XL, f, vp, l;
  10. double beta, tan_bl;
  11. double Rin, Xin;
  12. // 复数运算中间变量(分子/分母的实部、虚部)
  13. double N_real, N_imag, D_real, D_imag, denominator;
  14.  
  15. // 标题
  16. printf("传输线输入阻抗计算器\n");
  17. printf("------------------------\n");
  18.  
  19. // 用户输入
  20. printf("请输入特性阻抗 Z0(欧姆):");
  21. scanf("%lf", &Z0);
  22.  
  23. printf("请输入负载电阻 RL(欧姆):");
  24. scanf("%lf", &RL);
  25.  
  26. printf("请输入负载电抗 XL(欧姆):");
  27. scanf("%lf", &XL);
  28.  
  29. printf("请输入频率 f(赫兹):");
  30. scanf("%lf", &f);
  31.  
  32. printf("请输入相速度 vp(米/秒):");
  33. scanf("%lf", &vp);
  34.  
  35. printf("请输入传输线长度 l(米):");
  36. scanf("%lf", &l);
  37.  
  38. // 1. 计算相位常数 beta
  39. beta = (2 * PI * f) / vp;
  40.  
  41. // 2. 计算 tan(beta * l)
  42. tan_bl = tan(beta * l);
  43.  
  44. // 3. 严格按照传输线公式,展开复数运算
  45. // 公式:Zin = Z0 * (Z0 + j*ZL*tanβl) / (ZL + j*Z0*tanβl),ZL=RL+jXL
  46. // 分子:Z0 + j*(RL+jXL)*tanβl = (Z0 - XL*tanβl) + j*(RL*tanβl)
  47. N_real = Z0 - XL * tan_bl;
  48. N_imag = RL * tan_bl;
  49. // 分母:(RL+jXL) + j*Z0*tanβl = RL + j*(XL + Z0*tanβl)
  50. D_real = RL;
  51. D_imag = XL + Z0 * tan_bl;
  52.  
  53. // 4. 复数除法计算输入阻抗
  54. denominator = D_real * D_real + D_imag * D_imag; // 分母模的平方
  55. Rin = Z0 * (N_real * D_real + N_imag * D_imag) / denominator; // 输入阻抗实部
  56. Xin = Z0 * (N_imag * D_real - N_real * D_imag) / denominator; // 输入阻抗虚部
  57.  
  58. // 输出结果
  59. printf("\n------------------------\n");
  60. printf("相位常数 beta = %.4f 弧度/米\n", beta);
  61. printf("tan(beta*l) = %.4f\n", tan_bl);
  62. printf("输入阻抗 Zin = %.4f ", Rin);
  63. if (Xin >= 0) {
  64. printf("+ j %.4f 欧姆\n", Xin);
  65. } else {
  66. printf("- j %.4f 欧姆\n", -Xin);
  67. }
  68.  
  69. // 个人信息
  70. printf("\n计算者:你的姓名\n");
  71. printf("学号:你的学号\n");
  72.  
  73. return 0;
  74. }
  75.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
传输线输入阻抗计算器
------------------------
请输入特性阻抗 Z0(欧姆):请输入负载电阻 RL(欧姆):请输入负载电抗 XL(欧姆):请输入频率 f(赫兹):请输入相速度 vp(米/秒):请输入传输线长度 l(米):
------------------------
相位常数 beta = 6.2832 弧度/米
tan(beta*l) = 0.0000
输入阻抗 Zin = -nan - j nan 欧姆

计算者:你的姓名
学号:你的学号