Delay block with vectors
조회 수: 6 (최근 30일)
I get an error when I use the discrete "Delay" block with input data as a vector.
"In block 'test_delay/Delay', the size of IC is incompatible with the delay length. When IC is not scalar, the last dimension number of IC should equal to the delay length value. However, in this block, the last dimension number of IC is 3, but the delay length value is 100.
Component:Simulink | Category:Model error
Error in port widths or dimensions. Output port 1 of 'test_delay/Mux' is a one dimensional vector with 3 elements."
I understand that the delay block support the use of scalars and vectors. Apparently the problem is related to the initial condition but I don't really understand why. Can anyone help ? Attached is my test model.
Thanks & regards
Mauro Fusco 2019년 3월 12일
편집: Mauro Fusco 님. 2019년 3월 12일
see the picture below for a solution. The initial condition has to be set consistently with the number of samples of the delay. As you are specifying 5 samples, also the IC has to be consistent with that. Assuming that you want to keep the initial value
for the first 5 samples, I have used vector concatenate to build the matrix of IC. You can change this, by specifying different vectors to concatenate. Also, note that you need to change a parameter in the initial condition block, which was set to 100. "When IC is not scalar, the last dimension number of IC should equal to the delay length value" means that you have to set this parameter to 5.
Attached you also find running simulation file.