Datetime arithmetic in simulink
Show older comments
Hello, is it possible to do datetime arithmetic in simulink? Eventually, the code may be autogenerated to C++.
for example, in matlab i would do:
dt0 = datetime([year month day hour min sec])
increment = 0.5 % seconds
dt1 = dt + seconds(increment);
Answers (1)
You can do some arithmetics with datetime data type. For your example it is possible to add a duration to a datetime.
dt0 = datetime([2023 8 25 11 47 3]) % a point in time
increment = duration(0,0,5) % a duration of 5 seconds
dt1 = dt0 + increment % a 5 seconds later point in time
4 Comments
Michael
on 25 Aug 2023
In general a Simulink block is generating a signal (in case of of a source block) or manipulating a signal using block parameters or other signals. datetime or duration are no valid data types for signals. Or what is your intention to deal with those data types in Simulink?
MP
on 25 Aug 2023
Michael
on 25 Aug 2023
I am not familar with the Aerospace Blockset but according to documentation the Julian date conversion block supports only data type double on its inputs and its outputs. I don't see the nessity or possibility to deal with data type datetime or duration. But maybe it is possible to write a function within a MATLAB Function block with double inputs and double outputs where you convert those doubles into datetime and/or duration and convert the results back to doubles. But I am not sure if that is what you want
Categories
Find more on Unit Conversions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!