U = box2poly(U) W = box2poly(W) # Construct the LTI system describing the dynamics sys_dyn = hybrid.LtiSysDyn(A, B, E, None, U, W, cont_state_space) # @dynamics_section_end@ # @partition_section@ # Define atomic propositions for relevant regions of state space cont_props = {} cont_props['home'] = box2poly([[0., 1.], [0., 1.]]) cont_props['lot'] = box2poly([[2., 3.], [1., 2.]]) # Compute the proposition preserving partition of the continuous state space cont_partition = prop2part(cont_state_space, cont_props) plot_partition(cont_partition) if show else None # @partition_section_end@ # @discretize_section@ # Given dynamics & proposition-preserving partition, find feasible transitions disc_dynamics = discretize(cont_partition, sys_dyn, closed_loop=True, N=8, min_cell_volume=0.1, plotit=show) # @discretize_section_end@ # Visualize transitions in continuous domain (optional) plot_partition(disc_dynamics.ppp, disc_dynamics.ts, disc_dynamics.ppp2ts) if show else None
U = box2poly(U) W = box2poly(W) # Construct the LTI system describing the dynamics sys_dyn = hybrid.LtiSysDyn(A, B, E, None, U, W, cont_state_space) # @dynamics_section_end@ # @partition_section@ # Define atomic propositions for relevant regions of state space cont_props = {} cont_props['home'] = box2poly([[0., 1.], [0., 1.]]) cont_props['lot'] = box2poly([[2., 3.], [1., 2.]]) # Compute the proposition preserving partition of the continuous state space cont_partition = prop2part(cont_state_space, cont_props) plot_partition(cont_partition, show=visualize) # @partition_section_end@ # @discretize_section@ # Given dynamics & proposition-preserving partition, find feasible transitions disc_dynamics = discretize( cont_partition, sys_dyn, closed_loop=True, N=8, min_cell_volume=0.1, plotit=visualize ) # @discretize_section_end@ """Visualize transitions in continuous domain (optional)""" plot_partition(disc_dynamics.ppp, disc_dynamics.ts, disc_dynamics.ppp2ts, show=visualize) """Specifications"""
U = box2poly(U) W = box2poly(W) # Construct the LTI system describing the dynamics sys_dyn = hybrid.LtiSysDyn(A, B, E, None, U, W, cont_state_space) # @dynamics_section_end@ # @partition_section@ # Define atomic propositions for relevant regions of state space cont_props = {} cont_props['home'] = box2poly([[0., 1.], [0., 1.]]) cont_props['lot'] = box2poly([[2., 3.], [1., 2.]]) # Compute the proposition preserving partition of the continuous state space cont_partition = prop2part(cont_state_space, cont_props) plot_partition(cont_partition) # @partition_section_end@ # @discretize_section@ # Given dynamics & proposition-preserving partition, find feasible transitions disc_params = { 'closed_loop': True, 'N': 8, 'min_cell_volume': 0.1, 'plotit': visualize, 'conservative': False } disc_dynamics = discretize(cont_partition, sys_dyn, **disc_params) # @discretize_section_end@ """Visualize transitions in continuous domain (optional)""" plot_partition(disc_dynamics.ppp, disc_dynamics.ts, disc_dynamics.ppp2ts)
# Construct the LTI system describing the dynamics sys_dyn = hybrid.LtiOutSysDyn(A=A,B=B,C=C, E=E, K=None, Uset=U, Wset=W, domain=cont_state_space) L = generateFilter(A, C, filter_bound, use_mosek=False) sys_dyn_hat = sys_dyn.generateObservedDynamics(L,epsilon) # @dynamics_section_end@ # @partition_section@ # Define atomic propositions for relevant regions of state space cont_props = {} cont_props['home'] = shrinkPoly(box2poly([[0., 1.], [0., 1.]]),epsilon) cont_props['lot'] = shrinkPoly(box2poly([[2., 3.], [1., 2.]]),epsilon) # Compute the proposition preserving partition of the continuous state space cont_partition = prop2part(cont_state_space, cont_props) plot_partition(cont_partition) if show else None cont_partition = shrinkPartition(cont_partition, epsilon) plot_partition(cont_partition) if show else None # @partition_section_end@ # @discretize_section@ # Given dynamics & proposition-preserving partition, find feasible transitions disc_dynamics = discretize( cont_partition, sys_dyn_hat, closed_loop=True, conservative=True, N=1, min_cell_volume=0.01, plotit=show, trans_length=3 ) # @discretize_section_end@ """Visualize transitions in continuous domain (optional)""" plot_partition(disc_dynamics.ppp, disc_dynamics.ts, disc_dynamics.ppp2ts) if show else None
U = box2poly(U) W = box2poly(W) # Construct the LTI system describing the dynamics sys_dyn = hybrid.LtiSysDyn(A, B, E, None, U, W, cont_state_space) # @dynamics_section_end@ # @partition_section@ # Define atomic propositions for relevant regions of state space cont_props = {} cont_props['home'] = box2poly([[0., 1.], [0., 1.]]) cont_props['lot'] = box2poly([[2., 3.], [1., 2.]]) # Compute the proposition preserving partition of the continuous state space cont_partition = prop2part(cont_state_space, cont_props) plot_partition(cont_partition) # @partition_section_end@ # @discretize_section@ # Given dynamics & proposition-preserving partition, find feasible transitions disc_params = {'closed_loop':True, 'N':8, 'min_cell_volume':0.1, 'plotit':visualize, 'conservative':False} disc_dynamics = discretize(cont_partition, sys_dyn, **disc_params) # @discretize_section_end@ """Visualize transitions in continuous domain (optional)""" plot_partition(disc_dynamics.ppp, disc_dynamics.ts, disc_dynamics.ppp2ts) """Specifications""" # Environment variables and assumptions
U = box2poly(U) W = box2poly(W) # Construct the LTI system describing the dynamics sys_dyn = hybrid.LtiSysDyn(A, B, E, None, U, W, cont_state_space) # @dynamics_section_end@ # @partition_section@ # Define atomic propositions for relevant regions of state space cont_props = {} cont_props['home'] = box2poly([[0., 1.], [0., 1.]]) cont_props['lot'] = box2poly([[2., 3.], [1., 2.]]) # Compute the proposition preserving partition of the continuous state space cont_partition = prop2part(cont_state_space, cont_props) plot_partition(cont_partition, show=visualize) # @partition_section_end@ # @discretize_section@ # Given dynamics & proposition-preserving partition, find feasible transitions disc_params = { 'closed_loop': True, 'N': 8, 'min_cell_volume': 0.1, 'plotit': visualize, 'conservative': False } disc_dynamics = discretize(cont_partition, sys_dyn, **disc_params) # @discretize_section_end@ """Visualize transitions in continuous domain (optional)""" plot_partition(disc_dynamics.ppp,