Voltage-Controlled Voltage Source (VCVS)

Symbol

../../../_images/VCVS.svg

Information

../../../_images/VCVS.png

A Voltage-Controlled Voltage Source (VCVS) is a dependent voltage source whose output voltage is proportional to a reference (control) voltage applied across a separate circuit branch. The fundamental equation governing VCVS is:

\[V_{out} = G_v \cdot V_{control}\]

Where:

  • \(V_{out}\) is the output voltage (Volts)

  • \(V_{control}\) is the controlling input voltage (Volts)

  • \(G_v\) is the voltage gain (dimensionless)

VCVS is commonly used in operational amplifiers, active filters, and circuit modeling.

Ports

  • cp, cn: Control voltage terminals

  • p, n: Output voltage terminals

Symbol description

Field

Value

Symbol.name

VCVS

Symbol.file

VCVS.sym

Symbol.directory

Basic

Symbol.referance

C

Model.name

VCVS

Model.file

VCVS.py

Model

The VCVS model implements an ideal voltage-controlled voltage source.

A VCVS provides an output voltage proportional to the control voltage.

Attributes:

  • V_control (signal): Input voltage signal that controls the output voltage, defined between nodes (cp, cn).

  • V_out (signal): Output voltage signal delivered to the circuit, defined between nodes (p, n).

  • Gv (param): Voltage gain (dimensionless), default is 1.0.

Methods:

analog(): Defines the VCVS behavior using the equation:

\[V_{out} = G_v \cdot V_{control}\]
from pyams.lib import model, signal, param, voltage

class VCVS(model):
    """
    Voltage-Controlled Voltage Source (VCVS) model.
    Implements the equation: V_out = Gv * V_control
    """

    def __init__(self, cp, cn, p, n):
        # Signal declaration
        self.V_control = signal('in', voltage, cp, cn)
        self.V_out = signal('out', voltage, p, n)

        # Parameter declaration
        self.Gv = param(1.0, '', 'Voltage gain')

    def analog(self):
        """Defines the VCVS behavior"""
        self.V_out += self.Gv * self.V_control

Command syntax

The syntax for defining a VCVS in a PyAMS simulation:

# Import the model
from pyams.models import VCVS

# VCVSname: is the name of the VCVS instance
# cp, cn: The control voltage terminals
# p, n: The output voltage terminals
VCVSname = VCVS(cp, cn, p, n)