首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drake中的Autodiff wrt时间

Drake中的Autodiff wrt时间
EN

Stack Overflow用户
提问于 2021-06-17 10:55:17
回答 1查看 35关注 0票数 1

在Drake文档https://drake.mit.edu/doxygen_cxx/group__system__scalar__conversion.html中给出的示例中,我们能够获取关于状态的Autodiff导数(特别是本例中的θ)。有没有一种简单的方法来求时间的导数?我现在的想法是将时间附加到get_mutable_continuous_state_vector()的状态向量中,但这似乎有点老生常谈?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-17 19:28:33

您可以将时间变量设置为在导数中具有1。例如。

代码语言:javascript
复制
auto autodiff_plant = System<double>::ToAutoDiffXd(*plant);
auto autodiff_context = autodiff_plant->CreateDefaultContext();
autodiff_context->SetTimeStateAndParametersFrom(*context);
autodiff_plant->FixInputPortsFrom(*plant, *context, autodiff_context.get());
// Differentiate with respect to theta by setting dtheta/dtheta = 1.0.
constexpr int kNumDerivatives = 1;
autodiff_context->SetTime(initializeAutoDiffXd(initial_time));

然后,使用该上下文的计算输出将具有关于时间的导数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68012280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档