码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Riccati 方程求解


    黎卡提(Riccati)方程一般没有初等解法,但是很多实际问题与理论问题又迫切需要求得这个方程的解,这也使得这一方程成为世界著名难题。

    黎卡提方程自从十七世纪黎卡提提出以来,历经三百多年一直未有一般解法,虽然有众多特例解法,但是都未能从根本上解决这个方程。

    Riccati方程是形式如:

    的常微分方程

     

    求解离散黎卡提矩阵代数方程 - 百度文库https://wenku.baidu.com/view/d2ae9c195427a5e9856a561252d380eb63942358.html求解离散黎卡提矩阵代数方程_Micozzc_lyy的博客-CSDN博客_代数黎卡提方程离散代数黎卡提方程求解1. 黎卡提方程在LQR最优控制中,有连续时间最优控制,即LQR,也有离散时间最优控制DLQR,则在求解中一定会遇到解连续时间黎卡提方程和离散时间黎卡提方程的问题,本文主要针对离散时间黎卡提方程进行求解。给定一个系统,如下所示:x(k+1)=Ax(k)+Bu(k)x(k+1) = Ax(k)+Bu(k)x(k+1)=Ax(k)+Bu(k)性能指标:J(u)=∑n=...https://blog.csdn.net/weixin_43822768/article/details/90718745

    离散代数黎卡提方程求解

    1. 黎卡提方程

    在LQR最优控制中,有连续时间最优控制,即LQR,也有离散时间最优控制DLQR,则在求解中一定会遇到解连续时间黎卡提方程和离散时间黎卡提方程的问题,本文主要针对离散时间黎卡提方程进行求解。
    给定一个系统,如下所示:

    求解上述黎卡提方程有两种方法,一种是不变子空间法,另外一种是迭代法求解。 

    1. %======求解黎卡提方程==========%
    2. clear all;clc;close all;
    3. A = [0.8 0.3;-0.6 0];
    4. B = [1 0.3;0 1.4];
    5. L = [2 0.5;1 0.3];
    6. Q = [7 1;1 3];
    7. R = [3 1;1 2];
    8. [Kr,Pr]=dlqr(A,B,Q,R,L); % 标准库求解
    9. err = 10^(-15);
    10. error = 10;
    11. Pe = Q - L*inv(R)*L';
    12. X = Q - L*inv(R)*L';
    13. % X = (A - B*inv(R)*L')'*inv(B*inv(R)*B')*(A-B*inv(R)*L') +Q - L*inv(R)*L';
    14. Last_Pe = Pe;
    15. i = 1;
    16. while (error>=err)
    17. Pe = (A-B*inv(R)*L')'*inv(Last_Pe + B*inv(R)*B')*(A-B*inv(R)*L') +Q - L*inv(R)*L';
    18. error = norm((Pe-Last_Pe),'Inf');
    19. Last_Pe = Pe;
    20. i = i +1;
    21. end
    22. Ke = inv(R+B'*Pe*B)*B'*Pe*A;
    1. [X,L,G] = care(A,B,Q)
    2. [X,L,G] = care(A,B,Q,R,S,E)
    3. [X,L,G,report] = care(A,B,Q,...)
    4. [X1,X2,D,L] = care(A,B,Q,...,'factor')

     

    1. a = [-3 2;1 1]
    2. b = [0 ; 1]
    3. c = [1 -1]
    4. r = 3
    5. [x,l,g] = care(a,b,c'*c,r)

     

    P = lyap(A', Q)

    [P,l,g] = care(A, B, Q, R)

    ————————————————————————————

    代数黎卡提方程通常会在求解最优控制时有所应用,比如LQR控制。

    标准形式有以下两种:

    1.连续代数黎卡提方程:

    2.离散代数黎卡提方程:

    其中P是未知量,A、B、Q、R为已知量。

    离散代数黎卡提方程可以迭代求解。

    matlab代码如下:

    1. A = [0.8 0.3;-0.6 0];
    2. B = [1 0.3;0 1.4];
    3. Q = [7 1;1 3];
    4. R = [3 1;1 2];
    5. %连续黎卡提方程
    6. P=care(A,B,Q,R)
    7. Re = A'*P + P*A - P*B*inv(R)*B'*P + Q
    8. %离散黎卡提方程
    9. P=dare(A,B,Q,R)
    10. Re = A'*P*A - (A'*P*B)*inv(R+B'*P*B)*(B'*P*A) + Q - P
    11. %迭代解离散黎卡提方程
    12. P = Q;
    13. e=1;
    14. while (e >= 1e-10)
    15. Pe = Q + A'*P*A - A'*P*B*inv(R+B'*P*B)*(B'*P*A);
    16. e = norm(Pe-P);
    17. P = Pe;
    18. end
    19. P
    20. Re = A'*P*A - (A'*P*B)*inv(R+B'*P*B)*(B'*P*A) + Q - P

    1. 离散时间最优控制问题:
    2. [X,L,G]=dare(A,B,Q,R), 其中A,B为系统的状态方程,Q,R为性能指标函数对应的非负定对称矩阵。
    3. X:Riccati方程的解,即J = x’Px
    4. L: 特征值
    5. G:状态反馈矩阵
    6. 连续时间最优控制问题:
    7. [X,L,G]=care(A,B,Q,R),同上;
    8. 二次型最优控制问题(取状态变量和控制变量的二次型函数的积分作为性能指标函数):
    9. [K,P,r] = lqr(A,B,Q,R),其中K为状态反馈矩阵;P为Riccati方程的解;r为特征值
    10. 在某种Q,R的条件下lqr与care等价。

    riccati-equation · GitHub Topics · GitHubGitHub is where people build software. More than 83 million people use GitHub to discover, fork, and contribute to over 200 million projects.https://github.com/topics/riccati-equation

    <
  • 相关阅读:
    redis可视化工具安装打开提示msvcp140.dll丢失和vcruntime140.dll找不到的解决方法,附带文件
    数据结构——时间复杂度的计算
    六 R语言barplot条形图之带误差棒的对称条形图及相关性分析结果分布
    一起探索云服务之云数据库
    贯标企业注意了!申报两化融合需要具备这八个条件!
    【王道计算机组成原理】第四章 指令系统
    javascript创建cookie
    算法:(一)整数
    浅浅的 Cmake
    计算机毕业设计springboot技术安家租房平台系统设计与实现7i2eb源码+系统+程序+lw文档+部署
  • 原文地址:https://blog.csdn.net/weixin_51367832/article/details/126952955
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号