"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)
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.
¡¡¡ 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].
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.
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.
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.
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.
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.
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.
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:
- Escalón: El valor en este caso indica la amplitud del escalón
- Rampa : Al variar el valor varía la pendiente de la rampa
- Impulso: Su valor es indiferente y no se tiene en cuenta
- Seno : Indica la amplitud de la onda senoidal de entrada
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.
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:
- Márgenes de ganancia y de fase.
- Ancho de banda.
- Datos de la respuesta del sistema ante una entrada escalón unitario (tiempo de establecimiento, tiempo de pico, sobre-impulso, valor final y error en estado estacionario).
- Polos de lazo cerrado.
- Límites de estabilidad, o lo que es igual, los puntos donde el lugar de las raíces cruza el eje imaginario y el valor de la ganancia en esos puntos.
- Polos de lazo abierto.
- Ceros de lazo abierto.
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:
4: numerador de la función de transferencia
3: denominador de la función de transferencia
2: retardo de la función de transferencia ( 0 si no lo hubiera ).
1: 0 (número real cero)Obtendréis en los diferentes niveles de la pila lo siguiente:
4: margen de ganancia (MG)
3: frecuencia para la que se calcula ese margen de ganancia, es decir, la frecuencia de cruce de fase (wcf)
2: margen de fase (MF)
1: frecuencia para la que se calcula ese margen de fase, es decir, la frecuencia de cruce de ganancia (wcg)
Los resultados imposibles o infinitos son devueltos como -1.
3: numerador de la función de transferencia
2: denominador de la función de transferencia
1: 1Con 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: 2Obtendré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: 3Con 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.
Polos de lazo abierto: En este caso has de poner en la pila:
3: numerador de la función de transferencia de lazo abierto
2: denominador de la función de transferencia de lazo abierto
1: 5Obtendrás:
1: una lista doble con los polos de lazo abierto
Ceros de lazo abierto: Por último, pasando en la pila
3: numerador de la función de transferencia de lazo abierto
2: denominador de la función de transferencia de lazo abierto
1: 6Obtendrás:
1: una lista doble con los ceros de lazo abierto
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:
- Sd(Zd): Con esta opción se indica que en el paso siguiente la especificación a imponer es la ubicación del par de polos conjugados (o polo real) dominantes de lazo cerrado, ya sea en el plano s (Sd) o en el plano discreto z (Zd). Es decir, puedes imponer que el lugar de las raíces pase por el punto que tú quieras (dentro de unos límites, claro está).
Al imponer una ubicación específica para el par de polos conjugados dominantes de lazo cerrado indirectamente estás actuando sobre el tiempo de establecimiento y el sobre-impulso. Veamos un poco de teoría:
Como ya sabes, un sistema de 2º orden tiene 2 raíces. Pues bien, si suponemos el caso más general en el que esas 2 raíces son dos números complejos conjugados, estos serán polos dominantes (puesto que son los únicos que hay); tomemos de esos dos el que tiene parte imaginaria positiva y localicémosle en el plano complejo: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.
- Error, Mp, ts: Eligiendo esta otra opción podrás introducir posteriormente los valores del error en estado estacionario, sobre-impulso y tiempo de establecimiento que quieres tenga el sistema después de ser controlado.
Los valores de Mp y ts se utilizan para calcular la ubicación de los polos dominantes de lazo cerrado mediante las expresiones anteriores y a partir de ahí calcular la ubicación de los polos y ceros del controlador; el valor del error se utiliza para calcular la ganancia del controlador (junto con los valores de los polos y ceros del controlador calculados anteriormente).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 |
DISC |
|
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 |
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.
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
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 }".
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
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.