当前位置: 首页 > news >正文

LQR算法核心思想

本章以倒立摆为解决目的

什么是线性二次型控制器(LQR)

开环系统

状态变量的倒数 = 系统的状态空间矩阵A * 系统状态变量x

A状态矩阵:描述系统本身物理特性的一个矩阵,它是由系统本身的机械结构、物理结构决定的,无法改变。

系统状态变量x:用四个变量描述了倒立摆整个系统的运动状态

闭环系统:

B状态矩阵也是由系统本身的物理特性决定的。

u就是反馈项,u = - kx

由于这个式子

整个闭环算法中最重要的就是求出最佳的K,来使得系统稳定。

如何求最优K是核心问题,LQR实际上提供了求解最优K的方法

通过代价函数来求K

可以看到里面还有Q和R,这两个与系统的收敛有关。

Q是系统状态变量的权重,也叫权重矩阵

根据这个来看,比如Q11就是倒立摆角度的权重,Q22就是角速度的权重,Q33就是飞轮角度的权重、Q44就是飞轮角速度的权重。

如果希望道理摆角度收敛的更快(更快稳定),可以给Q11的权重增加

R的话,可以理解为决定系统输出量大小的项。一般而言R都设为1,不去改变它。

结合这两个式子

R越大,u的输出越小;R越小,u的输出越大。

一句话,要想求出K,就需要A矩阵、B矩阵、Q矩阵、R矩阵(一般为1)

其实只需要三个

A矩阵和B矩阵得通过建模得到!!!

物理建模 --- 建立动力学模型(为了A矩阵和B矩阵

这个是动量轮动力摆系统,可以用牛顿第二定律来分析力,但是我们用更常用的求法

利用拉格朗日方程:

因为拉格朗日方程不需要列出系统具体的力是怎样平衡的

它只需要列出系统的动能减去势能得到算子,然后争对这个算子对系统不同的广义坐标求偏导,最后得到系统的广义力

通过图可分析:

这个θ是摆杆的摆角

这个φ是动量轮自身的转动角度

有两个广义坐标就可以列出两个拉格朗日方程

这个是θ的导数,偏导。同理φ。

我们开始详细讲

MATLAB

求A、B矩阵

可以看到Q阵把第三项的权重设小

最后求出K,

由于是通过电压来控制电机的力矩,电压总不可能去到300多,所以应该适当缩放

从结果也能看出第三项小到可以忽略不计。 

 

看最核心的代码:

 

相关文章:

LQR算法核心思想

本章以倒立摆为解决目的 什么是线性二次型控制器(LQR) 开环系统 即状态变量的倒数 系统的状态空间矩阵A * 系统状态变量x A状态矩阵:描述系统本身物理特性的一个矩阵,它是由系统本身的机械结构、物理结构决定的,无法…...

AI大模型之旅-最强开源文生图工具Stable Diffusion WebUI 教程

1.1克隆 Automatic1111 的 GitHub 仓库 在你想安装 Web UI 的文件夹路径下执行 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui 这将会克隆整个仓库到本地。 这里会默认访问 https://huggingface.co/ 下载 因此需要魔法 1.2 进入仓库目录 cd stable-di…...

WinForm程序嵌入Web网页

文章目录 前言一、三方库或控件的选择测试二、Microsoft Edge WebView2安装、使用步骤1.安装2.使用 前言 由于此项目需要winform客户端嵌入web网页并于JAVA端交互数据,所以研究了一下嵌入web网页这部分,趟了一遍雷,这里做下记录。 一、三方库…...

Redis string类型hash类型

string类型 类型介绍 在Redis中的所有的key都是string类型,而value的类型有多种。 Redis中的字符串是直接按照二进制的方式进行存储的,也就是不会做任何的编码转换,存的是什么,取出来的就是什么。这样一般来说,Redi…...

Solidity智能合约中的异常处理(error、require 和 assert)

Solidity 中的三种抛出异常方法:error、require 和 assert 在 Solidity 开发中,异常处理是确保智能合约安全性和正确性的关键步骤。Solidity 提供了三种主要方法来抛出异常:error、require 和 assert。本文将详细介绍这三种方法的用途、实现方…...

True NAS禁用ipv6

在 TrueNAS Scale 中,禁用 IPv6 的方法如下:12 进入 System->Advanced->Sysctl,设置一个 sysctl 可调整变量 net.ipv6.conf.all.disable_ipv6,值为 1,以完全禁用 IPv6。\...

笔记整理—linux进程部分(2)使用fork创建进程

为什么要创建进程,首先每个程序的运行都需要一个进程;多进程实现宏观上的并行。 fork的原理,是进程的分裂生长模式。如果操作系统需要一个新的进程,那么就会以cp的方法得到一个新的进程,此时老的进程是父进程&#xff…...

在Python中实现多目标优化问题(6)

在Python中实现多目标优化问题 在Python中实现多目标优化,除了传统的进化算法(如NSGA-II、MOEA/D)和一些基于机器学习的方法外,还有一些新的方法和技术。这些新方法通常结合了最新的研究成果,提供了更高效的解决方案。…...

Java EE中的编码问题及解决方案

Java EE中的编码问题及解决方案 在Java EE开发中,处理字符编码是确保数据正确传输和显示的重要环节。不同的编码不一致会导致乱码,影响用户体验。本文将总结在Java EE中可能遇到的编码问题及其解决方案。 1. 输入数据编码问题 在表单提交时&#xff0c…...

9月27日,每日信息差

第一、中国科学家团队在干细胞治疗领域取得重要突破,通过化学重编程技术成功制备出胰岛细胞,并用于移植治疗一名 1 型糖尿病患者,实现了临床功能性治愈。相关研究成果已发表在国际权威期刊《细胞》上。 第二、交通运输部公路局局长周荣峰在国…...

什么是 Angular 开发中的 Dumb components

Dumb components,在 Angular 开发中也被称为 Presentational components,它们的主要职责是通过展示数据和触发事件,把业务逻辑和 UI 表现分离开来。Dumb components 只通过 Input() 接收数据,Output() 向外发送事件,不…...

Docker 进入容器运行命令的详细指南

Docker 进入容器运行命令的详细指南 Docker 是一个开源的容器化平台,广泛应用于开发和生产环境中。它允许开发者打包应用程序及其依赖项到容器中,并能够在不同的平台上快速部署和运行。容器通常是独立且隔离的,但在开发、调试或维护过程中&a…...

如何禁止非真实用户的ip访问网站服务器

为了禁止非真实用户的IP访问网站服务器,可以采用多种技术手段和策略。以下是一些常用的方法: 1. 使用IP黑名单和白名单 黑名单:定期更新和维护一个IP黑名单,阻止已知的恶意IP地址或数据中心IP访问网站。白名单:对于特…...

探索SpringBoot:学科竞赛管理项目开发

2 相关技术简介 2.1Java技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任…...

ultralytics yolo v8 示例:加载官方模型进行推理

Ultralytics YOLO 是计算机视觉和 ML 领域专业人士的高效工具。 安装 ultralytics 库: pip install ultralytics 实现代码如下: import cv2 from ultralytics import YOLO# 加载预训练的 YOLOv8n 模型 ckpt_dir "./ckpt/" # 模型缓存地址…...

【中间件学习】Nginx快速入门(为了配置一个项目)

-----------------------------本文章借鉴遇见狂神说--------------------------- 一、一个产品出现瓶颈?? 在一个产品刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应该就够…...

鸿蒙harmonyos next flutter通信之MethodChannel获取设备信息

本文将通过MethodChannel获取设备信息,以此来演练MethodChannel用法。 建立channel flutter代码: MethodChannel methodChannel MethodChannel("com.xmg.test"); ohos代码: private channel: MethodChannel | null nullthis.c…...

【笔记】原子结构的近代理论

近代原子结构理论的建立是从氢原子光谱得到启示的。 一、氢原子光谱与波尔理论 1.氢原子光谱 在装有两个电极的真空玻璃管内通入极少量高纯氢气,通高压电使之放电,管中发出的光束通过分光棱镜,得到分立的谱线,称为线状光谱。 发…...

【python】循环中断:break 和 continue

目录: while 循环的基础语法while 循环的基础案例while 循环的嵌套应用while 循环的嵌套案例for 循环的基础语法for 循环的嵌套应用循环中断:break 和 continue综合案例 学习目标: 掌握使用 continue 和 break 关键字控制循环 思考&#…...

WIFI密码默认显示

文章目录 需求分析遇到问题问题原因解决方案 需求 在进入设置,点击某一个wifi,连接wifi 界面,显示密码默认选中状态,效果如下 分析 在 WiFi密码被输入法挡住 中我们已经分析了整个流程,布局文件和控制中心。 结局系统设置WIFI连…...

Emiya 家今天的饭C++

题目: 样例解释: 【样例 1 解释】 由于在这个样例中,对于每组 i,j,Emiya 都最多只会做一道菜,因此我们直接通过给出烹饪方法、主要食材的编号来描述一道菜。 符合要求的方案包括: 做一道用烹饪方法 1、主要…...

Mybatis缓存机制(图文并茂!)

目录 一级缓存 需求我们在一个测试中通过ID两次查询Monster表中的信息。 二级缓存 案例分许(和上述一样的需求) EhCache第三方缓存 在了解缓存机制之前,我们要先了解什么是缓存: ‌缓存是一种高速存储器,用于暂时存储访问频繁的数据&…...

Git 工作区、暂存区和版本库

Git 工作区、暂存区和版本库 Git 是一个强大的版本控制系统,它帮助开发者管理代码历史,协作开发,以及跟踪和合并更改。为了更好地理解 Git 的工作流程,我们需要了解 Git 中的三个核心概念:工作区(Workspac…...

SSH 远程连接到 Linux 服务器上的 SQLite

通过 SSH 远程连接到 Linux 服务器上的 SQLite 数据库文件的流程,可以分为以下几个步骤: 通过 SSH 连接到远程 Linux 服务器。在远程服务器上执行 SQLite 命令行工具,操作数据库文件。在本地使用工具,通过 SSH 隧道间接访问远程的…...

使用ElasticSearch-dump工具进行ES数据迁移、备份

elasticsearch-dump基本使用 该工具基于第三方Elasticdump工具来实现,仓库地址:https://github.com/elasticsearch-dump/elasticsearch-dump/tree/master,用于更加快捷方便的将Elasticsearch不同集群的数据进行索引备份和还原。 一、安装 …...

SpringMVC源码-SpringMVC源码请求执行流程及重点方法doDispatch讲解

一、开始请求 在浏览器访问http://localhost:8080/spring_mymvc/userlist这个接口,是个get请求。 FrameworkServlet类的service方法会被请求到: 调用路径如下: service:945, FrameworkServlet (org.springframework.web.servlet) service:764, HttpSer…...

《深度学习》OpenCV 指纹验证、识别

目录 一、指纹验证 1、什么是指纹验证 2、步骤 1)图像采集 2)图像预处理 3)特征提取 4)特征匹配 5)相似度比较 6)结果输出 二、案例实现 1、完整代码 2、实现结果 调试模式: 三、…...

爬虫入门之爬虫原理以及请求响应

爬虫入门之爬虫原理以及请求响应 爬虫需要用到的库, 叫requests. 在导入requests库之前, 需要安装它, 打开cmd: 输入pip install 库名 pip install requests后面出现successful或requirement already就说明已经下载成功了!!! 下载出现的问题: 1.有报错或者是下载慢 修改镜像…...

CTF ciscn_2019_web_northern_china_day1_web1复现

ciscn_2019_web_northern_china_day1_web1 复现,环境源于CTFTraining 分析 拿到题目扫描,发现没有什么有用资产 扫描过程中注册账号登录,发现上传入口 上传文件,发现下载删除行为,寻找功能点,发现不能访问…...

docker命令汇总

Docker 是一个开源的应用容器引擎,它允许开发者打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 以下是一些常用的 Docker 命令…...

麻涌做网站/免费网站流量

命令名称:cd 命令英文原意:change directory 命令所在路径:shell内置命令 执行用户:所有用户 语法:cd [目录] 功能描述:切换目录 范例:$cd /tmp/Japan/boduo 切换到指定目录 $cd .. 回到上一级目录...

高校二级网站建设方案/推广找客户平台

今天来谈一下华为的防火墙6000v的一个web登录的问题。一般来说图形界面是比较友好的,也好理解。有时候我们可以给网络管理员部分权限,让他用另外一个用户名进行登录。类似于电脑操作系统的用户角色。我们可以新建一个角色,给这个角色分配权限…...

怎样做易支付网站/百度关键词推广2元一天

tap口创建流程 dhcp agent先通过plugin创建dhcp port,plugin返回Port详情,包括port ID,mac地址,IP地址等信息。 然后通过interface driver先ovs-vsctl add-port 创建一个internal的tap口,然后加入到br-int中。然后创…...

网站底部导航菜单/windows优化大师是什么

一、问题描述 多项目启动,tomcat报错内存溢出“PermGen space” 二、原理 tomcat启动的时候出现这种错误一般是项目引用了太多的jar包,或者反射生成了太多的类,或者有太多的常量池,导致非堆内存中永久保存区域不够。这种情况可以…...

网站建设 面试问题/seo搜索引擎优化工资多少钱

sso-shiro-casspring下使用shirocas配置单点登录,多个系统之间的访问,每次只需要登录一次,项目源码系统模块说明cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已doc: 文档目录,里面有…...

没备案的网站/网站推广优化外包公司

linux目录结构CentOS-8 目录结构/bin/存放系统命令的目录,普通用户和超级用户都可以执行。不过放在/bin下的命令在单用户模式下也可以执行/boot/系统启动目录,保存系统启动相关的文件,如内核文件和启动引导程序(grub)文…...