如何使用决策变量作为时间指标?
How to use a decision variable as a time index?
我正在编写一个数学程序,想让求解器选择最佳时间在两个模拟阶段之间切换。在那个特定的时间,我正在为一个模型实例的状态编写一个约束,使其等于第二个模型实例的状态。
我正在努力实现类似的目标:
t_switch = prog.NewContinuousVariables(1, name="t_switch")
prog.AddConstraint(eq(q_A[t_switch[0],0], q_B[t_switch[0],0]))
但是这个 returns 一个 IndexError 因为 t_switch 是 pydrake 类型 symbolic.Variable,但是我需要使用一个整数作为索引。
关于如何使用符号变量作为另一个约束中的索引,或者解决这个问题的替代方法有什么想法吗?
我不建议将时间指数作为决策变量;相反,您始终可以固定轨迹以在特定时间索引处切换,但将持续时间设置为决策变量。这允许您更改每个阶段的总时间。
我正在编写一个数学程序,想让求解器选择最佳时间在两个模拟阶段之间切换。在那个特定的时间,我正在为一个模型实例的状态编写一个约束,使其等于第二个模型实例的状态。
我正在努力实现类似的目标:
t_switch = prog.NewContinuousVariables(1, name="t_switch")
prog.AddConstraint(eq(q_A[t_switch[0],0], q_B[t_switch[0],0]))
但是这个 returns 一个 IndexError 因为 t_switch 是 pydrake 类型 symbolic.Variable,但是我需要使用一个整数作为索引。
关于如何使用符号变量作为另一个约束中的索引,或者解决这个问题的替代方法有什么想法吗?
我不建议将时间指数作为决策变量;相反,您始终可以固定轨迹以在特定时间索引处切换,但将持续时间设置为决策变量。这允许您更改每个阶段的总时间。