media móvil

27 views
Skip to first unread message

Pablo Angulo

unread,
Jun 19, 2023, 6:06:09 AM6/19/23
to modelic...@googlegroups.com
Hola

Para romper el hielo, os planteo una duda...

En el trabajo de Noé surgió la necesidad de filtrar una señal oscilante,
y buscamos un componente de media móvil. Hay un componente que hace este
trabajo:

https://build.openmodelica.org/Documentation/Modelica_Requirements.SignalAnalysis.MovingAverage.html

pero para que tuviera además un decaimiento exponencial y no haya tanta
resonancia entre el periodo tau de la media móvil y la frecuencia de la
señal, tuvimos que programarlo. En el adjunto mae.pdf derivo las
fórmulas. Lo planteo como una ecuación diferencial pq me pareció lo más
natural en modelica :-/

Algo así como:

> model cont_mean
>   parameter Real decay=0.01;
>   parameter Real tau=6;
>
>   Real MAE;
>   Modelica.Blocks.Interfaces.RealOutput y;
>   Modelica.Blocks.Sources.RealExpression realExpression(y = sin(time)
> + 0.8 * sin(time / 20) + 0.3 * sin(time / 30 + 1));
> equation
>   der(MAE) = -decay*MAE + decay/(1-exp(-tau*decay))*(y -
> delay(y,tau)*exp(-decay*tau));
>   connect(realExpression.y, y);
> initial equation
>   MAE=y;
> annotation(
>     uses(Modelica(version = "4.0.0")));
> end cont_mean;
Lo comento por si queréis opinar. No hay muchas referencias de una media
móvil con decaimiento exponencial de una señal continua, igual es que
hay ideas mejores :-/

En el adjunto mae.pdf hay dos versiones, una es media móvil con
decaimiento exponencial y la otra es sólo una integral de la señal con
decaimiento exponencial. Diría que el coste computacional es similar.
Para señales discretas sí se usan las tres variantes.

Saludos

--

Pablo Angulo | Profesor Contratado Doctor
https://dcain.etsin.upm.es/~pablo

Universidad Politécnica de Madrid
Matemática e Informática Aplicadas a las Ingenierías Civil y Naval

ETS de Ingenieros Navales
Avd. de la Memoria, Nº4. 28040, Madrid SPAIN

mailto:pablo....@upm.es
tel:+34-91-06-76218

http://www.upm.es/disclaimer
mae.pdf
cont_mean.mo

Basi PV

unread,
Jun 19, 2023, 12:52:10 PM6/19/23
to Spain Modelica User Group
Hola,

Veo que tiene buena pinta, solo una pregunta: ¿Cómo afinar los parámetros "decay" y "tau"? Veo que a partir de un decay dado, si se hace mas pequeño no varía el resultado. ¿Tienes la fuente de literatura del modelo?

imagen_2023-06-19_185011556.png

Francisco Mata

unread,
Jun 20, 2023, 3:31:35 AM6/20/23
to Pablo Angulo, modelic...@googlegroups.com

Hola Pablo,

 

Perdonad que conteste con más preguntas ¿qué señal es la que tenéis que filtrar? ¿es un problema numérico o físico?

 

Por otra parte, pregunta del novato: ¿tenéis idea por qué me deja compilar pero no ejecutar?

 

 

 

-----Mensaje original-----
De: modelic...@googlegroups.com <modelic...@googlegroups.com> En nombre de Pablo Angulo
Enviado el: lunes, 19 de junio de 2023 12:06
Para: modelic...@googlegroups.com
Asunto: media móvil

 

Hola

 

Para romper el hielo, os planteo una duda...

 

En el trabajo de Noé surgió la necesidad de filtrar una señal oscilante, y buscamos un componente de media móvil. Hay un componente que hace este

trabajo:

 

--

Has recibido este mensaje porque estás suscrito al grupo "Spain Modelica User Group" de Grupos de Google.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a modelica-spai...@googlegroups.com.

Para ver este debate en la Web, visita https://urldefense.com/v3/__https://groups.google.com/d/msgid/modelica-spain/dcb8b34e-09d8-c3da-ffc6-a1d42ee4a605*40upm.es__;JQ!!D9dNQwwGXtA!X1pi6JWVluS9ovedTadOWsXyKvDr5gFe8XTwv74mxUCYGM5GGBQEyOkg_T-2PfSsmFlmcakLIHYrhU-iIqlQSHvIkg$ .

Para obtener más opciones, visita https://urldefense.com/v3/__https://groups.google.com/d/optout__;!!D9dNQwwGXtA!X1pi6JWVluS9ovedTadOWsXyKvDr5gFe8XTwv74mxUCYGM5GGBQEyOkg_T-2PfSsmFlmcakLIHYrhU-iIqmyyw6ptw$ .

image001.png

Pablo Angulo

unread,
Jun 20, 2023, 3:45:39 AM6/20/23
to Francisco Mata, modelic...@googlegroups.com
On 20/6/23 9:31, Francisco Mata wrote:

Hola Pablo,

 

Perdonad que conteste con más preguntas ¿qué señal es la que tenéis que filtrar? ¿es un problema numérico o físico?

Es físico. No es una señal real medida por un dispositivo a intervalos regulares, sino una señal continua generada en la simulación, que consta de oscilaciones rápidas y variaciones lentas. Hay que filtrar las oscilaciones rápidas para que el sistema compense las variaciones persistentes de la escora.


 

Por otra parte, pregunta del novato: ¿tenéis idea por qué me deja compilar pero no ejecutar?


¿Te ha pasado con otros modelos? ¿Puede ser un problema de permisos? ¿Qué sistema operativo usas?

Salud

Francisco Mata

unread,
Jun 20, 2023, 6:18:31 AM6/20/23
to Pablo Angulo, modelic...@googlegroups.com

No se si sería factible añadir un amortiguador físico en algún punto del sistema para filtrar esa señal (lo que siempre podríais hacer, si fuera una señal medida).

 

Problemas de ejecución: es una instalación reciente en Windows 11 en un ordenador del trabajo. Me deja ejecutar sin problemas todos los ejemplos que trae modélica, pero no puedo ejecutar los que yo programo. Podría ser como dices un problema de permisos, trataré de investigar un poco (en casa lo tengo instalado en Linux y no me da problemas).

image001.png

Basi PV

unread,
Jun 20, 2023, 9:34:09 AM6/20/23
to Spain Modelica User Group
Para el problema de ejecutar el archivo: Prueba a copiar y pegar el archivo cont_mean.mo al escritorio y abrelo desde ahí. Hay algunas rutas del sistema que tienen prohibido a los programas usarlas.

Pablo Angulo

unread,
Jun 21, 2023, 5:43:33 AM6/21/23
to modelic...@googlegroups.com
On 20/6/23 12:18, Francisco Mata wrote:

No se si sería factible añadir un amortiguador físico en algún punto del sistema para filtrar esa señal (lo que siempre podríais hacer, si fuera una señal medida).


Ayer me crucé con Francisco, y ví que no había entendido bien su pregunta "¿es un problema numérico o físico?". La señal es simulación de la escora del buque, que es un fenómeno físico, pero no se trata de amortiguar la escora directamente, sino de filtrar la señal de escora para luego alimentar la señal filtrada a un controlador digital que actuará sobre un sistema antiescora.
Reply all
Reply to author
Forward
0 new messages