matlab.System - how do I get the actual timestep size
3 次查看(过去 30 天)
显示 更早的评论
I am using the matlab.System class to implement a block that requires to know the timestep (in seconds) for integration in the stepImpl method.
I could find 2 ways of getting something close to what I want.
- Use getCurrentTime() and make a diff with previous step. Drawback : first step is always 0.
- Inject the timestep from Simulink using the "Weighted Sample Time" block and add a input to my stepImpl method.
Is there a better way to do this? Ideally, I could query the same value given by the wieghted sample time block, without having to add an input for it.
Regards
0 个评论
回答(1 个)
Prateekshya
2023-9-28
Hi Pier-Yves,
As per my understanding you want to know about an optimal way that can be used to find out the time step. You can use "getSampleTime" method provided by "matlab.System" class to retrieve the sample time information including the time step. Here is a small example:
sampleTime = obj.getSampleTime(); % obj is the System object
timestep = sampleTime.SampleTime; % SampleTime is a property
You can replace the "SampleTime" property with the property that you want. You can find the list of properties in this link: https://in.mathworks.com/help/matlab/ref/matlab.system.createsampletime.html#namevaluepairs
For more information on "getSampleTime" method you can follow this link: https://in.mathworks.com/help/matlab/ref/matlab.system.getsampletime.html
I hope it helps!
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Create System Objects 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!