root/trunk/Modelica/Electrical/Analog/Examples/CauerLowPassOPV.mo

Revision 1035, 16.8 kB (checked in by hubertus, 10 months ago)

removed all wrong occurrences of "uses" from the library (ticket:45)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1within Modelica.Electrical.Analog.Examples;
2model CauerLowPassOPV "Cauer low pass filter with operational amplifiers"
3
4  annotation (Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-250,-200},{
5            250,200}}), graphics={Text(
6          extent={{-130,172},{80,120}},
7          textString="CauerLowPassOPV",
8          lineColor={0,0,255})}),
9    experiment(StopTime=60),
10    Documentation(revisions="<html>
11<ul>
12<li><i>January 13, 2006</i> 
13       by Christoph Clauss<br>
14       included into Modelica Standard Library</li>
15<li><i>September 15, 2005</i>
16       by by Peter Trappe designed and by Teresa Schlegel<br>
17       initially modelled.</li>
18</ul>
19</html>", info="<html>
20The example Cauer Filter is a low-pass-filter of the fifth order. It is realized
21using an analog network with operational amplifiers. The voltage source V is the input voltage (step),
22and the OP5.out.v is the filter output voltage. The pulse response is calculated.
23<p>
24This model is identical to the CauerLowPassAnalog example, but inverting. To get the same response
25as that of the CauerLowPassAnalog example, a negative voltage step is used as input.
26<p>
27The simulation end time should be 60. Please plot both V.v (which is the inverted input voltage) and OP5.p.v (output voltage). Compare this result with the CauerLowPassAnalog result.
28<p>
29During translation some warnings are issued concerning resistor values (Value=-1 not in range[0,1.e+100]).
30Do not worry about it. The negative values are o.k.
31<p>
32</html>"),
33    Icon(coordinateSystem(preserveAspectRatio=true, extent={{-250,-200},{250,
34            200}}), graphics={
35        Rectangle(
36          extent={{-100,-80},{80,70}},
37          fillColor={255,255,255},
38          fillPattern=FillPattern.Solid,
39          lineColor={0,0,255}),
40        Polygon(
41          points={{-100,70},{-80,90},{100,90},{80,70},{-100,70}},
42          fillColor={255,255,255},
43          fillPattern=FillPattern.Solid,
44          lineColor={0,0,255}),
45        Polygon(
46          points={{100,90},{100,-60},{80,-80},{80,70},{100,90}},
47          fillColor={255,255,255},
48          fillPattern=FillPattern.Solid,
49          lineColor={0,0,255}),
50        Text(
51          extent={{-96,23},{77,-29}},
52          lineColor={0,0,255},
53          textString="Example"),
54        Text(
55          extent={{-120,152},{120,93}},
56          lineColor={255,0,0},
57          textString="%name")}));
58
59  parameter Modelica.SIunits.Capacitance l1=1.304 "filter coefficient i1";
60  parameter Modelica.SIunits.Capacitance l2=0.8586 "filter coefficient i2";
61  parameter Modelica.SIunits.Capacitance c1=1.072 "filter coefficient c1";
62  parameter Modelica.SIunits.Capacitance c2=1/(1.704992^2*l1)
63    "filter coefficient c2";
64  parameter Modelica.SIunits.Capacitance c3=1.682 "filter coefficient c3";
65  parameter Modelica.SIunits.Capacitance c4=1/(1.179945^2*l2)
66    "filter coefficient c4";
67  parameter Modelica.SIunits.Capacitance c5=0.7262 "filter coefficient c5";
68  Modelica.Electrical.Analog.Basic.Capacitor C1(C=c1 + c2) 
69    annotation (Placement(transformation(extent={{-192,10},{-172,30}}, rotation=
70           0)));
71  Modelica.Electrical.Analog.Basic.Capacitor C2(C=c2) 
72    annotation (Placement(transformation(extent={{-240,-90},{-220,-70}},
73          rotation=0)));
74  Modelica.Electrical.Analog.Basic.Capacitor C3(C=l1) 
75    annotation (Placement(transformation(extent={{-90,10},{-70,30}}, rotation=0)));
76  Modelica.Electrical.Analog.Basic.Capacitor C4(C=c4) 
77    annotation (Placement(transformation(extent={{-30,30},{-10,50}}, rotation=0)));
78  Modelica.Electrical.Analog.Basic.Capacitor C5(C=c2) 
79    annotation (Placement(transformation(extent={{-30,-120},{-10,-100}},
80          rotation=0)));
81  Modelica.Electrical.Analog.Basic.Resistor R1
82    annotation (Placement(transformation(extent={{-240,-50},{-220,-30}},
83          rotation=0)));
84  Modelica.Electrical.Analog.Basic.Resistor R2
85    annotation (Placement(transformation(extent={{-240,-10},{-220,10}},
86          rotation=0)));
87  Modelica.Electrical.Analog.Basic.Resistor R3
88    annotation (Placement(transformation(extent={{-193,50},{-173,70}}, rotation=
89           0)));
90  Modelica.Electrical.Analog.Ideal.IdealOpAmp3Pin Op1
91    annotation (Placement(transformation(extent={{-200,-70},{-160,-30}},
92          rotation=0)));
93  Modelica.Electrical.Analog.Basic.Ground G
94    annotation (Placement(transformation(extent={{-188,-96},{-174,-80}},
95          rotation=0)));
96  Modelica.Electrical.Analog.Basic.Resistor R4(R=-1) 
97    annotation (Placement(transformation(extent={{-140,-60},{-120,-40}},
98          rotation=0)));
99  Modelica.Electrical.Analog.Basic.Resistor R5(R=-1) 
100    annotation (Placement(transformation(extent={{-140,-100},{-120,-80}},
101          rotation=0)));
102  Modelica.Electrical.Analog.Ideal.IdealOpAmp3Pin Op2
103    annotation (Placement(transformation(extent={{-100,-70},{-60,-30}},
104          rotation=0)));
105  Modelica.Electrical.Analog.Ideal.IdealOpAmp3Pin Op3
106    annotation (Placement(transformation(extent={{6,-70},{46,-30}}, rotation=0)));
107  Modelica.Electrical.Analog.Basic.Ground G1
108    annotation (Placement(transformation(extent={{-87,-96},{-73,-80}}, rotation=
109           0)));
110  Modelica.Electrical.Analog.Basic.Resistor R6
111    annotation (Placement(transformation(extent={{-31,-10},{-11,10}}, rotation=
112            0)));
113  Modelica.Electrical.Analog.Basic.Resistor R7
114    annotation (Placement(transformation(extent={{-31,-60},{-11,-40}}, rotation=
115           0)));
116  Modelica.Electrical.Analog.Basic.Capacitor C6(C=c2 + c3 + c4) 
117    annotation (Placement(transformation(extent={{9,10},{29,30}}, rotation=0)));
118  Modelica.Electrical.Analog.Basic.Resistor R8(R=-1) 
119    annotation (Placement(transformation(extent={{60,-10},{80,10}}, rotation=0)));
120  Modelica.Electrical.Analog.Basic.Resistor R9(R=-1) 
121    annotation (Placement(transformation(extent={{60,-60},{80,-40}}, rotation=0)));
122  Modelica.Electrical.Analog.Basic.Resistor R10
123    annotation (Placement(transformation(extent={{160,-60},{180,-40}}, rotation=
124           0)));
125  Modelica.Electrical.Analog.Ideal.IdealOpAmp3Pin Op4
126    annotation (Placement(transformation(extent={{100,-70},{140,-30}}, rotation=
127           0)));
128  Modelica.Electrical.Analog.Ideal.IdealOpAmp3Pin Op5
129    annotation (Placement(transformation(extent={{200,-70},{240,-30}}, rotation=
130           0)));
131  Modelica.Electrical.Analog.Basic.Capacitor C7(C=l2) 
132    annotation (Placement(transformation(extent={{110,10},{130,30}}, rotation=0)));
133  Modelica.Electrical.Analog.Basic.Capacitor C8(C=c4) 
134    annotation (Placement(transformation(extent={{160,-150},{180,-130}},
135          rotation=0)));
136  Modelica.Electrical.Analog.Basic.Capacitor C9(C=c4 + c5) 
137    annotation (Placement(transformation(extent={{208,-10},{228,10}}, rotation=
138            0)));
139  Modelica.Electrical.Analog.Basic.Resistor R11
140    annotation (Placement(transformation(extent={{209,30},{229,50}}, rotation=0)));
141protected
142  Modelica.Electrical.Analog.Interfaces.NegativePin n1
143    annotation (Placement(transformation(extent={{-214,-42},{-210,-38}},
144          rotation=0)));
145protected
146  Modelica.Electrical.Analog.Interfaces.NegativePin n2
147    annotation (Placement(transformation(extent={{-214,-2},{-210,2}}, rotation=
148            0)));
149protected
150  Modelica.Electrical.Analog.Interfaces.NegativePin n3
151    annotation (Placement(transformation(extent={{-214,18},{-210,22}}, rotation=
152           0)));
153protected
154  Modelica.Electrical.Analog.Interfaces.NegativePin n4
155    annotation (Placement(transformation(
156        origin={-160,20},
157        extent={{2,2},{-2,-2}},
158        rotation=180)));
159protected
160  Modelica.Electrical.Analog.Interfaces.NegativePin n5
161    annotation (Placement(transformation(extent={{-114,-52},{-110,-48}},
162          rotation=0)));
163protected
164  Modelica.Electrical.Analog.Interfaces.PositivePin p1
165    annotation (Placement(transformation(extent={{-154,-142},{-148,-138}},
166          rotation=0)));
167protected
168  Modelica.Electrical.Analog.Interfaces.NegativePin n6
169    annotation (Placement(transformation(extent={{-62,18},{-58,22}}, rotation=0)));
170protected
171  Modelica.Electrical.Analog.Interfaces.NegativePin n7
172    annotation (Placement(transformation(extent={{-6,-52},{-2,-48}}, rotation=0)));
173protected
174  Modelica.Electrical.Analog.Interfaces.NegativePin n8
175    annotation (Placement(transformation(extent={{-6,-2},{-2,2}}, rotation=0)));
176protected
177  Modelica.Electrical.Analog.Interfaces.PositivePin p2
178    annotation (Placement(transformation(extent={{-6,18},{-2,22}}, rotation=0)));
179protected
180  Modelica.Electrical.Analog.Interfaces.PositivePin out1
181    annotation (Placement(transformation(extent={{44,-142},{48,-138}}, rotation=
182           0)));
183protected
184  Modelica.Electrical.Analog.Interfaces.PositivePin p3
185    annotation (Placement(transformation(extent={{58,58},{62,62}}, rotation=0)));
186protected
187  Modelica.Electrical.Analog.Interfaces.NegativePin n9
188    annotation (Placement(transformation(extent={{86,-2},{90,2}}, rotation=0)));
189protected
190  Modelica.Electrical.Analog.Interfaces.NegativePin n10
191    annotation (Placement(transformation(extent={{86,-52},{90,-48}}, rotation=0)));
192protected
193  Modelica.Electrical.Analog.Interfaces.NegativePin n11
194    annotation (Placement(transformation(extent={{138,18},{142,22}}, rotation=0)));
195public
196  Modelica.Electrical.Analog.Basic.Ground G2
197    annotation (Placement(transformation(extent={{12,-96},{26,-80}}, rotation=0)));
198protected
199  Modelica.Electrical.Analog.Interfaces.NegativePin n12
200    annotation (Placement(transformation(extent={{238,38},{242,42}}, rotation=0)));
201protected
202  Modelica.Electrical.Analog.Interfaces.NegativePin n13
203    annotation (Placement(transformation(extent={{238,-2},{242,2}}, rotation=0)));
204protected
205  Modelica.Electrical.Analog.Interfaces.PositivePin p4
206    annotation (Placement(transformation(extent={{188,-2},{194,2}}, rotation=0)));
207protected
208  Modelica.Electrical.Analog.Interfaces.NegativePin n14
209    annotation (Placement(transformation(extent={{188,-52},{194,-48}}, rotation=
210           0)));
211public
212  Modelica.Electrical.Analog.Basic.Ground G3
213    annotation (Placement(transformation(extent={{113,-96},{127,-80}}, rotation=
214           0)));
215  Modelica.Electrical.Analog.Basic.Ground G4
216    annotation (Placement(transformation(extent={{213,-96},{227,-80}}, rotation=
217           0)));
218  Modelica.Electrical.Analog.Sources.StepVoltage V(startTime=1) 
219    annotation (Placement(transformation(
220        origin={-240,-170},
221        extent={{-10,-10},{10,10}},
222        rotation=90)));
223  Modelica.Electrical.Analog.Basic.Ground Ground1
224    annotation (Placement(transformation(extent={{-246,-202},{-234,-190}},
225          rotation=0)));
226equation
227  connect(Op1.in_p, G.p) annotation (Line(points={{-200,-60},{-200,-70},{-180,
228          -70},{-180,-80},{-181,-80}}, color={0,0,255}));
229  connect(G1.p, Op2.in_p) annotation (Line(points={{-80,-80},{-80,-70},{-100,
230          -70},{-100,-60}}, color={0,0,255}));
231  connect(R1.n, n1) annotation (Line(points={{-220,-40},{-212,-40}}, color={0,0,
232          255}));
233  connect(n1, Op1.in_n) annotation (Line(points={{-212,-40},{-200,-40}}, color=
234          {0,0,255}));
235  connect(C2.n, n1) annotation (Line(points={{-220,-80},{-212,-80},{-212,-40}},
236        color={0,0,255}));
237  connect(R2.n, n2) 
238    annotation (Line(points={{-220,0},{-212,0}}, color={0,0,255}));
239  connect(n1, n2) 
240    annotation (Line(points={{-212,-40},{-212,0}}, color={0,0,255}));
241  connect(n2, n3) 
242    annotation (Line(points={{-212,0},{-212,20}}, color={0,0,255}));
243  connect(n3, C1.p) 
244    annotation (Line(points={{-212,20},{-192,20}}, color={0,0,255}));
245  connect(n3, R3.p) annotation (Line(points={{-212,20},{-212,60},{-193,60}},
246        color={0,0,255}));
247  connect(C1.n, n4) 
248    annotation (Line(points={{-172,20},{-160,20}}, color={0,0,255}));
249  connect(R3.n, n4) annotation (Line(points={{-173,60},{-160,60},{-160,20}},
250        color={0,0,255}));
251  connect(n4, Op1.out) annotation (Line(points={{-160,20},{-160,-50}}, color={0,
252          0,255}));
253  connect(R4.p, Op1.out) annotation (Line(points={{-140,-50},{-160,-50}}, color=
254         {0,0,255}));
255  connect(C5.p, Op1.out) annotation (Line(points={{-30,-110},{-160,-110},{-160,
256          -50}}, color={0,0,255}));
257  connect(R4.n, n5) annotation (Line(points={{-120,-50},{-112,-50}}, color={0,0,
258          255}));
259  connect(n5, Op2.in_n) annotation (Line(points={{-112,-50},{-112,-40},{-100,
260          -40}}, color={0,0,255}));
261  connect(C3.p, n5) annotation (Line(points={{-90,20},{-112,20},{-112,-50}},
262        color={0,0,255}));
263  connect(R5.n, n5) annotation (Line(points={{-120,-90},{-112,-90},{-112,-50}},
264        color={0,0,255}));
265  connect(R5.p, p1) annotation (Line(points={{-140,-90},{-151,-90},{-151,-140}},
266        color={0,0,255}));
267  connect(C2.p, p1) annotation (Line(points={{-240,-80},{-240,-140},{-151,-140}},
268        color={0,0,255}));
269  connect(C3.n, n6) 
270    annotation (Line(points={{-70,20},{-60,20}}, color={0,0,255}));
271  connect(n6, Op2.out) 
272    annotation (Line(points={{-60,20},{-60,-50}}, color={0,0,255}));
273  connect(R2.p, n6) annotation (Line(points={{-240,0},{-240,80},{-60,80},{-60,
274          20}}, color={0,0,255}));
275  connect(Op2.out, R7.p) 
276    annotation (Line(points={{-60,-50},{-31,-50}}, color={0,0,255}));
277  connect(R7.n, n7) 
278    annotation (Line(points={{-11,-50},{-4,-50}}, color={0,0,255}));
279  connect(n7, Op3.in_n) annotation (Line(points={{-4,-50},{-4,-40},{6,-40}},
280        color={0,0,255}));
281  connect(C5.n, n7) annotation (Line(points={{-10,-110},{-4,-110},{-4,-50}},
282        color={0,0,255}));
283  connect(R6.n, n8) 
284    annotation (Line(points={{-11,0},{-4,0}}, color={0,0,255}));
285  connect(n7, n8) annotation (Line(points={{-4,-50},{-4,0},{-4,0}}, color={0,0,
286          255}));
287  connect(C6.p, p2) 
288    annotation (Line(points={{9,20},{-4,20}}, color={0,0,255}));
289  connect(n8, p2) 
290    annotation (Line(points={{-4,0},{-4,20}}, color={0,0,255}));
291  connect(C4.n, p2) annotation (Line(points={{-10,40},{-4,40},{-4,20}}, color={
292          0,0,255}));
293  connect(C6.n, Op3.out) annotation (Line(points={{29,20},{46,20},{46,-50}},
294        color={0,0,255}));
295  connect(R9.p, Op3.out) 
296    annotation (Line(points={{60,-50},{46,-50}}, color={0,0,255}));
297  connect(Op3.out, out1) 
298    annotation (Line(points={{46,-50},{46,-140}}, color={0,0,255}));
299  connect(p1, out1) annotation (Line(points={{-151,-140},{46,-140}}, color={0,0,
300          255}));
301  connect(out1, C8.p) annotation (Line(points={{46,-140},{160,-140}}, color={0,
302          0,255}));
303  connect(C4.p, p3) annotation (Line(points={{-30,40},{-40,40},{-40,60},{60,60}},
304        color={0,0,255}));
305  connect(p3, R8.p) 
306    annotation (Line(points={{60,60},{60,0}}, color={0,0,255}));
307  connect(R8.n, n9) 
308    annotation (Line(points={{80,0},{88,0}}, color={0,0,255}));
309  connect(n9, n10) 
310    annotation (Line(points={{88,0},{88,-50}}, color={0,0,255}));
311  connect(R9.n, n10) 
312    annotation (Line(points={{80,-50},{88,-50}}, color={0,0,255}));
313  connect(n10, Op4.in_n) annotation (Line(points={{88,-50},{88,-40},{100,-40}},
314        color={0,0,255}));
315  connect(n9, C7.p) annotation (Line(points={{88,0},{88,20},{110,20}}, color={0,
316          0,255}));
317  connect(C7.n, n11) 
318    annotation (Line(points={{130,20},{140,20}}, color={0,0,255}));
319  connect(R6.p, n11) annotation (Line(points={{-31,0},{-48,0},{-48,80},{140,80},
320          {140,20}}, color={0,0,255}));
321  connect(n11, Op4.out) 
322    annotation (Line(points={{140,20},{140,-50}}, color={0,0,255}));
323  connect(Op4.out, R10.p) 
324    annotation (Line(points={{140,-50},{160,-50}}, color={0,0,255}));
325  connect(G2.p, Op3.in_p) annotation (Line(points={{19,-80},{6,-80},{6,-60}},
326        color={0,0,255}));
327  connect(R11.n, n12) 
328    annotation (Line(points={{229,40},{240,40}}, color={0,0,255}));
329  connect(p3, n12) annotation (Line(points={{60,60},{240,60},{240,40}}, color={
330          0,0,255}));
331  connect(C9.n, n13) 
332    annotation (Line(points={{228,0},{240,0}}, color={0,0,255}));
333  connect(n12, n13) 
334    annotation (Line(points={{240,40},{240,0}}, color={0,0,255}));
335  connect(n13, Op5.out) 
336    annotation (Line(points={{240,0},{240,-50}}, color={0,0,255}));
337  connect(C9.p, p4) 
338    annotation (Line(points={{208,0},{191,0}}, color={0,0,255}));
339  connect(R11.p, p4) annotation (Line(points={{209,40},{191,40},{191,0}}, color=
340         {0,0,255}));
341  connect(R10.n, n14) 
342    annotation (Line(points={{180,-50},{191,-50}}, color={0,0,255}));
343  connect(p4, n14) 
344    annotation (Line(points={{191,0},{191,-50}}, color={0,0,255}));
345  connect(Op5.in_n, n14) annotation (Line(points={{200,-40},{191,-40},{191,-50}},
346        color={0,0,255}));
347  connect(C8.n, n14) annotation (Line(points={{180,-140},{191,-140},{191,-50}},
348        color={0,0,255}));
349  connect(Op4.in_p, G3.p) annotation (Line(points={{100,-60},{100,-80},{120,-80}},
350        color={0,0,255}));
351  connect(Op5.in_p, G4.p) annotation (Line(points={{200,-60},{200,-80},{220,-80}},
352        color={0,0,255}));
353  connect(V.p, Ground1.p)            annotation (Line(points={{-240,-180},{-240,
354          -190}}, color={0,0,255}));
355  connect(V.n, R1.p)            annotation (Line(points={{-240,-160},{-250,-160},
356          {-250,-40},{-240,-40}}, color={0,0,255}));
357end CauerLowPassOPV;
Note: See TracBrowser for help on using the browser.