measure the ROS loop time in simulink

Illustration
Goldfarb - 2021-09-23T14:03:54+00:00
Question: measure the ROS loop time in simulink

I am trying to figure out my control loop time in simulink for controlling my simulation using MATLAB 2021a.\   I am using the loop control rate block found in these closed loop control example here   The comments say:   % The rate control may not be effective if the simulation model is too % complex to be handled at the desired rate. To check the rate control % performance, consider output rateObj.LastPeriod. Ideally it should be % close to SampleTime during most part of the simulation. How do I actually output/access the rateObj.LastPeriod in the model so I can make a historgram of the control rate?

Expert Answer

Profile picture of John Williams John Williams answered . 2025-11-20

The Simulation Rate Control block used in this example is a MATLAB System Object.
 
You can modify the stepImpl method of this system object class, ExampleHelperSimulationRateControl.m, to add an output argument as below.
 
        function r = stepImpl(obj)
            %stepImpl Regulates simulation update
            if coder.target('MATLAB')
                obj.RateObj.waitfor();
                r = obj.RateObj.LastPeriod;
            else
                r = nan;
            end
        end               

Save the ExampleHelperSimulationRateControl.m class and re-open the model.


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!