如何在 Python 中创建 Linear/Affine 系统的多项式轨迹?即时变 A 和 B 矩阵
How to create Polynomial Trajectories of Linear/Affine Systems in Python? i.e Time varying A and B Matrices
我正在尝试创建用于 TrajectoryAffineSystem 的线性系统轨迹。但是我无法理解为此所需的 NumPy 数组类型。
对于一个简单的钟摆系统,状态轨迹是一个 2xN NumPy 数组,其中第 1 行是 theta,第 2 行是 theta_dot,第 k 列是时间 t[k] 的状态。这个 NumPy 数组是 clear/easy 创建的。同样,具有一维状态向量的系统也很容易创建。然而,当状态矩阵本身是一个二维矩阵时,这就不是那么清楚了。
对于线性摆系统,A 矩阵是 2x2 矩阵,A[k] 是 t[k] 处的(线性化)状态。那么应该使用哪种类型的 NumPy 数组来表示这个 A[0-N]?是 2x2xN 或 Nx2x2 还是另一种表示可用于创建轨迹对象的时变线性动力学的方式 class?
问题在 google colab here
上重现
您不能将 numpy 数组直接传递给 TrajectoryAffineSystem
构造函数。这些构造函数需要一个轨迹对象,例如 PiecewisePolynomial
see here。 PiecewisePolynomial
上有许多静态方法,例如 FirstOrderHold
,它们将提供从 A 矩阵列表进入轨迹所需的语义。
我正在尝试创建用于 TrajectoryAffineSystem 的线性系统轨迹。但是我无法理解为此所需的 NumPy 数组类型。
对于一个简单的钟摆系统,状态轨迹是一个 2xN NumPy 数组,其中第 1 行是 theta,第 2 行是 theta_dot,第 k 列是时间 t[k] 的状态。这个 NumPy 数组是 clear/easy 创建的。同样,具有一维状态向量的系统也很容易创建。然而,当状态矩阵本身是一个二维矩阵时,这就不是那么清楚了。
对于线性摆系统,A 矩阵是 2x2 矩阵,A[k] 是 t[k] 处的(线性化)状态。那么应该使用哪种类型的 NumPy 数组来表示这个 A[0-N]?是 2x2xN 或 Nx2x2 还是另一种表示可用于创建轨迹对象的时变线性动力学的方式 class?
问题在 google colab here
上重现您不能将 numpy 数组直接传递给 TrajectoryAffineSystem
构造函数。这些构造函数需要一个轨迹对象,例如 PiecewisePolynomial
see here。 PiecewisePolynomial
上有许多静态方法,例如 FirstOrderHold
,它们将提供从 A 矩阵列表进入轨迹所需的语义。