Can you call Simulink models recursively?

43 visualizaciones (últimos 30 días)
Jan
Jan el 26 de Nov. de 2024 a las 15:27
Comentada: Jan el 27 de Nov. de 2024 a las 13:50
Hi all,
I have a feeling that what I try to do can be done more elegantly. Please let me know if you think of a solution.
A digital-to-time converter (DTC) works as a string of unit-delay cells and a multiplexer that picks one of the intermediate points in the string to select a specific delay. An example is shown here, where the input square wave is delayed by multiples of 1 second (0, 1, 2, or 3 seconds). The index 2 selects the first delay output, thus 1 second delay, as it shows in the scope picture.
This is fine if one needs only a limited number of delay settings, but what if 100 are required? This brute force method of drawing the model can then take all day, and it is quite error-prone. Is there a way to make this easier (like nesting models, recursevly instantiating models, defining the delays as an array and connecting the inputs and outputs by name, etc.)?

Respuesta aceptada

Michael
Michael el 26 de Nov. de 2024 a las 16:56
Hi Jan,
I am not sure if I understand you correctly. But maybe this could be a solution for your task?
  1 comentario
Jan
Jan el 26 de Nov. de 2024 a las 18:00
Thanks Michael,
I wasn't aware that the d-input of the variable delay could be changed during the simulation.
In the actual system, the index changes from cycle to cycle of the input signal. So I sample it here on the falling edge of the input signal, which delays both rising and falling edges as expected. This is indeed a good solution. I am only interested in the rising edge, so the pulse-width modulation is of no concern.

Iniciar sesión para comentar.

Más respuestas (1)

Paul
Paul el 26 de Nov. de 2024 a las 18:04
Hi Jan,
I think the Tapped Delay block is exactly what you need.
  1 comentario
Jan
Jan el 27 de Nov. de 2024 a las 13:50
Thanks Paul,
This is also a good solution. It took me a while to find out how to select the correct output signal from the bus, but this solution is indeed equivalent to the one I copied above, in response to @Michael's suggestion.

Iniciar sesión para comentar.

Categorías

Más información sobre General Applications en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by