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 er_eff_0; // Static effective dielectric constant
48 double mur_eff; // Effective mag. permeability
49 double w_eff; // Effective width of line
50 double atten_dielectric; // Loss in dielectric (dB)
51 double atten_cond; // Loss in conductors (dB)
52
53 // private params
54 double Z0_h_1; // homogeneous stripline impedance
55
56private:
57 double er_eff_freq();
58 double alpha_c();
62 double synth_width();
64 double Z0_dispersion();
65 double Z0_homogeneous( double );
66 double delta_Z0_cover( double, double );
67 double filling_factor( double, double );
68 double delta_q_cover( double );
69 double delta_q_thickness( double, double );
70 double e_r_effective( double, double );
71 double delta_u_thickness( double, double, double );
72 double e_r_dispersion( double, double, double );
73 double Z0_dispersion( double, double, double, double, double );
74 double conductor_losses();
75 double dielectric_losses();
76 void microstrip_Z0();
77 void dispersion();
78 void attenuation();
79 void mur_eff_ms();
80 void line_angle();
81 void show_results() override;
82 void showSynthesize() override;
83 void showAnalyze() override;
84 void calcAnalyze() override;
85 void calcSynthesize() override;
86};
87
88#endif // __MICROSTRIP_H
double w_eff
Definition: microstrip.h:49
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:51
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:48
double t
Definition: microstrip.h:40
double atten_dielectric
Definition: microstrip.h:50
double alpha_c()
double er_eff_0
Definition: microstrip.h:47
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:54
void attenuation()
Definition: microstrip.cpp:373
double delta_Z0_cover(double, double)
Definition: microstrip.cpp:82
double Z0
Definition: microstrip.h:46