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 <[email protected]>
5 * Copyright (C) 2005 Stefan Jahn <[email protected]>
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/transline.h"
29
30class MICROSTRIP : public TRANSLINE
31{
32public:
33 MICROSTRIP();
34
35 friend class C_MICROSTRIP;
36
37private:
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 defined in parent class
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
58private:
59 double er_eff_freq();
60 double alpha_c();
64 double synth_width();
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 w_eff
Definition: microstrip.h:51
double l
Definition: microstrip.h:44
void microstrip_Z0()
Definition: microstrip.cpp:176
double ht
Definition: microstrip.h:39
double e_r_effective(double, double)
Definition: microstrip.cpp:141
double alpha_c_roughness()
void calcSynthesize() override
Computation for synthesis.
Definition: microstrip.cpp:517
double Z0_0
Definition: microstrip.h:45
double dielectric_losses()
Definition: microstrip.cpp:354
void line_angle()
Definition: microstrip.cpp:430
double w
Definition: microstrip.h:43
double atten_cond
Definition: microstrip.h:53
double alpha_dielectric()
void dispersion()
Definition: microstrip.cpp:288
double filling_factor(double, double)
Definition: microstrip.cpp:98
double Z0_dispersion()
double e_r_dispersion(double, double, double)
Definition: microstrip.cpp:227
double delta_u_thickness(double, double, double)
Definition: microstrip.cpp:153
double delta_q_thickness(double, double)
Definition: microstrip.cpp:128
double delta_q_cover(double)
Definition: microstrip.cpp:116
void calcAnalyze() override
Computation for analysis.
Definition: microstrip.cpp:446
double char_impedance_ht()
double synth_width()
Definition: microstrip.cpp:396
double mur_eff
Definition: microstrip.h:50
double t
Definition: microstrip.h:40
double atten_dielectric
Definition: microstrip.h:52
double alpha_c()
double er_eff_0
Definition: microstrip.h:48
double ereff_dispersion()
void mur_eff_ms()
Definition: microstrip.cpp:385
void show_results() override
Shows results.
Definition: microstrip.cpp:461
double h
Definition: microstrip.h:38
double conductor_losses()
Definition: microstrip.cpp:316
double Z0_homogeneous(double)
Definition: microstrip.cpp:68
void showAnalyze() override
Shows synthesis results and checks for errors / warnings.
Definition: microstrip.cpp:494
double er_eff_freq()
void showSynthesize() override
Shows analysis results and checks for errors / warnings.
Definition: microstrip.cpp:474
double mur
Definition: microstrip.h:42
double rough
Definition: microstrip.h:41
double Z0_h_1
Definition: microstrip.h:56
void attenuation()
Definition: microstrip.cpp:373
double delta_Z0_cover(double, double)
Definition: microstrip.cpp:82
double Z0
Definition: microstrip.h:46