Can you call Simulink models recursively?

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.)?

 Accepted Answer

Hi Jan,
I am not sure if I understand you correctly. But maybe this could be a solution for your task?

1 Comment

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.

Sign in to comment.

More Answers (1)

Paul
Paul on 26 Nov 2024
Hi Jan,
I think the Tapped Delay block is exactly what you need.

1 Comment

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.

Sign in to comment.

Categories

Products

Release

R2022b

Asked:

Jan
on 26 Nov 2024

Commented:

Jan
on 27 Nov 2024

Community Treasure Hunt

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

Start Hunting!