11module CauerLowPassFilterModel
22
33using Modia
4- using Test
54@usingModiaPlot
65
76include (" $(Modia. modelsPath) /Electric.jl" )
@@ -17,11 +16,11 @@ c5 = 0.7262*1u"F"
1716CauerLowPassOPVWithoutNodes (i= 1 ) = Model (
1817 # Cauer low pass filter with operational amplifiers
1918
20- C1 = Capacitor | Map (C= c1 + c2),
19+ C1 = Capacitor | Map (C= c1 + c2),
2120 C2 = Capacitor | Map (C= c2, v= Var (init= nothing )),
22- C3 = Capacitor | Map (C= l1* 1 u " F" ),
21+ C3 = Capacitor | Map (C= l1* 1 u " F" ),
2322 C4 = Capacitor | Map (C= c4* i, v= Var (init= nothing )),
24- C5 = Capacitor | Map (C= c2, v= Var (init= nothing )),
23+ C5 = Capacitor | Map (C= c2, v= Var (init= nothing )),
2524 R1 = Resistor | Map (R= 1 u " Ω" ),
2625 R2 = Resistor | Map (R= 1 u " Ω" ),
2726 R3 = Resistor | Map (R= 1 u " Ω" ),
@@ -40,9 +39,9 @@ CauerLowPassOPVWithoutNodes(i=1) = Model(
4039 R10 = Resistor | Map (R= 1 u " Ω" ),
4140 Op4 = IdealOpAmp3Pin,
4241 Op5 = IdealOpAmp3Pin,
43- C7 = Capacitor | Map (C= l2* 1 u " F" ),
44- C8 = Capacitor | Map (C= c4, i= Var (start= 0 u " A" )),
45- C9 = Capacitor | Map (C= c4 + c5),
42+ C7 = Capacitor | Map (C= l2* 1 u " F" ),
43+ C8 = Capacitor | Map (C= c4, i= Var (start= 0 u " A" )),
44+ C9 = Capacitor | Map (C= c4 + c5),
4645 R11 = Resistor | Map (R= 1 u " Ω" ),
4746
4847 G2 = Ground,
@@ -51,23 +50,23 @@ CauerLowPassOPVWithoutNodes(i=1) = Model(
5150 V = ConstantVoltage | Map (V= 1.0 u " V" ),
5251 Ground1 = Ground,
5352
54- connect = :[
55- (Op1. in_p, G. p)
56- (G1. p, Op2. in_p)
57- (R1. n, Op1. in_n, C2. n, R2. n, C1. p, R3. p)
58- (R3. n, C1. n, Op1. out, R4. p, C5. p)
59- (R4. n, Op2. in_n, C3. p, R5. n)
60- (C2. p, R5. p, Op3. out, C6. n, R9. p, C8. p)
53+ connect = :[
54+ (Op1. in_p, G. p)
55+ (G1. p, Op2. in_p)
56+ (R1. n, Op1. in_n, C2. n, R2. n, C1. p, R3. p)
57+ (R3. n, C1. n, Op1. out, R4. p, C5. p)
58+ (R4. n, Op2. in_n, C3. p, R5. n)
59+ (C2. p, R5. p, Op3. out, C6. n, R9. p, C8. p)
6160 (C3. n, Op2. out, R2. p, R7. p)
62- (R7. n, Op3. in_n, C5. n, R6. n, C6. p, C4. n)
61+ (R7. n, Op3. in_n, C5. n, R6. n, C6. p, C4. n)
6362 (C4. p, R8. p, R11. n, C9. n, Op5. out)
64- (R9. n, R8. n, Op4. in_n, C7. p)
63+ (R9. n, R8. n, Op4. in_n, C7. p)
6564 (R6. p, C7. n, Op4. out, R10. p)
66- (G2. p, Op3. in_p)
67- (R11. p, C9. p, R10. n, Op5. in_n, C8. n)
68- (Op4. in_p, G3. p)
69- (Op5. in_p, G4. p)
70- (V. p, Ground1. p)
65+ (G2. p, Op3. in_p)
66+ (R11. p, C9. p, R10. n, Op5. in_n, C8. n)
67+ (Op4. in_p, G3. p)
68+ (Op5. in_p, G4. p)
69+ (V. p, Ground1. p)
7170 (V. n, R1. p) ]
7271)
7372
@@ -82,7 +81,7 @@ println("Build array of $n Cauer low pass filters")
8281model = @instantiateModel(Filters, logDetails=false, logTiming=true, unitless=true)
8382
8483println("Simulate")
85- @time simulate!(model, Tsit5(), stopTime = 60, requiredFinalStates =
84+ @time simulate!(model, Tsit5(), stopTime = 60, requiredFinalStates =
8685 [-0.5000732186007855, -0.5002239998029879, 0.4996923410661849, -0.4996706636198064, -0.5000929741546876, -0.5001255383344897, -0.500147742207576, 0.49981113006573824, -0.4996196061432069, -0.5001392063603706, -0.5001815616147427, -0.5000459266587362, 0.49996685095395915, -0.49958392015463465, -0.5001886259176451, -0.5002389821958331, -0.4999173001411904, 0.5001611780149184, -0.49957016523210945, -0.5002393712119582, -0.5002944833191254, -0.49976183273648583, 0.5003940588092074, -0.49958591550449066, -0.5002887040151874, -0.500343478728503, -0.4995812991530469, 0.5006629055320556, -0.49963969356758026, -0.5003327561376948, -0.50037980690654, -0.49938004306850625, 0.5009615326279456, -0.4997407922705924, -0.5003662177501006, -0.500395375828166, -0.4991659724894459, 0.5012787730322307, -0.4998989295998676, -0.5003819572251011, -0.5003797586125351, -0.49895184523346914, 0.5015966895590688, -0.5001236602409048, -0.5003705619890064, -0.5003197458974357, -0.49875691633150787, 0.5018882791340892, -0.5004234377294563, -0.5003197904255381])
8786plot(model, ["filters_1.C9.v", "filters_2.C9.v", "filters_3.C9.v"])
8887end
0 commit comments