# Quite Universal Circuit Simulator

Quite Universal Circuit Simulator o Qucs, es un simulador de circuitos electrónicos de código abierto cuya licencia de distribución es GNU GPL. Posee la capacidad de elaborar un circuito con una interfaz gráfica de usuario (GUI) y simular el comportamiento del circuito en modo de gran señal, pequeña señal y con ruido eléctrico. Soporta además, la simulación de circuitos digitales usando VHDL y/o Verilog.
Qucs soporta una lista creciente de componentes analógicos y digitales así como subcircuitos modelados en SPICE. Está pensado para ser mucho más sencillo de utilizar y manejar que otros simuladores de circuito como gEDA o PSPICE.

## Tipos de análisis

Los tipos de análisis que incluye son parámetros de dispersión o parámetros-S (incluyendo ruido), de corriente alterna AC (incluyendo ruido), de corriente continua DC, análisis transitorio, análisis en régimen armónico (todavía no finalizado), simulación digital (VHDL y Verilog-HDL) y variación de parámetros.

## Características generales

Qucs tiene una interfaz gráfica para elaborar esquemáticos. Los datos de simulación pueden representarse con varios tipos de diagramas, incluyendo el diagrama de Smith, diagramas cartesianos, tabulares, polares, combinación de polar y Smith, cartesianos en 3D, curvas de lugar, diagramas temporales y tablas de verdad.
La documentación ofrece muchos tutoriales útiles (WorkBook), informes (ReportBook) y una descripción técnica del simulador.
Otras características incluyen un calculador para líneas de transmisión, síntesis de Filtros, herramientas para el diagrama de Smith para potencia y ruido en adaptación de impedancias, síntesis para diseño de atenuadores, modelado de dispositivos y administrador de bibliotecas de subcircuitos, optimizador para diseños analógicos, interfaz Verilog-A, soporte para lenguajes múltiples (GUI y sistema de ayuda interna), jerarquía de subcircuitos (incluyendo parámetros), potente postproceso de datos utilizando ecuaciones y dispositivos lineales y no lineales definidos simbólicamente.

## Herramientas

Qucs consta de varios programas que interaccionan uno con otros a través de una GUI.
La GUI suele crear esquemáticos, realizar simulaciones, mostrar los resultados de las simulaciones, escribir código VHDL, etc.
El simulador analógico es un programa por línea de comandos el cual está ejecutado por la GUI para simular el circuito previamente elaborado en el esquemático. Toma una lista de nodos (netlist), controla si existen errores, realiza las acciones requeridas para la simulación, y finalmente produce un conjunto de datos como resultado.
El editor de texto suele exhibir la información de las listas de nodos y logs de la simulación, y para editar los archivos incluidos por ciertos componentes (p. ej. lista de nodos elaborados en SPICE, o archivos Touchstone).
La aplicación de síntesis de filtros puede usarse para diseñar varios tipos de filtros.
La calculadora de líneas de transmisión puede usarse para el diseño y analizar tipos diferentes de líneas de transmisión (p. ej. microstrips, cables coaxiales).
El administrador de bibliotecas de componente tiene modelos de dispositivos de la vida real (p. ej. transistores, diodos, puentes, amplificadores operacionales). Puede también ser extendida por el usuario.
La aplicación para la síntesis de atenuadores puede usarse para diseñar varios tipos de atenuadores pasivos.
El programa por línea de comandos de conversión es una herramienta que utiliza la GUI para importar y exportar conjunto de datos, lista de nodos y esquemáticos de y hacia otros software CAD/EDA. Los formatos de archivo soportados así como la información para utilizarlos puede encontrarse en la página man de qucsconv.
Además, la GUI tiene otras herramientas EDA. Para simulaciones digitales (vía VHDL) puede utilizarse el programa FreeHDL. Para optimización de circuitos (minimización de una función de costo), ASCO puede configurarse y ejecutarse.

## Componentes

Las categorías de componentes que proporciona son las siguientes:
* Componentes concentrados (R, L, C, amplificador, desfasador, etc.)
* Fuentes
* Sondas
* Líneas de transmisión
* Componentes no lineales (diodos, transistores, etc.)
* Componentes digitales
* Archivos contenedores (conjunto de datos de parámetros-S, lista de nodos elaborados en SPICE)
* Dibujos
También tiene una biblioteca de componentes que incluye varios componentes estándares disponibles en el mercado (puentes, diodos, varistores, LEDs, JFETs, MOSFETS, y muchos otros más).

## Modelos de transistores

QUCS proporciona muchos modelos de simulación para transistores. Estos incluyen:
* FBH-HBT
* HICUM L0 v1.12
* HICUM L0 v1.2
* HICUM L2 v2.1
* HICUM L2 v2.22
* HICUM L2 v2.23
* MESFET (Curtice, Statz, TOM-1 y TOM-2)
* SGP (SPICE Gummel-Poon)
* MOSFET
* JFET
* EPFL-EKV MOSFET v2.6.

## Funciones matemáticas

Las operaciones y las funciones que pueden ser aplicadas en ecuaciones QUCS son las siguientes:
| max(x,y): devuelve el valor más grande entre x e y min(x,y): devuelve el menor de los valores entre x e y rms(x): devuelve el valor medio cuadrático del vector x sum(x): suma de valores en el vector x prod(x): producto de valores en el vector x diff(y,x): diferencia del vector y con respecto a x diff(y,x,n): diferencia del vector y con respecto a x n-veces integrate(x,h): integra el vector x numéricamente suponiendo un paso constante h real(x): parte real de número complejo imag(x): parte imaginaria de número complejo abs(x): valor absoluto, magnitud de número complejo mag(x): mismo que abs(x) norm(x): norma de x conj(x): complejo conjugado de x phase(x): fase en grados angle(x): fase en radianes arg(x): mismo que angle(x) deg2rad(x): convierte grados a radianes rad2deg(x): convierte radianes a grados dB(x): decibelio de voltaje dbm(x): convierte voltaje a potencia en dB dbm2w(x): convierte potencia en dBm a potencia en vatios w2dbm(x): convierte potencia en vatios a potencia en dBm sqr(x): cuadrado (x al cuadrado) | sqrt(x): raíz cuadrada exp(x): función exponencial a base e ln(x): logaritmo natural log10(x): logaritmo decimal log2(x): logaritmo binario sin(x): seno cos(x): coseno tan(x): tangente sinh(x): seno hiperbólico cosh(x): coseno hiperbólico tanh(x): tangente hiperbólica arcsin(x): arco seno arccos(x): arco coseno arctan(x[,y]): arco tangente arccot(x): arco cotangente coth(x): cotangente hiperbólica ceil(x): redondeo al entero próximo más alto fix(x): trunca decimales de número real floor(x): redondea al entero próximo más bajo round(x): redondea al entero más cercano sign(x): computa el signo de la función sinc(x): devuelve sin(x)/x y uno en x=0 fft(x): computa la transformada rápida de fourier (FFT) del vector x ifft(x): computa la transformada rápida fourier inversa (IFFT) del vector x |