线性二次型调节器LQR/LQC算法解析及求解器代码(matlab)
参考链接:http://120.52.51.14/stanford.edu/class/ee363/lectures/dlqr.pdf
本文参考讲义中的第20页PPT,根据Hamilton-Jacobi方法,推导得到黎卡提方程的数值迭代求解方法(可实时在线求解黎卡提方程),具体推导过程请参考PPT。本文列出最后的结论及对应的matlab代码,其他编程语言也可参考贴出的代码自行改编。
对应的matlab代码如下:
%%%参考文献dlqr close all A=[1 1;0 1]; B=[0;1]; C=[1 0]; Q=C'*C; Qf=C'*C; R=10*ones(1,1); [p,L,k] = dare(A,B,Q,R)x0=[100;10]*1e-2; N=20;%每一时间步求解器迭代次数,一般20足够,若不收敛,则适当增大该值P=zeros(2,2,N+1);P(:,:,N+1)=Qf;for t=2:(N+1)tUsed=(N+3-t);P(:,:,tUsed-1)=Q+A'*P(:,:,tUsed)*A-A'*P(:,:,tUsed)*B/(R+B'*P(:,:,tUsed)*B)*B'*P(:,:,tUsed)*A; end s=P(:,:,1)K=zeros(N,2); U=zeros(N,1); X=zeros(N+1,2); X(1,:)=x0; for t=1:NK(t,:)=-(R+B'*P(:,:,t+1)*B)\B'*P(:,:,t+1)*A;U(t,:)=K(t,:)*X(t,:)';X(t+1,:)=(A*X(t,:)'+B*U(t,:))'; end k=K(1,:)figure (30) PlotX=1:N; plot(PlotX,K(:,1),'o-b'); hold on plot(PlotX,K(:,2),'o-r'); title('反馈系数K')figure (40) PlotX=1:N+1; plot(PlotX,X(:,1),'o-b'); hold on plot(PlotX,X(:,2),'o-r'); title('状态X')figure (50) PlotX=1:N; plot(PlotX,U(:,1),'o-b'); title('控制输入U')
转载于:https://www.cnblogs.com/geyanwu/p/10438759.html
线性二次型调节器LQR/LQC算法解析及求解器代码(matlab)相关推荐
- lingo与matlab用哪个?matlab能代替lingo吗?非线性规划求解器Lingo,Matlab使用心得
对于非线性规划,Cplex 与Gurobi只支持二次规划(包括凸规划,二阶锥规划,目标函数或约束条件中可以包含二次函数).若更高次数,或者非凸规划,非二阶锥规划,则需要用其他求解器了.matlab 自 ...
- 基于matlab的捕食算法,【优化求解】基于matlab细菌觅食算法的函数优化分析【含Matlab源码 217期】...
一.简介 实际生活需求促进了最优化方法的发展.近半个多世纪以来,由于传统优化方法的不足,一些具有全局优化性能且通用性强的进化算法,因其高效的优化性能.无需问题精确描述信息等优点,受到各领域广泛的关注和 ...
- 全排列算法解析(视频+详解+代码+STL)
全排列生成算法 刚开始自学的时候搜了两三个scdn中关于讲解全排列问题的博客,但是我理解能力比较差还是没有完全理解 ,后来就在网上搜索了视频才完全弄懂,现在把我理解的分享给你们. 学习视频:http: ...
- CST入门——求解器简介与时域、频域和积分求解器设置
目录 1. 高频电磁仿真求解器简介 1.1. 时域求解器 Time Domain Solver(主) 1.2. 频域求解器 Frequency Domain Solver(主) 1.3. 本征模求解器 ...
- chtMultiRegionFoam求解器及算例分析
1. 算例分析 1.1. 算例结构 算例目录heatTransfer/chtMultiRegionFoam/heatedDuct 0 fluid p p_rgh T U heater T metal ...
- 关于求解微分方程——初学Matlab里的 ODE求解器
学习背景 最近想挖掘一下自己项目的理论深度,于是找到了老师.在老师的建议下,我们开始了漫长的研读老师的论文的旅程(论文名:Optimal Design of Adaptive Robust Contr ...
- 机器学习(优化算法二)——梯度下降-代码实现
上篇博客说的是梯度下降法,主要讲的原理及公式推导,这篇博客来进行代码实现.包括手动模拟梯度下降的方式来进行求解,以及运用自己实现的梯度下降来完成一个线性回归的例子. 模拟梯度下降 求解 这里手动模拟梯 ...
- 【JY】No.7.1力学架构结构力学求解器(SM)使用教程
软件讲解示例之理论(电算/手算)分析思路: 1.结构建模,并完成结构假定,如定义梁端弯矩释放(详见第二章). 2.线性屈曲分析(是否失稳破坏分析): 3.强度/挠度计算:(构件本身强度是否达标) 4. ...
- Simulink求解器综合介绍
目录 1. 概要 2. Simulink求解器 2.1 Simulink仿真过程 2.2 Simulink求解器分类 2.3 Simulink仿真参数设置界面 3. 定步长求解器 fixed step ...
最新文章
- 谈谈我理解的文化包容性
- Docker常用命令(docker快捷键)海康docker命令 LY
- 【ASP.NET Core 沉思录】CreateWebHostBuilder 是一个 Convension
- 苹果:iOS 比 Android 更安全!
- 三探云原生全景图,这次聊聊运行时层
- 程序员30岁之前如何月入五万
- 复数基础——复数的绝对值,复数的极坐标形式的直观解释练习_8
- Python读取Excel文件统计演员参演电影
- Unitest框架的使用(一)准备工作,接口定义和Unittest方法
- C语言中abs()用法及其他绝对值函数
- Linux下ffmpeg批量转换图片
- Photoshop小技巧
- 延时delay1s程序 c语言,汇编语言软件延时1s的实现方法
- qt - the inferior stopped because it received a signal from the operation system.
- Linux-脚本安装、快照、重置虚拟机
- 【日麻雀魂】何切300问 维持最大牌效
- optimizeinplace
- 安装Redhat 7.2
- TryHackMe学习笔记-Windows PrivEsc Arena
- 章鱼体验思杰第二天: