如何解决运动定律取决于状态向量的某些函数的最优控制问题?


11

状态向量x(t)和控制向量y(t)的典型最优控制问题可以表示为:

maxx(t),y(t)0t1f(t,x(t),y(t))dt

服从x(t)=g(t,x(t),y(t))x的边界条件x

我想解决一个看起来非常相似的问题,但是控件的运动定律是:

x(t)=g(t,x(t),y(t),z(x(t)))

在这里,需要选择z(.)。但是它的论点是国家。

我什至不知道从哪里开始寻找解决方案。我该如何解决这个问题?


1
我想写它是正确的方式
x(t)=g(t,x(t),y(t),z(x(t))
我将修正原来的问题。
丹尼尔遗嘱

欢迎来到engineering.SE,+ 1是一个很好的第一个问题。
克里斯·穆勒

您是在寻找封闭式或正式的解决方案,还是在询问实用的优化方法?在前一种情况下,您应该在math.stackexchange.com之类的网站上提问。在后一种情况下,有一系列专门用于实践优化的学科。无论哪种情况,您都需要提供更多详细信息以获得真实的答案。
footwet 2015年

我正在寻找实际的优化。更多详细信息:控制变量的子集取决于(我称),而控制变量的子集取决于(我称)。另外,我需要选择函数。最大化受到限制 因此一种直观的解决方法是:-猜测 -解决(现在是标准的)最优控制问题(给定)-检查,如果不是,则猜测另一个 但您看到没有理由算法会收敛。人们如何解决这个问题?tyxzx(t)
h(z(x(t)),y(t))=0
x(t)x(t)h(z(x(t)),y(t))=0x(t)
丹尼尔·威尔斯

Answers:


3

为什么需要在?zg

g(t,x(t),y(t))=g(t,x(t),y(t),z(x(t)))

现在使用作为gg

g可以是任意函数,因此任何函数都可以合并到。zg

关于您的限制在评论部分中提到。对控制输入的任何限制都可以通过cost函数强制执行:h

fnew(t,x(t),y(t))=fold(t,x(t),y(t))Ch(x(t),y(t))2

其中足够大,以保证值足够接近零,但又不大到数值误差将主导原始。Chhf


1

您可以将问题离散化为个点,从而只需确定有限数量的参数(假设和在某种程度上是连续函数)。对于导数和积分,可以使用Euler方法,可以使用更高阶的方法,但会使问题更难解决。Nfg

重新制定为:

h=t1N1,x=[x1,x2,,xN],y=[y1,y2,,yN],

maxx,yn=1N1f(h(n1),xn,yn)hs.t.xn+1=xn+g(h(n1),xn,yn)h,n=1,2,,N1

您还必须将边界约束添加到优化问题的等式约束中。您可以使用多种不同的方法来解决此问题,例如,如果可以访问Matlab,则可以使用fmincon,它可以最小化成本函数,该成本函数可以通过在总和前添加减号来固定。通常,您还必须提供初始猜测,这也可能会影响解决方案,因为不同的猜测可能会收敛到不同的局部最大值。通过增加您将获得越来越准确的解决方案,但可能需要更长的时间才能解决。如果您使用具有较少点的问题的解决方案并对其进行插值,然后将其用作更多点的问题的初步猜测,则收敛速度可能会更快。N

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.