bibing.us.esbibing.us.es/proyectos/abreproy/5229/fichero/Proyecto+-+Analisis... · ÍNDICE 1....
Transcript of bibing.us.esbibing.us.es/proyectos/abreproy/5229/fichero/Proyecto+-+Analisis... · ÍNDICE 1....
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA UNIVERSIDAD DE SEVILLA INGENIERÍA INDUSTRIAL
PROYECTO FIN DE CARRERA
“ANÁLISIS POR SIMULACIÓN DE UN MÉTODO
DE CONTROL ACTIVO DE VIBRACIONES”
Autor: Carlos de Lucas Vázquez
Tutor: Emilio Freire Macías
Junio 2013
ÍNDICE
1. INTRODUCCIÓN ................................................................................................................... 1
2. OBJETIVO DEL PROYECTO .............................................................................................. 5
3. DINÁMICA DEL SMART SPRING ...................................................................................... 8
3.1 Ecuaciones dinámicas .................................................................................................... 9
3.1.1 Fuerzas generalizadas sistema primario ............................................................ 10
3.1.2 Fuerzas generalizadas sistema secundario ....................................................... 11
3.1.3 Ecuaciones de movimiento en el dominio del tiempo ....................................... 11
3.2 Fuerza de fricción .......................................................................................................... 12
3.3 Representación en espacio de estados ..................................................................... 14
3.3.1 Representación general ........................................................................................ 14
3.3.2 Vector de estados ................................................................................................... 15
3.3.3 Ecuaciones en forma matricial ............................................................................. 16
4. MODELO NUMÉRICO ........................................................................................................ 18
4.1 Diagrama de bloques .................................................................................................... 19
4.2 Simulaciones .................................................................................................................. 21
4.2.1 Variables y condiciones iniciales .......................................................................... 21
4.2.2 Comprobación del modelo .................................................................................... 22
4.2.3 Configuraciones de un “Smart Spring” ................................................................ 32
5. RESULTADOS DE LAS SIMULACIONES ....................................................................... 35
5.1 Variables y configuraciones iniciales .......................................................................... 35
5.2 “Smart Spring” en varias configuraciones para 𝐹(𝑡) = "𝐸𝑠𝑐𝑎𝑙ó𝑛" ......................... 37
5.3 “Smart Spring” en config. “Stiffness Control” para 𝐹(𝑡) = "𝐶ℎ𝑖𝑟𝑝" ........................ 41
5.4 “Smart Spring” en config. “Mass Control” para 𝐹(𝑡) = "𝐶ℎ𝑖𝑟𝑝" ............................. 46
5.5 “Smart Spring” en config. “Damping” para 𝐹(𝑡) = "𝐶ℎ𝑖𝑟𝑝" ..................................... 49
6. MECANISMO EXCITADO DESDE LA BASE .................................................................. 56
6.1 Introducción .................................................................................................................... 56
6.2 Ecuaciones del sistema ................................................................................................ 57
6.2.1 Ecuaciones dinámicas en el espacio del tiempo ............................................... 57
6.2.2 Ecuaciones en espacio de estados ..................................................................... 57
6.3 Ley de control ................................................................................................................. 59
6.4 Simulación y resultados ................................................................................................ 63
7. CONCLUSIONES ................................................................................................................ 68
8. REFERENCIAS .................................................................................................................... 69
APÉNDICE ................................................................................................................................ 70
A.1 Sim_m_chirp.m .............................................................................................................. 70
A.2 Sim_m_chirp_base.m ................................................................................................... 81
A.3 Sim_m_sen.m ................................................................................................................ 86
A.4 Sim_m_escalon.m ......................................................................................................... 91
A.5 Sim_m_fourier.m ........................................................................................................... 95
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
1. INTRODUCCIÓN
Desde siempre las vibraciones no deseadas, debidas a muy diversas fuentes,
han supuesto un problema para muchos sistemas mecánicos, por tanto es algo que
debemos de evitar, para ello se usan diferentes técnicas para tratar de mitigar en la
medida de lo posible los problemas generados por estas vibraciones no deseadas.
Tradicionalmente se han utilizado aproximaciones pasivas para controlar las
vibraciones. Entre las técnicas utilizadas están el uso de amortiguadores, aisladores y
elementos que aportan rigidez, el problema de estos elementos es que son efectivos
para suprimir vibraciones solo en una banda muy estrecha de frecuencia, con lo que
puede que al presentarse una vibración fuera de esa banda, el sistema puede sufrir
algún daño o problema en su funcionamiento, siendo esto algo no deseado. Además
estos elementos presentan otros problemas importantes: son incapaces de adaptarse
a cambios en las condiciones y además llegan a ser elementos grandes y pesados,
con lo cual estamos incurriendo en importantes penalizaciones de peso para poderlo
incluir en el sistema mecánico.
Como hemos visto, el uso de sistemas pasivos, no proporcionan una solución
definitiva al problema, pero podemos buscar otro camino para solucionarlo pero con
una mejora en la atenuación de las vibraciones, una reducción en el peso del
dispositivo supresor y además consiguiendo una banda de frecuencias más amplia, a
estos sistemas se les conoce como sistemas activos.
Los sistemas activos son unos sistemas en los que se hace uso de actuadores
hidráulicos o uso de algún tipo de material “Smart”, estos materiales son aquellos
materiales en los que podemos modificar una o varias de sus propiedades mediante
un estímulo externo, como por ejemplo campos eléctricos, campos magnéticos,
temperatura, tensión mecánica, etc.
1 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Entre los diferentes tipos de materiales “Smart” tenemos los materiales
piezoeléctricos, materiales con efecto térmico de memoria, materiales con efecto
magnético de memoria, etc.
Los materiales piezoeléctricos son los de mayor interés para el uso de sistemas
activos directos de supresión de vibraciones. Un material piezoeléctrico [1] tiene una
propiedad muy importante para su uso como actuadores mecánicos. Estos materiales
al recibir una tensión mecánica aparece una diferencia de potencial, es decir, generan
una polarización eléctrica, sin embargo también presentan el efecto inverso, si le
aplicamos una diferencia de potencial, logramos deformar el material.
Existen materiales naturales que presentan este efecto, aunque muy
levemente, por eso se han desarrollado unos materiales cerámicos compuestos como
el 𝐵𝑎𝑇𝑖𝑂3 y el Zirconato Titanato de Plomo (PZT), estos últimos son los más utilizados
para actuadores o sensores.
Actualmente existen principalmente dos corrientes en el campo de la supresión
activa de vibraciones, estos son: sistemas activos directos y sistemas activos
indirectos:
1. Sistemas directos:
El método de funcionamiento de este tipo es actuar directamente contra el
problema, es decir, generar la suficiente fuerza o desplazamientos que contrarresten la
fuerza vibratoria. El problema es que para lograr que el piezoeléctrico genere fuerzas
grandes, se necesitan unos requerimientos energéticos altos y además debido a las
restricciones en el movimiento de los materiales piezoeléctricos (se producen
movimientos del orden de 𝜇𝑚) se necesita algún método que amplifique ese
desplazamiento o bien necesito aplicarle un altísimo voltaje para contrarrestar las
vibraciones.
2 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Un ejemplo de utilización de estos sistemas, es en rotores de helicópteros, más
concretamente en el borde de flap con un actuador piezoeléctrico embebido dentro del
aspa [2], se diseña tal que contrarreste la fuerza vibratoria del aspa al rotar.
2. Sistemas indirectos:
En el caso de los sistemas indirectos, no tratamos de actuar directamente
contrarrestando la fuerza vibratoria, si no lo que se pretende es alterar las propiedades
dinámicas del sistema, como son la rigidez, la masa o el amortiguamiento. Estas
propiedades se conocen como impedancia dinámica del sistema.
Se hacen uso también de los llamados materiales “Smart” explicados
anteriormente, pero en esta ocasión no es necesario unos altos requerimientos
energéticos, ya que no estamos actuando en contra de las fuerzas vibratorias y
también porque estos actuadores generan unas fuerzas perpendiculares a los modos
de vibración, es decir, no generan trabajos contra las fuerzas vibratorias. En estos
sistemas con apenas unos 𝜇𝑚 consigo unas fuerzas relativamente altas, que hacen su
función.
Como ejemplos de uso de estos sistemas, tenemos unos amortiguadores con
un fluido magnetoreológicos que mediante un campo magnético alteramos las
propiedades del amortiguador, es de utilidad para suprimir los movimientos sísmicos
de un edificio, y otro ejemplo seria el uso de un “Smart Spring”. Con estos sistemas
indirectos podemos alterar activamente solo una de las propiedades a la vez,
cualquiera de las tres, rigidez, dureza o amortiguamiento, pero sin embargo, gracias a
los “Smart Spring” puedo alterar estas propiedades de forma combinada y de manera
adaptativa según la necesidad que tengamos en cada momento.
3 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
El “Smart Spring” puede tener diversas aplicaciones interesantes como:
1. Sistema de supresión de vibraciones adaptativo para un asiento de un
vehículo, este caso es un caso de mecanismo excitado desde la base que
estudiaremos más tarde en el apartado 6, se coloca entre el asiento y el suelo
del vehículo, es de especial utilidad por ejemplo en helicópteros en los que el
piloto además de pilotar debe hacer uso de otros dispositivos como gafas de
visión nocturna, HUDs u otros, si tuviese vibraciones permanentes podría
inducir en el piloto un malestar que conduciría a un accidente debido a la
perdida de atención a su trabajo.
2. Montura adaptativa para un motor, el objetivo es suprimir la transmisión de
las vibraciones desde su origen mecánico (el propio motor) a la estructura del
vehículo.
3. Control de las vibraciones de un rotor de un helicóptero, se inserta el
dispositivo en la base de las aspas buscando reducir la transmisión de las
vibraciones de las aspas al anclaje del rotor y como consecuencia al resto del
habitáculo, además podemos conseguir también una reducción en el ruido.
4 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
2. OBJETIVO DEL PROYECTO
El objetivo de este proyecto es el estudio del sistema de supresión de
vibraciones conocido como “Smart Spring”, que es un sistema activo-indirecto.
Este dispositivo puede ser usado para variar la impedancia dinámica que
caracteriza al sistema mecánico que queremos “aislar” de vibraciones. Para
comprobar la efectividad del sistema, se realizaran una serie de simulaciones
numéricas para comprobar cómo afecta a la supresión de las vibraciones así como se
ve afectado el sistema ante la variación de los diferentes parámetros.
Antes de entrar en la simulación y resultados, vamos a hacer primero un
desarrollo en el que se explica en que consiste un “Smart Spring”.
Figura 1: Esquema Smart Spring
Según [3] el dispositivo consiste en dos sistemas muelle-amortiguador. El
sistema primario es el formado por la masa 𝑚1 [kg] y una constante del muelle 𝐾1
[N/m]. Este sistema primario es el objetivo de nuestro control; queremos reducir cuanto
sea posible los desplazamientos de 𝑥1.
El sistema secundario es el formado por 𝑚2 [kg] y 𝐾2 [N/m] que forman el
sistema activo. Aquí es donde está incluido el piezoeléctrico, situado al final del muelle
secundario y dentro de una guía que pertenece al sistema primario.
5 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
El sistema, por tanto, como podemos observar en la figura Figura 1, es un
sistema de dos grados de libertad que son los movimientos de 𝑚1 y 𝑚2 en la dirección
horizontal 𝑥.
𝐹(𝑡) es la excitación exterior que recibe el sistema primario y causante por
tanto de una vibración en el sistema, la cual queremos atenuar lo máximo posible.
El control del sistema se realiza mediante la fuerza 𝑁; esta fuerza es generada
por el actuador piezoeléctrico y como resultado esta fuerza provoca una fuerza de
fricción 𝜐 ∙ 𝑁(𝑡) que lleva a un acople de los dos sistemas. Ésta fuerza actúa en ambos
sistemas, primario y secundario, en igual cantidad pero sentido contrario, y es
fácilmente observable que la causa del acople es esa fuerza de fricción, que al ser
proporcional a 𝑁(𝑡) podemos por tanto considerar que el control del acoplamiento lo
realiza el actuador piezoeléctrico. Al ser 𝑁(𝑡) perpendicular a los modos de vibración
del sistema, el trabajo virtual producido por esta fuerza es independiente de 𝑚1, 𝑚2 y
de la 𝐹(𝑡), por tanto, los actuadores piezoeléctricos no ejercen trabajo en contra de la
excitación del sistema o de las cargas vibratorias internas. Con esto queda
demostrado como hemos determinado anteriormente, que un “Smart Spring” es una
aproximación activa-indirecta.
El propósito de ese actuador es como hemos dicho antes, afectar a la cantidad
de acoplamiento que existe entre los sistemas primario y secundario muelle-
amortiguador. Es decir intentamos modificar la impedancia dinámica característica del
sistema, es decir, vamos buscando actuar sobre la rigidez, amortiguamiento y masa
efectiva que el sistema total va a poder ver.
Esto lo conseguimos con los piezoeléctricos. Si aplicamos un voltaje positivo
𝑉(𝑡) a lo largo del piezoeléctrico conseguiremos una elongación de la longitud natural
de éste, por tanto podemos decir que la fuerza de control 𝑁(𝑡) es función a su vez de
𝑉(𝑡).
6 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
En los “Smart Spring” se presentan dos características singulares, que son: la
cantidad de elongación lograda por el piezoeléctrico está restringida por la guía en la
que se encuentra insertado dicho piezoeléctrico, esto provoca una tensión
indeterminada soportada tanto por 𝑚2 como por 𝑚1 y en estos sistemas además, no
existe una relación entre la fuerza de control 𝑁(𝑡) y el modo de desplazamiento de la
salida. Por ejemplo si el sistema se encuentra en un estado de reposo, aplicar una
fuerza 𝑁(𝑡) distinta de cero, no resulta en un desplazamiento de alguna de las dos
masas y el sistema permanecerá en reposo.
7 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
3. DINÁMICA DEL SMART SPRING
En esta sección vamos a desarrollar los modelos dinámicos que predicen el
comportamiento de un sistema en el que se ha incluido un dispositivo Smart Spring.
Se desarrollaran también las ecuaciones de movimiento; estas ecuaciones son
no lineales y servirán luego para el desarrollo del modelo numérico necesario para la
realización de las distintas simulaciones para así comprobar la habilidad del “Smart
Spring” para afectar a la impedancia dinámica del sistema. Más concretamente nos
centraremos en un sistema de dos grados de libertad con un bucle de realimentación
de control.
Figura 2: Esquema Smart Spring
Posteriormente se abordara otro sistema más complejo en el que se manejan
tres grados de libertad, en el que intentaremos realizar un control en bucle cerrado,
más complejo y preciso que el caso anterior.
8 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
3.1 Ecuaciones dinámicas
Haciendo uso de una formulación Lagrangiana del sistema, tendremos la
siguiente ecuación:
𝑑𝑑𝑡�𝜕𝑇𝜕𝑥�̇�
� −𝜕𝑇𝜕𝑥𝑖
+𝜕𝑉𝜕𝑥𝑖
= 𝑄𝑥𝑖
• T: Energía cinética del sistema
• V: Energía potencial del sistema
• 𝑄𝑥𝑖: Fuerzas generalizadas aplicadas sobre el sistema
Las energías cinéticas y potenciales son:
𝑇 =12𝑚1�̇�12 +
12𝑚2�̇�22
𝑉 =12𝐾1�̇�12 +
12𝐾2�̇�22 ⎭
⎪⎬
⎪⎫
(1)
𝑑𝑑𝑡�𝜕𝑇𝜕𝑥�̇�
� = 𝑚1�̈�1
𝑑𝑑𝑡�𝜕𝑇𝜕�̇�2
� = 𝑚2�̈�2⎭⎪⎬
⎪⎫
(2)
Al no ser la energía cinética función de la posición:
𝜕𝑇𝜕𝑥1
=𝜕𝑇𝜕𝑥2
= 0 (3)
Y si hacemos también la derivada de la energía potencial:
𝜕𝑉𝜕𝑥1
= 𝐾1𝑥1
𝜕𝑉𝜕𝑥2
= 𝐾2𝑥2⎭⎪⎬
⎪⎫
(4)
9 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Si combino todas las ecuaciones anteriores en la primera:
𝑚1�̈�1 + 𝐾1𝑥1 = 𝑄1
𝑚2�̈�2 + 𝐾2𝑥2 = 𝑄2� (5)
Quedan por determinar las fuerzas generalizadas, que se hace simplemente
por observación de las fuerzas aplicadas sobre las dos masas, usando para ello los
diagramas de cuerpo libre para cada elemento.
3.1.1 Fuerzas generalizadas sistema primario
Figura 3: Diagráma de sólido libre sistema primario
𝑄1 = 𝐹(𝑡) − 𝑓(𝑡) − 𝑐�̇�1 (6)
Podemos ver que las fuerzas que actúan sobre 𝑚1 son:
• 𝐹(𝑡) que es la excitación exterior.
• 𝑓(𝑡) que es la fuerza de fricción.
• Fuerza viscosa debida al coeficiente de amortiguamiento interno que presenta
el muelle 𝐾1.
10 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
3.1.2 Fuerzas generalizadas sistema secundario
Figura 4: Diagráma de sólido libre sistema secundario
𝑄2 = 𝑓(𝑡) − 𝑐�̇�2 (7)
En este sistema solo existen las fuerzas de fricción y la correspondiente fuerza
viscosa debida al coeficiente de amortiguamiento interno del muelle 𝐾2 .
3.1.3 Ecuaciones de movimiento en el dominio del tiempo
Sustituyendo (6) y (7) en (5) obtengo:
𝑚1�̈�1 + 𝐾1𝑥1 + 𝑐1�̇�1 = 𝐹(𝑡) − 𝑓(𝑡)
𝑚2�̈�2 + 𝐾2𝑥2 + 𝑐2�̇�2 = 𝑓(𝑡)� (8)
Estas son las ecuaciones que describen el movimiento de ambos muelles para
cada instante t. Como podemos ver son dos ecuaciones acopladas por la fuerza de
fricción 𝑓(𝑡).
11 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
3.2 Fuerza de fricción
Hasta ahora hemos hablado de las fuerzas de fricción que existían en el
mecanismo pero en ningún momento hemos caracterizado como es dicha fuerza. Por
tanto vamos a caracterizar dichas fuerzas, ya que son parte fundamental de este
proyecto puesto que éstas provocan un intercambio de energía mecánica en el
sistema conforme se van acoplando las dos masas; más concretamente, se producen
unas perdidas por fricción en la superficie de contacto debido a la velocidad relativa de
las masas y de la fuerza de fricción que se traducen en un amortiguamiento para el
sistema completo controlado.
Lo primero que debemos tener en cuenta es la fuerte no linealidad que existe
en esta fuerza. Como hemos comentado en el apartado anterior, la fuerza de fricción
responde a la ecuación:
𝑓(𝑡) = 𝜐 ∙ 𝑢(𝑡) (9)
El componente no lineal de esa ecuación lo marca el coeficiente de rozamiento
𝜐, este coeficiente depende de la velocidad relativa 𝑉𝑟𝑒𝑙 = �̇�2 − �̇�1 y del material
involucrado. Y 𝑢(𝑡) corresponde a la ley de control aplicada al sistema.
Si la velocidad relativa es distinta de cero, entonces la 𝑓(𝑡) es igual a la fuerza
dinámica de fricción, por tanto podemos escribir dicha fuerza como el producto del
coeficiente dinámico de fricción y la fuerza del actuador 𝑁(𝑡) (que es nuestra ley de
control). Ya que la velocidad relativa puede tener valores tanto positivos como
negativos, podemos reescribir la ecuación (9) como:
𝑓(𝑡) = �𝜐𝑘 ∙ 𝑁(𝑡) 𝑠𝑖 𝑉𝑟𝑒𝑙 > 0
−𝜐𝑘 ∙ 𝑁(𝑡) 𝑠𝑖 𝑉𝑟𝑒𝑙 < 0 (10)
Normalmente podemos observar que cuando tenemos una interacción entre
dos elementos de acero, vemos que los valores del coeficiente de rozamiento
12 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
aumentan conforme decrece la velocidad relativa tendiendo a cero cuando la velocidad
relativa tiende al infinito, y además cuando la velocidad relativa es cero existe una
singularidad ya que estoy pasando instantáneamente de un coeficiente dinámico 𝜐𝑘 a
uno estático 𝜐𝑠.
En este proyecto tomamos como valores de los coeficientes de fricción
dinámicos los proporcionados por un manual estándar de ingeniería [4]. Este manual
solo nos proporciona unos coeficientes positivos para velocidades relativas positivas,
por tanto para dar validez a la ecuación (10) tenemos que asignar también unos
valores de coeficientes negativos para los casos en los que las velocidades relativas
sean negativas, y para ellos simplemente cambiamos el signo a los valores de los
coeficientes positivos.
Si representamos gráficamente esos coeficientes frente a las velocidades
relativas tendríamos:
Figura 5: Coeficiente dinámico de fricción vs Velocidad relativa
13 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
3.3 Representación en el espacio de estados
Para poder realizar simulaciones necesitamos primero convertir esas
ecuaciones dinámicas a algo que “entienda” Simulink, en este caso debemos escribir
las ecuaciones, como ecuaciones en el espacio de estado.
3.3.1 Representación general
Una representación general del espacio de estados seria:
�̇�(𝑡) = 𝐴(𝑡) ∙ 𝑥(𝑡) + 𝐵(𝑡) ∙ 𝑢(𝑡)
𝑦(𝑡) = 𝐶(𝑡) ∙ 𝑥(𝑡) + 𝐷(𝑡) ∙ 𝑢(𝑡)
Este es un sistema de p entradas con q salidas y n variables de estado donde:
• x(t): Vector de estados.
• y(t): Vector de salidas.
• u(t): Vector de control/entradas.
• A(t): Matriz de estados de dimensiones 𝑛 × 𝑛.
• B(t): Matriz de entrada de dimensiones 𝑛 × 𝑝.
• C(t): Matriz de salida de dimensiones 𝑞 × 𝑛.
• D(t): Siempre se toma como cero.
Un modelo de este espacio de estados seria:
14 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
3.3.2 Vector de estados
Para las ecuaciones (8), tomo como estados, la posición y la velocidad de cada
coordenada, es decir, 𝑥𝑖 y 𝑥�̇�
{𝑋𝑠} = �
𝑋𝑆1𝑋𝑆2𝑋𝑆3𝑋𝑆4
�
𝑋𝑆1 = 𝑥1; 𝑋𝑆2 = �̇�1; 𝑋𝑆3 = 𝑥2; 𝑋𝑆4 = �̇�2
Derivando {𝑋𝑠}:
��̇�𝑆� =
⎩⎪⎨
⎪⎧�̇�𝑆1�̇�𝑆2�̇�𝑆3�̇�𝑆4⎭
⎪⎬
⎪⎫
�̇�𝑆1 = 𝑋𝑆2; �̇�𝑆2 = �̈�1; �̇�𝑆3 = 𝑋𝑆4; �̇�𝑆4 = �̈�2
Una vez establecido el vector de estado, procedemos a reescribir las
ecuaciones (8) sustituyendo 𝑥𝑖 por 𝑋𝑆𝑖 y dejando en el término de la izquierda solo los
términos que correspondan a �̇�𝑆𝑖 y en el término de la derecha todos los demás
componentes de la ecuación:
�̇�𝑆1 = 𝑋𝑆2
(𝑎) 𝑚1�̇�𝑆2 = −𝐾1𝑋𝑆1 − 𝑐1𝑋𝑆2 + 𝐹(𝑡) − 𝑓(𝑡)
�̇�𝑆3 = 𝑋𝑆4
(𝑏) 𝑚2�̇�𝑆4 = −𝐾2𝑋𝑆3 − 𝑐2𝑋𝑆4 − 𝑓(𝑡)⎭⎪⎪⎬
⎪⎪⎫
(11)
15 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
3.3.3 Ecuaciones en forma matricial
Dividiendo (a) por 𝑚1 y (b) por 𝑚2 y escribiéndolo todo en forma matricial
obtengo:
⎣⎢⎢⎢⎢⎢⎢⎡�̇�𝑆1
�̇�𝑆2
�̇�𝑆3
�̇�𝑆4⎦⎥⎥⎥⎥⎥⎥⎤
=
⎣⎢⎢⎢⎢⎢⎢⎡
0 1 0 0
− 𝐾1𝑚1
− 𝑐1𝑚1
0 0
0 0 0 1
0 0 − 𝐾2𝑚2
− 𝑐2𝑚2⎦⎥⎥⎥⎥⎥⎥⎤
∙
⎣⎢⎢⎢⎢⎢⎡𝑋𝑆1
𝑋𝑆2
𝑋𝑆3
𝑋𝑆4⎦⎥⎥⎥⎥⎥⎤
+
⎣⎢⎢⎢⎢⎢⎢⎡
0
1𝑚1
0
0 ⎦⎥⎥⎥⎥⎥⎥⎤
∙ 𝐹(𝑡) +
⎣⎢⎢⎢⎢⎢⎢⎡
0
− 1𝑚1
0
1𝑚2 ⎦
⎥⎥⎥⎥⎥⎥⎤
∙ 𝑓(𝑡) (12)
Separamos cada uno de los términos señalando que es cada uno de los
términos:
Matriz de estados: 𝐴 =
⎣⎢⎢⎢⎢⎢⎢⎡
0 1 0 0
− 𝐾1𝑚1
− 𝑐1𝑚1
0 0
0 0 0 1
0 0 − 𝐾2𝑚2
− 𝑐2𝑚2⎦⎥⎥⎥⎥⎥⎥⎤
Matriz de entrada: 𝐵 =
⎣⎢⎢⎢⎢⎢⎢⎡
0
− 1𝑚1
0
1𝑚2 ⎦
⎥⎥⎥⎥⎥⎥⎤
Excitación exterior: 𝐸 =
⎣⎢⎢⎢⎢⎢⎢⎡
0
1𝑚1
0
0 ⎦⎥⎥⎥⎥⎥⎥⎤
16 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Matriz de salida: C con esta matriz lo que hacemos es seleccionar las salidas
que nos van a interesar utilizar u observar, también se conoce como matriz de
observabilidad y se formulará más adelante cuando desarrollemos el modelo
numérico. Básicamente es una matriz compuesta por 0, 1 y -1 y de dimensiones 𝑞 × 𝑛.
Tengo que tener también en cuenta que 𝑓(𝑡) = 𝜐 ∙ 𝑢(𝑡) siendo 𝑢(𝑡) la ley de
control, que en este caso sería la fuerza 𝑁(𝑡) que el actuador piezoeléctrico realiza
sobre la guía de manera perpendicular al elongarse tras recibir un voltaje 𝑉(𝑡).
17 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
4. MODELO NUMÉRICO
Ya tenemos todo lo necesario para introducir los datos en el modelo numérico y
proceder a la integración de las ecuaciones (12).
Por tanto en este apartado desarrollaremos como vamos a hacer las
simulaciones: Qué variables tenemos que inicializar, diferentes configuraciones de los
parámetros para comprobar que el sistema funciona correctamente, así como
diferentes configuraciones del “Smart Spring”.
Hay que destacar que tenemos que hacer uso de una solución numérica
debido al carácter no lineal de las fuerzas de fricción y de su dependencia con la
fuerza del actuador piezoeléctrico N(t), esto haría complicado su resolución mediante
otras técnicas.
El software utilizado es Matlab y Simulink, que es una interfaz gráfica de Matlab
con la que podemos diseñar un sistema y simularlo modificando los parámetros que
necesitemos. Simulink consta de muy diversas herramientas para estudios de todo
tipo, en este caso vamos a usar siempre bloques que corresponden a dominio
continuo.
Para obtener los resultados de las simulaciones nos bastará con ejecutar cada
uno de los programas de Matlab que corresponden cada uno a una simulación
realizada, una vez ejecutados los programas irán apareciendo los resultados en
pantalla.
18 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
4.1 Diagrama de bloques
En Simulink construiremos un modelo de bloques, que consta de los siguientes
elementos:
Figura 6: Diagrama de bloques
Matrices de las ecuaciones en la representación de espacio de estados,
es decir, las matrices A,B,C y E, en Simulink corresponden a un bloque
llamado “Gain”, toma una entrada y la multiplica por un factor, en
nuestro caso una matriz para obtener la salida.
Integrador del sistema de ecuaciones, a su izquierda tiene como
entrada �𝑋�̇�� y la salida de dicho bloque son las ecuaciones ya
integradas {𝑋𝑠}. A este bloque también hay que especificarles las
condiciones iniciales, esto se puede hacer con condiciones internas o
externas, elegimos condiciones internas en este caso.
19 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Los bloques en color cian son la excitación 𝐹(𝑡) y la señal de control,
que es la fuerza 𝑁(𝑡) del actuador piezoeléctrico.
Simples operadores matemáticos, en este caso, uno de ellos es un
producto y el otro una división.
En magenta tenemos un bloque llamado “Look-up Table”, la función de
este bloque es obtener el valor del coeficiente de rozamiento, tiene
como entrada la velocidad relativa, con ese valor de entrada busca en la
tabla que contiene como parámetros dicho bloque y realiza una
interpolación lineal para obtener el valor del coeficiente de rozamiento.
En amarillo representamos una salida del sistema que es la rigidez
dinámica del sistema, que la obtenemos haciendo la siguiente
operación: 𝑘(𝑡) = 𝐹(𝑡)𝑥1
.
En celeste tenemos las salidas del sistema que nos interesa observar,
en este caso tenemos 𝑥1 ; �̇�1 ; 𝑥2 ; �̇�2 y �̇�2 − �̇�1.
En la Figura 6, podemos observar como dentro del rectángulo de líneas
discontinuas lo que encontramos es el modelo en espacio de estados y alrededor de
éste se le han añadido todos los bloques necesarios para obtener el resto de
parámetros que queremos observar.
El lazo de realimentación, que proviene de la velocidad relativa y de la “Look-
up Table” (color verde claro) nos permite calcular en cada instante el valor de
coeficiente de fricción y así proporcionar esa información a la entrada del sistema, esto
nos da un control en bucle cerrado para el sistema; y por último vemos también una
línea en color morado, que es por donde proporcionamos al sistema la fuerza 𝑁(𝑡), si
dicha fuerza fuese 0, entonces nos encontraríamos con un bucle de control abierto.
20 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
4.2 Simulaciones
En este apartado vamos a explicar las simulaciones realizadas así como los
valores de los parámetros utilizados.
4.2.1 Variables y condiciones iniciales
Cada simulación tiene sus parámetros característicos, pero existen una serie
de parámetros iniciales que son comunes a todas las simulaciones, estos son:
• Tiempo de simulación: Cuantos segundos vamos a simular el sistema.
• Condiciones iniciales: Condiciones iniciales del integrador, es decir, valores
iniciales para 𝑥1 ; �̇�1 ; 𝑥2 ; �̇�2; en principio, vamos a tomarlos siempre como
cero.
• Paso de integración: Intervalo de discretización de la variable temporal.
• Matriz C: Esta matriz es la misma para todas las simulaciones que se han
realizado y consiste en una matriz que al ser multiplicada por el vector de
salida del modelo nos proporciona las salidas que nosotros queremos
observar, para el caso nuestro usamos la siguiente matriz:
𝐶 = ��
1 0 0 00 1 0 00 0 1 00 0 0 10 1 0 −1
��
Si hacemos la siguiente operación: 𝐶 ∙ {𝑋𝑠} tengo un vector de salida tal que:
𝑆𝑎𝑙𝑖𝑑𝑎 =
⎩⎪⎨
⎪⎧
𝑥1�̇�1𝑥2�̇�2
𝑉𝑟𝑒𝑙 = �̇�2 − �̇�1⎭⎪⎬
⎪⎫
21 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
4.2.2 Comprobación del modelo
Antes de realizar la simulación final del proyecto, tenemos que comprobar
previamente que las ecuaciones obtenidas, los diagramas de bloques de simulink, etc
estén bien diseñados y todo esté funcionando como es debido.
Empezamos comprobando que los valores del coeficiente de fricción se ajusten
a lo que hemos visto teóricamente cuando hemos descrito la dinámica del “Smart
Spring”.
Los valores del coeficiente dinámico de fricción lo obtenemos como hemos
dicho antes de un manual de ingeniería [4], según este manual los valores son:
𝑽𝒓𝒆𝒍 [𝒎 𝒔⁄ ] 𝝊 𝟐.𝟓𝟒 ∙ 𝟏𝟎−𝟔 0.53 𝟐.𝟓𝟒 ∙ 𝟏𝟎−𝟓 0.48 𝟐.𝟓𝟒 ∙ 𝟏𝟎−𝟒 0.39
0.00254 0.31 0.0254 0.23 0.254 0.19 2.54 0.18
Estos valores los insertamos en Simulink como una “Look-up Table”, para cada
paso de integración vamos a obtener un valor de la velocidad relativa, usamos esa
velocidad relativa como entrada de búsqueda en la tabla, obteniéndose el coeficiente
de fricción mediante interpolación lineal entre los valores más próximos tabulados. En
la tabla de Simulink se incluyen además los valores negativos de esos coeficientes
para el caso en el que tengamos una velocidad relativa negativa.
Si representamos esos valores en una gráfica podemos observar varias cosas,
lo primero es que la curva en su forma coincide perfectamente con la curva que
comentamos en el apartado 3.3 (Figura 5) cuando describíamos la fuerza de fricción.
22 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Figura 7: Coeficiente de fricción
El mínimo valor para el coeficiente que obtengo es 0.18 para una velocidad
relativa de 2.54 𝑚 𝑠⁄ , se puede considerar que para velocidades mayores a 2.54 𝑚 𝑠⁄ ,
el valor del coeficiente será 0.18 ya que la pendiente de la curva es muy horizontal. En
teoría el coeficiente de fricción debe aproximarse a cero cuando la velocidad relativa
tiende al infinito.
El valor máximo se obtiene para una velocidad relativa de
2.54 ∙ 10−6 𝑚 𝑠⁄ con un valor de coeficiente de 0.53, este valor es el que consideramos
como valor de coeficiente estático. La singularidad que debe ocurrir en este punto no
la vamos a tener en el modelo numérico ya que realmente en ese trozo, en el que la
velocidad es 0 ≤ |𝑉𝑟𝑒𝑙| ≤ 2.54 ∙ 10−6 𝑚 𝑠⁄ , el coeficiente no salta de un valor a otro, si
no que se interpola realmente entre 0 y |𝜐𝑠|, sin embargo el modelo numérico al final si
se aproxima muy bien a esa singularidad si conseguimos una fuerza N(t)
suficientemente grande como para que se acople el mecanismo.
-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
Velocidad relativa [m/s]
Coe
ficie
nte
de fr
icci
ón
23 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
La siguiente comprobación una vez establecidas las variables iniciales y
también el valor del coeficiente de fricción, es ver si la simulación numérica se ajusta
verdaderamente a las ecuaciones dinámicas del sistema por ejemplo eliminando el
rozamiento del sistema. Si eliminamos el rozamiento, el sistema de ecuaciones (8)
pasaría a tener la forma:
𝑚1�̈�1 + 𝐾1𝑥1 + 𝑐1�̇�1 = 𝐹(𝑡)
𝑚2�̈�2 + 𝐾2𝑥2 + 𝑐2�̇�2 = 0� (13)
Ahora tengo un sistema de dos ecuaciones totalmente desacopladas una de la
otra, la ecuación del sistema secundario, corresponde a la de un sistema sin excitación
externa por lo que es la ecuación de un sistema totalmente en reposo, no está
influyendo de ninguna manera en el funcionamiento del sistema, por lo que podemos
decir que hemos pasado de un sistema de dos grados de libertad a un sistema en el
que solo existe un grado de libertad, el que corresponde al sistema primario. Al
eliminar el rozamiento no tengo ninguna fuerza que frene el movimiento, por lo que al
excitar el sistema con una 𝐹(𝑡) éste acabará moviéndose de igual manera que esa
𝐹(𝑡) salvo en un pequeño periodo transitorio.
Realizamos unas simulaciones previas tomando datos similares a los utilizados
en [3]:
Sistema primario
Sistema secundario
Sistema acoplado
𝒎 [kg] 0.12 0.09 0.21 𝑲 [N/m] 3262 12232 15494 𝝎𝒏 [Hz] 26.22 59.27 43.23
ζ 0.05 0.05 -
24 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Con estos datos necesitamos además calcular el valor de 𝑐1 y 𝑐2, para poder
calcular dichos valores necesitamos hacer uso del coef. de amortiguamiento (ζ) que
tenemos en la tabla de datos, para ello hacemos uso de la relación existente entre 𝑐𝑖 y
ζ que nos dice la mecánica de máquinas:
ζ =𝑐
2 ∙ 𝑚 ∙ 𝜔𝑛; 𝜔𝑛 = �𝐾
𝑚
Despejando 𝑐:
𝑐 = ζ ∙ 2 ∙ √𝐾 ∙ 𝑚
Según el valor que tengamos de ζ, el sistema va a responder de distintas formas:
Figura 8: Coef. Amortiguamiento
• Si ζ < 1, sistema subamortiguado.
• Si ζ = 1, sistema criticamente amortiguado.
• Si ζ > 1, sistema sobreamortiguado.
t [s]
X1(
t) [m
]
SubamortiguadoCriticamente amortiguadoSobreamortiguado
25 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Para nuestra simulación hemos decidido tomar ζ = 0.05, ya que solo tenemos
como amortiguamiento el que corresponde al intrínseco del propio muelle, entonces,
estamos en el caso subamortiguado. Si aplicamos a nuestro sistema una entrada en
escalón debemos de obtener una gráfica parecida a la gráfica azul de la Figura 8.
Simulando en Matlab nuestro modelo:
Figura 9: Modelo sin rozamiento entrada escalón
Ejecutando en Matlab el archivo “Sim_m_sin_roz.m” obtengo:
Figura 10: Respuesta del sistema sin rozamiento ante entrada escalón
0 0.1 0.2 0.3 0.4 0.5 0.6 0.70
0.001
0.002
0.003
0.004
0.005
0.006
0.007
0.008
0.009
0.01
t [s]
X1(
t) [m
]
X1(t)X2(t)
26 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Es fácilmente observable que la respuesta de 𝑥1(𝑡) es como esperábamos,
tiene una sobreoscilación debido a que el sistema es subamortiguado y también
vemos como 𝑥2(𝑡) es cero para todo instante ya que como hemos explicado al no
estar excitado el sistema secundario por ninguna fuerza debe permanecer en reposo,
tal y como estaba al inicio.
Otra comprobación similar seria por ejemplo utilizar como excitación a 𝐹(𝑡) =
𝐴 ∙ sin𝜔 ∙ 𝑡, para este caso vamos a suponer que si existe rozamiento, pero
consideramos dos casos, el primero va a ser suponer 𝑁(𝑡) = 0 que es lo mismo que si
no existiese rozamiento y además se considerará un valor de 𝑁(𝑡) lo suficientemente
grande como para que el mecanismo se bloquee. Además de esto, a 𝐹(𝑡) vamos a
aplicarles distintas frecuencias, para ver el comportamiento del sistema cuando nos
aproximamos o alejamos de la frecuencia natural del sistema.
El modelo a simular en Matlab es:
Figura 11: Modelo con rozamiento no lineal y F(t)=Asen(wt)
27 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Como primera comprobación considero que 𝑁(𝑡) = 0, como vimos con el
escalón, todo el lazo de realimentación que incluye al coeficiente de rozamiento
desaparecería, quedando solamente el sistema primario con una 𝜔𝑛 = 26.22 𝐻𝑧 , por
tanto si yo excito al sistema con una fuerza 𝐹(𝑡) = 𝐴 ∙ sin𝜔 ∙ 𝑡 el sistema responderá
con una salida 𝑥1(𝑡) también con forma senoidal. Ahora bien, en función de la 𝜔 que
tomemos vamos a tener diferentes amplitudes en 𝑥1(𝑡).
Por ejemplo para 𝐹(𝑡) = 10 ∙ sin𝜔 ∙ 𝑡 :
Figura 12: 𝒙𝟏(𝒕) para 𝑭(𝒕) = 𝟏𝟎 ∙ 𝐬𝐢𝐧𝝎 ∙ 𝒕; 𝑵(𝒕) = 𝟎
• Para 𝜔 < 𝜔𝑛: En este caso tenemos el punto medio de amplitudes de los
tres casos, no es la mayor atenuación posible pero tampoco la peor.
• Para 𝜔 ≅ 𝜔𝑛: Cuando nos acercamos a 𝜔𝑛 o estamos en la 𝜔𝑛 vamos a
tener un efecto no deseado puesto que en lugar de reducir la amplitud de
las vibraciones lo que vamos a conseguir es un aumento de su amplitud.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.025
-0.02
-0.015
-0.01
-0.005
0
0.005
0.01
0.015
0.02
0.025
t (s)
Des
plaz
amie
nto
(m)
Wf<WnWf=WnWf>Wn
28 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
• Para 𝜔 > 𝜔𝑛: Si tenemos una 𝜔 mayor que la 𝜔𝑛 vamos a conseguir la
mayor atenuación posible en la salida del sistema.
Figura 13: Detalle transitorio
En este detalle podemos ver como existe un periodo transitorio hasta
aproximadamente 0.3 s, a partir de ese momento la salida 𝑥1(𝑡) pasa a ser periódica
como era de esperar para un sistema de segundo orden con un solo grado de libertad.
Realizando un análisis en frecuencia mediante la transformada de Fourier
(FFT), obtenemos una representación en frecuencia de la salida 𝑥1(𝑡), para ello nos
ayudamos del archivo “Sim_m_fourier.m”, que nos calcula la transformada para un
vector dado, esa función tiene como entrada el vector de datos que queremos analizar
y nos devuelve dos vectores, uno con los valores del análisis FFT en 𝑑𝐵 y otro con las
frecuencias para poder realizar la representación siguiente:
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4-0.025
-0.02
-0.015
-0.01
-0.005
0
0.005
0.01
0.015
0.02
0.025
t (s)
Des
plaz
amie
nto
(m)
Wf<WnWf=WnWf>Wn
29 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Figura 14: Análisis FFT de x1(t) para distintas w
En el análisis FFT se observa:
• 𝜔 < 𝜔𝑛: Tengo un pico para 𝜔 pero también aparece un segundo pico de
resonancia para 𝜔𝑛.
• 𝜔 ≅ 𝜔𝑛 Tengo un único pico de resonancia precisamente en 𝜔𝑛.
• 𝜔 > 𝜔𝑛: Ocurre exactamente lo mismo que para el caso 𝜔 > 𝜔𝑛, tenemos
un pico en su 𝜔 y otro en 𝜔𝑛.
Para el caso de tener el mecanismo acoplado, es decir, hemos alcanzado la
suficiente fuerza 𝑁(𝑡) como para que la |𝑉𝑟𝑒𝑙| ≤ 2.54 ∙ 10−6 𝑚 𝑠⁄ , podemos ver que las
gráficas mantienen aproximadamente las mismas formas (Figura 15) que con el
mecanismo sin aplicar 𝑁(𝑡) (Figura 14) pero ahora los picos de resonancia aparecen
para la 𝜔 acoplada, y además se observa como la amplitud del desplazamiento en
𝑥1(𝑡) se ha reducido.
0 10 20 30 40 50 60-10
-9
-8
-7
-6
-5
-4
-3
-2
-1
Frecuencia (Hz)
Des
plaz
amie
nto
(dB
)
Wf<WnWf=WnWf>Wn
30 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Figura 15: 𝒙𝟏(𝒕) para 𝑭(𝒕) = 𝟏𝟎 ∙ 𝐬𝐢𝐧𝝎 ∙ 𝒕; 𝑵(𝒕) ≠ 𝟎 𝒚 𝑭𝑭𝑻 𝒑𝒂𝒓𝒂 𝒙𝟏(𝒕)
31 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
4.2.3 Configuraciones de un “Smart Spring”
Con el desarrollo realizado en apartados anteriores, podemos decir que un
“Smart Spring”, es un dispositivo para la supresión de vibración de un modo activo e
indirecto y es usado para variar la impedancia dinámica del sistema. Esto se realiza
mediante el control de las fuerzas de fricción, que son al fin y al cabo un método de
controlar la contribución del sistema secundario a la impedancia del sistema.
Si la fuerza de control aplicada es cero (𝑁(𝑡) = 0) no hay contacto de fricción,
es decir, no existe un acople entre el sistema primario y el secundario, por tanto, no
hay un aporte del sistema secundario a la impedancia dinámica del sistema. Se dice
por tanto que el sistema está totalmente desacoplado. Esta respuesta es la que vamos
a considerar en todas las simulaciones como la respuesta de referencia con la que
comparar las distintas configuraciones de “Smart Spring” y así ver sus ventajas.
El sistema pasaría a ser un sistema de un solo grado de libertad consistente en
el sistema primario, con una frecuencia natural tal que:
𝜔0 = �𝐾1𝑚1
(14)
Si por el contrario, la fuerza de control fuese distinta de cero y lo
suficientemente elevada como para conseguir que el sistema primario y el secundario
se acoplen, diremos que este caso, es el caso de acoplamiento completo, en el que
ambas masas se mueven como una sola y los muelles actúan en paralelo. Es en este
momento cuando las pérdidas por fricción llegan a su máximo y a partir de ese
momento empieza a descender a cero debido a que se está dando el acople total y la
𝑉𝑟𝑒𝑙 debe tender a cero también ya que no existe desplazamiento relativo entre 𝑚1 y
𝑚2. En la práctica sin embargo esto no puede ocurrir ya que no va a existir ningún
momento en el que la velocidad relativa sea cero constantemente, siempre va a existir
un cierto desplazamiento relativo.
32 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
En este caso la frecuencia del sistema totalmente acoplado pasaría a ser:
𝜔𝑐 = �𝐾1 + 𝐾2𝑚1 + 𝑚2
(15)
Por tanto, las 𝑚𝑆 y 𝐾𝑆 que el sistema total ya controlado va viendo, pueden ser
cualquiera posible entre los dos casos extremos que se nos presentan, es decir, entre
sistema desacoplado y sistema acoplado.
Debido a esta capacidad para modificar la impedancia, podemos configurar el
“Smart Spring” de diferentes maneras para poder afectar preferentemente a unas
determinadas propiedades, por ejemplo, podemos actuar sobre la rigidez del sistema o
“Stiffness Control”, ó sobre la masa efectiva o “Mass Control” ó sobre el
amortiguamiento “Damping”.
En esos tres casos el sistema primario es idéntico para los tres, por tanto, para
𝑁(𝑡) = 0 la respuesta del sistema es también idéntica. Las diferencias entre estos
sistemas están en los valores que tomamos del sistema secundario. Para ello
tomamos los valores del sistema secundario relacionándolos con los del sistema
primario, tal que:
• Rigidez o “Stiffness Control”: Cuando tenemos un sistema “Smart Spring”
configurado de esta forma lo que vamos a obtener es un sistema en el que
tenemos una frecuencia acoplada mayor que la frecuencia natural y además
también obtenemos una amplitud atenuada en mayor o menor medida en
función de la 𝑁 aplicada, esto lo vamos a conseguir configurando los
parámetros tal que se cumpla:
𝑚2
𝑚1< 1 𝐾2
𝐾1> 1
33 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
• Masa efectiva o “Mass Control”: Con esta configuración en el “Smart
Spring” vamos a conseguir un sistema con una frecuencia acoplada (𝜔) mucho
menor que la frecuencia natural (𝜔0), de nuevo también muestra una amplitud
reducida en la respuesta respecto a la respuesta de referencia, que
recordemos que es la respuesta del sistema cuando 𝑁(𝑡) = 0. Esta
configuración se obtiene si configuramos los parámetros de la siguiente forma:
𝑚2
𝑚1> 1 𝐾2
𝐾1< 1
• Amortiguamiento o “Damping”: El efecto “damping” se consigue siempre
que existan perdidas por fricción en el sistema, es decir, esto va a ocurrir
siempre que el sistema se encuentre entre uno de los dos extremos posibles
para un “Smart Spring”, es decir, siempre que este entre desacoplado y
acoplado. Esto lo conseguimos aportando la suficiente fuerza 𝑁(𝑡) para que
exista fricción pero también que no sea tan alta como para que el mecanismo
primario se acople con el secundario. La respuesta del sistema siempre va a
tender a seguir la respuesta de referencia o bien la configuración acoplada que
corresponda según este en “Stiffness Control” o “Mass Control”.
34 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
5. RESULTADOS DE LAS SIMULACIONES
5.1 Variables y configuraciones iniciales
Las variables comunes a todas las simulaciones es lo primero que se inicializa.
Estas variables son:
• Tiempo de simulación: ts=60
• Vector de condiciones iniciales: cond_ini=[0;0;0;0]
• Paso de integración: Determinamos un paso fijo y de valor:
paso_int=0.00005
Las simulaciones se realizaran para cada uno de los tres tipos de “Smart
Spring” así como para diversos valores de 𝑁(𝑡) y también para distintas 𝐹(𝑡).
Empezamos definiendo las distintas configuraciones de “Smart Spring”:
“Stiffness”:
𝑚2
𝑚1< 1 𝐾2
𝐾1> 1
“Mass Control”:
𝑚2
𝑚1> 1 𝐾2
𝐾1< 1
Tomamos por ejemplo las siguientes relaciones:
“Stiffness” “Mass Control” 𝒎𝟐 𝒎𝟏� 0.75 4 𝑲𝟐
𝑲𝟏� 3.75 0.5
35 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Es importante definir también las matrices del sistema, que para este caso son:
• Matriz de estados: A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2];
• Matriz de entradas: B=[0;-1/m1;0;1/m2];
• Matriz de salidas: C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1;0 1 0 -1];
• Matriz de perturbación: E=[0;1/m1;0;0];
Los valores para el rozamiento se inicializan también al principio del programa
con los siguientes valores dictados según [4]:
𝑽𝒓𝒆𝒍 [𝒎 𝒔⁄ ] 𝝊 𝟐.𝟓𝟒 ∙ 𝟏𝟎−𝟔 0.53 𝟐.𝟓𝟒 ∙ 𝟏𝟎−𝟓 0.48 𝟐.𝟓𝟒 ∙ 𝟏𝟎−𝟒 0.39
0.00254 0.31 0.0254 0.23 0.254 0.19 2.54 0.18
36 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
5.2 “Smart Spring” en varias configuraciones para 𝑭(𝒕) = "𝑬𝒔𝒄𝒂𝒍ó𝒏"
Figura 16: Modelo simulado
1. Señal 𝑭(𝒕):
La función “Escalón” es un escalón de amplitud 𝐹(𝑡) = 70 [𝑁].
2. Señal 𝑵(𝒕):
𝑁(𝑡) = 0 : Caso desacoplado, o nuestra respuesta de referencia.
𝑁(𝑡) = 20 [𝑁] : “Damping”.
𝑁(𝑡) = 400 [𝑁] : Caso acoplado.
3. Valores masas, muelles, etc:
Recordemos que, 𝑐 = ζ ∙ 2 ∙ √𝐾 ∙ 𝑚
37 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
“Stiffness Control”:
ζ 𝒎𝟏[𝒌𝒈] 𝑲𝟏[𝑵 𝒎⁄ ] 𝒄𝟏[𝑵 ∙ 𝒎 𝒔⁄ ] 𝒎𝟐[𝒌𝒈] 𝑲𝟐[𝑵 𝒎⁄ ] 𝒄𝟐[𝑵 ∙ 𝒎 𝒔⁄ ]
Valores 0.05 0.12 3262 1.98 0.09 12232 3.32
“Mass Control”:
ζ 𝒎𝟏[𝒌𝒈] 𝑲𝟏[𝑵 𝒎⁄ ] 𝒄𝟏[𝑵 ∙ 𝒎 𝒔⁄ ] 𝒎𝟐[𝒌𝒈] 𝑲𝟐[𝑵 𝒎⁄ ] 𝒄𝟐[𝑵 ∙ 𝒎 𝒔⁄ ]
Valores 0.05 0.12 3262 1.98 0.48 1631 2.80
4. Resultados:
Figura 17: x1(t) para distintos casos
En la Figura 17 observamos como ante una entrada en escalón la respuesta de
la salida es también un escalón como era esperable, ahora bien, en función de cómo
hemos configurado el sistema hemos obtenido unos resultados muy diversos.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.80
0.005
0.01
0.015
0.02
0.025
0.03
0.035
0.04
t [s]
x1(t)
ReferenciaDamping control para StiffnessStifness ControlMass control
38 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
En azul tenemos nuestra respuesta de referencia, es el sistema vibrando
libremente sin introducir ninguna fuerza de fricción. Si configuramos el “Smart Spring”
para el caso de “Stiffness Control” (línea verde) y aplicamos una 𝑁(𝑡) lo
suficientemente grande como para acoplar el sistema podemos observar como la
amplitud en el permanente se ha reducido bastante y además en el periodo transitorio
no realiza unas oscilaciones muy elevadas subiendo de manera exponencial hasta el
valor del permanente, además se reduce también el tiempo en el que se llega al
permanente.
Si observamos el caso de “Damping Control” (línea roja) vemos que además de
una reducción en la amplitud del desplazamiento he logrado reducir el tiempo en el
que se llega al permanente de manera notable.
Por último para “Mass Control” (línea cian) si bien las amplitudes en el
transitorio y el régimen permanente se han reducido, no bajamos el tiempo de
establecimiento, éste permanece más o menos igual que si el sistema estuviese
desacoplado.
Para 𝑥2(𝑡) tenemos una gráfica similar:
Figura 18: x2(t) para distintos casos
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.005
0
0.005
0.01
0.015
0.02
0.025
0.03
t [s]
x2(t)
ReferenciaDamping controlStifness ControlMass control
39 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
En ella observamos como 𝑥2(𝑡) empieza con valores altos y estos se van
reduciendo cuando se va llegando al permanente ya que en ese momento 𝑥2(𝑡) pasa
a ser cero ya que no estaría actuando el sistema secundario.
Realizando un análisis FFT para obtener la respuesta en frecuencia:
Figura 19: Análisis FFT x1(t)
Esta gráfica es como esperamos, para “Mass Control” la 𝜔𝐶 será menor que
𝜔0, para “Stiffness Control”, ocurre al contrario, siendo 𝜔𝐶 mayor que 𝜔0 y por ultimo
para “Damping” y el valor de 𝑁(𝑡) elegido, voy a estar en una zona en la que 𝜔𝐶 = 𝜔0
pero con una amplitud reducida.
Análisis en frecuencia config. Stiffness para distintas N0
10 20 30 40 50 60 70 80-5.5
-5
-4.5
-4
-3.5
-3
Frecuencia (Hz)
Des
plaz
amie
nto
(dB
)
ReferenciaDamping controlStifness ControlMass control
40 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
5.3 “Smart Spring” en config. “Stiffness Control” para 𝑭(𝒕) =
"𝑪𝒉𝒊𝒓𝒑"
Figura 20: Modelo simulado
1. Señal 𝑭(𝒕):
Función “Chirp” que se trata de una función de excitación de amplitud 20 y
que aumenta su frecuencia linealmente desde 5 Hz hasta 80 Hz a una razón de
𝑑𝜔𝑑𝑡
= 1.25 𝐻𝑧𝑠
.
2. Señal 𝑵(𝒕):
𝑁(𝑡) = 0 : Caso desacoplado, o nuestra respuesta de referencia.
𝑁(𝑡) = 350 [𝑁] : Caso totalmente acoplado.
3. Valores masas, muelles, etc:
Recordemos que, 𝑐 = ζ ∙ 2 ∙ √𝐾 ∙ 𝑚
41 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
ζ 𝒎𝟏[𝒌𝒈] 𝑲𝟏[𝑵 𝒎⁄ ] 𝒄𝟏[𝑵 ∙ 𝒎 𝒔⁄ ] 𝒎𝟐[𝒌𝒈] 𝑲𝟐[𝑵 𝒎⁄ ] 𝒄𝟐[𝑵 ∙ 𝒎 𝒔⁄ ]
Valores 0.05 0.12 3262 1.98 0.09 12232 3.32
4. Resultados:
Con estos valores introducidos en “Sim_m_chirp.m” procedemos a ejecutar
dicho archivo en Matlab, no es necesario realizar ninguna acción adicional a la
ejecución, el mismo programa calcula el resto de variables necesarias a partir de los
datos proporcionados más arriba y realiza las simulaciones del sistema con Simulink
para los valores de 𝐹(𝑡) y 𝑁(𝑡) y nos proporciona las gráficas para poder desarrollar
los resultados obtenidos y constatar que se corresponden con los teóricos.
Figura 21: FFT para x1(t)
En la Figura 21 observamos varias cosas, primero para 𝑁(𝑡) = 0 vemos el pico
de resonancia para 𝜔0 = 26.22 𝐻𝑧, como corresponde, una vez acoplamos el
mecanismo, hemos visto en apartados anteriores que al ser un sistema configurado
10 20 30 40 50 60 70 80-5.5
-5
-4.5
-4
-3.5
-3
Frecuencia (Hz)
Des
plaz
amie
nto
(dB
)
N=0 [N]N=350 [N]
42 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
para “Stiffness Control” debemos esperar un sistema con una 𝜔𝑐 mayor que la 𝜔0.
Efectivamente podemos constatar que eso ocurre, probando que el sistema está
funcionando correctamente.
Figura 22: x1(t) para distintas N(t)
En la Figura 22 tenemos reflejado la evolución de 𝑥1 para distintas 𝑁(𝑡), en ella
podemos ver como 𝑥1(𝑡) va aumentando su oscilación conforme la 𝐹(𝑡) se va
acercando a la 𝜔 natural (recordemos que 𝐹(𝑡) es una función que varía su 𝜔 con el
tiempo) para luego verse reducida conforme nos alejamos de esa 𝜔𝑜; aunque al final
se acaba reduciendo, no es bueno la enorme oscilación que tenemos en puntos
próximos a 𝜔0. Ese es nuestro objetivo, reducir la amplitud y en esa misma Figura 22,
vemos con la línea en color rojo, cómo para 𝜔0 la oscilación se ha reducido
notablemente al acoplarse el mecanismo, y luego cuando se aproxima 𝐹(𝑡) a la 𝜔𝐶
vemos que aumenta dicha oscilación pero en mucho menor medida que si el
mecanismo no estuviese acoplado.
0 10 20 30 40 50 60-0.08
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
0.08
t [s]
x1(t)
[m]
x1(t); N(t)=0x1(t); N(t)=350 [N]
43 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
El hecho de que el pico de resonancia ocurra temporalmente más tarde es
debido a que 𝐹(𝑡) varía su frecuencia con el tiempo, y por tanto, llega a la 𝜔𝐶 más
tarde en el tiempo que para 𝜔𝑜 porque 𝜔𝐶 > 𝜔0. Si hacemos un zoom sobre el gráfico
podemos ver que se trata de una función senoidal que va variando su amplitud:
Figura 23: x2(t) para distintas N(t)
0 10 20 30 40 50 60-0.015
-0.01
-0.005
0
0.005
0.01
0.015
t [s]
x2(t)
[m]
x2(t); N(t)=0x2(t); N(t)=350 [N]
16.6 16.8 17 17.2 17.4 17.6 17.8 18
-0.08
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
0.08
t [s]
x1(t)
[m]
x1(t); N(t)=0x1(t); N(t)=350 [N]
17.12 17.14 17.16 17.18 17.2 17.22 17.24 17.26 17.28-0.08
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
0.08
t [s]
x1(t)
[m]
x1(t); N(t)=0x1(t); N(t)=350 [N]
44 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Para 𝑥2(𝑡) (Figura 23) ocurre exactamente lo mismo que para 𝑥1(𝑡), es
interesante reseñar como 𝑥2(𝑡) cuando esta acoplado tiene el mismo orden de
magnitud en las oscilaciones que 𝑥1(𝑡), siendo esto señal inequívoca de que el
sistema se ha acoplado, ya que cuando esto ocurre ambos muelles deben de moverse
en paralelo.
La diferencia está en que para 𝑁(𝑡) = 0, 𝑥2(𝑡) es cero constantemente como
podemos ver en la Figura 24.
Figura 24: Zoom sobre x2(t)
Buscando entre la tabla de datos obtenidos podemos buscar cuales son los
valores máximos para ambos casos y compararlos, vemos que conseguimos un 80%
de reducción de amplitud.
𝑵(𝒕) = 𝟎 𝑵(𝒕) = 𝟑𝟓𝟎 𝑵 𝒙𝟏(𝒕) [m] 0.0609 0.0126
30.38 30.39 30.4 30.41 30.42 30.43 30.44 30.45 30.46 30.47 30.48-0.015
-0.01
-0.005
0
0.005
0.01
0.015
t [s]
x2(t)
[m]
x2(t); N(t)=0x2(t); N(t)=350 [N]
45 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
5.4 “Smart Spring” en config. “Mass Control” para 𝑭(𝒕) = "𝑪𝒉𝒊𝒓𝒑"
Figura 25: Modelo simulado
1. Señal 𝑭(𝒕):
Función “Chirp” que se trata de una función de excitación de amplitud 20 y
que aumenta su frecuencia linealmente desde 5 Hz hasta 80 Hz a una razón de
𝑑𝜔𝑑𝑡
= 1.25 𝐻𝑧𝑠
.
2. Señal 𝑵(𝒕):
𝑁(𝑡) = 0 : Caso desacoplado, o nuestra respuesta de referencia.
𝑁(𝑡) = 400 [𝑁] : Caso totalmente acoplado.
3. Valores masas, muelles, etc:
Recordemos que, 𝑐 = ζ ∙ 2 ∙ √𝐾 ∙ 𝑚
46 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
ζ 𝒎𝟏[𝒌𝒈] 𝑲𝟏[𝑵 𝒎⁄ ] 𝒄𝟏[𝑵 ∙ 𝒎 𝒔⁄ ] 𝒎𝟐[𝒌𝒈] 𝑲𝟐[𝑵 𝒎⁄ ] 𝒄𝟐[𝑵 ∙ 𝒎 𝒔⁄ ]
Valores 0.05 0.12 3262 1.98 0.48 1631 2.80
4. Resultados:
De nuevo ejecutamos “Sim_m_chirp.m” y esperamos resultados y gráficas.
Figura 26: FFT para x1(t)
La teoría nos decía que para una configuración “Mass Control” era de esperar
una reducción en la 𝜔𝑐 respecto a 𝜔0 y efectivamente eso ocurre, también se aprecia
una reducción en la magnitud del desplazamiento.
En la siguiente página podemos observar las gráficas de 𝑥1(𝑡) y 𝑥2(𝑡), se
aprecia claramente la reducción de amplitud lograda al acoplar el sistema aplicando
𝑁(𝑡) lo suficientemente grande y también como el pico de resonancia para 𝑁(𝑡)
acoplado ocurre antes en el tiempo debido a que 𝐹(𝑡) alcanza 𝜔𝐶 antes que 𝜔𝑜 al ser
𝜔𝐶 < 𝜔0.
10 20 30 40 50 60 70 80-6.5
-6
-5.5
-5
-4.5
-4
-3.5
-3
Frecuencia (Hz)
Des
plaz
amie
nto
(dB
)
N=0 [N]N=400 [N]
47 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
.
Figura 27: x1(t) para distintas N(t)
Figura 28: x2(t) para distintas N(t)
0 10 20 30 40 50 60-0.08
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
0.08
t [s]
x1(t)
[m]
N=0 [N]N=400 [N]
0 10 20 30 40 50 60-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
t [s]
x2(t)
[m]
N=0 [N]N=400 [N]
48 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
5.5 “Smart Spring” en config. “Damping” para 𝑭(𝒕) = "𝑪𝒉𝒊𝒓𝒑"
Figura 29: Modelo simulado
1. Señal 𝑭(𝒕):
Función “Chirp” que se trata de una función de excitación de amplitud 20 y
que aumenta su frecuencia linealmente desde 5 Hz hasta 80 Hz a una razón de
𝑑𝜔𝑑𝑡
= 1.25 𝐻𝑧𝑠
.
2. Señal 𝑵(𝒕):
Hago variar 𝑁(𝑡) desde 0 (caso desacoplado) hasta 350 (caso acoplado), lo
hago subiendo 𝑁(𝑡) en 20 unidades cada vez.
3. Valores masas, muelles, etc:
Recordemos que, 𝑐 = ζ ∙ 2 ∙ √𝐾 ∙ 𝑚, y uso de la config. “Stiffness Control”.
49 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
ζ 𝒎𝟏[𝒌𝒈] 𝑲𝟏[𝑵 𝒎⁄ ] 𝒄𝟏[𝑵 ∙ 𝒎 𝒔⁄ ] 𝒎𝟐[𝒌𝒈] 𝑲𝟐[𝑵 𝒎⁄ ] 𝒄𝟐[𝑵 ∙ 𝒎 𝒔⁄ ]
Valores 0.05 0.12 3262 1.98 0.09 12232 3.32
4. Resultados:
Figura 30: FFT para x1(t) para distintas N(t) y “Stiffness Control”
Como hemos dispuesto con anterioridad cuando tenemos el dispositivo
configurado para “Damping Control” lo que conseguimos es una reducción de la
amplitud y además conforme aumentemos 𝑁(𝑡), conseguiremos no solo un aumento
de reducción de amplitud sino que además cuando se vaya acoplando el sistema, el
análisis en frecuencia de 𝑥1(𝑡) debe de pasar de seguir a la referencia a pasar a seguir
al estado acoplado.
En la Figura 31 podemos observar ese comportamiento, alcanzada una
determinada 𝑁(𝑡) la gráfica salta de la referencia al estado acoplado.
10 20 30 40 50 60 70 80-6
-5.5
-5
-4.5
-4
-3.5
-3
Frecuencia (Hz)
Des
plaz
amie
nto
x1 (d
B)
N=0N=40N=350
50 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Figura 31: FFT para x1(t) para distintas N(t) y "Mass Control"
Si hacemos una simulación en la que vamos aumentando 𝑁(𝑡) veremos cual
es la evolución de 𝑥1(𝑡) al aumentar 𝑁(𝑡). Tal y como refleja la Figura 32, se aprecia
claramente la evolución de la amplitud como va disminuyendo, y como salta de seguir
la referencia a seguir el estado acoplado. Además podemos representar esas gráficas
tridimensionalmente (Figura 33) consiguiendo una superficie de estados del sistema
para la coordenada estudiada, 𝑥1(𝑡) en nuestro caso.
10 20 30 40 50 60 70 80-5.5
-5
-4.5
-4
-3.5
-3
Frecuencia (Hz)
Des
plaz
amie
nto
x1 (d
B)
N=0N=200N=350
51 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Figura 32: FFT para x1(t) “Stiffness Control”
Figura 33: Superficie de estados x1(t)
10 20 30 40 50 60 70 80-6
-5.5
-5
-4.5
-4
-3.5
-3
Frecuencia (Hz)
Des
plaz
amie
nto
x1 (d
B)
N=0N=20N=40N=60N=75N=100N=140N=200N=280N=350
1020
3040
5060
7080
0
50
100
150
200
250
300
350
-6
-5.5
-5
-4.5
-4
-3.5
-3
Frecuencia HzFuerza N
Pos
icio
n dB
52 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Hasta ahora hemos hecho un análisis en frecuencia de la evolución del
sistema, pero también podemos realizar un análisis temporal de 𝑥1(𝑡) y 𝑥2(𝑡).
Figura 34: x1(t) para distintas N(t)
Figura 35: x2(t) para distintas N(t)
0 10 20 30 40 50 60-0.08
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
0.08
t [s]
x1(t)
[m]
N=0N=20N=40N=60
0 10 20 30 40 50 60-5
-4
-3
-2
-1
0
1
2
3
4
5x 10
-3
t [s]
x2(t)
[m]
N=60N=40N=20N=0
53 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
En las Figuras 34 y 35 tenemos la evolución de 𝑥1(𝑡) y 𝑥2(𝑡) en el dominio del
tiempo, se puede observar como la amplitud de 𝑥1(𝑡) va disminuyendo conforme
aumentamos la fuerza 𝑁(𝑡), es decir, vamos aumentando la cantidad de acoplamiento
existente en el sistema o lo que es lo mismo vario la impedancia del sistema.
Para 𝑥2(𝑡) se obtiene un resultado parecido, solo que en este caso se aprecia
el efecto contrario a 𝑥1(𝑡), en este caso no va disminuyendo si no que va aumentando
como es lógico, ya que cuando el sistema empieza a acoplarse 𝑥2(𝑡) debe ir
aumentando su valor, hasta tener el mismo valor que 𝑥1(𝑡) para el caso de
acoplamiento total del sistema.
Si ahora tomamos la configuración “Mass Control” y repetimos las mismas
simulaciones que antes, es decir, vamos variando 𝑁(𝑡) desde 0 hasta el valor en el
que el sistema se acopla tomando como valores del sistema los siguientes:
ζ 𝒎𝟏[𝒌𝒈] 𝑲𝟏[𝑵 𝒎⁄ ] 𝒄𝟏[𝑵 ∙ 𝒎 𝒔⁄ ] 𝒎𝟐[𝒌𝒈] 𝑲𝟐[𝑵 𝒎⁄ ] 𝒄𝟐[𝑵 ∙ 𝒎 𝒔⁄ ]
Valores 0.05 0.12 3262 1.98 0.48 1631 2.80
Realizando un análisis en frecuencia de la variable 𝑥1(𝑡) igual que hemos
realizado para el caso “Stiffness Control” vamos a obtener un resultado idéntico pero
en esta ocasión la 𝜔𝑐 < 𝜔0. El análisis en frecuencia de 𝑥1(𝑡) saltará de nuevo entre la
referencia y el estado acoplado al ir aumentando el valor de 𝑁(𝑡) (Figura 36).
En las Figuras 37 y 38 tenemos la evolución temporal de 𝑥1(𝑡) y 𝑥2(𝑡), de igual
manera que para el caso de “Stifness Control” podemos apreciar como 𝑥1(𝑡)
disminuye su amplitud cuando aumentamos 𝑁(𝑡), y para 𝑥2(𝑡) aumenta la amplitud de
la oscilación al aumentar 𝑁(𝑡).
54 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Figura 36: FFT para x1(t) "Mass Control"
Figura 37: x1(t) para distintas N(t)
Figura 38: x2(t) para distintas N(t)
10 20 30 40 50 60 70 80-7
-6.5
-6
-5.5
-5
-4.5
-4
-3.5
-3
Frecuencia (Hz)
Des
plaz
amie
nto
(dB
)
N=0N=20N=40N=80N=260N=400
0 10 20 30 40 50 60-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05
t [s]
x1(t)
[m]
N=0N=20N=40
0 10 20 30 40 50 60-0.015
-0.01
-0.005
0
0.005
0.01
0.015
t [s]
x2(t)
[m]
N=40N=20N=0
55 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
6. MECANISMO EXCITADO DESDE LA BASE
6.1 Introducción
El mecanismo “Smart Spring” puede incorporarse a su vez a otra estructura
mecánica [5] obteniéndose el dispositivo de la Figura 39:
Figura 39: Mecanismo excitado desde la base
La diferencia principal que tenemos respecto al mecanismo “Smart Spring” es
que ahora la perturbación no está aplicada directamente sobre la estructura a controlar
𝑚1, sino que se aplica sobre la base 𝑚3. Al recibir la fuerza, la estructura empieza a
vibrar y para mitigarlas haremos uso del “Smart Spring”.
Este sistema tiene gran interés puesto que es un sistema análogo en muchas
aplicaciones de ingeniería, por ejemplo como interaccionan el suelo de la bodega de
carga de un avión y la propia carga. Por ello vamos a hacer un análisis de las ventajas
que nos proporciona este sistema en el caso de encontrarnos con alguna vibración no
deseada en el sistema.
56 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
6.2 Ecuaciones del sistema
Las ecuaciones dinámicas que gobiernan el movimiento en el dominio del
tiempo para el sistema completo haciendo un balance de fuerzas para cada sólido de
forma idéntica al realizado para el “Smart Spring”.
Figura 40: Fuerzas sobre el mecanismo
6.2.1 Ecuaciones dinámicas en el espacio del tiempo
En base al esquema anterior, las ecuaciones quedarían tal que:
𝑚1�̈�1 + 𝑐1�̇�1 + 𝐾1𝑥1 − 𝐾1𝑥3 − 𝑐1�̇�3 = −𝜐 ∙ 𝑁(𝑡)
𝑚2�̈�2 + 𝑐2�̇�2 + 𝐾2𝑥2 − 𝐾2𝑥3 − 𝑐2�̇�3 = 𝜐 ∙ 𝑁(𝑡)
𝑚3�̈�3 + (𝑐1 + 𝑐2 + 𝑐3)�̇�3 + (𝐾1 + 𝐾2 + 𝐾3)𝑥3 − 𝐾1𝑥1 − 𝐾2𝑥2 − 𝑐1�̇�1 − 𝑐2�̇�2 = 𝐹(𝑡)⎭⎪⎬
⎪⎫
(16)
6.2.2 Ecuaciones en espacio de estados
Sobre las ecuaciones (16) tomo como vector de estados:
{𝑋𝑠} =
⎩⎪⎨
⎪⎧𝑋𝑆1𝑋𝑆2𝑋𝑆3𝑋𝑆4𝑋𝑆5𝑋𝑆6⎭
⎪⎬
⎪⎫
𝑋𝑆1 = 𝑥3; 𝑋𝑆2 = �̇�3; 𝑋𝑆3 = 𝑥1; 𝑋𝑆4 = �̇�1; 𝑋𝑆5 = 𝑥2; 𝑋𝑆6 = �̇�2
57 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Derivando {𝑋𝑠}:
��̇�𝑆� =
⎩⎪⎪⎨
⎪⎪⎧�̇�𝑆1�̇�𝑆2�̇�𝑆3�̇�𝑆4�̇�𝑆5�̇�𝑆6⎭
⎪⎪⎬
⎪⎪⎫
�̇�𝑆1 = 𝑋𝑆2; �̇�𝑆2 = �̈�3; �̇�𝑆3 = 𝑋𝑆4; �̇�𝑆4 = �̈�1; �̇�𝑆5 = 𝑋𝑆6; �̇�𝑆6 = �̈�2
Sustituyendo en (16) el vector de estado y su derivada y reordenando términos,
dejando a la izquierda los términos en �̇�𝑆𝑖 y a la derecha el resto tendría las
ecuaciones en espacio de estado:
�̇�𝑆1 = 𝑋𝑆2
(𝑎) 𝑚3�̇�𝑆2 = −(𝐾1 + 𝐾2 + 𝐾3)𝑋𝑆1 − 𝑐3𝑋𝑆2 + 𝐾1𝑋𝑆3 + 𝐾2𝑋𝑆5 − 𝑐1𝑋𝑆2 − 𝑐2𝑋𝑆2 + 𝐹(𝑡)
�̇�𝑆3 = 𝑋𝑆4
(𝑏) 𝑚1�̇�𝑆4 = −𝐾1𝑋𝑆3 + 𝐾1𝑋𝑆1 − 𝑐1𝑋𝑆4 + 𝑐1𝑋𝑆2 − 𝜐 ∙ 𝑁(𝑡)
�̇�𝑆5 = 𝑋𝑆6
(𝑐) 𝑚2�̇�𝑆6 = −𝐾2𝑋𝑆5 + 𝐾2𝑋𝑆1 − 𝑐2𝑋𝑆6 + 𝑐2𝑋𝑆2 + 𝜐 ∙ 𝑁(𝑡) ⎭⎪⎪⎪⎪⎬
⎪⎪⎪⎪⎫
Dividiendo (a), (b) y (c) por 𝑚3, 𝑚1 y 𝑚2 respectivamente, tengo en forma
matricial las ecuaciones en espacio de estados:
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡�̇�𝑆1
�̇�𝑆2
�̇�𝑆3
�̇�𝑆4
�̇�𝑆5
�̇�𝑆6⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
=
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡
0 1 0 0 0 0
−(𝐾1+𝐾2+𝐾3)
𝑚3− 𝑐1+𝑐2+𝑐3
𝑚3
𝐾1𝑚3
𝑐1𝑚3
𝐾2𝑚3
𝑐2𝑚3
0 0 0 1 0 0
𝐾1𝑚1
𝑐1𝑚1
𝐾1𝑚1
− 𝑐1𝑚1
0 0
0 0 0 0 0 1
𝐾2𝑚2
𝑐2𝑚2
0 0 − 𝐾2𝑚2
− 𝑐2𝑚2⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
∙
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡𝑋𝑆1
𝑋𝑆2
𝑋𝑆3
𝑋𝑆4
𝑋𝑆5
𝑋𝑆6⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
+
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡
0
1𝑚3
0
0
0
0 ⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
𝐹(𝑡) +
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡
0
0
0
− 1𝑚1
0
1𝑚2 ⎦
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
𝜐𝑁(𝑡)
58 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
6.3 Ley de control
En este caso probamos una nueva ley de control más elaborada que la del
“Smart Spring” que se trataba de un simple lazo de realimentación en el que nosotros
manualmente aplicábamos una fuerza de fricción y con ello controlábamos la
estructura, eliminando parte de su energía cinética, sin embargo en esa ley no se tenía
en cuenta que hay momentos en los que al aplicar dicha fuerza de fricción estoy
aportando energía al sistema en lugar de quitarla, y esto es contrario a lo que
necesitamos.
Por tanto necesitamos una ley de control que nos diga cuando tiene que actuar
𝑁(𝑡) y cuando no. Dicha ley de control [6] estará basada en conocer la dirección de la
estructura controlada y de la velocidad relativa del actuador respecto a la estructura
controlada, es decir, nuestra ley de control sería:
𝑢 = �̇�1 ∙ (�̇�2 − �̇�1)
Debemos de tener en cuenta, que se nos pueden presentar diferentes casos si
hacemos uso de esta nueva ley de control:
• Primer caso:
�̇�1 > 0
(�̇�2 − �̇�1) > 0� 𝑢 = �̇�1 ∙ (�̇�2 − �̇�1) > 0
Aquí tanto la estructura controlada como el actuador se están moviendo ambos en
la dirección positiva, con lo cual la fuerza hará que la estructura controlada tienda a
acelerarse en lugar de frenarse, en este caso debemos de hacer que el controlador no
actúe, hay que desactivarlo.
59 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
• Segundo caso:
�̇�1 > 0
(�̇�2 − �̇�1) < 0� 𝑢 = �̇�1 ∙ (�̇�2 − �̇�1) < 0
En este caso la fuerza resultante será negativa, con lo que estamos consiguiendo
parar el movimiento de la estructura controlada, nos interesará en este caso mantener
activo el controlador.
• Tercer caso:
�̇�1 < 0
(�̇�2 − �̇�1) > 0� 𝑢 = �̇�1 ∙ (�̇�2 − �̇�1) < 0
Aquí de nuevo la fuerza es negativa, interesa mantener activo el controlador.
• Cuarto caso:
�̇�1 < 0
(�̇�2 − �̇�1) < 0� 𝑢 = �̇�1 ∙ (�̇�2 − �̇�1) > 0
En este último caso la fuerza resultante es positiva y como hemos dicho antes,
no queremos que esto ocurra por tanto debemos tener desactivado el controlador.
Resumiendo los casos anteriores:
𝑁(𝑡) = �𝑁 𝑠𝑖 𝑢 < 00 𝑠𝑖 𝑢 > 00 𝑠𝑖 𝑢 = 0
A 𝑁 le damos el valor que nosotros consideramos, o bien el que hayamos
evaluado que consigue acoplar el sistema.
60 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Trasladamos estas condiciones a “Simulink” resultando el siguiente modelo
Figura 41: Ley de control
Si hacemos un zoom sobre la parte del controlador, que es la parte rodeada en
verde:
Figura 42:Controlador en detalle
61 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
El controlador está formado por los siguientes elementos:
En amarillo tenemos un bloque que nos genera una señal en escalón
que es la encargada de activar o desactivar todo el bloque. En el caso que este
desconectado debemos proporcionar al sistema un cierto valor de 𝑁.
Con el bloque de color cian, proporcionamos un valor de 𝑁 constante
para cuando el controlador este desactivado, es decir, estaríamos en el caso
de un actuador de 𝑁 constante durante todo el tiempo.
Los bloques en gris son los encargados de tomar la decisión de actuar o
no actuar, estos bloques dan como salida un 1 si la entrada cumple la
condición indicada en el bloque o un 0 si no la cumple. Es decir, estos bloques
hacen que los valores de 𝑁 pasen del valor 𝑁𝑎𝑐𝑜𝑝𝑙𝑎𝑑𝑜 a 0 según el signo de 𝑢.
62 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
6.4 Simulación y resultados
Comenzamos definiendo las variables iniciales:
• Tiempo de simulación: ts=60
• Vector de condiciones iniciales: cond_ini=[0;0;0;0]
• Paso de integración: Determinamos un paso fijo y de valor:
paso_int=0.00005
Las matrices del sistema quedarían:
• Matriz de estados: A=[0 1 0 0 0 0;-(k1+k2+k3)/m3 -(c1+c2+c3)/m3 k1/m3
c1/m3 k2/m3 c2/m3;0 0 0 1 0 0;k1/m1 c1/m1 -k1/m1 -c1/m1 0 0;0 0 0 0 0
1;k2/m2 c2/m2 0 0 -k2/m2 -c2/m2];
• Matriz de entradas: B= [0;0;0;-1/m1;0;1/m2];
• Matriz de salidas: C=[0 0 1 0 0 0;0 0 0 0 1 0;1 0 0 0 0 0;0 0 0 1 0 0;0 0 0 -1
0 1;0 0 0 1 0 -1];
• Matriz de perturbación: E=[0;1/m3;0;0;0;0];
Con las simulaciones vamos a ver cuál es la efectividad de este sistema,
tomamos como referencia estos valores para los parámetros del sistema:
Sistema 1 Sistema 2 Sistema 3 ζ 0 0 0
𝒎 [𝒌𝒈] 10 1 0.5 𝑲 [𝑵/𝒎] 10000 23000 145000
Para la primera simulación voy a considerar que no existe un amortiguamiento
interno en el muelle, por lo que vamos a tener que 𝑐1 = 𝑐2 = 𝑐3 = 0. Luego los
compararemos para el caso en el que si existe dicho amortiguamiento interno. Tomo
un valor elevado de 𝑚1 respecto a 𝑚2 y 𝑚3, para así simular que sea una carga de
cierto peso a la que no se desea que se le transmita vibración alguna.
63 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Los resultados obtenidos tras realizar las simulaciones son:
Figura 43: FFT x1(t)
En azul tenemos en análisis en frecuencia de 𝑥1(𝑡) para el caso en el que no
tenemos conectado el controlador ni tenemos aplicado ninguna carga constante, 𝑁(𝑡)
seria cero. Vemos como tenemos dos picos de resonancia más un tercero que esta
fuera de gráfica. Nos centraremos en éstos dos primeras resonancias.
En verde tenemos la curva que obtenemos si en esta ocasión activamos el
controlador y lo dejamos funcionar. Podemos observar como para las frecuencias
próximas a la primera frecuencia de resonancia se ha obtenido una considerable
reducción en la amplitud de 𝑥1(𝑡), si seguimos aumentando la frecuencia hasta el
siguiente pico de resonancia puedo observar como también consigo una buena mejora
en la amplitud.
0 5 10 15 20 25 30 35 40 45-10
-9
-8
-7
-6
-5
-4
-3
Frecuencia (Hz)
Des
plaz
amie
nto
(dB
)
N=0N=N(u)
64 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Figura 44: FFT x1(t)
Si comparo los resultados con el caso en el que solo tengo aplicado una 𝑁
constante (Figura 44) puedo comprobar cómo se logran mejores resultados haciendo
uso de la nueva ley de control que solo aplicando 𝑁 constante.
Veo también que resultados obtengo para el dominio del tiempo:
Figura 45: x1(t)
0 5 10 15 20 25 30 35 40 45-10
-9
-8
-7
-6
-5
-4
-3
Frecuencia (Hz)
Des
plaz
amie
nto
(dB
)
N=0N=cteN=N(u)
0 10 20 30 40 50 60-1.5
-1
-0.5
0
0.5
1
1.5x 10
-3
t [s]
x1(t)
[m]
N=0N=cte=300N=N(u)
65 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Es claramente visible en la Figura 45, la mejora conseguida en la atenuación
de la variable 𝑥1(𝑡) cuando usamos la nueva ley de control. Destacar que 𝑥1(𝑡) se
mantiene periódica por que al no existir en este primer caso amortiguamiento interno,
esta no se atenua. Observando 𝑥2(𝑡) y 𝑥3(𝑡), tenemos comportamientos similares.
Figura 46: x2(t)
Figura 47: x3(t)
Si ahora tengo en cuenta que los muelles tienen un amortiguamiento interno,
paso a tener los siguientes valores para ζ de cada sistema:
Sistema 1 Sistema 2 Sistema 3 ζ 0.05 0.05 0.05
Figura 48: FFT x1(t)
0 10 20 30 40 50 60-6
-4
-2
0
2
4
6x 10
-3
t [s]
x2(t)
[m]
N=0N=cte=300N=N(u)
0 10 20 30 40 50 60-8
-6
-4
-2
0
2
4
6
8x 10
-4
t [s]
x3(t)
[m]
N=0N=cte=300N=N(u)
0 5 10 15 20 25 30 35 40 45-10
-9
-8
-7
-6
-5
-4
-3
Frecuencia (Hz)
Des
plaz
amie
nto
(dB
)
N=0N=cteN=N(u)
66 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Los resultados de la Figura 48 son parecidos al sistema sin amortiguamiento, la
mejor opción sigue siendo la nueva ley de control ya que es la que mejor atenúa la
amplitud especialmente en las regiones próximas a los dos picos de resonancia. Se
puede ver también como el uso de una 𝑁(𝑡) constante no es buena opción ya que
incluso obtengo unas amplitudes mayores que el sistema sin 𝑁(𝑡) aplicada debido a
esos aportes indeseados de energía al sistema.
67 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
7. CONCLUSIONES
Con estas simulaciones queda demostrada la eficacia del “Smart Spring” como
elemento supresor de vibraciones y las diversas aplicaciones potenciales que pueden
tener para la industria, como monturas para motores, bases para asientos, etc, que
consiguen evitar al usuario final de la máquina o dispositivo, malestares debido a
vibraciones indeseadas, que pueden ser no solo movimiento sino también ruidos.
Se ha podido comprobar cómo funciona ante diversas excitaciones externas,
cómo es un sistema activo-indirecto que no actúa directamente contra las fuerzas
vibratorias, cómo se logran mejoras importantes si aplicamos leyes de control más
complejas.
Un margen de mejora en el aspecto de control puede ser el diseño de un
control adaptativo, adoptando una estrategia de control adaptativo, que haga que el
sistema se adapte mejor a cambios en las condiciones. Por ejemplo, usando un control
por modelo de referencia u otro tipo.
Habría sido también de gran interés poder corroborar o comparar los resultados
obtenidos con las simulaciones numéricas, con resultados obtenidos de la
experimentación de un modelo real del dispositivo.
68 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
8. REFERENCIAS
[1] “Actuadores piezoeléctricos”. Miguel Cúprich y Fernando J. Elizondo. Ingenierías,
Enero-Marzo 2000, Vol. III, Nº 6.
[2] “Closed Loop Vibration Control Experiments on a Rotor with Blade Mounted
Actuation”. Prechtl, E.F. and Hall, S.R. .41º AIAA Structures, Structural Dynamics and
Materials Conference, Atlanta, GA, Abril 2000.
[3] “Control laws for an active tunable vibration absorbe designed for rotor blade
damping augmentation”. F. Nitzsche, D.G. Zimcik, V.K. Wickramasinghe y C. Young.
The Aeronautical Journal. Enero 2004.
[4] “T. Mark’s Standard Handbook for Mechanicals Engineers” Avallone E.A y
Baumister III. 11th Edition, 2007, McGraw Hill, Pag. 3-22.
[5] “Development of Maximun Energy Extraction Control for the Smart Spring”. Fred
Nitzsche, Tim Harold. Journal of Intelligent Material Systems and Structures, Vol. 16
Noviembre/Diciembre 2005.
[6] “State-Switched Absorber for Semi-Active Structural Control”. Kenneth A. Cunefare,
Sergio de Rosa, Nader Sadegh and Gregg Larson. Journal of Intelligent Material
Systems and Structures, Vol. 11 Abril 2000.
69 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
APÉNDICE
A.1 Sim_m_chirp.m
close all clear all tc_ini=cputime; %% %%% INICIACIÓN DE VARIABLES %%% % AMORTIGUAMIENTO % chi1=0.05; % Coeficiente de amortiguamiento para sistema 1 % chi2=0.05; % Coeficiente de amortiguamiento para sistema 2 % % DATOS SISTEMA 1 Y 2 INICIAL % m1=0.12; % kg % k1=3262; % N/m % c1=chi1*2*sqrt(k1*m1); % N*m/s % m2=1; % kg % k2=1; % N/m % c2=1; % N*m/s % % MATRICES % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1;0 1 0 -1]; % Matriz de salida % D=0; E=[0;1/m1;0;0]; % Perturbación % % PERTURBACIÓN % A_chirp=20; % Amplitud de la perturbación % W_chirp_i=5; % Frecuencia inicial de la perturbación % W_chirp_f=80; % Frecuencia final de la perturbación % W_chirp_t=60; % Tiempo en llegar de la frec. ini. a la final % % CONTROL % N0=0; % Componente continua de la señal de control % An=0; % Amplitud componente sinosuidal de la señal de control %
70 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Wn=0; % Frecuencia componente sinosuidal de la señal de control % Pn=0; % Desfase en la componente sinosoidal de la señal de control en rad % % ROZAMIENTO % nu_tabla_interp=[-0.18 -0.19 -0.23 -0.31 -0.39 -0.48 -0.53 0.53 0.48 0.39 0.31 0.23 0.19 0.18]; % Coeficientes de fricción en función de la velocidad relativa % x_punto_tabla_interp=(0.0254)*[-100 -10 -1 -0.1 -0.01 -0.001 -0.0001 0.0001 0.001 0.01 0.1 1 10 100]; % Valores de la velocidad relativa en 0.0254*[inch/s] = [m/s] % % INICIACIÓN SIMULACIÓN % ts=60; % Tiempo de simulación % cond_ini=[0;0;0;0]; % Vector de condiciones iniciales cond_ini = [ x1 x1punto x2 x2punto ] % paso_int=0.00005; % Paso de integración % %% %%% SIMULACIONES %%% % MECANISMO SIN ACOPLAR % N0=0; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; % CONFIGURACIÓN STIFFNES CONTROL % m2=0.75*m1; % kg % k2=3.75*k1; % N/m % k2_s=k2; c2=chi2*2*sqrt(k2*m2); % N*m/s % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; N0=20; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_1=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=40;
71 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_2=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=60; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_3=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=75; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux13=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=80; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_4=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=100; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_5=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=120; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux1=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=140; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux2=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=160; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux3=[x1.signals.values,x2.signals.values,x1punto.signals.v
72 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
alues,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=180; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux4=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=200; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux5=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=220; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux6=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=240; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux7=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=260; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux8=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=280; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux9=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=300; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux10=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=320;
73 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux11=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=340; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux12=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=350; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_6=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; % CONFIGURACIÓN MASS CONTROL % m2=4*m1; % kg % k2=0.5*k1; % N/m % k2_m=k2; c2=chi2*2*sqrt(k2*m2); % N*m/s % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; N0=20; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_7=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=40; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_8=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=60; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_9=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time];
74 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
N0=260; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_aux14=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=400; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_10=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; % CONFIGURACIÓN EXPERIMENTAL % m2=0.170; % kg % k2=10275; % N/m % k2_exp=k2; c2=chi2*2*sqrt(k2*m2); % N*m/s % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; N0=200; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_11=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; % CONFIGURACIÒN ORIGINAL 1er PAPER % m1=1.90; k1=5E4; c1=chi1*2*sqrt(k1*m1); % N*m/s % m2=0.0633; k2=25E4; c2=chi2*2*sqrt(k2*m2); % N*m/s % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; E=[0;1/m1;0;0]; N0=0; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_12=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; [fft12,f12]=Sim_m_fourier(datos_crnl_12(:,1),paso_int);
75 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
N0=150; sim('Sim_Modelo_chirp',ts); % Simulación % datos_crnl_13=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; [fft13,f13]=Sim_m_fourier(datos_crnl_13(:,1),paso_int); %% %%% ANÁLISIS EN FRECUENCIA DE LAS SIMULACIONES %%% % CONFIGURACIÓN STIFFNESS CONTROL % [fft,f]=Sim_m_fourier(datos_crnl(:,1),paso_int); [fft1,f1]=Sim_m_fourier(datos_crnl_1(:,1),paso_int); [fft2,f2]=Sim_m_fourier(datos_crnl_2(:,1),paso_int); [fft3,f3]=Sim_m_fourier(datos_crnl_3(:,1),paso_int); [fft4,f4]=Sim_m_fourier(datos_crnl_4(:,1),paso_int); [fft5,f5]=Sim_m_fourier(datos_crnl_5(:,1),paso_int); [fft6,f6]=Sim_m_fourier(datos_crnl_6(:,1),paso_int); [fft_aux1,f_aux1]=Sim_m_fourier(datos_crnl_aux1(:,1),paso_int); [fft_aux2,f_aux2]=Sim_m_fourier(datos_crnl_aux2(:,1),paso_int); [fft_aux3,f_aux3]=Sim_m_fourier(datos_crnl_aux3(:,1),paso_int); [fft_aux4,f_aux4]=Sim_m_fourier(datos_crnl_aux4(:,1),paso_int); [fft_aux5,f_aux5]=Sim_m_fourier(datos_crnl_aux5(:,1),paso_int); [fft_aux6,f_aux6]=Sim_m_fourier(datos_crnl_aux6(:,1),paso_int); [fft_aux7,f_aux7]=Sim_m_fourier(datos_crnl_aux7(:,1),paso_int); [fft_aux8,f_aux8]=Sim_m_fourier(datos_crnl_aux8(:,1),paso_int); [fft_aux9,f_aux9]=Sim_m_fourier(datos_crnl_aux9(:,1),paso_int); [fft_aux10,f_aux10]=Sim_m_fourier(datos_crnl_aux10(:,1),paso_int); [fft_aux11,f_aux11]=Sim_m_fourier(datos_crnl_aux11(:,1),paso_int); [fft_aux12,f_aux12]=Sim_m_fourier(datos_crnl_aux12(:,1),paso_int); [fft_aux13,f_aux13]=Sim_m_fourier(datos_crnl_aux13(:,1),paso_int); [fft_aux14,f_aux14]=Sim_m_fourier(datos_crnl_aux14(:,1),paso_int); % CONFIGURACIÓN MASS CONTROL % [fft7,f7]=Sim_m_fourier(datos_crnl_7(:,1),paso_int); [fft8,f8]=Sim_m_fourier(datos_crnl_8(:,1),paso_int); [fft9,f9]=Sim_m_fourier(datos_crnl_9(:,1),paso_int); [fft10,f10]=Sim_m_fourier(datos_crnl_10(:,1),paso_int); % CONFIGURACIÓN EXPERIMENTAL % [fft11,f11]=Sim_m_fourier(datos_crnl_11(:,1),paso_int); % CONFIGURACIÒN ORIGINAL 1er PAPER % [fft12,f12]=Sim_m_fourier(datos_crnl_12(:,1),paso_int); [fft13,f13]=Sim_m_fourier(datos_crnl_13(:,1),paso_int); %% %%% REPRESENTACIONES GRÁFICAS %%% % X1(t) Y X2(t) FRENTE AL TIEMPO % figure(1) %subplot(2,1,1)
76 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
plot(datos_crnl(:,9),datos_crnl(:,1),'b',datos_crnl_1(:,9),datos_crnl_1(:,1),'r',datos_crnl_2(:,9),datos_crnl_2(:,1),'g',datos_crnl_3(:,9),datos_crnl_3(:,1),'m') grid on xlabel('t [s]') ylabel('x1(t) [m]') %title('x1(t) frente a t') legend('N=0','N=20','N=40','N=60') figure(2) %subplot(2,1,2) plot(datos_crnl_3(:,9),datos_crnl_3(:,2),'m',datos_crnl_2(:,9),datos_crnl_2(:,2),'g',datos_crnl_1(:,9),datos_crnl_1(:,2),'r',datos_crnl(:,9),datos_crnl(:,2),'b') grid on xlabel('t [s]') ylabel('x2(t) [m]') %title('x2(t) frente a t') %legend('N=0','N=20','N=40','N=60') legend('N=60','N=40','N=20','N=0') % ANÁLISIS EN FRENCUENCIA CONFIG. STIFFNESS PARA DISTINTAS N0 % figure(3) hold on grid on xlim([6 80]) plot(f,fft,'b') plot(f1,fft1,'r') plot(f2,fft2,'g') plot(f3,fft3,'m') plot(f_aux13,fft_aux13,'k') plot(f4,fft4,'Color',[255/255,165/255,0/255]) plot(f5,fft5,'Color',[112/255,128/255,144/255]) plot(f_aux2,fft_aux2,'Color',[127/255,255/255,212/255]) plot(f_aux5,fft_aux5,'Color',[30/255,144/255,255/255]) plot(f_aux9,fft_aux9,'Color',[85/255,107/255,47/255]) plot(f6,fft6,'Color',[255/255,20/255,147/255]) hold off %suptitle('Análisis en frecuencia config. Stiffness para distintas N0') xlabel('Frecuencia (Hz)') ylabel('Desplazamiento x1 (dB)') legend('N=0','N=20','N=40','N=60','N=75','N=100','N=140','N=200','N=280','N=350') %legend('N=0','N=200','N=350') % ANÁLISIS EN FRENCUENCIA CONFIG. MASS PARA DISTINTAS N0 % figure(4) hold on grid on xlim([6 80]) plot(f,fft,'b') plot(f7,fft7,'r') plot(f8,fft8,'g') plot(f9,fft9,'m') plot(f_aux14,fft_aux14,'Color',rand(1,3)) plot(f10,fft10,'c') hold off %suptitle('Análisis en frecuencia config. Mass para distintas N0') xlabel('Frecuencia (Hz)')
77 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
ylabel('Desplazamiento (dB)') legend('N=0','N=20','N=40','N=80','N=260','N=400') % ANÁLISIS EN FRECUENCIA CONFIG. EXPERIMENTAL % figure(5) hold on grid on xlim([6 80]) plot(f,fft,'b') plot(f6,fft6,'r') plot(f11,fft11,'g') hold off suptitle('Análisis en frecuencia config. Experimental') xlabel('Frecuencia (Hz)') ylabel('Desplazamiento (dB)') legend('N=0, Sin acoplar','N=200 Acoplado, config stiffnes','N=200 Acoplado, experimental') % ANÁLISIS EN FRECUENCIA CONFIG. 1er PAPER % figure(6) hold on grid on xlim([6 80]) plot(f12,fft12,'b') plot(f13,fft13,'r') hold off suptitle('Análisis en frecuencia config. 1er paper') xlabel('Frecuencia (Hz)') ylabel('Desplazamiento (dB)') % ANÁLISIS EN FRECUENCIA GRÁFICA 3-D CON TODAS LAS SIMULACIONES % ind_i=1; % Busco una determinada t para empezar a representar % ind_f=1; % Busco una determinada t para acabar de representar % for i=1:(length(f)/2) if f(i)<=5 ind_i=ind_i+1; end if f(i)<=80 ind_f=ind_f+1; end end for i=1:length(fft) vectN0(i)=0; vectN20(i)=20; vectN40(i)=40; vectN60(i)=60; vectN75(i)=75; vectN80(i)=80; vectN100(i)=100; vectN120(i)=120; vectN140(i)=140; vectN160(i)=160; vectN180(i)=180; vectN200(i)=200;
78 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
vectN220(i)=220; vectN240(i)=240; vectN260(i)=260; vectN280(i)=280; vectN300(i)=300; vectN320(i)=320; vectN340(i)=340; vectN350(i)=350; end figure(7) hold on plot3(f(ind_i:ind_f),vectN0(ind_i:ind_f),fft(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN20(ind_i:ind_f),fft1(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN40(ind_i:ind_f),fft2(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN60(ind_i:ind_f),fft3(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN80(ind_i:ind_f),fft4(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN100(ind_i:ind_f),fft5(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN350(ind_i:ind_f),fft6(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN120(ind_i:ind_f),fft_aux1(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN140(ind_i:ind_f),fft_aux2(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN160(ind_i:ind_f),fft_aux3(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN180(ind_i:ind_f),fft_aux4(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN200(ind_i:ind_f),fft_aux5(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN220(ind_i:ind_f),fft_aux6(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN240(ind_i:ind_f),fft_aux7(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN260(ind_i:ind_f),fft_aux8(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN280(ind_i:ind_f),fft_aux9(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN300(ind_i:ind_f),fft_aux10(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN320(ind_i:ind_f),fft_aux11(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN340(ind_i:ind_f),fft_aux12(ind_i:ind_f),'Color',rand(1,3)) plot3(f(ind_i:ind_f),vectN75(ind_i:ind_f),fft_aux13(ind_i:ind_f),'Color',rand(1,3)) grid on xlim([7 80]) xlabel('Frecuencia Hz') ylabel('Fuerza N') zlabel('Posicion dB') % F(t) vs X1(t) // K(t) vs t %
79 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
j=length(datos_crnl(:,9)); % Tamaño del vector % for i=1:j % Bucle con el que preparo k1 y ks para representarlo en toda t % k1t(i,1)=k1; kst(i,1)=k1+k2; % k del sistema, suma de k1+k2 % end figure(8) %subplot(2,1,1) plot(datos_crnl(:,1),datos_crnl(:,6)) xlabel('x1(t) [m]'); ylabel('F(t) [N]'); %subplot(2,1,2) figure(9) plot(datos_crnl(3:j,9),datos_crnl(3:j,5)) axis([0,2,-2E5,4E5]) hold on plot(datos_crnl(:,9),k1t,'r') plot(datos_crnl(:,9),kst,'g') hold off xlabel('t [s]'); ylabel('k(t) [N*m]'); legend('K(t)','k1','ks=k1+k2','Location','NorthEast') %% %%% TIEMPO DE CÁLCULO %%% tc_fin=cputime; tcalc=tc_fin-tc_ini; if tcalc<60 clc disp(['Tiempo total: ' num2str(tcalc) ' seg']) end if tcalc>60 tcalc=tcalc/60; clc disp(['Tiempo total: ' num2str(tcalc) ' min']) end
80 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
A.2 Sim_m_chirp_base.m
close all clear all tc_ini=cputime; %% %%% INICIACIÓN DE VARIABLES %%% % AMORTIGUAMIENTO % chi1=0.05; % Coeficiente de amortiguamiento para sistema 1 % chi2=0.05; % Coeficiente de amortiguamiento para sistema 2 % chi3=0.05; % DATOS SISTEMA 1 Y 2 INICIAL % m1=10; % kg % k1=10000; % N/m % c1=1; m2=1; % kg % k2=23000; % N/m % c2=1; % N*m/s % m3=0.5; k3=145000; c3=1; % MATRICES % A=[0 1 0 0 0 0;-(k1+k2+k3)/m3 -(c1+c2+c3)/m3 k1/m3 c1/m3 k2/m3 c2/m3;0 0 0 1 0 0;k1/m1 c1/m1 -k1/m1 -c1/m1 0 0;0 0 0 0 0 1;k2/m2 c2/m2 0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;0;0;-1/m1;0;1/m2]; C=[0 0 1 0 0 0;0 0 0 0 1 0;1 0 0 0 0 0;0 0 0 1 0 0;0 0 0 -1 0 1;0 0 0 1 0 -1]; % Matriz de salida % D=0; E=[0;1/m3;0;0;0;0]; % Perturbación % % PERTURBACIÓN % A_chirp=10; % Amplitud de la perturbación % W_chirp_i=5; % Frecuencia inicial de la perturbación % W_chirp_f=80; % Frecuencia final de la perturbación % W_chirp_t=60; % Tiempo en llegar de la frec. ini. a la final % % CONTROL % N0=0; % Componente continua de la señal de control % An=0; % Amplitud componente sinosuidal de la señal de control %
81 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Wn=0; % Frecuencia componente sinosuidal de la señal de control % Pn=0; % Desfase en la componente sinosoidal de la señal de control en rad % % ROZAMIENTO % nu_tabla_interp=[-0.18 -0.19 -0.23 -0.31 -0.39 -0.48 -0.53 0.53 0.48 0.39 0.31 0.23 0.19 0.18]; % Coeficientes de fricción en función de la velocidad relativa % x_punto_tabla_interp=(0.0254)*[-100 -10 -1 -0.1 -0.01 -0.001 -0.0001 0.0001 0.001 0.01 0.1 1 10 100]; % Valores de la velocidad relativa en 0.0254*[inch/s] = [m/s] % % INICIACIÓN SIMULACIÓN % ts=60; % Tiempo de simulación % cond_ini=[0;0;0;0;0;0]; % Vector de condiciones iniciales cond_ini = [ x1 x1punto x2 x2punto ] % paso_int=0.00005; % Paso de integración % flag=1; % Activa/desactiva el controlador % precarga=0; % Carga que aplico si el controlador estuviese desactivado % %% %%% SIMULACIONES %%% % SIN AMORTIGUADORES % c1=0; c2=0; c3=0; A=[0 1 0 0 0 0;-(k1+k2+k3)/m3 -(c1+c2+c3)/m3 k1/m3 c1/m3 k2/m3 c2/m3;0 0 0 1 0 0;k1/m1 c1/m1 -k1/m1 -c1/m1 0 0;0 0 0 0 0 1;k2/m2 c2/m2 0 0 -k2/m2 -c2/m2]; % Matriz de estados % N0=0; sim('Sim_Modelo_chirp_base',ts); % Simulación % datos_crnl=[x1.signals.values,x2.signals.values,x3.signals.values,x1punto.signals.values,dif_x2punt_x1punt.signals.values,dif_x1punt_x2punt.signals.values,x1.time]; N0=300; sim('Sim_Modelo_chirp_base',ts); % Simulación % datos_crnl_1=[x1.signals.values,x2.signals.values,x3.signals.values,x1punto.signals.values,dif_x2punt_x1punt.signals.values,dif_x1punt_x2punt.signals.values,x2.time]; flag=0; precarga=300; N0=0; sim('Sim_Modelo_chirp_base',ts); % Simulación %
82 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
datos_crnl_2=[x1.signals.values,x2.signals.values,x3.signals.values,x1punto.signals.values,dif_x2punt_x1punt.signals.values,dif_x1punt_x2punt.signals.values,x2.time]; % CON AMORTIGUACION INTERNA % flag=1; precarga=0; c1= chi1*2*sqrt(k1*m1); % N*m/s % c2= chi2*2*sqrt(k2*m2); % N*m/s % c3= chi3*2*sqrt(k3*m3); % N*m/s % A=[0 1 0 0 0 0;-(k1+k2+k3)/m3 -(c1+c2+c3)/m3 k1/m3 c1/m3 k2/m3 c2/m3;0 0 0 1 0 0;k1/m1 c1/m1 -k1/m1 -c1/m1 0 0;0 0 0 0 0 1;k2/m2 c2/m2 0 0 -k2/m2 -c2/m2]; % Matriz de estados % N0=0; sim('Sim_Modelo_chirp_base',ts); % Simulación % datos_crnl_3=[x1.signals.values,x2.signals.values,x3.signals.values,x1punto.signals.values,dif_x2punt_x1punt.signals.values,dif_x1punt_x2punt.signals.values,x1.time]; N0=300; sim('Sim_Modelo_chirp_base',ts); % Simulación % datos_crnl_4=[x1.signals.values,x2.signals.values,x3.signals.values,x1punto.signals.values,dif_x2punt_x1punt.signals.values,dif_x1punt_x2punt.signals.values,x2.time]; flag=0; precarga=300; N0=0; sim('Sim_Modelo_chirp_base',ts); % Simulación % datos_crnl_5=[x1.signals.values,x2.signals.values,x3.signals.values,x1punto.signals.values,dif_x2punt_x1punt.signals.values,dif_x1punt_x2punt.signals.values,x2.time]; %% %%% ANÁLISIS EN FRECUENCIA DE LAS SIMULACIONES %%% % SIN AMORTIGUADOR % [fft,f]=Sim_m_fourier(datos_crnl(:,1),paso_int); [fft1,f1]=Sim_m_fourier(datos_crnl_1(:,1),paso_int); [fft2,f2]=Sim_m_fourier(datos_crnl_2(:,1),paso_int); % CON AMORTIGUADOR % [fft3,f3]=Sim_m_fourier(datos_crnl_3(:,1),paso_int); [fft4,f4]=Sim_m_fourier(datos_crnl_4(:,1),paso_int); [fft5,f5]=Sim_m_fourier(datos_crnl_5(:,1),paso_int);
83 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
%% %%% REPRESENTACIONES GRÁFICAS %%% % X(t) SIN AMORTIGUADOR % % X1(t) ACTIVADO Y SIN ACTIVAR Y CTE % figure(1) plot(datos_crnl(:,7),datos_crnl(:,1),'b',datos_crnl_2(:,7),datos_crnl_2(:,1),'g',datos_crnl_1(:,7),datos_crnl_1(:,1),'r') grid on xlabel('t [s]') ylabel('x1(t) [m]') legend('N=0','N=cte=300','N=N(u)') % X2(t) ACTIVADO Y SIN ACTIVAR Y CTE % figure(2) plot(datos_crnl(:,7),datos_crnl(:,2),'b',datos_crnl_2(:,7),datos_crnl_2(:,2),'g',datos_crnl_1(:,7),datos_crnl_1(:,2),'r') grid on xlabel('t [s]') ylabel('x2(t) [m]') legend('N=0','N=cte=300','N=N(u)') % X3(t) ACTIVADO Y SIN ACTIVAR Y CTE % figure(3) plot(datos_crnl(:,7),datos_crnl(:,3),'b',datos_crnl_2(:,7),datos_crnl_2(:,3),'g',datos_crnl_1(:,7),datos_crnl_1(:,3),'r') grid on xlabel('t [s]') ylabel('x3(t) [m]') legend('N=0','N=cte=300','N=N(u)') % X(t) CON AMORTIGUADOR % % X1(t) ACTIVADO Y SIN ACTIVAR Y CTE % figure(4) plot(datos_crnl_5(:,7),datos_crnl_5(:,1),'g',datos_crnl_3(:,7),datos_crnl_3(:,1),'b',datos_crnl_4(:,7),datos_crnl_4(:,1),'r') grid on xlabel('t [s]') ylabel('x1(t) [m]') legend('N=cte=300','N=0','N=N(u)') % X2(t) ACTIVADO Y SIN ACTIVAR Y CTE % figure(5) plot(datos_crnl_4(:,7),datos_crnl_4(:,2),'r',datos_crnl_3(:,7),datos_crnl_3(:,2),'b',datos_crnl_5(:,7),datos_crnl_5(:,2),'g') grid on xlabel('t [s]') ylabel('x2(t) [m]') legend('N=N(u)','N=0','N=cte=300') % X3(t) ACTIVADO Y SIN ACTIVAR Y CTE % figure(6) plot(datos_crnl_4(:,7),datos_crnl_4(:,3),'r',datos_crnl_3(:,7),datos_crnl_3(:,3),'b',datos_crnl_5(:,7),datos_crnl_5(:,3),'g') grid on xlabel('t [s]') ylabel('x3(t) [m]')
84 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
legend('N=N(u)','N=0','N=cte=300') % ANÁLISIS EN FRENCUENCIA CONFIG. STIFFNESS PARA DISTINTAS N0 % % FFT SIN AMORTIGUADOR % figure(7) hold on grid on xlim([0 45]) plot(f,fft,'b') plot(f,fft2,'m') plot(f,fft1,'g') hold off %suptitle('Análisis en frecuencia config. Stiffness para distintas N0') xlabel('Frecuencia (Hz)') ylabel('Desplazamiento (dB)') legend('N=0','N=cte','N=N(u)') % FFT CON AMORTIGUADOR % figure(8) hold on grid on xlim([0 45]) plot(f,fft3,'b') plot(f,fft5,'m') plot(f,fft4,'g') hold off %suptitle('Análisis en frecuencia config. Stiffness para distintas N0') xlabel('Frecuencia (Hz)') ylabel('Desplazamiento (dB)') legend('N=0','N=cte','N=N(u)') %% %%% TIEMPO DE CÁLCULO %%% tc_fin=cputime; tcalc=tc_fin-tc_ini; if tcalc<60 clc disp(['Tiempo total: ' num2str(tcalc) ' seg']) end if tcalc>60 tcalc=tcalc/60; clc disp(['Tiempo total: ' num2str(tcalc) ' min']) end
85 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
A.3 Sim_m_sen.m
close all clear all tc_ini=cputime; %% %%% INICIACIÓN DE VARIABLES %%% % AMORTIGUAMIENTO % chi1=0.05; % Coeficiente de amortiguamiento para sistema 1 % chi2=0.05; % Coeficiente de amortiguamiento para sistema 2 % % DATOS SISTEMA 1 Y 2 INICIAL % m1=0.12; % kg % k1=3262; % N/m % c1=chi1*2*sqrt(k1*m1); % N*m/s % m2=1; % kg % k2=1; % N/m % c2=1; % N*m/s % % MATRICES % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1;0 1 0 -1]; % Matriz de salida % D=0; E=[0;1/m1;0;0]; % Perturbación % % PERTURBACIÓN % Af=20; % Amplitud de la perturbación % Wf=0; % Frecuencia inicial de la perturbación % % CONTROL % N0=0; % Componente continua de la señal de control % An=0; % Amplitud componente sinosuidal de la señal de control % Wn=0; % Frecuencia componente sinosuidal de la señal de control % Pn=0; % Desfase en la componente sinosoidal de la señal de control en rad % % ROZAMIENTO % nu_tabla_interp=[-0.18 -0.19 -0.23 -0.31 -0.39 -0.48 -0.53 0.53 0.48 0.39 0.31 0.23 0.19 0.18]; % Coeficientes de fricción en función de la velocidad relativa %
86 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
x_punto_tabla_interp=(0.0254)*[-100 -10 -1 -0.1 -0.01 -0.001 -0.0001 0.0001 0.001 0.01 0.1 1 10 100]; % Valores de la velocidad relativa en 0.0254*[inch/s] = [m/s] % % INICIACIÓN SIMULACIÓN % ts=60; % Tiempo de simulación % cond_ini=[0;0;0;0]; % Vector de condiciones iniciales cond_ini = [ x1 x1punto x2 x2punto ] % paso_int=0.00005; % Paso de integración % %% %%% SIMULACIONES %%% % CONFIGURACIÓN STIFFNES CONTROL % m2=0.75*m1; % kg % k2=3.75*k1; % N/m % c2=chi2*2*sqrt(k2*m2); % N*m/s % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; % MECANISMO SIN ACOPLAR % N0=0; Wf=31; sim('Sim_Modelo_seno',ts); % Simulación % datos_crnl=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; Wf=157; sim('Sim_Modelo_seno',ts); % Simulación % datos_crnl_1=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; Wf=283; sim('Sim_Modelo_seno',ts); % Simulación % datos_crnl_2=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; % MECANISMO ACOPLADO % N0=300;
87 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
Wf=31; sim('Sim_Modelo_seno',ts); % Simulación % datos_crnl_3=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; Wf=258; sim('Sim_Modelo_seno',ts); % Simulación % datos_crnl_4=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; Wf=471; sim('Sim_Modelo_seno',ts); % Simulación % datos_crnl_5=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; % DAMPING CONTROL % Wf=31; N0=20; %% %%% ANÁLISIS EN FRECUENCIA DE LAS SIMULACIONES %%% [fft,f]=Sim_m_fourier(datos_crnl(:,1),paso_int); [fft1,f1]=Sim_m_fourier(datos_crnl_1(:,1),paso_int); [fft2,f2]=Sim_m_fourier(datos_crnl_2(:,1),paso_int); [fft3,f3]=Sim_m_fourier(datos_crnl_3(:,1),paso_int); [fft4,f4]=Sim_m_fourier(datos_crnl_4(:,1),paso_int); [fft5,f5]=Sim_m_fourier(datos_crnl_5(:,1),paso_int); %% %%% REPRESENTACIONES GRÁFICAS %%% % ANÁLISIS EN FRENCUENCIA MECANISMO SIN ACOPLAR % figure(8) hold on grid on xlim([0 65]) plot(f,fft,'b') plot(f1,fft1,'r') plot(f2,fft2,'g') hold off xlabel('Frecuencia (Hz)') ylabel('Desplazamiento (dB)') suptitle('Análisis en frecuencia para mecanismo sin acoplar') legend('Wf menor y lejos de Wn','Wf próxima a Wn','Wf mayor y lejos de Wn') legend('Wf<Wn','Wf=Wn','Wf>Wn')
88 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
% ANÁLISIS EN FRENCUENCIA MECANISMO ACOPLADO % figure(9) hold on grid on xlim([0 95]) plot(f3,fft3,'m') plot(f4,fft4,'Color',[255/255,165/255,0/255]) plot(f5,fft5,'Color',[112/255,128/255,144/255]) hold off xlabel('Frecuencia (Hz)') ylabel('Desplazamiento (dB)') suptitle('Análisis en frecuencia para mecanismo acoplado') legend('Wf<Wn','Wf=Wn','Wf>Wn') % X1(t) FRENTE AL TIEMPO MECANISMO SIN ACOPLAR % figure(10) grid on plot(datos_crnl(:,9),datos_crnl(:,1),'b',datos_crnl_1(:,9),datos_crnl_1(:,1),'r',datos_crnl_2(:,9),datos_crnl_2(:,1),'g') xlim([0 1]) xlabel('t (s)') ylabel('Desplazamiento (m)') suptitle('x1(t) para mecanismo desacoplado') legend('Wf menor y lejos de Wn','Wf próxima a Wn','Wf mayor y lejos de Wn') plot(datos_crnl(:,9),datos_crnl(:,1),'r',datos_crnl_3(:,9),datos_crnl_3(:,1),'b') xlim([0 1]) % X1(t) FRENTE AL TIEMPO PARA MECANISMO ACOPLADO figure(11) grid on plot(datos_crnl_3(:,9),datos_crnl_3(:,1),'b',datos_crnl_4(:,9),datos_crnl_4(:,1),'r',datos_crnl_5(:,9),datos_crnl_5(:,1),'g') xlim([0 0.35]) xlabel('t (s)') ylabel('Desplazamiento (m)') suptitle('x1(t) para mecanismo acoplado') legend('Wf<Wn','Wf=Wn','Wf>Wn') % % X1(t) // X2(t) MECANISMO ACOPLADO FRENTE AL TIEMPO PARA UNA DETERMINADA W % % figure(12) % grid on % plot(datos_crnl_6(:,9),datos_crnl_6(:,1),'b',datos_crnl_6(:,9),datos_crnl_6(:,2),'r') % xlim([0 1]) % xlabel('t (s)') % ylabel('Desplazamiento (m)') % suptitle(['x1(t) y x2(t) para mecanismo acoplado' num2str(471/2*pi)]) % F(t) vs X1(t) // K(t) vs t % j=length(datos_crnl(:,9)); % Tamaño del vector %
89 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
for i=1:j % Bucle con el que preparo k1 y ks para representarlo en toda t % k1t(i,1)=k1; kst(i,1)=k1+k2; % k del sistema, suma de k1+k2 % end figure(13) subplot(1,2,1) plot(datos_crnl(:,1),datos_crnl(:,6)) xlabel('x1(t) [m]'); ylabel('F(t) [N]'); subplot(1,2,2) plot(datos_crnl(3:j,9),datos_crnl(3:j,5)) axis([0,2,-2E5,4E5]) hold on plot(datos_crnl(:,9),k1t,'r') plot(datos_crnl(:,9),kst,'g') hold off xlabel('t [s]'); ylabel('k(t) [N*m]'); legend('K(t)','k1','ks=k1+k2','Location','NorthEast') %% %%% CÁLCULOS AUXILIARES %%% ind_i=1; ind_f=1; for i=1:length(datos_crnl(:,9)) if datos_crnl(i,9)<0.5 ind_i=ind_i+1; end end posicion=ind_i; % Posición que ocupa t=0.5 s en el vector % valor1=datos_crnl_2(ind_i,1); % Valor de x1(0.5) desacoplado % valor2=datos_crnl_4(ind_i,1); % Valor de x1(0.5) acoplado % %% %%% TIEMPO DE CÁLCULO %%% tc_fin=cputime; tcalc=tc_fin-tc_ini; if tcalc<60 clc disp(['Tiempo total: ' num2str(tcalc) ' seg']) end if tcalc>60 tcalc=tcalc/60; clc disp(['Tiempo total: ' num2str(tcalc) ' min']) end
90 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
A.4 Sim_m_escalon.m
close all clear all tc_ini=cputime; %% %%% INICIACIÓN DE VARIABLES %%% % AMORTIGUAMIENTO % chi1=0.05; % Coeficiente de amortiguamiento para sistema 1 % chi2=0.05; % Coeficiente de amortiguamiento para sistema 2 % % DATOS SISTEMA 1 Y 2 INICIAL % m1=0.12; % kg % k1=3262; % N/m % c1=chi1*2*sqrt(k1*m1); % N*m/s % m2=1; % kg % k2=1; % N/m % c2=1; % N*m/s % % MATRICES % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; C=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1;0 1 0 -1]; % Matriz de salida % D=0; E=[0;1/m1;0;0]; % Perturbación % % PERTURBACIÓN % Aef=70; % Amplitud de la perturbación % % CONTROL % N0=0; % Componente continua de la señal de control % An=0; % Amplitud componente sinosuidal de la señal de control % Wn=0; % Frecuencia componente sinosuidal de la señal de control % Pn=0; % Desfase en la componente sinosoidal de la señal de control en rad % % ROZAMIENTO % nu_tabla_interp=[-0.18 -0.19 -0.23 -0.31 -0.39 -0.48 -0.53 0.53 0.48 0.39 0.31 0.23 0.19 0.18]; % Coeficientes de fricción en función de la velocidad relativa %
91 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
x_punto_tabla_interp=(0.0254)*[-100 -10 -1 -0.1 -0.01 -0.001 -0.0001 0.0001 0.001 0.01 0.1 1 10 100]; % Valores de la velocidad relativa en 0.0254*[inch/s] = [m/s] % % INICIACIÓN SIMULACIÓN % ts=5; % Tiempo de simulación % cond_ini=[0;0;0;0]; % Vector de condiciones iniciales cond_ini = [ x1 x1punto x2 x2punto ] % paso_int=0.00005; % Paso de integración % %% %%% SIMULACIONES %%% % MECANISMO SIN ACOPLAR % N0=0; sim('Sim_Modelo_escalon',ts); % Simulación % datos_crnl=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; % CONFIGURACIÓN STIFFNES CONTROL % m2=0.75*m1; % kg % k2=3.75*k1; % N/m % k2_s=k2; c2=chi2*2*sqrt(k2*m2); % N*m/s % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; N0=20; sim('Sim_Modelo_escalon',ts); % Simulación % datos_crnl_1=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=400; sim('Sim_Modelo_escalon',ts); % Simulación % datos_crnl_2=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; % CONFIGURACIÓN MASS CONTROL %
92 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
m2=4*m1; % kg % k2=0.5*k1; % N/m % k2_m=k2; c2=chi2*2*sqrt(k2*m2); % N*m/s % A=[0 1 0 0;-k1/m1 -c1/m1 0 0;0 0 0 1;0 0 -k2/m2 -c2/m2]; % Matriz de estados % B=[0;-1/m1;0;1/m2]; N0=20; sim('Sim_Modelo_escalon',ts); % Simulación % datos_crnl_3=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; N0=400; sim('Sim_Modelo_escalon',ts); % Simulación % datos_crnl_4=[x1.signals.values,x2.signals.values,x1punto.signals.values,x2punto.signals.values,kt.signals.values,Ft.signals.values,dif_x1punt_x2punt.signals.values,nu.signals.values,x1.time]; %% %%% ANÁLISIS EN FRECUENCIA DE LAS SIMULACIONES %%% [fft,f]=Sim_m_fourier(datos_crnl(:,1),paso_int); [fft1,f1]=Sim_m_fourier(datos_crnl_1(:,1),paso_int); [fft2,f2]=Sim_m_fourier(datos_crnl_2(:,1),paso_int); [fft3,f3]=Sim_m_fourier(datos_crnl_3(:,1),paso_int); [fft4,f4]=Sim_m_fourier(datos_crnl_4(:,1),paso_int); %% %%% REPRESENTACIONES GRÁFICAS %%% figure(1) plot(datos_crnl(:,9),datos_crnl(:,1),'b',datos_crnl_1(:,9),datos_crnl_1(:,1),'r',datos_crnl_2(:,9),datos_crnl_2(:,1),'g',datos_crnl_4(:,9),datos_crnl_4(:,1),'c') xlim([0 0.8]) title('x1(t) frente a t') legend('Referencia','Damping control','Stifness Control','Mass control') % ANÁLISIS EN FRENCUENCIA CONFIG. STIFFNESS PARA DISTINTAS N0 % figure(3) hold on grid on xlim([6 80]) plot(f,fft,'b') plot(f1,fft1,'r') plot(f2,fft2,'g') plot(f4,fft4,'c') % plot(f3,fft3,'m')
93 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
% plot(f4,fft4,'c') hold off suptitle('Análisis en frecuencia config. Stiffness para distintas N0') xlabel('Frecuencia (Hz)') ylabel('Desplazamiento (dB)') %legend('N=0','N=20','N=40','N=60','N=80','N=100','N=200') legend('Referencia','Damping control','Stifness Control','Mass control') %% %%% TIEMPO DE CÁLCULO %%% tc_fin=cputime; tcalc=tc_fin-tc_ini; if tcalc<60 clc disp(['Tiempo total: ' num2str(tcalc) ' seg']) end if tcalc>60 tcalc=tcalc/60; clc disp(['Tiempo total: ' num2str(tcalc) ' min']) end
94 | P á g i n a
| A n á l i s i s p o r s i m u l a c i ó n d e u n m é t o d o d e c o n t r o l a c t i v o d e v i b r a c i o n e s
A.5 Sim_m_fourier.m
function [salida,f]=Sim_m_fourier(datos,paso_int) Fs=1/paso_int; T=1/Fs; Fn=Fs/2; NFFT=2^(ceil(log(length(datos))/log(2))); FFTX=fft(datos,NFFT); NumPtsUnicos=ceil((NFFT+1)/2); FFTX=FFTX(1:NumPtsUnicos); MX=abs(FFTX); MX=MX*2; MX(1)=MX(1)/2; MX(length(MX))=MX(length(MX))/2; MX=MX/length(datos); f=(0:NumPtsUnicos-1)*2*Fn/NFFT; PH=angle(fft(datos,NFFT))*180/pi; salida=log10(MX);
95 | P á g i n a