def check_states_data(xdata, nx, number_of_intervals): if not nx == 0: if xdata is None: xdata = np.zeros((nx, number_of_intervals + 1)) xdata = np.atleast_2d(xdata) if xdata.shape == (number_of_intervals + 1, nx): xdata = xdata.T if not xdata.shape == (nx, number_of_intervals + 1): raise ValueError( \ "State values provided by user have wrong dimension.") return xdata else: return ci.dmatrix(0,0)
def check_controls_data(udata, nu, number_of_controls): if not nu == 0: if udata is None: udata = np.zeros((nu, number_of_controls)) udata = np.atleast_2d(udata) if udata.shape == (number_of_controls, nu): udata = udata.T if not udata.shape == (nu, number_of_controls): raise ValueError( \ "Time-varying control values provided by user have wrong dimension.") return udata else: return ci.dmatrix(0, number_of_controls)
def check_constant_controls_data(qdata, nq): if not nq == 0: if qdata is None: qdata = np.zeros((nq, 1)) qdata = np.atleast_2d(qdata) if qdata.shape == (1, nq): qdata = qdata.T if not qdata.shape == (nq, 1): raise ValueError( \ "Time-constant control values provided by user have wrong dimension.") return qdata else: return ci.dmatrix(0, 1)
def check_input_error_weightings(weps_u, neps_u, number_of_intervals): if not neps_u == 0: if weps_u is None: weps_u = np.ones((neps_u, number_of_intervals)) weps_u = np.atleast_2d(weps_u) if weps_u.shape == (number_of_intervals,neps_u): weps_u = weps_u.T if not weps_u.shape == (neps_u, number_of_intervals): raise ValueError( \ "Input error weightings provided by user have wrong dimension.") return weps_u else: return ci.dmatrix(0, 0)