naspro

view permafrost/examples/wdf.pmf @ 178:7169a8909d53

Added Permafrost + small changes
author Stefano D'Angelo <zanga.mail@gmail.com>
date Sun May 02 14:19:58 2010 +0300 (2010-05-02)
parents
children
line source
1 # Permafrost - Physical modelling framework
2 #
3 # Copyright (C) 2009, 2010 Stefano D'Angelo <zanga.mail@gmail.com>
4 #
5 # See the COPYING file for license conditions.
7 block wdf_junc_3port_series
8 {
9 w_port w1;
10 w_port w2;
11 w_port wup;
12 input Z1;
13 input Z2;
14 output Zup;
15 #input Iext;
16 #output V;
18 Zup = Z1 + Z2;
19 wup.out = -(w1.in + w2.in);
20 w1.out = w1.in - ((wup.in + w1.in + w2.in) * Z1) / (Z1 + Z2);
21 w2.out = w2.in - ((wup.in + w1.in + w2.in) * Z2) / (Z1 + Z2);
22 }
24 block wdf_junc_3port_parallel
25 {
26 w_port w1;
27 w_port w2;
28 w_port wup;
29 input Z1;
30 input Z2;
31 output Zup;
32 #input Iext;
33 #output V;
35 Zup = (Z1 * Z2) / (Z1 + Z2);
36 wup.out = (Z2 * w1.in + Z1 * w2.in) / (Z1 + Z2);
37 w1.out = (Z2 * w1.in + Z1 * w2.in) / (Z1 + Z2) + wup.in - w1.in;
38 w2.out = (Z2 * w1.in + Z1 * w2.in) / (Z1 + Z2) + wup.in - w2.in;
39 }
41 block wdf_voltage_source
42 {
43 w_port w;
44 input V;
45 input R;
46 output Z;
48 w.out = V;
49 Z = R;
50 }
52 block wdf_current_source
53 {
54 w_port w;
55 input I;
56 input R;
57 output Z;
59 w.out = R * I;
60 Z = R;
61 }
63 block wdf_ideal_resistor
64 {
65 w_port w;
66 input R;
67 output V;
68 output I;
69 output Z;
71 w.out = 0;
72 V = w.in / 2;
73 I = w.in / (2 * R);
74 Z = R;
75 }
77 block wdf_ideal_capacitor
78 {
79 w_port w;
80 input C;
81 output V;
82 output I;
83 output Z;
85 w.out = w.in[1];
86 V = (w.in + w.in[1]) / 2;
87 I = (w.in - w.in[1]) / (2 * C * sample_rate);
88 Z = 1 / (2 * C * sample_rate);
89 }
91 block wdf_ideal_inductor
92 {
93 w_port w;
94 input L;
95 output V;
96 output I;
97 output Z;
99 w.out = -w.in[1];
100 V = (w.in - w.in[1]) / 2;
101 I = (w.in + w.in[1]) * sample_rate / (2 * L);
102 Z = 2 * L / sample_rate;
103 }
105 block wdf_short_circuit
106 {
107 w_port w;
109 w.out = -w.in;
110 }
112 block wdf_open_circuit
113 {
114 w_port w;
116 w.out = w.in;
117 }