Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Spice3, ngspice, problem z wyświetlaniem danych

nusch 14 Dec 2008 03:19 1047 1
  • #1
    nusch
    Level 15  
    Witam

    Muszę mam układ z sinusoidalnym źródlem napięcia i kilkanaście elemetnów(rezystory, kondensatory, cewka), muszę zmierzyć napięcie w punktach układu od 1-10, zapisanie całości w formacie spice nie sprawiło mi żadnego problemu, ale mam duży problem z odczytaniem jakichkolwiek danych, nie wiem jak odczytać napięcie po ustabilizowaniu się układu. Układ wygląda tak:
    Code:
    MY BOARD
    

    *generator:
    Vgen    12 0 SIN(0 2.5V 1K) 0 0
    Rgen    12 1 600
    *rezystory:
    R1      1 8 2.2K
    R2      8 7 2.21K
    R3      9 0 1.95K
    R4      4 5 2.02K
    R5      8 10 3.95K
    R6      2 3 3.92K
    Radd    2 8 800
    *kondensatory
    C1      6 9 26.6nF
    C2      5 6 9.4nF
    C3      4 3 9.4nF
    C4      10 0 44.4nF
    *cewka
    L       6 11 361mH
    Rl      11 7 398

    *unikniecie problemu floating nodes
    Rbig   4 0 1000G

    .OPTIONS ITL=100
    .SAVE
    .END

    Próbowałem np tak:
    Code:

    ngspice 233 ->  tran 0.1 2
    Doing analysis at TEMP = 300.150000 and TNOM = 300.150000
    Warning: vgen: no DC value, transient time 0 value used



    Initial Transient Solution
    --------------------------

    Node                                   Voltage
    ----                                   -------
    12                                           0
    1                                            0
    8                                            0
    7                                            0
    9                                            0
    4                                            0
    5                                            0
    10                                           0
    2                                            0
    3                                            0
    6                                            0
    11                                           0
    l#branch                                     0
    vgen#branch                                  0

     Reference value :  0.00000e+00
     Reference value :  2.82157e-01
     Reference value :  5.63383e-01
     Reference value :  8.10506e-01
     Reference value :  1.06221e+00
     Reference value :  1.31399e+00
     Reference value :  1.54897e+00
     Reference value :  1.81315e+00

    No. of Data Rows : 41802
    ngspice 234 -> print V(8)

                              Transient Analysis  Sun Dec 14 03:11:01  2008
    --------------------------------------------------------------------------------
    Index   time            V(8)
    --------------------------------------------------------------------------------
    0       0.000000e+00    0.000000e+00
    1       1.000000e-04    8.589557e-01
    2       1.010724e-04    8.671125e-01
    3       1.032173e-04    8.833470e-01
    4       1.075069e-04    9.155278e-01
    5       1.160863e-04    9.786273e-01
    6       1.332449e-04    1.098998e+00
    7       1.675623e-04    1.311270e+00
    8       2.066042e-04    1.496887e+00
    9       2.569285e-04    1.632992e+00
    10      3.093722e-04    1.639690e+00
    11      3.478537e-04    1.555789e+00
    12      3.829244e-04    1.416759e+00
    13      4.183118e-04    1.221620e+00
    14      4.561456e-04    9.613271e-01

    W jaki sposób otrzymać pojedyczną wartość po kilku sekundach od włączenia , taką jaka pokazałaby się na woltomierzu?

    I drugi problem z wyświetleniem czegokolwiek np:
    Code:

    ngspice 236 -> exit
    Warning: the following plots haven't been saved:
    tran2   MY BOARD, Transient Analysis
    tran1   MY BOARD, Transient Analysis

    Are you sure you want to quit (yes)? no
    ngspice 237 -> print trans1
    Error: trans1: no such vector.
    ngspice 238 -> plot trans1
    Error: no such vector trans1
    ngspice 239 -> display trans1
    Error: no such vector as trans1.
  • #2
    NapalmBabciWPiecu
    Level 2  
    Ja do wyświetlania wyników używam gnuplot, a wcześniej wyniki zapisuje używając komendy spice: wrdata

    Jak chcesz wyciągnąc jedną daną (po 2 sekundach), to nie ma problemu, musisz tylko odpowiednio manipulować argumentami <start_time> <stop_time> z komendy tran.

    Ewentualnie można po zapisie wyciągnąć daną używając narzędzia awk/bash (dostępnego w jedynym słusznym systemie operacyjnym), albo instalując cygwina pod Windowsem.

    Tutaj wklejam linka z przykladami dotyczacymi ngspice:
    http://www.michalkrzyz.cajogoshost.com/blog/chains/spice_simulations.php