KiCad PCB EDA Suite
microstrip.h
Go to the documentation of this file.
1 /*
2  * microstrip.h - microstrip class definition
3  *
4  * Copyright (C) 2001 Gopal Narayanan <gopal@astro.umass.edu>
5  * Copyright (C) 2005 Stefan Jahn <stefan@lkcc.org>
6  * Modified for Kicad: 2015 jean-pierre.charras
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this package; see the file COPYING. If not, write to
20  * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  */
23 
24 
25 #ifndef __MICROSTRIP_H
26 #define __MICROSTRIP_H
27 
28 #include <transline.h>
29 
30 class MICROSTRIP : public TRANSLINE
31 {
32 public:
33  MICROSTRIP();
34 
35  friend class C_MICROSTRIP;
36 
37 private:
38  double h; // height of substrate
39  double ht; // height to the top of box
40  double t; // thickness of top metal
41  double rough; // Roughness of top metal
42  double mur; // magnetic permeability of substrate
43  double w; // width of line
44  double l; // length of line
45  double Z0_0; // static characteristic impedance
46  double Z0; // characteristic impedance
47  double ang_l; // Electrical length in angle
48  double er_eff_0; // Static effective dielectric constant
49  double er_eff; // Effective dielectric constant
50  double mur_eff; // Effective mag. permeability
51  double w_eff; // Effective width of line
52  double atten_dielectric; // Loss in dielectric (dB)
53  double atten_cond; // Loss in conductors (dB)
54 
55  // private params
56  double Z0_h_1; // homogeneous stripline impedance
57 
58 private:
59  double er_eff_freq();
60  double alpha_c();
61  double alpha_c_roughness();
62  double alpha_dielectric();
63  double char_impedance_ht();
64  double synth_width();
65  double ereff_dispersion();
66  double Z0_dispersion();
67  double Z0_homogeneous( double );
68  double delta_Z0_cover( double, double );
69  double filling_factor( double, double );
70  double delta_q_cover( double );
71  double delta_q_thickness( double, double );
72  double e_r_effective( double, double );
73  double delta_u_thickness( double, double, double );
74  double e_r_dispersion( double, double, double );
75  double Z0_dispersion( double, double, double, double, double );
76  double conductor_losses();
77  double dielectric_losses();
78  void microstrip_Z0();
79  void dispersion();
80  void attenuation();
81  void mur_eff_ms();
82  void line_angle();
83  void show_results() override;
84  void showSynthesize() override;
85  void showAnalyze() override;
86  void calcAnalyze() override;
87  void calcSynthesize() override;
88 };
89 
90 #endif // __MICROSTRIP_H
double mur_eff
Definition: microstrip.h:50
void calcSynthesize() override
Computation for synthesis.
Definition: microstrip.cpp:520
double delta_q_thickness(double, double)
Definition: microstrip.cpp:130
double delta_q_cover(double)
Definition: microstrip.cpp:118
double char_impedance_ht()
double conductor_losses()
Definition: microstrip.cpp:318
double rough
Definition: microstrip.h:41
double filling_factor(double, double)
Definition: microstrip.cpp:100
double l
Definition: microstrip.h:44
double delta_Z0_cover(double, double)
Definition: microstrip.cpp:84
double Z0_0
Definition: microstrip.h:45
double t
Definition: microstrip.h:40
double ht
Definition: microstrip.h:39
double e_r_dispersion(double, double, double)
Definition: microstrip.cpp:229
double Z0_h_1
Definition: microstrip.h:56
double alpha_c_roughness()
double Z0
Definition: microstrip.h:46
double ereff_dispersion()
void show_results() override
Shows results.
Definition: microstrip.cpp:463
double er_eff_0
Definition: microstrip.h:48
void dispersion()
Definition: microstrip.cpp:290
double mur
Definition: microstrip.h:42
void showAnalyze() override
Shows synthesis results and checks for errors / warnings.
Definition: microstrip.cpp:497
double synth_width()
Definition: microstrip.cpp:398
double ang_l
Definition: microstrip.h:47
double alpha_c()
double delta_u_thickness(double, double, double)
Definition: microstrip.cpp:155
double Z0_dispersion()
void calcAnalyze() override
Computation for analysis.
Definition: microstrip.cpp:448
void microstrip_Z0()
Definition: microstrip.cpp:178
void showSynthesize() override
Shows analysis results and checks for errors / warnings.
Definition: microstrip.cpp:476
double alpha_dielectric()
double atten_dielectric
Definition: microstrip.h:52
double er_eff_freq()
double Z0_homogeneous(double)
Definition: microstrip.cpp:70
double er_eff
Definition: microstrip.h:49
double atten_cond
Definition: microstrip.h:53
double h
Definition: microstrip.h:38
void mur_eff_ms()
Definition: microstrip.cpp:387
double w
Definition: microstrip.h:43
double e_r_effective(double, double)
Definition: microstrip.cpp:143
void line_angle()
Definition: microstrip.cpp:432
void attenuation()
Definition: microstrip.cpp:375
double dielectric_losses()
Definition: microstrip.cpp:356
double w_eff
Definition: microstrip.h:51