BODE-ROUTH
¡Plus!
v7.0
(para la HP48-GX)

por
Apolonio Francisco González Herrero

"Tanto creemos saber que nuestra propio arrogancia nos ciega impidiéndonos ver lo más evidente: no somos nada"

¡¡ GRACIAS !! ...

... a todos los que os tomáis un momento de vuestra vida para mandarme algún comentario sobre esta u otras librerías, acerca de aspectos a mejorar, ideas ...

... Y ... ¡¡ PERDÓN !! ...

... porque debido al poco tiempo del que dispongo no puedo probar a fondo las librerías y seguro que hay muchas erratas.

A lo largo de este documento encontrarás diversas notas como ésta. Por favor, léelas, son importantes.

ÍNDICE

INTRODUCCIÓN
(Nota para usuarios del modelo G)

LOS FICHEROS

LA INSTALACIÓN

ANTES DE EMPEZAR

LOS COMANDOS

Bode Nyquist Nichols Lugar de las raíces Respuesta Datos
Controladores Continuo a discreto Cierra el lazo Routh    

POR EJEMPLO...

Bode

Nyquist

Nyquist+Resp

Nichols

Nichols

LugR

LugR+Datos+Routh

Resp+->LC+Datos

Datos

Cntr

C2DM+Datos+Resp

Routh

EL AUTOR

HISTORIAL DE CAMBIOS

INTRODUCCIÓN

Bode-Routh es una librería para la calculadora HP48 ( modelo GX ) que trabajando junto con la librería polinomial NEOPOLYS permite realizar múltiples cálculos relacionados con la ingeniería, principalmente en el campo del análisis y control de sistemas. Y aunque esta librería resuelve muchos tipos de problemas os recomiendo que antes de utilizarla sepáis lo que estáis haciendo porque siempre hay alguna errata que puede dar lugar a resultados erróneos que sólo pueden detectarse si uno sabe lo que se trae entre manos. Además desearía que esta librería sirviera más que como una herramienta para salir del paso en algún que otro examen o situación "arriesgada", como una utilidad para ahorrarse operaciones y tiempo de cálculo pero siempre sabiendo bien lo que se está haciendo, porque ésta es la única forma de aprovechar al 100% las posibilidades de Bode-Routh.

Sus principales ventajas frente a otras librerías del mismo estilo son:

Y sobre todo.....

NOTA PARA LOS USUARIOS DEL MODELO G

He recibido muchos comentarios de usuarios de los modelos G que se sienten un poco discriminados porque no pueden ejecutar Bode-Routh en su calculadora ya que después de instalar también la librería Neopolys no queda disponible la memoria suficiente. Pues bien, en un principio pensé en separar los comandos en librerías independientes, de forma que tuvieran una librería común, un núcleo, con los comandos comunes a todas para que así el usuario pudiera instalar sólo las utilidades que quisiera. Al final he desistido de esa idea por dos motivos principalmente: primero, actualmente me encuentro terminando mis estudios de ingeniería y no dispongo de mucho tiempo para dedicarme a esa tarea; segundo, las ampliaciones de memoria han bajado últimamente bastante de precio y ésta última opción es la solución a otros muchos problemas, no sólo el de falta de memoria para utilizar Bode-Routh.

Así que sintiéndolo mucho creo que Bode-Routh no estará disponible para el modelo G.

LOS FICHEROS

LA NSTALACIÓN

¡¡¡ ATENCIÓN !!!

ESTA LIBRERIA SÓLO FUNCIONARÁ BIEN SI ESTÁ INSTALADA LA LIBRERÍA POLINOMIAL "NEOPOLYS" VERSION 5.3 O SUPERIOR (la última en este momento es la 6.5) CON LA OPCIÓN QUE INCLUYE EL CALCULO DE TRANSFORMADAS DE LAPLACE Y Z.

Por lo demás, la instalación no tiene ningún misterio. Simplemente carga el archivo .lib que tenga la versión de Bode-Routh que prefieras ( con textos en inglés o en español ) mediante el servidor kermit del que dispongas, y el archivo .trn de Neopolys que hayas elegido, en función de si utilizas la librería Alg48 o no (véase manual de Neopolys). En el directorio de trabajo en el que estuvieras aparecerá una variable con el mismo nombre que el archivo que acabas de cargar. Pulsa la tecla A,B,C,D,E o F que corresponda a esa variable para poner su contenido en la pila y después de poner también en la pila el número del puerto en el que quieras almacenar la librería pulsa la tecla [STO] (por ejemplo 0 STO para el puerto 0 que viene por defecto en todas las HP48GX). Ahora sólo te resta apagar la calculadora y volverla a encender, o pulsar a la vez [ON]-[C].

ANTES DE EMPEZAR

La forma de representar los polinomios es la misma que se utiliza en la librería NEOPOLYS, es decir, mediante una lista que contiene los coeficientes ordenados de mayor a menor grado del exponente o úna lista doble conteniendo las raíces del polinomio. Por ejemplo:

se puede representar como

{ 1 -2 -5 6 }

o bien

{ { 1 3 -2 } }

El comando Routh tiene en cuenta el estado de los flags 2 y 3 a la hora de representar los resultados, esto es:

Te recomiendo que leas el manual de Neopolys para saber más acerca de esa librería.

LOS COMANDOS

Creo que es bastante obvio lo que hace cada comando. Además la mayoría de ellos son fáciles de entender y agradables de manejar pues están realizados a base de plantillas en las que sólo tienes que introducir los datos que desees. En la mayoría de las situaciones los valores por defecto son muchas veces suficientes para obtener un resultado satisfactorio.

 

 

Bode

Este comando te permitirá representar gráficamente los diagramas de Bode de la magnitud y de la fase. En el caso de la magnitud, el eje vertical representa el módulo de la función de transferencia en decibelios (dB); en el de la fase, el eje vertical es el argumento de la función de transferencia (en grados sexagesimales). Y en ambos casos el eje horizontal es el valor de la frecuencia EN ESCALA LOGARITMICA ( Log(w) ).

Los campos:

NUM: Numerador de la función de transferencia.

DEN: Denominador de la función de transferencia.

R : Introduce en este campo el retardo de la función de transferencia en caso de que lo haya. Te recuerdo que el retardo sólo afecta al diagrama de la fase.

T : Elige el tipo de gráfico a representar pulsando "CHOOS" o "+/-".

RES : Resolución del gráfico. Normalmente un número entre 0 y 1. Para que te hagas una idea representa más o menos la distancia entre dos puntos consecutivos de la gráfica. Disminuye su valor si quieres ganar en resolución, aunque evidentemente el trazado del gráfico será más lento.

Debido a que se utiliza una corrección en el trazado del diagrama de la fase para superar el límite ±180° que impone la calculadora y que no se produzcan los típicos saltos que aparecen cuando se supera ese límite, en algunos casos introducir un valor muy alto en este campo puede dar lugar a que el resultado no sea correcto. Si tienes dudas deja el valor por defecto pues casi siempre ofrece muy buena resolución y rapidez.

AUTO: Cuando está activada el eje vertical se escala automáticamente.

RH RV : Rangos horizontal y vertical del gráfico. Normalmente el valor de la izquierda corresponde al menor valor, pero si te equivocas no pasa nada porque se corrige automáticamente.

El menú:

EDIT, CHK, CHOOS: Son las típicas opciones que aparecen en los menús de edición de las plantillas que maneja la calculadora.

PICT : Te permite ir al entorno PICTURE que es donde se dibujan los diagramas.

BORRA: Borra el dibujo que hubiera en PICTURE.

GRAF : Dibuja el gráfico.

Después de pulsar [ NXT ] ...

ETIQ : Para etiquetar el gráfico, después de haberle dibujado, con los valores máximos y mínimos tanto verticales como horizontales. Por defecto está activado.

EJES : Cuando está activado (por defecto) dibuja los ejes.

Si antes de pulsar Bode pones en el nivel 2 de la pila el numerador de la función de transferencia y en el nivel 1 el denominador, los campos NUM y DEN se rellenan con esos valores. Asímismo, al salir del comando Bode obtendrás en los niveles 1 y 2 de la pila la función de transferencia contenida en los campos NUM y DEN.
Estando en cualquier campo puedes pulsar la tecla DEL para volver a restaurar el valor por defecto de ese campo o de todos. El valor por defecto de NUM y DEN es el que tuvieran la primera vez que entraste en Bode.
En el diagrama de la fase, verás punteadas las líneas de 180° y -180°.
Después de dibujar el diagrama, una vez dentro del entorno PICTURE, si pulsas (X,Y) para ver las coordenadas del cursor recuerda que EL EJE HORIZONTAL ESTA EN ESCALA LOGARITMICA, y el valor del eje horizontal que corresponde a la posición actual del cursor NO ES EL VALOR DE LA FRECUENCIA EN ESE PUNTO SINO DEL LOGARITMO DE LA FRECUENCIA. Es decir, si al pulsar (X,Y) ves:

X: 2.1234567 ; Y: 123E3

o si pulsas TRACE y ves

X: 2.1234567 ; Y: 123E3

en realidad EL VALOR DE LA FRECUENCIA EN ESE PUNTO ES:

y NO 2.1234567.

 

 

Nyquist

Con este comando podrás representar el diagrama de Nyquist de la función de transferencia que desees.

Los campos:

Todos los campos tienen el mismo significado que en el caso del diagrama de Bode salvo el etiquetado como w. Este valor indica el rango de valores de la frecuencia que se representarán. Así, un valor por defecto de 6.5 indica que el rango de valores va desde -6.5 hasta 6.5. Aumenta este valor cuando veas que faltan puntos por representar, normalmente entorno al punto (0,0), o deseas obtener una mayor resolución en esa zona.

Debido a la importancia del punto -1+0·j en el análisis del diagrama de Nyquist, cuando ese punto esté dentro de rango de visualización lo verás rodeado por un círculo.

El menú:

Es el mismo que el del comando Bode.

Cuanto mayor sea el valor del campo w más tardará en acabar de dibujarse el gráfico. Si ves que tarda mucho y quieres que termine sólo tienes que pulsar la tecla [ON] (CANCEL). Además, para valores muy altos de ese valor el autoescalado vertical no es muy exacto, y para ver bien el Nyquist es necesario que ajustes un poco los rangos de visualización.

 

 

Nichols

Con este comando podrás representar el diagrama de Nichols, o lo que es igual, el diagrama de ABS(G(jw)) frente a ARG(G(jw)) para la función de transferencia G(s).

Los campos:

Son exactamente los mismos y tienen el mismo significado que los del diagrama de Nyquist.

El menú:

Cuatro cuartos de lo mismo.

Para trazar el diagrama correctamente se debería haber implementado aquí también la corrección que se hizo en el diagrama de la fase en el comando Bode para poder superar el límite de ±180°, pero se prefirió dejarlo tal y como está porque así con un sólo vistazo se puede ver la estabilidad del sistema e incluso calcular aproximadamente los márgenes de fase y de ganancia ( aunque no las frecuencias de cruce ). Véase el ejemplo 4 . A pesar de todo esto se puede cambiar el ancho de la representación por si te interesa.
Puedes aplicar también aquí primera de las notas del comando Nyquist acerca del valor del campo w.

 

 

LugR

Mediante este comando podrás representar el lugar de las raíces de la FUNCIÓN DE TRANSFERENCIA DE LAZO ABIERTO que pongas en NUM y DEN. Es decir, se representan las soluciones de la ecuación:

para distintos valores de la ganancia K.

Los campos:

NUM, DEN : Numerador y denominador de la función de transferencia de lazo abierto.

RES : Resolución del gráfico. Disminuye este valor si quieres conseguir mayor resolución, teniendo en cuenta, claro está, que el trazado irá más lento.

RNGH, RNGV: Rangos horizontal y vertical de la representación respectivamente.

AU : Cuando esta casilla esté activa ( por defecto lo está ), se realizará un escalado automático de la gráfica, tanto horizontal como verticalmente, y también se ajusta automáticamente la resolución intentando conseguir que sea la óptima.

LIN : Por defecto el lugar de las raíces se dibuja con puntos. Activa esta casilla para conectar los puntos, aunque puede ir un poco más lento.

El menú:

Es el mismo que en casos anteriores.

Para terminar de trazar el lugar de las raíces pulsa cualquier tecla. Si ves que no responde mantén la tecla pulsada un tiempo.
Al dibujar el lugar de las raíces verás unas x y unos o que indican la localización de los polos y ceros de lazo abierto respectivamente.
A veces puede parecer que no dibuja nada o que va muy lento. Las posibles causas y su solución son:

1) La resolución es muy alta y los primeros puntos del diagrama ya están fuera de rango.

SOLUCIÓN: disminuye el valor del campo RES.

2) La resolución es muy baja y tarda mucho en dibujar cada punto.

SOLUCIÓN: aumenta el valor del campo RES.

 

 

Resp

Mediante este comando podrás representar la respuesta del sistema representado por la función de transferencia de LAZO CERRADO que desees para un sistema continuo o discreto ante una entrada del tipo:

  • Escalón
  • Impulso
  • Rampa
  • Seno

Los campos:

NUM, DEN : Estos campos contienen el numerador y el denominador de la función de transferencia DE LAZO CERRADO, de un sistema que puede ser continuo o discreto.

T : Tipo de entrada.

A : Si vas a representar la respuesta de un sistema continuo,introduce en este campo la amplitud de la señal de entrada. El significado de este campo para cada tipo de entrada es el siguiente:

Si el sistema con el que estás trabajando es discreto, introduce en este campo el valor del período de muestreo.

w: Sólo se tiene en cuenta este valor cuando la función de entrada es de tipo sinusoidal, e indica la frecuencia de la onda.

AUTO: Cuando esté activo, se realiza un escalado del eje vertical de forma automática.

RH, RV : Rangos horizontal y vertical de la representación.

El menú:

Sólo merecen especial atención las siguientes opciones:

INPU: Cuando esté activa, además de la respuesta se dibujará la entrada punteada. Salvo cuando la entrada sea la función impulso.

LINS: Desactiva esta opción si quieres dibujar la respuesta con puntos en lugar de con línea continua.

DISC: Activa esta opción cuando estés trabajando con un sistema discreto. Cada vez que cambies este valor podrás ver que el valor máximo del rango horizontal de visualización también se modifica para que no tengas que modificarlo tú mismo, pues normalmente los rangos de la gráfica de las respuestas discretas y continua no suelen ser los mismos.

No se han considerado en este caso funciones de transferencia con retardos porque la gráfica de la respuesta es exactamente la misma que sin ellos sólo que desplazada.
Después de realizar el gráfico en la variable EQ obtendrás la ecuación de la respuesta o lo que es igual, la antitransformada del producto de las funciones de transferencia del sistema y de la entrada, por si quieres observar cómo es o trabajar con ella.
No te olvides de activar DISC si estas trabajando con un sistema discreto y de introducir el valor del período de muestreo en el campo A.
Recuerda también que este comando trabaja con la función de transferencia DE LAZO CERRADO.

 

 

Datos

Con este comando puedes obtener un montón de datos muy útiles a la hora de analizar un sistema mediante su función de transferencia.

Las opciones:

 

Los resultados que puedes obtener son:

Algunas opciones merecen ciertos comentarios:

1) Al seleecionar los márgenes de fase y ganancia te pedirá el retardo de la función de transferencia. En caso de que no lo tenga, simplemente presiona [ENTER] (que es lo mismo que introducir un 0).
2) Puedes obtener los datos de la respuesta al escalón para un sistema continuo o discreto. La elección se realiza nada más elegir la obtención de los datos de la respuesta.

Para todos aquellos de vosotros a los que os gusta programar y desearíais obtener los resultados directamente sin tener que pasar por la pantalla principal de selección del tipo de cálculo a realizar se ha implementado en este comando esa posibilidad. Para ello, dependiendo de los resultados que queráis obtener deberéis poner en la pila los datos necesarios según se muestra a continuación:

3: numerador de la función de transferencia
2: denominador de la función de transferencia
1: 1

Con todo ello, tras ejecutar 'Datos' obtendríais lo siguiente:

1: Ancho de banda (AB)

4: numerador de la función de transferencia de lazo cerrado
3: denominador de la función de transferencia de lazo cerrado
2: Si el sistema es continuo pon un 0; si es discreto pon un 1.
1: 2

Obtendréis entonces los datos de la respuesta en el siguiente orden:

5: tiempo de establecimiento (para la banda del 2%) (ts(2%))
4:
sobre-impulso porcentual máximo (Mp(%))
3:
tiempo de pico (tp)
2:
valor de la salida en estado estacionario (cuando el tiempo tiende a infinito) (r(inf))
1:
error en estado estacionario (e)

3: numerador de la función de transferencia de lazo abierto
2: denominador de la función de transferencia de lazo abierto
1: 3

Con lo que obtendrás:

1: lista doble con los polos de lazo cerrado

3: numerador de la función de transferencia de lazo abierto
2: denominador de la función de transferencia de lazo abierto
1: 4

Y si el lugar de las raíces de la función de transferencia que pusiste en los niveles 2 y 3 corta el eje imaginario, lo que obtendrás será:

1: una lista que contiene campos (dados mediante listas) de la forma

{ K { v1 v2 v3 ... } }

donde los valores vi indican los puntos de cruce con el eje imaginario, siendo valor de la ganancia en esos puntos igual a K.

3: numerador de la función de transferencia de lazo abierto
2: denominador de la función de transferencia de lazo abierto
1: 5

Obtendrás:

1: una lista doble con los polos de lazo abierto

3: numerador de la función de transferencia de lazo abierto
2: denominador de la función de transferencia de lazo abierto
1: 6

Obtendrás:

1: una lista doble con los ceros de lazo abierto


Cntr

Con este comando podrás calcular controladores sencillos ( proporcional (P), proporcional -derivativo (PD), proporcional-integral (PI) y proporcional-integral-derivativo (PID), tanto continuos como discretos, de forma que un sistema dado cumpla unas especificaciones en cuanto a cómo ha de ser su respuesta al escalón unitario.
Se suponen sistemas con realimentación unitaria negativa y controlador en serie con la función de transferencia de la planta, como se muestra a continuación:

Este comando se limita simplemente a buscar la solución que mejor se adapte a las especificaciones exigidas y según el tipo de controlador escogido. La elección del controlador a utilizar en cada caso la tendrás que hacer tú mismo o probar con todos y ver cuál es el que mejor funciona.

Los campos:

NUM, DEN : Numerador y denominador de la función de transferencia de lazo abierto.

TIPO : Selecciona el tipo de controlador a calcular. Puedes elegir entre controlador P, PD, PI o PID.

ESPEC: Elige la forma en la que vas a dar las especificaciones que se van a utilizar para calcular el controlador. Hay dos posibilidades:

Según esa figura el polo dominante estaría localizado en :

Sd = (-x,y) = - x + i·y.

El coeficiente de amortiguamiento es igual al coseno del ángulo beta que se muestra en la figura y el sobre-impulso está relacionado con el coeficiente de amortiguamiento por la expresión:

Además el tiempo de establecimiento (banda del 2%) también está relacionado con el coeficiente de amortiguamiento y con el módulo del polo dominante (wn en la figura) a través de la expresión:

Así pues, puede verse que variando la ubicación del polo dominante de lazo cerrado puede actuarse sobre el sobre-impulso y sobre el tiempo de establecimiento.
Aunque un sistema no sea de 2º orden, la presencia de un par de polos conjugados dominantes de lazo cerrado condiciona la respuesta del sistema, con lo que puede asimilarse, bajo ciertas condiciones, a un sistema de 2º orden.

La relación entre los parámetros de la respuesta del sistema y la ubicación de los polos dominantes en el caso discreto, se obtiene a partir de la correspondencia entre el plano s y el plano z dada por:

z = exp(T·s)

siendo T el período de muestreo.

En próximas versiones espero poder añadir compensadores en adelanto, atraso y atraso-adelanto al grupo de controladores posibles, así como la posibilidad de dar las especificaciones en términos de los márgenes de fase y de ganancia.

El menú:

Sólo merecen especial comentario las siguientes:

DISC: Activa esta opción cuando vayas a calcular un controlador discreto.

DATS: Cuando esta opción esté activada (por defecto lo está), después de calcular el controlador, además de los parámetros de éste obtendrás los datos de la respuesta del sistema controlado ante una entrada escalón (tiempo de establecimiento, sobre-impulso, etc...).

CNTR: Pulsa esta opción para comenzar el cálculo del controlador. Dependiendo del modo que hayas elegido para dar las especificaciones te encontrarás con una de estas pantallas:

 

DISC
desactivado

DISC
activado

Sd(Zd)

Error, Mp, ts

Después de introducir en la que corresponda estas ventanas las especificaciones requeridas y pulsar OK se calcula el controlador y se muestran los resultados en una pantalla como la siguiente

donde lo primero que aparece es la forma de la función de transferencia del controlador y a continuación aparecen los parámetros del mismo. Si activaste la opción DATS en la pantalla principal, debajo de los parámetros del controlador aparecerán los parámetros de la respuesta del sistema controlado ante un escalón unitario.
En el menú aparece una opción llamada GRAF que te permitirá saltar directamente al comando Resp de Bode-Routh, pasándole automáticamente la función de transferencia de lazo cerrado del sistema controlado en los campos NUM y DEN por si quieres dibujar el resultado.

Se muestra a continuación una tabla donde se relacionan las constantes proporcional, derivativa e integral de cada controlador en su forma usual, con las constantes que calcula Bode-Routh:

tipo
de
controlador
expresión
en
Bode-Routh
expresión
usual
Relación
entre
parámetros
P continuo
discreto
PD continuo
discreto
PI continuo
discreto
PID continuo
discreto

 

 

Routh

Aplica el criterio de Routh al polinomio del nivel 1 de la pila, obteniendo en ese nivel una lista con los coeficientes de la primera columna de la matriz de Routh, y en el nivel 2 la matriz completa. Se tienen en cuenta casos especiales como filas enteras de ceros o primer coeficiente de la fila anterior nulo ( que se sustituye por el valor 1.E-50 ). Se pueden introducir constantes y expresiones simbólicas. Véase el ejemplo 12 donde se muestra una aplicación de este criterio.

El resultado final dependerá del estado de los flags de usuario 2 y 3. El significado de estos flags es el mismo que en Neopolys, es decir, cuando esté activado el flag 2 se simplifica el resultado final y cuando lo esté el 3 se buscan posibles resultados numéricos en forma de fracciones.

 

C2DM

Con este comando puedes discretizar sistemas continuos aplicando dos de los métodos más comúnmente utilizados. Antes de utilizar este comando has de poner en la pila lo siguiente:

3: numerador del sistema continuo
2: denominador del sitema continuo
1: período de muestreo

Y lo que obtienes es:

2: numerador del sistema discreto
1: denominador del sitema discreto

El mismo comando te preguntará el método que deseas para realizar la conversión por medio de un cuadro de diálogo, dándote a elegir entre:

Este comando también ofrece la posibilidad de hacer la conversión directamente sin pasar por el cuadro de diálogo. Para ello tendrás que indicarle el método que quieres aplicar (Zho o bilineal) mediante un número en el nivel 1 de la pila (0 ó 1 respectivamente). Es decir, tendrías que poner en la pila lo siguiente:

4: numerador
3: denominador
2: período de muestreo
1: 0 para utilizar el método Zho ó 1 para utilizar el método bilineal

 

->LC

Dadas la función de transferencia directa y la de realimentación este comando permite obtener la función de transferencia de lazo cerrado con realimentación positiva o negativa, según se indique. En la pila has de poner lo siguiente:

5: numerador de la función de transferencia directa
4: denominador
de la función de transferencia directa
3:
numerador de la función de transferencia de realimentación
2: denominador de la función de transferencia de realimentación
1: número real positivo o negativo para indicar realimentación positiva o negativa respectivamente.

Obtendrás entonces la función de transferencia de lazo cerrado según se muestra a continuación:

2: numerador de la función de transferencia de lazo cerrado
1: denominador
de la función de transferencia de lazo cerrado

Voy a explicarlo un poco más por si queda alguna duda: Dado el sistema

la función de transferencia de lazo cerrado viene dada por

con la correspondencia de signos que se muestra, es decir, si la realimentación es positiva el signo en F(s) es negativo y viceversa.

Aunque el signo en F(s) es el contrario que el de la realimentación, el número real del nivel 1 ha de tener el mismo signo que la realimentación, no el signo que corresponde en la expresión de F(s).
Si el sistema tiene realimentación unitaria habría que poner en los niveles 2 y 3 el polinomio "{ 1 }".

EL AUTOR

La historia de mi vida es bastante aburrida así que paso olímpicamente de aburriros contándosla. De todas formas, cuando encontréis alguna errata en esta librería, os surja alguna duda, o se os ocurra alguna idea que pensáis pueda servir para mejorarla, por favor no dudéis en contactar conmigo escribiéndome a:

apolo1@usuarios.retecal.es

HISTORIAL DE CAMBIOS

CAMBIOS DESDE LA VERSIÓN 6.5

Se ha introducido el nuevo comando Cntr que permite el cálculo de controladores sencillos del tipo P, PD, PI Y PID.
Los comandos
Datos y C2DM ahora permiten obtener el resultado directamente sin pasar por las plantillas y cuadros de diálogo iniciales. Véase la ayuda de esos comandos para más información.
Aunque en esta ocasión no había erratas significativas ( ¡¡ ALELUYA !! ) se ha revisado el código y se han hecho algunas pequeñas modificaciones.
Se han reescrito los manuales en formato HTML para una mejor comprensión y visualización.
Se han añadido a los manuales 12 ejemplos de resolución de problemas de ingeniería de control con Bode-Routh.

CAMBIOS DESDE LA VERSIÓN 6.3

El principal cambio es la extracción de los comandos de datos que antes se encontraban dentro de los distintos comandos y su unión en un único comando llamado 'Datos'.
El cálculo del ancho de banda no era correcto.
Se han modificado varios aspectos del comando 'LugR' como son:

CAMBIOS DESDE LA VERSIÓN 6.1

Se ha añadido el nuevo comando 'C2DM'.
Se ha sustituido la opción de menú 'CNCT' del comando 'Resp' por 'DATS', para calcular los datos de la respuesta al ESCALON UNITARIO.
Se ha añadido la posibilidad de calcular el ANCHO DE BANDA dentro del comando 'Bode'.
Se han corregido algunas pequeñas erratas y optimizado un poco el código.
Se han cambiado los valores por defecto de los campos 'AUTO' y 'RES' del comando 'LugR'.
El comando 'LugR' ha sido completamente reescrito para aumentar algo la velocidad.

CAMBIOS DESDE LA VERSIÓN 6.0

Se actualizaron los comandos para poder utilizar las ventajas de la nueva versión 5.3 de Neopolys.
Se corrigieron algunas erratas de los manuales.

CAMBIOS DESDE LA VERSIÓN 5.9

Al actualizar Bode-Routh a la versión 5.8 cometí un pequeño error que hacía que las gráficas salieran siempre punteadas en lugar de con líneas.
Se corrigió el nombre de la opción de menú 'GRAF' del comando 'LUGR' que antes era 'DRAW', y se ajustó su resolución a 0.7 en lugar de a 1.
La opción de menú 'BORRA' no trabajaba adecuadamente algunas veces; borraba el gráfico que hubiera en 'PICT' pero no reseteaba, con lo que las dimensiones del gráfico seguían siendo las mismas que hubiera anteriormente.
Se corrigió el chequeo de los rangos horizontales y verticales de visualización, y ahora puedes introducir los valores menores y mayores en cualquier orden y se corrigen automáticamente situándolos en su correcta posición después de dibujar el gráfico y volver a la plantilla de datos.

CAMBIOS DESDE LA VERSIÓN 5.8

Se corrigió un error en el cálculo de los márgenes de fase y de ganancia que no permitía obtener esos valores para algunas funciones de transferencia.
Se ha añadido la posibilidad de representar la respuesta mediante puntos o líneas (especialmente útil para respuestas de sistemas discretos).

CAMBIOS DESDE LA VERSIÓN 5.6

Debido a un error en las versiones anteriores, en el cálculo de los márgenes de fase y de ganancia no se tenía en cuenta el retardo de la función de transferencia (si es que había alguno).
Debido a la incorporación del cálculo de transformadas Z en la librería Neopolys, se permite la representación de la respuesta de un sistema DISCRETO ante diversas entradas tipo mediante el comando "RESP".
Se actualizaron todos los comandos para poder utilizar las nuevas ventajas de la versión 4.4 de Neopolys.

CAMBIOS DESDE LA VERSIÓN 5.5

En el comando "MFG" del comando "BODE", lo que en la versión 5.5 se llamaba wcg era en realidad la wcf y viceversa. Se corrigió este error de notación.
El signo considerado al cerrar el lazo con el comando "->LC" no era el correcto. También se corrigió este problema.
Se han hecho otros pequeños cambios para poder utilizar la versión 4.1 de Neopolys.

CAMBIOS DESDE LA VERSIÓN 5.1

Se han revisado casi todos los comandos para que puedan aprovechar las ventajas de la nueva versión 4.0 de Neopolys y se ha hecho una extensa optimización del código resultando todo ello en una mayor velocidad de operación.
Algunos términos expresados en este manual no eran correctos. Así por ejemplo, en la versión 5.1 hablaba de polos de lazo cerrado cuando explicaba el comando para dibujar el lugar de las raíces y en realidad se trataba de polos de lazo abierto. Esta serie de erratas han sido revisadas y corregidas ( espero que no se me haya escapado alguna ).

CAMBIOS DESDE LA VERSIÓN 5.0

Se corrigió un error por el cual el cálculo de los márgenes de fase y de ganancia no era correcto cuando estaba activo el modo "RAD" (radianes).
El comando "Resp" tardaba más en dibujar la respuesta al impulso cuando estaba activa la opción "INPU" debido a que trataba de dibujar la función impulso. Este error fue corregido y ahora la función impulso no se dibuja aunque esté activa la opción de dibujar la entrada.