Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Proteus Problem with Analog Simulation

Status
Not open for further replies.

hyprfrcx

Junior Member level 1
Junior Member level 1
Joined
Feb 7, 2018
Messages
16
Helped
4
Reputation
8
Reaction score
4
Trophy points
3
Activity points
149
I have a serious problem with Labcenter Electronics, Proteus Professional 8.

What i need is to simulate nonlinear analog current sources with several variables, mainly, a function I(V1,...,Vn,I1,...In). Some matematical functions and if-else conditions.
Nothing so complex but enough for making me to write some expressions or a few lines of code.
An expression, after all.

NODE Command
At first i went into EasyHDL NODE Command, with expressions documented solely in the program help (and in some google site which mainly replicate them in an exact way), like that:
NODE V(MyAnalogPin)
NODE I(MyAnalogPin)
NODE V(MyAnalogPin1,MyAnalogPin2)
NODE I(MyAnalogPin1,MyAnalogPin2)
NODE VOUT(MyAnalogPin)


All them embedded inside a Generator as Local code or as a Text Script enclosed as:
*SCRIPT PROGRAM MYCODE
<NODE declarations>
<expressions>
*ENDSCRIPT


or
*SCRIPT GENERATOR MYSIGNAL
<NODE declarations>
<expressions>
*ENDSCRIPT


The second case is out of my use, because i am clear with signals, i am looking for functions.

None of the written sintaxis worked actually. I didnt find any working sample not any functional tutorial in the whole internet.



SPICE Support

Moreover, i then switched into using a Spice code inside Proteus. My surprise was huge by realizing that the standard Spice function GXXXX is not supported for expressions!. Hence this s not valid when tried:
G1 1 2 3 4 value={<F(V(1),...,V(n),I(1),...,I(n))>}

This is confirmed in here by a Proteus specialist.
https://support.labcenter.com/forums/viewtopic.php?f=9&t=6330&p=21028&hilit=EasyHDL#p21063



Hence, i concluded that Proteus simply do not supports the EasyHDL NODE commands for designing an analog block, nor SPICE GXXXX nonlinear expressions.

What i believe is they were removed due to convergence issues, as the Proteus specialist explained in the same post at their forum.

So how should i simulate nonlinear expressions after all?
Or i should simply switch to another, better program?
 

So how should i simulate nonlinear expressions after all?
Or i should simply switch to another, better program?

With LTSpice I have made simulation of complex signals just by using the "Voltage-depentent-voltage-source" primitive to build functions that make use of either nodes and constant parameters. I admit that it is not the most ellegant way to achieve that, but worked fine. You can find a clue of what I'm talking about on 2nd paragraph of the post #7 of this thread. The only drawback I see in that approach is that you should previously to be aware of the node names to be added in the function, but if you create a device having input pins as argument entries of the in built function, perhaps you could do the same in Proteus.
 
This 1993 Spice 3f3 Manual in pdf, which i think it is roughly the same than this unofficial online document for the **broken link removed** in html.
The 1993 Spice 3f5 is the current Spice version, and should be the reference for the ProSpice implementation inside Proteus according this LabCenter Forum Thread.

Nonlinear Source Spice model inside Proteus now works!.


The proper syntaxis was:
B1 node1 node2 V=<expression>
B1 node1 node2 I=<expression>

Such as in the following working sample code:
* SUB CIRCUIT
.SUBCKT G1 1 2 3 4
B1 3 0 V=v(1)+v(2)
B2 4 0 V=v(1)*v(2)
.ENDS



Unfortunately, the EasyHDL for Analog pins is still a mistery....
 
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top