TUMcps / CORA

Toolbox for Reachability Analysis
GNU General Public License v3.0
108 stars 35 forks source link

Reachable set for output in cont.Dynamics missing ? #19

Closed AnuragCoSES closed 3 years ago

AnuragCoSES commented 3 years ago

Hi, I have noticed that the reachable sets for outputs, which was present in the reach( ) for continuous Dynamics in CORA18 are absent in the CORA20 version. I found the use of outputSet( ) in only the Linear discrete system reach( ) Has there been a change in way the reach( ) handles outputs between CORA'18 to CORA'20? Could you maybe provide a minimal example of how to invoke output reachable sets in cont. dynamics using a linearsys obj?

I have attached a couple screenshots for your reference on this issue.

Kind regards, Anurag Mohapatra CORA18_reach_1 CORA18_reach_2

wetzlingerm commented 3 years ago

First of all, the computed reachable set is now stored in a reachSet object which was implemented in an effort to standardize the output arguments of reach-functions and facilitating the post-processing, e.g., visualization. This has changed from CORA'18.

The output equation y = Cx + Du + k is currently only implemented for @linearSys and @linearSysDT classes. By defining C, D, and k, this equation is computed and the reachSet object returned by the reach function will contain the output set instead of the reachable set of states. The various possiblities to define the system are described at length in the respective constructor files @linearSys/linearSys.m and @linearSysDT/linearSysDT.m, where you will also find examples. Obtaining the output set instead of the reachable set of states does not cause any loss of information, as outputs can be equal to states by putting rows from the identity matrix in C.

I hope this helps! Let us know if you have more questions regarding this matter.

AnuragCoSES commented 3 years ago

Thank you for the clarification. I will close the issue.

If I may ask a short follow-up question, unrelated to the previous topic - Is it true that the adaptive reach method does not accept input trajectories? (I get the error - 'options.u: No u when options.linAlg = adap')

wetzlingerm commented 3 years ago

At its current state, the input set U cannot contain a time-varying center if options.linAlg = 'adap'. This missing functionality will be added latest in the next release in Summer 2021. You will then be able to specify arbitrarily time-varying input sets as opposed to now, where the set is fixed for the whole time horizon.