• No se han encontrado resultados

Estudio cinemático y dinámico de un sólido elástico giratorio accionado mediante un servoactuador hidráulico

N/A
N/A
Protected

Academic year: 2017

Share "Estudio cinemático y dinámico de un sólido elástico giratorio accionado mediante un servoactuador hidráulico"

Copied!
369
0
0

Texto completo

(1)

Anexo 7.2

Documentación multimedia

En este anexo se describen los tres vídeos en formato avi que se han incluido en esta tesis:

a) Flexibar.avi muestra los dos primeros modos propios del sistema viga flexible/actuador. En primer lugar se presenta el primer modo a velocidad normal y a continuación en cámara lenta. En segundo lugar se repite el proceso para el segundo modo.

b) Vigaabierto.avipresenta la respuesta del sistema a un escalón de posición en lazo abierto. Se puede observar como la viga sigue vibrando durante 8 segundos después de llegar a la posición de destino.

(2)

Anexo 7.1

Descripción del programa utilizado para controlar

el sistema vigaflexible-actuador

Descripción de los programas de las estrategias de control.

A continuación se presenta una descripción de los programas que han sido diseñados bajo entorno LabVIEW que permiten llevar a la práctica cada una de las estrategias estudiadas, así como también el utilizado para capturar la repuesta del sistema en lazo abierto ante una entrada escalón.

Cada estrategia de control está estructurada en un VI principal que incorpora un subVI en el que se generan los lazos de regulación propios de la estrategia.

Puesto que en este tipo de aplicación es el PC el que funciona como controlador, la tarjeta de adquisición de datos debe leer la salida del sistema de forma que la aplicación LabVIEW trate esos datos con la mayor brevedad posible para obtener una acción de control lo suficientemente rápida como para permitir un control del sistema en tiempo real.

Con el objetivo de realizar descripción estructurada, se presentará el VI utilizado como programa principal en primer lugar para detallar a continuación cada uno de los subVI que ejecutan las estrategias de control.

(3)
[image:3.595.101.497.426.654.2]
(4)

de datos, así como también los aspectos generales de las estrategias de control (valores de consigna SP, acción de control MV, …)

El principio de funcionamiento es similar al utilizado para la adquisición de datos que permitían el estudio de la función de transferencia. Pero en este caso, AISingleScan.VIdebe leer un único valor o muestra de los canales de entrada e introducirlo a la memoria de LabVIEW. Con este valor se realizan los cálculos oportunos y se escribe el valor que proceda en los canales de salida gracias a la libreríaAISingleUpdate.VI. Se trata de trabajar tanto en la escritura como la entrada de datos a partir de una única muestra y en tiempo real.

El VI dispone de la posibilidad de conocer en todo momento si el desarrollo de la aplicación está siendo en tiempo real o no. En caso negativo significaría que la aplicación está trabajando con datos inadecuados ya que se introducirían a la aplicación en un instante de tiempo mucho más tardío del que realmente se produjeron.

Como puede verse en la parte central del diagrama de bloques anterior, se incluye un subVI que será exclusivo para cada una de las estrategias de control diseñadas.

A continuación se describen cada uno de los subVI utilizados en las estrategias de control diseñadas.

Lazo abierto

Pese a que no se trata de una estrategia de control como tal, también ha sido necesario diseñar un subVI que permitiese obtener la respuesta del sistema en lazo abierto a una consigna escalón. Es necesario poder contrastar la eficacia de la estrategia de control.

(5)
[image:5.595.100.499.70.314.2] [image:5.595.238.411.399.537.2]

Y en la Figura A7.1.4 se encuentra el diagrama de bloques del subVI Lazo Abierto. Figura A7.1.3 Panel de control del VI Lazo Abierto

(6)

Estrategia 1

Este es el panel frontal del subVI que permite realizar la primera estrategia de control.

[image:6.595.98.498.146.378.2]

Y este es su diagrama de bloques.

Figura A7.1.4 Panel de control del VI Estrategia 1

(7)

Como puede verse, la estrategia incluye dos integradores puros. Estos integradores deben trabajar en tiempo real. Sus paneles frontales son:

[image:7.595.139.458.118.322.2] [image:7.595.125.460.408.676.2]

Y su diagrama de bloques:

(8)

Estrategia 2

Este es el panel frontal del subVI que permite realizar la segunda estrategia de control.

[image:8.595.98.497.145.377.2] [image:8.595.112.485.459.662.2]

Y este es su diagrama de bloques.

(9)

Estrategia 3

Este es el panel frontal del subVI que permite realizar la tercera estrategia de control.

Y este es su diagrama de bloques.

(10)
(11)

Anexo 6.1

Descripción

de

los

programas

utilizados

para

caracterizar el sistema vigaflexible-actuador

A6.1.1 Introducción

¿Qué es LabVIEW?

LabVIEW es un entorno de programación, mucho más moderno que C, BASIC o LabWindows/CVI. No obstante, LabVIEW es diferente de ellos en un aspecto importante. Otros sistemas de programación usan lenguajes basados en textopara crear líneas de código, mientras que LabVIEW utiliza un lenguaje de programación gráfico,G, para crear programas en forma de diagramas de bloques.

(12)

Un VI consta de una interface de usuario interactiva y de un diagrama de flujo de datos que sirve como código fuente, en el interior del cual se pueden encontrar las conexiones de iconos que permiten a los VIs ser llamado desde VIs de niveles superiores. Más concretamente, los VIs están estructurados de la siguiente forma:

• A la interface de usuario interactiva de un VI se le conoce como panel frontal porque simula el panel de un instrumento físico. El panel puede contener botones, pulsadores, gráficos y otros controles e indicadores. La entrada de datos se produce utilizando el ratón o el teclado, visualizando más tarde los resultados en la pantalla.

• El VI recibe instrucciones de undiagrama de bloques, que se debe construir en G(lenguaje de programación gráfico). El diagrama de bloques es una solución ilustrada a un problema de programación. Dicho diagrama es también el código fuente para el VI. En su interior podemos introducir los iconos que representan otros VIs. Hay que tener en cuenta que los VIs son jerárquicos y modulares. Es decir, es posible usarlos como programas de nivel superior o como subprogramas dentro de otro programa. A un VI dentro de otro VI se le denomina subVI. Los iconos y conectores de un VI trabajan como una lista de parámetros gráficos para que otros VIs pueden transferir datos a un subVI.

Con estas características, LabVIEW fomenta y respeta el concepto de programación modular. Es posible (casi indispensable) dividir una aplicación compleja en una serie de subtareas sencillas. Se programa un VI para ejecutar cada subtarea y entonces se combinan estos VIs en un diagrama de bloques superior para ejecutar la tarea compleja. Finalmente, el VI de nivel superior contiene un conjunto de subVIs que representan funciones de aplicación.

(13)

A6.1.2 Diseño de los programa de captura y generación de señales.

¿Cuál es la funcionalidad de la aplicación a desarrollar en LabVIEW?

La principal funcionalidad de la aplicación es adquirir y generar señales analógicas. Por adquisición de señalesse entiende medir señales que procederán del sistema observado para posteriormente analizarlas. Por generación de señales se entiende enviar señales al sistema con el objetivo de controlar su funcionamiento. En ambos casos se trata de señales analógicas variables en el tiempo.

Adquisición de sañales

A la hora de adquirir las señales que representan el comportamiento del sistema, hay que tener en cuenta un aspecto importante, dependiendo de lo que se quiere hacer con los datos después de adquirirlos. En las primeras observaciones, los datos se analizarán una vez se hayan adquirido en su totalidad un número predeterminado de muestras. Esto evitará un tiempo de cálculo, innecesario por otra parte, mientras se realiza la adquisición de datos. De esta forma conseguiremos que la tarjeta de adquisición obtenga una captura lo más real posible impidiendo que el sistema entre en bucles de cálculo que bloqueen la adquisición de datos.

(14)

Se puede dar el caso de que esta técnica no sea posible utilizarla, debido a que se necesite adquirir más datos de los que la memoria es capaz de almacenar o que se desee capturar una señal durante largos periodos de tiempo. Para este tipo de aplicaciones se debe utilizar la técnica Circular-Buffered. Con esta técnica, se puede configurar la tarjeta para que adquiera datos continuamente mientras LabVIEW recupera los datos adquiridos. Esta técnica difiere de la anterior sólo en cómo LabVIEW coloca los datos en elbuffery cómo los recupera de éste. El buffer circularse llena con los datos adquiridos, como si fuera un buffer sencillo; sin embargo, cuando éste se ha llenado, se vuelve al principio y llena el mismo buffer otra vez. Esto significa que los datos pueden ser leídos continuamente de la memoria del ordenador, pero únicamente se puede utilizar una cantidad de memoria definida. La aplicación VI deberá recuperar los datos en bloques, a partir de una posición determinada del buffer, mientras que los datos entran en el buffer circular en una posición diferente. De esta forma, los datos de la memoria que no han sido leídos no serán “machacados” por datos nuevos.

Existen dos posibles problemas a la hora de crear la aplicación VI. Puede ser que dicha aplicación intente recuperar los datos del buffer más rápidamente de lo que los datos son colocados en éste. En este caso en el que la VI intenta leer datos delbufferque todavía no han sido recopilados, LabVIEW espera esos datos que fueron solicitados para ser adquiridos y entonces los recupera.

También podría darse el caso que la aplicación VI no recuperase los datos del buffer lo suficientemente rápido antes de que LabVIEW “machacase” parte de esos datos. En este caso, LabVIEW retorna un mensaje de error advirtiendo de que los datos recuperados del buffer son datos “machacados”.

Generación de señales

(15)

La primera de ellas se conoce comogeneración de señales basada en un único buffer. En este caso debemos almacenar un ciclo de la función que se desea generar en un vector de LabVIEW y programar la tarjeta de adquisición de datos para que genere los valores de ese vector una sola vez o ininterrumpidamente de uno en uno a una frecuencia establecida.

[image:15.595.121.428.338.551.2]

La segunda de ellas se conoce como generación de señales basada en un buffer circular. Este caso es útil cuando se quiere generar una señal que varia continuamente o cuando la cantidad de datos de esa función es demasiado extensa para que quepa en una memoria buffer. Por ejemplo, se dispone de un gran fichero almacenado en el disco que contiene datos que se quieren extraer. Debido a que LabVIEW es incapaz de almacenar toda esa señal completa en un único buffer, lo que se debe hacer es cargar continuamente los datos en el buffer durante la generación de la señal.

(16)

buffer utilizado es único (simple-buffered), ya que se trata de una aplicación en la que no es necesario utilizar un buffer circular. Pese a que la adquisición y generación de señales es simultanea, éstas no están sincronizadas. Esto significa que existe un desfase temporal de milésimas de segundo entre el inicio de la adquisición y de la generación. Esta característica la podemos observar en el diagrama de bloques: el subVI AOStart.vi es llamado antes que el AIStart.vi debido a la dependencia de datos de error. Esta dependencia de datos provoca que la adquisición se inicie después de que la generación de datos haya empezado.

Descripción del panel frontal.

[image:16.595.85.513.303.627.2]

A continuación puede verse la interface de usuario del programa.

Figura A6.1.2Panel frontal del Programa de adquisición y generación de datos

Ésta consta de cuatro partes bien definidas; que son las siguientes:

(17)

2. Parámetros de la salida analógica.

3. Señal generada.

4. Visualización de los datos captados.

En la primera de ellas encontramos todos aquellos parámetros que hacen referencia a entradas analógicas. Son los siguientes:

Input buffer size: hace referencia al tamaño de la memoria intermedia (buffer) que asignamos a todos los canales de la tarjeta de entradas analógicas. En el caso de la tarjeta de adquisición utilizada (PCI-1200) el tamaño de éste no puede ser superior a 64Kbytes. Como se deben utilizar dos canales de entrada analógica para capturar las señales, cada uno de ellos debe reservarse un tamaño inferior a 32Kbytes.

Input channels: con este parámetro se asignan los canales de entrada que realizarán captura de datos. Hay que introducir, a través del control, el número y nombre de canal que se definieron previamente utilizamos al configurar los canales físicos de entrada de la tarjeta.

Scan rate: define el número de lecturas por segundo que LabVIEW captura de todos y cada uno de los canales de entrada asignados por el usuario. Por ejemplo, con unscan ratede 10 Hz, LabVIEW muestrea cada canal de lectura 10 veces por segundo. Lo podemos traducir como frecuencia de muestreo.

Input limits: define los niveles de tensión superior e inferior para cada canal. Con ello se limita el rango de lectura de cada canal y permite detectar condiciones de lectura anormales.

(18)

realiza en todos los canales de salida asignados por el usuario. Por ejemplo, con un update rate de 10 Hz, LabVIEW escribe en el canal seleccionado 10 veces por segundo. Cabe destacar que para obtener unas muestras lo más representativas posible, el valor de scan rate y update rate serán iguales.

Los parámetros de la señal generada son los siguientes:

Tipo de señal: con este control es posible seleccionar el tipo de onda que se generará. Se puede escoger entre una señal senoidal, cuadrada, triangular, diente de sierra o chirp.

Amplitud y Offset: con estos controles se define el valor de la amplitud de la señal generada así como también su nivel de offset, ambos expresados en Voltios.

Frecuencia: con este control sse define la frecuencia de la señal para todos los tipos de señal excepto la chirp, que está parametrizada por las Frecuencia inicial y Frecuencia final. Todas ellas expresadas en Hz (ciclos/seg).

Sampling rate: define la frecuencia de muestreo con la que se crea la señal de salida. Es decir, si se introduce un sampling rate de 500 Hz, la tarjeta actualizará el valor de la salida analógica 500 veces por segundo.

Por último, se ha previsto un gráfico para poder visualizar los datos capturados a través de los dos canales de entrada.

Descripción del diagrama de bloques.

A continuación puede verse el diagrama de bloques del programa en la figura A6.1.3.

(19)
[image:19.595.88.510.71.354.2]

Figura A6.1.3 Diagrama de bloques del Programa de adquisición y generación de datos

A continuación, se indican detalladamente los parámetros utilizados de cada una de las librerías utilizadas. Cabe destacar que los parámetros configurados en todas las librerías utilizadas son los más básicos. Es posible configurar parámetros algo más complejos que permitirían tener un control más preciso sobre las librerías. Sin embargo, con los parámetros normales ya es posible realizar las tareas deseadas. En caso de que algún parámetro tenga asignado un número entre paréntesis, éste indica el valor por defecto.

(20)

Figura A6.1.4 Librería AIConfig.vi

• Device: es el número que ha recibido la tarjeta en la configuración inicial.

Channels: es una lista de los canales analógicos que serán utilizados para la adquisición de señales, es decir, es una “declaración” de los canales que van a ser leídos.

Buffer size: es el número de “scans” que serán almacenados en el buffer de entrada. Es decir, define el tamaño del buffer de entrada. Hay que tener en cuenta que el número de muestras de entrada en un “scan” es igual al número de canales de entrada; así, un pulso del reloj de “scan” produce lee una nueva muestra en cada canal de entrada.

Error in:describe condiciones de error que ocurren antes de que el VI se ejecute. Si un error ha ocurrido ya, el VI retorna el valor de ese error en error out.

Task ID:es un número generado por Labview que identifica el tipo de operación que se realiza. Hay varios códigos de función, de entre todos ellos, los utilizados para realizar la aplicación son los siguientes:

Código de función Operación de E/S

1 Entrada analógica

2 Salida analógica

Tabla A6.1.1 Códigos de función

2. AIStart.vi

(21)

A continuación el programa fija varios parámetros para iniciar la captura de datos. Una vez se han configurado dichos parámetros, este VI inicia la lectura de los canales de entrada. Los parámetros que configuramos en este caso se ven en la figura anterior:

• Task ID in: se utiliza para identificar el tipo de operación que se realiza.

Number of scans to acquire: hace referencia al número total de “scans” que Labview captura antes de que la adquisición esté completa. Si este parámetro se configura con el valor –1, el existente por defecto, Labview captura exactamente un buffer de datos. Esto quiere decir que captura tantos datos como lo fijado en el tamaño del buffer (buffer size) de la librería AIConfig.vi.

Scan rate:hace referencia a la frecuencia con la que se toman los datos. Indica el número de “scans” que adquiere por segundo.

• Error in: describe condiciones de error que ocurren antes de que el VI se ejecute. Si un error ha ocurrido ya, el VI retorna el valor de ese error en error out.

• Task ID out: tiene el mismo valor que Task ID in. 3. AIRead.vi

(22)

Error in:describe condiciones de error que ocurren antes de que el VI se ejecute. Si un error ha ocurrido ya, el VI retorna el valor de ese error en error out.

• Task ID out: tiene el mismo valor que Task ID in.

• Voltage data: es una matriz de 2D que contiene los datos capturados. Cada fila contiene los datos de un “scan”, es decir, contiene un valor capturado (muestra). Cada columna contiene todos los datos capturados de un canal.

Canal de

entrada 0

Canal de

entrada 1

Scan 1 Scan 2 Scan 3

Tabla A6.1.2 Matriz 2D con los datos capturados

4. AIClear.vi

[image:22.595.204.389.236.323.2]

Por último, lo que hace el programa es desconfigurar la asignación realizada de todos los buffers de entrada y otros recursos utilizados para la captura de datos. Los parámetros que configuramos en este caso se ven en la siguiente figura:

Figura A6.1.7 Librería AIClear.vi

• Task ID in: se utiliza para identificar el tipo de operación que se realizó.

Error in:describe condiciones de error que ocurren antes de que el VI se ejecute. Si un error ha ocurrido ya, el VI retorna el valor de ese error en error out.

• Task ID out: tiene el mismo valor que Task ID in. Librerías de salidas analógicas.

(23)

1. AOConfig.vi

Lo primero que hace el programa es configurar una serie de parámetros para realizar la operación de escritura de datos. Con ello se configura el hardware y se asigna un buffer para la operación de salida de datos. Los parámetros que configurados se ven en la Figura A6.1.8.

Figura A6.1.8 Librería AOConfig.vi

• Device: es el número que ha recibido la tarjeta en la configuración inicial.

Channels: es una lista de los canales analógicos que se utilizarán para la generación de datos, es decir, es una “declaración” de los canales en los que escribiremos la señal generada.

Buffer size:es el número de “updates” que almacena el buffer de salida. Es decir, define el tamaño del buffer de salida. Hay que tener en cuenta que el número de muestras de salida en un “update” es igual al número de canales de salida; por ejemplo, un pulso del reloj de “update” produce una escritura de una nueva muestra en cada canal de salida.

Error in:describe condiciones de error que ocurren antes de que el VI se ejecute. Si un error ha ocurrido ya, el VI retorna el valor de ese error en error out.

(24)

2. AOWrite.vi

[image:24.595.178.374.378.467.2]

Lo siguiente que hace el programa es fijar varios parámetros para escribir los datos en el buffer de salida. Los parámetros que configura en este caso se ven en la siguiente figura:

Figura A6.1.9 Librería AOWrite.vi

• Task ID in: se utiliza para identificar el tipo de operación que se realiza.

Voltage data: es una matriz de 2D que contiene los datos que queremos enviar hacia el exterior. Cada fila contiene los datos de un “update”, es decir, contiene un valor generado (muestra). Cada columna contiene todos los datos generados para un canal determinado.

Canal de

salida 0

Canal de

salida 1

Update 1 Update 2 Update 3

Tabla A6.1.4 Matriz 2D con los datos a enviar

Error in:describe condiciones de error que ocurren antes de que el VI se ejecute. Si un error ha ocurrido ya, el VI retorna el valor de ese error en error out.

• Task ID out: tiene el mismo valor que Task ID in.

3. AOStart.vi

(25)
[image:25.595.100.498.61.480.2]

Figura A6.1.10 Librería AOStart.vi

• Task ID in: se utiliza para identificar el tipo de operación que se realiza.

Update rate: hace referencia a la frecuencia con la que se escriben los datos en los canales de salida. Indica el número de “updates” que se escriben por segundo.

Error in:describe condiciones de error que ocurren antes de que el VI se ejecute. Si un error ha ocurrido ya, el VI retorna el valor de ese error en error out.

• Task ID out: tiene el mismo valor que Task ID in.

4. AOClear.vi

Figura A6.1.11 Librería AOClear.vi

Por último, lo que hace el programa es “limpiar” la asignación realizada con todos los buffers de salida y otros recursos utilizados para la escritura de datos. Los parámetros configurados en este caso se ven en la Figura:A6.1.11.

(26)
[image:26.595.73.471.70.353.2] [image:26.595.86.509.441.687.2]

Figura A6.1.12 Panel frontal del Programa de generación de señales

Y también pueden verse sus diagramas de bloques para cada una de las señales que se generan:

(27)
[image:27.595.86.511.70.315.2] [image:27.595.84.510.399.640.2]
(28)
[image:28.595.86.511.71.319.2] [image:28.595.88.508.409.646.2]

Figura A6.1.16 Diagramas de bloques del Programa de generación de señales: Señal Diente de sierra

Figura A6.1.17 Diagramas de bloques del Programa de generación de señales: Señal Chirp

(29)

• senoidal, • cuadrada, • triangular, • diente de sierra o • chirp.

Tiene la posibilidad también de variar la amplitud y el nivel de offset de la señal, ambos expresados en Voltios, así como también su frecuencia, expresada ésta en Hz (ciclos/seg). Para el caso de la señal chirp, no se tiene en cuenta el valor del parámetro Frecuencia, sino el de las Frecuencia inicial y Frecuencia final, ambas también expresadas en Hz. Otro parámetro que es posible ajustar es el sampling rate, que hace referencia a la frecuencia de muestreo con la que se crea la señal. Conviene que este valor sea igual a los parámetros scan rateyupdate rate anteriormente descritos con el fin de que la forma real de la señal de salida se actualice con la misma frecuencia que se actualizan las lecturas de los canales de entrada.

(30)

Librerías de almacenamiento de datos

A la hora de almacenar los datos, se debe utilizar un subVI propio para ello. De todos los formatos disponibles para almacenar los datos, quizá el más idóneo es el que permite almacenarlo en formato hoja de cálculo, ya que se trata del formato más stándard para un posterior tratamiento de datos. Además, es compatible con Matlab, pues este programa dispone de una librería de comunicación que permite cargar en su zona de trabajo una matriz en formato hoja de cálculo Excel.

[image:30.595.123.424.280.366.2]

Esta librería es Write To Spreadsheet File.vi. Los parámetros de configuración se pueden ver en la siguiente figura:

Figura A6.1.18 Librería Write To Spreadsheet File.vi

Los parámetros de configuración más relevantes son:

• 2D data: este parámetro incluye los datos en formato de matriz de 2D.

• transpose? (no: F): este parámetro permite hacer la traspuesta de la matriz de datos que se almacenan. El programa se ha configurado para no hacer esta operación.

• file path: este parámetro permite definir la localización del fichero que se genera así como también el nombre de éste.

(31)

Anexo 5.1

Descripción de las tarjetas de captura de datos

A5.1.1 Tarjeta PCI-1200.

[image:31.595.111.487.280.481.2]

El modelo PCI-1200 forma parte de la familia 1200. Su diagrama de bloques es:

Figura A5.1.1 Diagrama de bloques de la tarjeta PCI-1200

(32)

sencillas o 4 si se trata de entradas diferenciales; en ambos casos, con una resolución de 12 bits. El rango de la tensión de entrada es programable mediante software, teniendo dos

posibilidades: 0-10 V (unipolar) y ±5 V (bipolar). La ganancia del amplificador también es

programable por software, para unos valores de 1, 2, 5, 10, 20, 50 o 100.

La frecuencia de muestreo del ADC (Convertidor Analógico a Digital) por canal es de 100 kS/s. La frecuencia de transferencia de datos a un puerto paralelo es de 25 kS/s (dependiendo del ordenador utilizado). Cuando se muestrean varios canales simultáneamente, la máxima frecuencia de muestreo es de 83,3 kS/s para una ganancia unitaria.

Salidas Analógicas

Dispone de dos DACs (Convertidor Digital a Analógico) de 12 bits conectados a dos canales de salida analógicos. Se puede configurar mediante software, y de forma independiente, cada canal de salida para un modo de operación unipolar (0-10 V) o bipolar

[image:32.595.225.361.387.702.2]
(33)

Conector de I/O

El conector de I/O de la tarjeta PCI-1200 se trata de un conector macho de 50 pins. En la siguiente figura puede verse este conector.

Tarjeta PCI 1200

Entradas analógicas 8 sencillas / 4 diferenciales Resolución: 12 bits

Frecuencia de muestreo: 100 kS/s Rango de entrada:

Unipolar (0-10 V) o bipolar (±5 V) Salidas analógicas 2

Resolución: 12 bits

Frecuencia de escritura: 100 kS/s Rango de salida:

Unipolar (0-10 V) o bipolar (±5 V)

I/O digitales 24

Contadores/Timers 3, 16 bits

Triggers Digital

Tabla A5.1.1Tarjeta PCI 1200

Configuración de la tarjeta

(34)
[image:34.595.149.448.70.256.2]

Figura A5.1.3 Designación del número de equipo a la tarjeta PCI-1200

A continuación, se deben definir las configuraciones de las entradas analógicas. Esto conlleva fijar tanto la polaridad de las señales de entrada como su rango de trabajo. También se fijará el modo de trabajo de los canales de entrada. Dado que los canales de entrada van a tener lecturas tanto positivas como negativas, conviene definir la polaridad de estos canales como bipolares (valores positivos y negativos). La tarjeta PCI-1200 sólo dispone de esta

posibilidad para los valores±5 V. Conviene hacer una selección lo más precisa posible con el fin de que se pueda alcanzar la máxima resolución. El modo de trabajo de la tarjeta define la referencia que tiene el sistema de medida. En este caso, el modo elegido permite medir señales flotantes debido a que este modo referenciará la señal con respecto a la masa de tierra general. Véase la Figura A5.1.4como ilustración.

En cuanto a la configuración de las salidas analógicas, únicamente se define la polaridad de las señales. Como la salida debe ser negativa en algunos casos, se ha escogido que ésta sea bipolar. Véase la Figura A6.1.5como ilustración.

(35)
[image:35.595.150.446.70.468.2]

Figura A5.1.5 Definición de la polaridad de las salidas analógicas de la tarjeta PCI-1200

(36)

Canales de entrada

Nombre del canal Descripción Equipo Cana Pin

Aceleración ACH0 Sensor aceleración Dev1:PCI- 0 ACH0

Posición servoactuador Posición actuador Dev1:PCI- 1 ACH1 Canales de salida

Nombre del canal Descripción Equipo Cana Pin

Señal actuador AO0 Consigna del sistema Dev1:PCI- 0 DAC0OUT

Tabla A5.1.2 Configuración de los canales para la tarjeta PCI200

A5.1.2 Tarjeta PCI-6035E

[image:36.595.121.478.325.584.2]

El modelo PCI-6035E forma parte de la familia 6035E. Su diagrama de bloques es este:

Figura A5.1.6 Diagrama de bloques de la tarjeta PCI-6035E

(37)

Tarjeta PCI 6035E

Entradas analógicas 16 single-ended / 8 diferenciales Resolución: 16 bits

Frecuencia de muestreo: 200 kS/s

Rango de entrada: Bipolar (± 10 V) Salidas analógicas 2

Resolución: 12 bits

Frecuencia de escritura: 10 kS/s

Rango de salida: Bipolar (± 10 V) I/O digitales 8

Contadores/Timers 2, 24 bits

Triggers Digital

[image:37.595.133.442.69.310.2]
(38)

Conector de I/O

El conector de I/O de la tarjeta PCI-6035E es un conector macho de 68 pins. En la Figura A5.1.7 puede verse este conector.

Configuración de la tarjeta

La configuración de los canales de entrada y salida se realiza del mismo modo que en el caso anterior.

La polaridad de las señales de entrada y su rango de trabajo se definió con la única

posibilidad de la que dispone esta tarjeta: bipolar para los valores de ± 10 V.

En cuanto a la configuración de las salidas analógicas, tan sólo se define la polaridad de las señales, de la que se seleccionó la única opción posible: bipolar.

(39)

Anexo 3.6

Determinación de las frecuencias propias de una

(40)

DETERMINACIÓN DE LAS FRECUENCIAS PROPIAS DE UNA

VIGA DE EULER-BERNOULLI GIRATORIA

En este documento se determinan las frecuencias propias partiendo de una de las ecuaciones diferenciales obtenidas anteriormente.

> restart;

> with(linalg):

Warning, the protected names norm and trace have been redefined and unprotected

> with(ODEtools):

> with(PDEtools):

> infolevel[dsolve]:= 5:

> infolevel[pdsolve]:= 5:

La siguiente ecuación diferencial es una ecuación válida para todas las rebanadas, si exceptuamos las rebanadas de los apoyos. Su interpretación física es: en cada una de las rebanadas la suma de todas las fuerzas verticales (incluyendo las fuerzas de inercia) ha de ser cero.

> e118 :=

A*rho*diff(Wln1(x,t),`$`(t,2))+A*rho*diff(theta(t),`$`(t,2))*

x-A*rho*diff(theta(t),t)^2*Wln1(x,t)-E*J*diff(Wln1(x,t),`$`(x,4))=0; e118 Aρ

t22Wln1 ,(x t) Aρ  

t22θ( )t x Aρ 

   ∂

tθ( )t

2

( )

Wln1 ,x t

+ −

:=

E J 

x44Wln1 ,(x t)

− = 0

La ecuación anterior tiene un término que depende de Wln1(x,t). Según se ha visto en el desarrollo teórico, este término es pequeño comparado con los otros términos. Así pues: >

e110:=-A*rho*diff(Wln1(x,t),`$`(t,2))+E*J*diff(Wln1(x,t),`$`(x,4))=+ A*rho*diff(theta(t),`$`(t,2))*x;

:=

e110Aρ + =

t22Wln1 ,(x t) E J  

x44Wln1 ,(x t) Aρ  

t22θ( )tx

Para encontrar los modos de vibración normales, se exige que Wln1(x,t)=

sen(wt+phi)*W1(x). La primera parte es una función senoidal del tiempo y la segunda es función de la posición.

> e300:=subs(Wln1(x,t)=(sin(omega*t+phi))*W1(x),e110);

:=

e300Aρ + =

t22sin(ωt + φ)W1( )x  E J  

x44sin(ωt + φ)W1( )x  Aρ  

t22θ( )tx

>

(41)

:=

e301 Aρ ω2sin(ωt + φ)W1( )x + E Jsin(ωt + φ) =

x44W1( )x Aρ  

t22θ( )tx

Si se ha de mantener la condición de modos de vibración normales, es necesario pasar todos los términos temporales a la derecha y exigir que sean constantes.

>

e302:=A*rho*omega^2*W1(x)+E*J*diff(W1(x),`$`(x,4))=Kt*x;Kt_:= A*rho*diff(theta(t),`$`(t,2))/sin(omega*t+phi);

:=

e302 Aρ ω2W1( )x + E J = 

x44W1( )x Kt x

:=

Kt_

Aρ 

t22θ( )t

( )

sin ωt + φ

Si la vibración es debida al desplazamiento forzado del pistón, es evidente que la frecuencia de giro de la viga coincide con la del pistón. En consecuencia Kt ha de ser constante si la amplitud y la frecuencia del desplazamiento son constantes.

> Xode2:=E*J*(D@@4)(W1)(x)+A*rho*omega^2*(W1)(x)=Kt*x;

:=

Xode2 E J(D( )4 )(W1)( )x + Aρ ω2W1( )x = Kt x

> ans:=dsolve(Xode2,W1(x));

Methods for high order ODEs:

Trying to isolate the derivative d^4W1/dx^4... Successful isolation of d^4W1/dx^4

--- Trying classification methods --- trying a quadrature

trying high order exact linear fully integrable

trying differential order: 4; linear nonhomogeneous with symmetry [0,1] trying high order linear exact nonhomogeneous

trying linear constant coefficient

checking if the LODE has constant coefficients <- constant coefficients successful

linear constant coefficient successful

ans W1( )x Kt x

ρ ω2 _C1e         (−Aρ ω2E3J3)

(1 4/ ) x E J _C2e         −(−Aρ ω2E3J3)

(1 4/ ) x E J

+ +

=

(42)

convencionales. >

W1(x):=c1*cosh(Kw*x)+c2*sinh(Kw*x)+c3*cos(Kw*x)+c4*sin(Kw*x)+ 1/A/rho/omega^2*Kt*x;

:= ( )

W1 x c1cosh(Kw x) + c2sinh(Kw x) + c3cos(Kw x) + c4sin(Kw x) + Kt x

Aρ ω2

De la misma manera se puede deducir: >

W2(x):=c5*cosh(Kw*x)+c6*sinh(Kw*x)+c7*cos(Kw*x)+c8*sin(Kw*x)+ 1/A/rho/omega^2*Kt*x;

:= ( )

W2 x c5cosh(Kw x) + c6sinh(Kw x) + c7cos(Kw x) + c8sin(Kw x) + Kt x

Aρ ω2

Aplicando las condiciones de contorno debidas a los apoyos: + La articulación O4 no tiene desplazamiento vertical: > eval(W1(x),x=0)=0;

= + c1 c3 0

+ Como no hay un momento aplicado en la articulación O4, la curvatura de la linea elástica es nula para x=0.

> eval(diff(W1(x),x,x),x=0)=0;

= −

c1 Kw2 c3 Kw2 0

De estas dos condiciones podemos decir c1=c3=0. En consecuencia:

> W1(x):=c2*sinh(Kw*x)+c4*sin(Kw*x)+1/A/rho/omega^2*Kt*x;

:= ( )

W1 x c2sinh(Kw x) + c4sin(Kw x) + Kt x

Aρ ω2

+ Como no hay un momento aplicado en el extremo libre, la curvatura de la linea elástica es nula para x=L.

> ec1:=expand(eval(diff(W2(x),x,x),x=L)/Kw^2)=0;

:=

ec1 c5cosh(Kw L) + c6sinh(Kw L) − c7cos(Kw L) − c8sin(Kw L) = 0 + El cortante es nulo en el extremo libre.

> ec2:=expand(eval(diff(W2(x),x,x,x),x=L)/Kw^3=0);

:=

ec2 c5sinh(Kw L) + c6cosh(Kw L) + c7sin(Kw L) − c8cos(Kw L) = 0

+ En el apoyo intermedio, la posición de la elástica es la misma a la izquierda y a la derecha.

> ec3:=eval(W1(x),x=lc)-eval(W2(x),x=lc)=0;

ec3 := c2sinh(Kw lc) + c4sin(Kw lc) − c5cosh(Kw lc) − c6sinh(Kw lc) − c7cos(Kw lc)

c8sin(Kw lc)

− = 0

+ En el apoyo intermedio, la pendiente de la elástica es la misma a la izquierda y a la derecha.

(43)

ec4:=expand(eval(diff(W1(x),x),x=lc)/Kw-ec4 := c2cosh(Kw lc) + c4cos(Kw lc) − c5sinh(Kw lc) − c6cosh(Kw lc) + c7sin(Kw lc)

c8cos(Kw lc)

− = 0

+ En el apoyo intermedio, el momento flector es el mismo a la izquierda y a la derecha.

>

ec5:=expand(eval(diff(W1(x),x,x),x=lc)/Kw^2-eval(diff(W2(x),x,x),x=lc)/Kw^2=0);

ec5 := c2sinh(Kw lc) − c4sin(Kw lc) − c5cosh(Kw lc) − c6sinh(Kw lc) + c7cos(Kw lc)

c8sin(Kw lc)

+ = 0

La fuerza que hace el servocilindro depende del "error" de posicionamiento. W1(lc) y W2(lc) representan la deformación respecto al sólido rígido, si restamos el término en Kt. Por lo tanto pueden ser usados para calcular la fuerza neta aplicada por el servocilindro.

> Fcil:=Kprop*(eval(W1(x),x=lc)-1/A/rho/omega^2*Kt*lc);

:=

Fcil Kprop(c2sinh(Kw lc) + c4sin(Kw lc))

+ En el apoyo intermedio, la suma de los esfuerzos cortantes y la fuerza del actuador ha de ser cero.

>

ec6:=collect(expand(eval(diff(W1(x),x,x,x),x=lc)+Fcil-eval(diff(W2(x),x,x,x),x=lc)=0),[c2,c4,c5,c6,c7,c8]); ec6 := (cosh(Kw lc Kw) 3 + Kpropsinh(Kw lc))c2

(Kpropsin(Kw lc) − cos(Kw lc Kw) 3)c4 c5sinh(Kw lc Kw) 3

+ −

c8cos(Kw lc Kw) 3 c7sin(Kw lc Kw) 3 c6cosh(Kw lc Kw) 3

+ − − = 0

Las condiciones de contorno han definido un sistema de 6 ecuaciones homogéneas. Este sistema tiene soluciones no triviales si el determinante de la matriz asociada es nulo.

>

mec:=matrix(6,6,[0,0,+cosh(Kw*L),+sinh(Kw*L),-cos(Kw*L),-sin(Kw*L) ,0,0,sinh(Kw*L),+cosh(Kw*L),+mec:=matrix(6,6,[0,0,+cosh(Kw*L),+sinh(Kw*L),-cos(Kw*L),-sin(Kw*L),- ,0,0,sinh(Kw*L),+cosh(Kw*L),+sin(Kw*L),-cos(Kw*L) ,sinh(Kw*lc),+sin(Kw*lc),-cosh(Kw*lc),-sinh(Kw*lc),-cos(Kw*lc),-sin(Kw*lc)

,cosh(Kw*lc),+cos(Kw*lc),-sinh(Kw*lc),-cosh(Kw*lc),+sin(Kw*lc),-cos(Kw*lc)

,sinh(Kw*lc),-sin(Kw*lc),-cosh(Kw*lc),-sinh(Kw*lc),+cos(Kw*lc),+sin(Kw*lc) ,(cosh(Kw*lc)*Kw^3+Kprop*sinh(Kw*lc)),+(Kprop*sin(Kw*lc)-cos(Kw*lc)*Kw^3), -sinh(Kw*lc)*Kw^3,-cosh(Kw*lc)*Kw^3,-sin(Kw*lc)*Kw^3,+cos(Kw*lc)*Kw^3]);

(44)

Aplicación numérica. Determinación de las frecuencias propias.

A continuación se calculan las frecuencias propias de una viga flexible de 900 mm de longitud, 50 mm de anchura y 5 mm de altura. Se plantearán 5 casos para observar como cambian las frecuencias propias en función de la posición del actuador.

Caso lc =0.11m. Los comentarios se han hecho en el siguiente caso (lc=0.22m).

> Kprop:=100000:L:=0.90:lc:=0.11:

E:=20*10^6:J:=.050*.005^3/12*10000:A:=.050*.005:rho:=7800:

> d:=det(mec):

> plot(signum(d)*ln(abs(d)),Kw=0..12);

> Kw1:=fsolve(d,Kw,2..3):

> Kw2:=fsolve(d,Kw,5..7):

> Kw3:=fsolve(d,Kw,9..10):

> f1:=1/2/3.1415926*Kw1^2*sqrt(E*J/A/rho);

:=

f1 6.031484531

> f2:=1/2/3.1415926*Kw2^2*sqrt(E*J/A/rho);

:=

f2 38.28793229

> f3:=1/2/3.1415926*Kw3^2*sqrt(E*J/A/rho);

:=

f3 108.2570295

Caso lc =0.22 m. En este ejemplo el programa muestra todos los resultados intermedios. Además se representan las formas modales.

(45)

;A*rho;

:=

Kprop 100000 :=

L .90 :=

lc .22 :=

E 20000000

:=

J .5208333333 10-5 :=

A .000250

:=

ρ 7800 104.1666667

1.950000

> d:=det(mec);

d := −400000sinh .90( Kw)sinh .22( Kw)2sin .90( Kw)sin .22( Kw)2 200000cosh .90( Kw)sinh .22( Kw)2cos .90( Kw)cos .22( Kw)2

+

200000sinh .90( Kw)sinh .22( Kw)2sin .90( Kw)cos .22( Kw)2

200000sinh .22( Kw)sin .22( Kw)sinh .90( Kw)2cos .22( Kw)2

4sinh .22( Kw)2sinh .90( Kw)cos .90( Kw)sin .22( Kw)2Kw3 +

4sinh .22( Kw)2cosh .90( Kw)sin .90( Kw)sin .22( Kw)2Kw3 −

4sinh .90( Kw)sinh .22( Kw)2cos .90( Kw)cos .22( Kw)2Kw3 +

200000sinh .22( Kw)sin .22( Kw)cosh .90( Kw)2cos .22( Kw)2

+

200000sinh .22( Kw)sin .22( Kw)cosh .22( Kw)2sin .90( Kw)2

+

200000sinh .22( Kw)sin .22( Kw)cosh .22( Kw)2cos .90( Kw)2

+

200000cosh .22( Kw)2cosh .90( Kw)cos .90( Kw)sin .22( Kw)2

+

200000cosh .22( Kw)2sinh .90( Kw)sin .90( Kw)sin .22( Kw)2

+

200000sin .22( Kw)sinh .90( Kw)sinh .22( Kw)2cos .90( Kw)cos .22( Kw)

4cosh .90( Kw)cosh .22( Kw)2Kw3sin .90( Kw)sin .22( Kw)2

(46)

200000sin .22( Kw)cosh .22( Kw)2sinh .90( Kw)cos .90( Kw)cos .22( Kw)

+

4cos .22( Kw)2Kw3cosh .22( Kw)2sinh .90( Kw)cos .90( Kw)

4cos .22( Kw)2Kw3cosh .22( Kw)2cosh .90( Kw)sin .90( Kw)

+

200000sinh .22( Kw)cosh .22( Kw)cosh .90( Kw)sin .90( Kw)cos .22( Kw)2

+

200000sinh .22( Kw)cosh .22( Kw)sinh .90( Kw)cos .90( Kw)cos .22( Kw)2

200000sin .22( Kw)sinh .22( Kw)3cos .90( Kw)2

200000sin .22( Kw)sinh .22( Kw)3sin .90( Kw)2

200000sinh .22( Kw)sinh .90( Kw)2sin .22( Kw)3

200000sinh .22( Kw)cosh .90( Kw)2sin .22( Kw)3

+

La siguiente gráfica permite conocer aproximadamente los valores de Kw que hacen nulo el determinante.

> plot(signum(d)*ln(abs(d)),Kw=0..12,adaptive);

Obtención de los valores propios. Observese que la exigencia de máxima precisión en los cálculos internos no afecta al resultado.

> Kw1:=fsolve(d,Kw,2..3);

:=

Kw1 2.520301346

> Kw2:=fsolve(d,Kw,6..7);

:=

Kw2 6.449200966

(47)

:=

Kw3 10.87028547

> Kw1:=fsolve(d,Kw,2..3,fulldigits);

:=

Kw1 2.520301346

> Kw2:=fsolve(d,Kw,6..7,fulldigits);

:=

Kw2 6.449200966

> f1:=1/2/3.1415926*Kw1^2*sqrt(E*J/A/rho);

:=

f1 7.388770200

> f2:=1/2/3.1415926*Kw2^2*sqrt(E*J/A/rho);

:=

f2 48.38146755

> f3:=1/2/3.1415926*Kw3^2*sqrt(E*J/A/rho);

:=

f3 137.4513836

Comprobación de que los resultados realmente anulan el determinante d. > eval(d,Kw=Kw1);

0.

> eval(d,Kw=Kw2);

10.

> eval(d,Kw=Kw3);

20000.

> eval(d,Kw=6.449200965);

-10.

Los valores obtenidos muestran que hay un cierto error, despreciable a la hora de determinar las frecuencias propias, pero no despreciable a la hora de obtener las formas modales.

Representación de las formas modales para lc = 0.22 m.

(48)

:=

c4 .5 :=

ec11 4.883086284c5 + 4.779595345c6 + .6422843204c7 − .7664664714c8 = 0 :=

ec12 4.779595345c5 + 4.883086284c6 + .7664664714c7 + .6422843204c8 = 0

ec13 := .5833164123c2 + .2632448150 − 1.157695140c5 − .5833164123c6

.8501815509c7 .5264896300c8

− − = 0

ec14 := 1.157695140c2 + .4250907754 − .5833164123c5 − 1.157695140c6

.5264896300c7 .8501815509c8

+ − = 0

ec15 := .5833164123c2 − .2632448150 − 1.157695140c5 − .5833164123c6

.8501815509c7 .5264896300c8

+ + = 0

ec16 := 58350.17448c2 + 26317.67633 − 9.338166435c5 + 13.61034364c8

8.428440701c7 18.53325171c6

− − = 0

>

coeficientes:=fsolve({ec11,ec12,ec13,ec14,ec15,ec15},{c2,c5,c 6,c7,c8});

coeficientes := {c5 = -.4029401368,c2 = -.4509107593,c6 = .3487955894,

=

c7 .3636856417,c8 = -.08728378529}

Sustituyendo los coeficientes obtenidos en las expresiones de W1(x) y W2(x) y asignando a Kw el valor de Kw1, se obtiene la expresión de la línea elástica cuando la deformación es máxima.

> W1m1(x):=eval(eval(eval(W1(x)),Kw=Kw1),coeficientes);

( ) W1m1 x :=

−.4509107593sinh 2.520301346( x) + .5sin 2.520301346( x) − .002331002331x

> W2m1(x):=eval(eval(eval(W2(x)),Kw=Kw1),coeficientes);

( )

W2m1 x := −.4029401368cosh 2.520301346( x) + .3487955894sinh 2.520301346( x) .3636856417cos 2.520301346( x) .08728378529sin 2.520301346( x)

+ −

.002331002331x

> Wm1(x):=(`if`(x < lc,1,0))*W1m1(x)+(`if`(x < lc,0,1))*W2m1(x);

( )

Wm1 x := if(x < .22 1 0, , )

(−.4509107593sinh 2.520301346( x) + .5sin 2.520301346( x) − .002331002331x) +

( )

if x < .22 0 1, , (−.4029401368cosh 2.520301346( x)

.3487955894sinh 2.520301346( x) .3636856417cos 2.520301346( x)

+ +

.08728378529sin 2.520301346( x) .002331002331x

− − )

>

W1m2(x):=eval(eval(eval(W1(x)),Kw=6.449200965),coeficientes);

( ) W1m2 x :=

(49)

W2m2(x):=eval(eval(eval(W2(x)),Kw=6.449200965),coeficientes);

( )

W2m2 x := −.4029401368cosh 6.449200965( x) + .3487955894sinh 6.449200965( x) .3636856417cos 6.449200965( x) .08728378529sin 6.449200965( x)

+ −

.002331002331x

> Wm2(x):=(`if`(x < lc,1,0))*W1m2(x)+(`if`(x < lc,0,1))*W2m2(x);

( )

Wm2 x := if(x < .22 1 0, , )

(−.4509107593sinh 6.449200965( x) + .5sin 6.449200965( x) − .002331002331x) +

( )

if x < .22 0 1, , (−.4029401368cosh 6.449200965( x)

.3487955894sinh 6.449200965( x) .3636856417cos 6.449200965( x)

+ +

.08728378529sin 6.449200965( x) .002331002331x

− − )

(50)

La forma del segundo modo no se parece en nada a la experimental.

Veamos que pasa si repetimos la operación anterior, pero utilizando Kw2 en vez de Kw1.

>

omega:=abs(Kw2^2*(E*J/(A*rho))^.5);Kt:=-omega^2*0.001/lc;c4:=.01;ec11:=eval(subs(Kw=6.449200965,ec1)) ;ec12:=eval(subs(Kw=6.449200965,ec2));ec13:=eval(subs(Kw=6.44 9200965,ec3));ec14:=eval(subs(Kw=6.449200965,ec4));ec15:=eval (subs(Kw=6.449200965,ec5));ec16:=eval(subs(Kw=6.449200965,ec6 ));

:=

ω 303.9897209

:=

Kt -420.0443200 :=

c4 .01 :=

ec11 165.8597871c5 + 165.8567725c6 − .8875002975c7 + .4608071417c8 = 0 :=

ec12 165.8567725c5 + 165.8597871c6 − .4608071417c7 − .8875002975c8 = 0

ec13 := 1.945130267c2 + .009884744462 − 2.187128655c5 − 1.945130267c6

.1513878107c7 .9884744462c8

− − = 0

ec14 := 2.187128655c2 + .001513878107 − 1.945130267c5 − 2.187128655c6

.9884744462c7 .1513878107c8

+ − = 0

ec15 := 1.945130267c2 − .009884744462 − 2.187128655c5 − 1.945130267c6

.1513878107c7 .9884744462c8

(51)

ec16 := 195099.6942c2 + 988.0683690 − 521.7547633c5 + 40.60772313c8

265.1448386c7 586.6675426c6

− − = 0

>

coeficientes:=fsolve({ec11,ec12,ec13,ec14,ec15,ec15},{c2,c5,c 6,c7,c8});

coeficientes := {c6 = .04122444485,c8 = .006798829900,c2 = -.005023471960,

=

c7 .02090178088,c5 = -.04113074124} >

W1m2(x):=eval(eval(eval(W1(x)),Kw=6.449200965),coeficientes);

( ) W1m2 x :=

−.005023471960sinh 6.449200965( x) + .01sin 6.449200965( x) − .002331002331x

>

W2m2(x):=eval(eval(eval(W2(x)),Kw=6.449200965),coeficientes);

( )

W2m2 x := −.04113074124cosh 6.449200965( x) + .04122444485sinh 6.449200965( x) .02090178088cos 6.449200965( x) .006798829900sin 6.449200965( x)

+ +

.002331002331x

> Wm2(x):=(`if`(x < lc,1,0))*W1m2(x)+(`if`(x < lc,0,1))*W2m2(x);

( )

Wm2 x := if(x < .22 1 0 (, , )

−.005023471960sinh 6.449200965( x) + .01sin 6.449200965( x) − .002331002331x)

( )

if x < .22 0 1, , (−.04113074124cosh 6.449200965( x)

+

.04122444485sinh 6.449200965( x) .02090178088cos 6.449200965( x)

+ +

.006798829900sin 6.449200965( x) .002331002331x

+ − )

(52)

Representación de la forma de la elástica para diferentes frecuencias en el entorno del segundo modo.

> Wm(x,Kw):=(`if`(x <

lc,1,0))*eval(eval(W1(x)),coeficientes)+(`if`(x < lc,0,1))*eval(eval(W2(x)),coeficientes);

( )

Wm ,x Kw :=

( )

if x < .22 1 0 (, , −.005023471960sinh(Kw x) + .01sin(Kw x) − .002331002331x) +

( )

if x < .22 0 1, , (−.04113074124cosh(Kw x) + .04122444485sinh(Kw x) .02090178088cos(Kw x) .006798829900sin(Kw x) .002331002331x

+ + − )

> plot3d(Wm(x,Kw),x=0..0.90,Kw=4..7,axes=normal,labels

(53)

Caso lc =0.45m.

> Kprop:=100000:L:=0.90:lc:=0.450:

E:=20*10^6:J:=.050*.005^3/12*10000:A:=.050*.005:rho:=7800:

> d:=det(mec):

(54)

> Kw1:=fsolve(d,Kw,2..4):

> Kw2:=fsolve(d,Kw,6..8):

> Kw3:=fsolve(d,Kw,9..12):

> f1:=1/2/3.1415926*Kw1^2*sqrt(E*J/A/rho);

:=

f1 13.03345522

> f2:=1/2/3.1415926*Kw2^2*sqrt(E*J/A/rho);

:=

f2 66.98662530

> f3:=1/2/3.1415926*Kw3^2*sqrt(E*J/A/rho);

:=

f3 113.8953877

Caso lc =0.67m.

> Kprop:=100000:L:=0.90:lc:=0.670:

E:=20*10^6:J:=.050*.005^3/12*10000:A:=.050*.005:rho:=7800:

> d:=det(mec):

(55)

> Kw1:=fsolve(d,Kw,3..5):

> Kw2:=fsolve(d,Kw,6..8):

> Kw3:=fsolve(d,Kw,9..12):

> f1:=1/2/3.1415926*Kw1^2*sqrt(E*J/A/rho);

:=

f1 22.11633104

> f2:=1/2/3.1415926*Kw2^2*sqrt(E*J/A/rho);

:=

f2 53.70735021

> f3:=1/2/3.1415926*Kw3^2*sqrt(E*J/A/rho);

:=

f3 120.7710873

Caso lc =0.8775m

(56)

> Kw1:=fsolve(d,Kw,2..4):

> Kw2:=fsolve(d,Kw,6..8):

> Kw3:=fsolve(d,Kw,10..12):

> f1:=1/2/3.1415926*Kw1^2*sqrt(E*J/A/rho);

:=

f1 14.91116672

> f2:=1/2/3.1415926*Kw2^2*sqrt(E*J/A/rho);

:=

f2 59.65990927

> f3:=1/2/3.1415926*Kw3^2*sqrt(E*J/A/rho);

:=

f3 134.2852863

ESTUDIO DEL EFECTO DE LA Kprop EN LAS FRECUENCIAS PROPIAS

Se ha escogido estudiar el efecto de la variación de la Kprop para lc=0.22 m. > L:=0.90;lc:=0.22;

E:=20*10^6;J:=.050*.005^3/12*10000;A:=.050*.005;rho:=7800;E*J ;A*rho;

:=

L .90 :=

lc .22 :=

E 20000000

:=

J .5208333333 10-5 :=

(57)

:=

ρ 7800 104.1666667

1.950000

> for i from 2 to 14 do Kprop:= 1*10^(i/2):

mec1:=matrix(6,6,[0,0,+cosh(Kw*L),+sinh(Kw*L),-cos(Kw*L),-sin(Kw*L) ,0,0,sinh(Kw*L),+cosh(Kw*L),+mec1:=matrix(6,6,[0,0,+cosh(Kw*L),+sinh(Kw*L),-cos(Kw*L),-sin(Kw*L),- ,0,0,sinh(Kw*L),+cosh(Kw*L),+sin(Kw*L),-cos(Kw*L) ,sinh(Kw*lc),+sin(Kw*lc),-cosh(Kw*lc),-sinh(Kw*lc),-cos(Kw*lc),-sin(Kw*lc)

,cosh(Kw*lc),+cos(Kw*lc),-sinh(Kw*lc),-cosh(Kw*lc),+sin(Kw*lc),-cos(Kw*lc)

,sinh(Kw*lc),-sin(Kw*lc),-cosh(Kw*lc),-sinh(Kw*lc),+cos(Kw*lc),+sin(Kw*lc) ,(cosh(Kw*lc)*Kw^3+Kprop*sinh(Kw*lc)),+(Kprop*sin(Kw*lc)-cos(Kw*lc)*Kw^3), -sinh(Kw*lc)*Kw^3,-cosh(Kw*lc)*Kw^3,-sin(Kw*lc)*Kw^3,+cos(Kw*lc)*Kw^3]):

d:=det(mec1):

kws1(i/2):=fsolve(d,Kw,2..6):

fs1(i/2):=1/2/3.1415926*kws1(i/2)^2*sqrt(E*J/A/rho): kws2(i/2):=fsolve(d,Kw,6..8):

fs2(i/2):=1/2/3.1415926*kws2(i/2)^2*sqrt(E*J/A/rho): end do:

>

(58)

> fs1(1);

21.71526440

> fs1(2);

17.51791957

> fs1(3);

8.141271059

> fs1(4);

7.450081353

> fs1(5);

7.388770200

> fs1(6);

7.382709640

> fs1(7);

7.382104282

La primera frecuencia propia de una barra con una sola articulación es la siguiente, según G.S.Pisarenko (1979) :

> f_primer_modo:=1/2/3.1415926*3.927^2/0.90^2*sqrt(E*J/A/rho);

:=

f_primer_modo 22.14644390

(59)

PLOT(CURVES([[1,fs2(1)],[1.5,fs2(3/2)],[2,fs2(2)],[2.5,fs2(5/ 2)],[3,fs2(3)],[3.5,fs2(7/2)],[4,fs2(4)],[4.5,fs2(9/2)],[5,fs 2(5)],[5.5,fs2(11/2)],[6,fs2(6)],[6.5,fs2(13/2)],[7,fs2(7)]]) ,TITLE("Frecuencia del segundo modo en función del log de Kprop"),AXESLABELS(log_Kprop,"f_2 (Hz)"));

> >

Vemos que si Kprop > 10000N/m las dos primeras frecuencias propias son casi constantes. >

(60)

Anexo 3.5

Deducción de las ecuaciones del movimiento de una

(61)

DEDUCCIÓN DE LAS ECUACIONES DEL MOVIMIENTO DE UNA

VIGA DE EULER-BERNOULLI GIRATORIA

Hipótesis principales: viga Euler-Bernoulli, no se considera fuerza centrífuga, no se

considera fuerza de Coriolis, la masa del extremo es despreciable, el momento de inercia de las articulaciones es despreciable, accionada mediante un actuador lineal.

> restart;

> with(linalg):

Warning, the protected names norm and trace have been redefined and unprotected

> m_g:=0;J_g:=0;G:=0;

:= m_g 0

:= J_g 0

:=

G 0

La presencia de un actuador lineal divide a la viga en dos regiones. La primera (1) va desde la articulación al actuador lineal y la segunda (2) del actuador lineal al extremo libre. Determinación de la velocidad absoluta de un punto situado en el eje centroidal de la viga. A continuación se determina el cuadrado de esta velocidad.

>

VX1:=vector([-Wln1(x,t)*diff(theta(t),t),0,diff(Wln1(x,t),t)+x*diff(theta(t ),t)]);

:= VX1

−Wln1 ,(x t) , , 

tθ( )t 0  +

tWln1 ,(x t) x

tθ( )t

>

VX2:=vector([-Wln2(x,t)*diff(theta(t),t),0,diff(Wln2(x,t),t)+x*diff(theta(t ),t)]);

:= VX2

−Wln2 ,(x t) , , 

tθ( )t 0  +

tWln2 ,(x t) x

tθ( )t

> VX1_2:=expand(dotprod(VX1,VX1,'orthogonal'));

VX1_2 Wln1 ,(x t)2

tθ( )t 2

 

tWln1 ,(x t) 2

2

tWln1 ,(x t)x

tθ( )t

+ +

(62)

>

dEc1:=(1/2*A*rho*diff(theta(t),t)^2*Wln1(x,t)^2+1/2*A*rho*dif f(Wln1(x,t),t)^2+A*rho*diff(theta(t),t)*diff(Wln1(x,t),t)*x+1 /2*A*rho*diff(theta(t),t)^2*x^2)*dx;

dEc1 1 2Aρ 

   ∂

tθ( )t

2

( ) Wln1 ,x t 2 1

2Aρ 

   ∂

tWln1 ,(x t)

2 +    :=

Aρ 

tθ( )t 

tWln1 ,(x t)x 1 2Aρ 

   ∂

tθ( )t

2 x2 + +   dx > dEc2:=(1/2*A*rho*diff(theta(t),t)^2*Wln2(x,t)^2+1/2*A*rho*dif f(Wln2(x,t),t)^2+A*rho*diff(theta(t),t)*diff(Wln2(x,t),t)*x+1 /2*A*rho*diff(theta(t),t)^2*x^2)*dx; dEc2 1 2Aρ 

   ∂

tθ( )t

2

( ) Wln2 ,x t 2 1

2Aρ 

   ∂

tWln2 ,(x t)

2 +    :=

Aρ 

tθ( )t 

tWln2 ,(x t)x 1 2Aρ 

   ∂

tθ( )t

2

x2

+ + 

 dx

Determinación de la energía cinética total.

> Ec:= expand(int(dEc1/dx,x=0..lc)+int(dEc2/dx,x=lc..L));

Ec 1 2 ⌠ ⌡      0 lc

Aρ 

tθ( )t 2

( )

Wln1 ,x t 2 Aρ 

tWln1 ,(x t) 2 +

:=

2Aρ 

tθ( )t 

tWln1 ,(x t)x Aρ 

tθ( )t 2

x2

+ + dx 1

2 ⌠ ⌡      lc L +

Aρ 

tθ( )t 2

( )

Wln2 ,x t 2 Aρ 

tWln2 ,(x t) 2 +

2Aρ 

tθ( )t 

tWln2 ,(x t)x Aρ 

tθ( )t 2

x2

+ + dx

A continuación se calcula la energía potencial debida a la deformación elástica de una rebanada cualquiera.

> dEp1:=(1/2*E*J*diff(psi1(x,t),x)^2)*dx; > dEp2:=(1/2*E*J*diff(psi2(x,t),x)^2)*dx;

:= dEp1 1

2E J

 

xψ1(x t, ) 2

dx

:= dEp2 1

2E J

 

xψ2(x t, ) 2

(63)

> Ep:= expand(int(dEp1/dx,x=0..lc)+int(dEp2/dx,x=lc..L));

:=

Ep 1 +

2E J d

⌠ ⌡      0 lc  

xψ1(x t, ) 2

x 1

2E J d

⌠ ⌡      lc L  

xψ2(x t, ) 2

x

ECUACIÓN GLOBAL

La ecuación que se deduce a continuación se aplica a la totalidad de la viga. Su significado físico es: la suma de los momentos de todas las fuerzas en el eje que pasa por la articulación O4 es cero.

Determinación del Lagrangiano total. > e0:=expand(Ec-Ep);

e0 1 2 ⌠ ⌡      0 lc

Aρ 

tθ( )t 2

( )

Wln1 ,x t 2 Aρ 

tWln1 ,(x t) 2 +

:=

2Aρ 

tθ( )t 

tWln1 ,(x t)x Aρ 

tθ( )t 2

x2

+ + dx 1

2 ⌠ ⌡      lc L +

Aρ 

tθ( )t 2

( )

Wln2 ,x t 2 Aρ 

tWln2 ,(x t) 2 +

2Aρ 

tθ( )t 

tWln2 ,(x t)x Aρ 

tθ( )t 2

x2

+ + dx

1

2E J d

⌠ ⌡      0 lc  

xψ1(x t, ) 2

x 1

2E J d

⌠ ⌡      lc L  

xψ2(x t, ) 2

x

− −

Figure

Figura A7.1.1 Panel de control del VI principal
Figura A7.1.3 Diagrama de bloques del VI Lazo Abierto
Figura A7.1.5 Diagrama de bloques del VI Estrategia 1
Figura A7.1.7 Diagrama de bloques del VI Integrador
+7

Referencias

Documento similar

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)