#1236 closed defect (fixed)
BysMcmc: Error with Non Linear Filters and Transfer Functions
| Reported by: | Pedro Gea | Owned by: | Víctor de Buen Remiro |
|---|---|---|---|
| Priority: | highest | Milestone: | Mantainance |
| Component: | Kernel | Version: | head |
| Severity: | blocker | Keywords: | |
| Cc: | mafernandez@… |
Description
Se encuentran errores al utilizar funciones de transferencias con varios retardos junto a los filtros no lineales. Algo del tipo: (0.1+0.2*B) : FiltroNL(input)
El error que devuelve BSR es:
Warning: [1] <W>Imposible sumar dos matrices de dimensiones (365,1) y (0,0).</W> Warning: [2] <W>Imposible restar dos matrices de dimensiones (0,0) y (365,1).</W> ERROR: [1] No es posible aplicar * a matrices virtuales de dimensiones (365x365) (0x0)
Investigando un poco en el archivo _nonLinBlock.tol veo que el problema surje en la línea 98:
Matrix _.Z := _.W + _.Fi * omega;
porque, en mi caso, _.Fi es 365x1 y omega es 3x1.
Veo que _.Fi tiene un tamaño inadecuado porque en la inicialización (línea 370) se le da un tamaño _.mx1:
Matrix _.Fi = Rand(_.m,1,0,0)
sin atender a las dimensiones de omega.
Lo más extraño es que creo que esto se ha estado usando antes sin problemas.
Change History (5)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
| Cc: | mafernandez@… added |
|---|---|
| Status: | new → accepted |
El problema parece estar arreglado en el nuevo paquete BysMcmc.4.5
Respecto a que antes funcionara supongo que será por algún cambio que ha habido en las rutinas de inicialización del master de BSR.
Una vez que pasa por @BlockNonLin::useStore ya se queda bien dimensionado tras ejecutar la sentencia
Matrix _.Fi := _.filter::eval(VMat2Mat(_.store));
Es posible que en versiones pasadas se llamara antes de hora y los dos errores se anularan
comment:3 Changed 15 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |

(In [3611]) Refs #1236