How to trigger function call at a user defined periodic rate when using the "Show enable port" option in a Function-Call Generator

2 ビュー (過去 30 日間)
Attached is a simulink model that represents the functionality that I am trying to end up with. At this point I can get everthing to work as intended except for having my functionA and functionB run at different periodic rates when using the "Show enable port" option in the Function-Call Generators.
How can I get these two subsystems to run at different user defined periodic rates using function calls? Specifically, I want to be able to run FunctionA at 0.2 sec timesteps, and Function B at 0.5 sec timesteps. Currently both systems are running at the base simulation rate of 0.1 seconds.
I tried creating a stateflow graph (commented out) with output events that would trigger the functions at different rates, however each function ends up getting reset inbetween function calls. I only want them to be reset when the resettable subsystem is triggered by the enable logic at the root level.
Another solution I had tried instead of function calls was using enabled & triggered subsystems with a square wave generator, but this introduces other issues that would also need to be resolved.

採用された回答

Adit Kirtani
Adit Kirtani 2023 年 7 月 3 日
Hi Andrew,
From what I understand, you wish to modify the sample rate at which the function call subsystem “checks” if there is a function call or not.
In that case, I would recommend the rate transition block. Simply connect it between your enable signal and the function call generator as such:
The rate transition block can be set to operate at a multiple of the input signal’s sample rate. In your case, you can set it to multiples of 2 and 5 respectively. Here’s a link to the documentation of the rate transition block, it should help your model operate as intended:
I hope this helps,
Adit Kirtani.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSchedule Model Components についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by