计算机控制算法差分方程,最优控制算法

本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

最优控制算法用以定出最优控制(见最优控制理论)的具体形式的计算方法。

中文名

最优控制算法

提出者

宫锡芳著:《最优控制问题的计算方法》提出时间

1979

应用学科

数学

最优控制算法基本介绍

编辑

语音

极大值原理和动态规划从理论方面研究了最优控制所应遵循的方程和条件,而最优控制算法则是从计算方面来确定最优控制形式的具体方法和步骤(见最优化方法)。从总体上看,最优控制算法可分为间接法和直接法两大类。对于给定的一类控制问题可由最优控制理论导出用以决定最优控制的条件和方程,可用有关的计算方法求出其解,这类方法称为间接法。对难以定出有关最优控制的条件和方程的一类问题,须用数值方法直接求其近似解,这类方法称为直接法。不管是间接法还是直接法,在大多数情况下,都要借助数值求解算法。随着电子计算机技术的发展,用数值方法求解最优控制问题变得越来越有效和广泛,原来不可行的一些算法已逐渐成为可行。

最优控制算法基本评价

编辑

语音

评价最优控制算法的两个主要问题是:①算法的收敛性或数值稳定性,它是保证计算过程能达到正确结果的前提。②算法的计算复杂性,这对实时控制具有特别重要的意义。一个好的算法应使计算量和存储量尽可能小,以便能由尽可能简单的计算机来实现计算。此外,好的算法还应具有较好的数值稳定性,即计算的结果对初始数据和运算过程的误差不过于敏感,以及处理“病态“问题的能力。典型的最优控制算法有:求解由极大值原理导出的微分或差分方程的两点边值问题的各种算法,对动态规划中的贝尔曼方程进行数值求解的算法,求解线性二次型最优控制问题的黎卡提方程的各种算法,处理控制或状态受约束问题的罚函数法,在控制策略的函数空间中利用搜索寻优或梯度寻优技术和牛顿-拉夫森方法等直接求解非线性系统最优控制问题的算法等。其中,非线性系统的开环最优控制问题和线性二次型最优控制问题的算法应用尤多。

最优控制算法部分内容介绍

编辑

语音

非线性系统的开环最优控制算法  这类控制问题的提法是,在非线性系统的状态方程

夶=f(x,u,t),x(t0)=x0, t0≤t≤tf (1)

的约束下,寻找一个控制u(t)使性能指标泛函

(2)

为最小。这里u为m维控制向量函数,x为n维状态向量函数,f为n维向量函数,t0是起始时间,tf为终止时间。性能指标泛函中第一项积分表示与控制过程有关的指标,而第二项K则表示仅与终态和终止时间有关的指标。

对x和u的变化范围不加限制的情形,可把非线性规划中的共轭梯度法、变尺度法等推广来求解上面给出的问题。其关键在于计算泛函J(u)对于u的梯度墷J(u):

(3)

式中

H(x,u,λ,t)=L(x,u,t)+λTf(x,u,t)  (4)

是哈密顿函数。这里上标T表示转置,而λ是n维伴随向量,它满足方程

(5)

用共轭梯度法求解上述问题的算法为

① 任选一个初始控制u0,且令i=0。

② 用ui从t0到tf求积状态方程(1),得到xi(t),后再用ui和xi从tf到t0反向求积伴随方程(5)以得到λi(t)。再利用ui、xi和λi计算。

③ 令 gi=H

hi=gi+βi-1hi-1

其中βi-1=/,h0=g0,而符号表示=(xT(t)y(t))dt即两个向量(此例中为x和y)的内积。

④ 若gi=0,停止;否则进行⑤。

⑤ 用一维搜索法求出μi>0使

J(ui+μihi)=【J(ui+μhi)|μ>0】

⑥ 在ui+1=ui+μihi中,令i改为i+1,回到②,重复进行各步。

线性二次型问题的闭环最优控制算法  这类控制问题的数学提法是,在线性状态方程

x=Ax+Bu

的约束下,求控制u(t)使二次型性能指标泛函

J(u)=(xTQx+uTRu)dt

为最小。这里,Q是半正定对称矩阵,R是正定对称矩阵。这个问题的最优控制解的表达式为

u*=-R-1BTPx

其中对称正定矩阵P满足黎卡提代数矩阵方程

ATP+PA-PBR-1BTP+Q=0

在这类最优控制问题的算法中,关键是求解矩阵P,常用的算法有四种。

① 微分方程法。反向解矩阵黎卡提微分方程

妛+ATP+PA-PBR-1BTP+Q=0, P(tf)=0

其中,则其稳态解即为所求的黎卡提代数矩阵方程的解阵。

② 哈密顿矩阵方法。构造哈密顿矩阵此矩阵的特征值必定不包含纯虚数,且若λ是特征值,则-λ也是特征值。 找到变换阵使得S-1HS=其中 Λ是形如的矩阵的直和,且所有的λi均大于零,则P=S21S。式中S表示S11的逆矩阵。

这种算法的另一种形式是先定出哈密顿矩阵 H的特征值,并以具有负实部的所有特征值为零点来组成多项式F(s)。将用H代替s后得到的矩阵多项式F(H)写成分块形,则P=F21F。

这种算法的又一种形式是找到一个正交矩阵使得,其中S11的所有特征值均具负实部,而s22的所有特征值均具正实部,则P=U21U。

③ 迭代解法。将黎卡提代数方程改写为迭代形式

(A-sPi)TPi+1+Pi+1(A-sPi)=-Q-PisPi

其中s=BR-1BT,i=0,1,…。当选择P0使矩阵A0=A-sP0的特征值均具负实部时,此迭代方程所确定的矩阵序列P0、P1、…是单调收敛的其极限矩阵即是黎卡提代数矩阵方程的对称正定解。

④ 符号函数方法。哈密顿矩阵H的符号函数规定为这里H0=H,Hi+1=αiHi+(1-αi)H抶。α∈(0,1)称为加速系数,通常将其取为由SH构成矩阵则 参考书目

宫锡芳著:《最优控制问题的计算方法》,科学出版社,北京,1979。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用有限差分法和优化算法求解抛物型方程最优控制问题的 MATLAB 示例: ```matlab % 定义抛物型方程模型和最优控制问题 % ∂u/∂t = α(∂²u/∂x²) + f(x, t, u, ∇u) % 目标是最小化性能指标 J = ∫[0,T]∫[0,L] (u - u_d)^2 dx dt % 在给定边界条件和初始条件下,找到最优控制函数 u(x, t) % 系统参数 alpha = 1.0; % 扩散系数 L = 1.0; % 空间区域长度 T = 1.0; % 时间总长度 % 离散化参数 Nx = 100; % 空间网格数 Nt = 100; % 时间步数 dx = L / Nx; % 空间步长 dt = T / Nt; % 时间步长 % 初始化网格和初始条件 x = linspace(0, L, Nx+1); % 空间网格点 t = linspace(0, T, Nt+1); % 时间网格点 u = zeros(Nx+1, Nt+1); % 网格上的数值解 u(:, 1) = sin(pi * x); % 初始条件 % 目标控制函数 ud = sin(pi * x); % 目标控制函数 % 优化算法参数 max_iter = 100; % 最大迭代次数 tol = 1e-6; % 收敛容差 % 优化算法迭代 for iter = 1:max_iter % 求解偏微分方程并计算性能指标 for j = 1:Nt for i = 2:Nx u(i, j+1) = u(i, j) + alpha * dt/dx^2 * (u(i+1, j) - 2*u(i, j) + u(i-1, j)); end end % 计算性能指标 J = sum(sum((u - ud).^2)) * dx * dt; % 计算控制函数的梯度 grad_J = 2 * (u - ud) * dx * dt; % 更新控制函数 u = u - grad_J; % 判断收敛条件 if norm(grad_J, 'fro') < tol break; end end % 绘制最终数值解和目标控制函数 figure; subplot(2, 1, 1); plot(x, u(:, end), 'b-', x, ud, 'r--'); xlabel('x'); ylabel('u'); legend('Numerical solution', 'Target control'); title('Optimal control'); subplot(2, 1, 2); plot(t, u(ceil(Nx/2), :), 'b-'); xlabel('t'); ylabel('u'); title('Evolution of u at x=L/2'); ``` 该示例使用有限差分法和梯度下降算法来求解抛物型方程最优控制问题。通过迭代求解偏微分方程并计算性能指标,然后计算控制函数的梯度,并使用梯度下降法更新控制函数,直到达到收敛条件为止。最后,绘制最终的数值解和目标控制函数。 请注意,这只是一个简单的示例,实际求解复杂的抛物型方程最优控制问题可能需要更高级的数值方法和优化算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值