MPC控制初长成——我陷过的误区
真正接触控制一个多月,现记录自己的误区,以警示自己:
1 . 离散与连续
我经常会拿到连续的系统,用离散的方式去控制,然后反复找原因,还是找不到。要记住:离散和连续要分开!!!,网上的例子大都是连续的!!!
重复一下之前的笔记:
装载系统:sys = ss(A,B,C,D)
转化为离散:sysd = c2d(sys,0.1) 0.1为采样时间
方便调用:Ad = sysd.A Bd = sysd.B
调用内置函数求解Kd和P_lqr:
[Kd, P_lqr] = dlqr(Ad, Bd, Q, R) Q,R连续与离散通用,求解K值得P与MPC的H矩阵最后项的P是同一个P
(之前将连续和离散混在一起了,导致系统根本不稳定或是阶跃感太强,总之出现的样子你无法理解就想想是不是离散和连续搞混了)
2 . MPC的思想
误区,由X0计算出的一系列矩阵,最终得到的Z(包含u和x序列),错将此作为仿真输出;
事实上:误区中我们得到Z序列,而我们需要的也仅是第一项u,其他的没用,用此u控制系统,得到新的X1,新的X1当作X0
更新Beq,重新计算Z序列,得到的u继续控制系统,会得到X2,X2当作X0代入…………,X0,X1,X3,……XN才是我们需要的仿真值,在carsim中,车辆模型代替了系统,得到的X仍用于更新Beq,实车控制时,需要周期采集X来更新Beq,总之要有u作用于系统的思想。
茅塞顿开的感觉真棒,有人带的感觉真好,感谢王工,希望有一天自己也可以独当一面!!!加油
MPC控制初长成——我陷过的误区的更多相关文章
- Java:那些把自己陷进去的误区(一)
		那些把自己陷进去的误区 1.1数据类型 1.整型: 1.在Java中,整形的范围为-2147 483 648—2147483647,并且这个范围与运行Java代码的机器无关,此举大大解决了移植问题 ... 
- 【原创】ligerGrid使用初长成
		第一步:下载ligerUI ,官网: http://www.ligerui.com/ 里边有详细的API.demo等信息,选择需要的版本下载. 第二步:解压缩,得到ligerUI文件夹,里边包含js ... 
- 【文献07】基于MPC的WMR点镇定-极坐标系下和轨迹跟踪
		参考: Kuhne F , Lages W , Silva J D . Point stabilization of mobile robots with nonlinear model predic ... 
- 开发者说 | Apollo控制算法之汽车动力学模型和LQR控制
		参考:https://mp.weixin.qq.com/s?__biz=MzI1NjkxOTMyNQ==&mid=2247486444&idx=1&sn=6538bf1fa74 ... 
- MPC算法
		MPC算法 一. 引言 在工程技术方面,MPC全称可指Model Predictive Control模型预测控制(又称RHC, Receding Horizon ). 模型预测控制算法 一种 ... 
- CSS 发明者 Håkon Wium Lie 访谈--csdn zhangxin09
		原文地址:https://dev.opera.com/articles/css-twenty-years-hakon/ ---------------------------------------- ... 
- 晋城6397.7539(薇)xiaojie:晋城哪里有xiaomei
		晋城哪里有小姐服务大保健[微信:6397.7539倩儿小妹[晋城叫小姐服务√o服务微信:6397.7539倩儿小妹[晋城叫小姐服务][十微信:6397.7539倩儿小妹][晋城叫小姐包夜服务][十微信 ... 
- 推荐一个基于Dapr的 Red Dog 的完整微服务应用程序
		微服务尽管构建起来非常困难,但它们已成为一种越来越流行的架构模式.随着开发人员开始将他们现有的单体代码库迁移到微服务系统,他们花费大量时间来处理分布式应用程序带来的固有挑战,例如状态管理和服务调用.通 ... 
- “胡”说IC——菜鸟工程师完美进阶
		“胡”说IC——菜鸟工程师完美进阶(数十位行业精英故事分享,顶级猎头十多年来经验总结,对将入或初入IC电子业“菜鸟”职业发展.规划的解惑和点拨.) 胡运旺 编著 ISBN 978-7-121-22 ... 
随机推荐
- 使用turtle库绘制奥运五环
			import turtle as t t.setup(600,600,50,50) t.pensize(3) t.pencolor("red") t.penup() t.pendo ... 
- SQL server 常用的数据库  DDL语言
			use (数据库名) //切换到目标数据库 if exists (select * from sysdatabases where name='数据库名') //如果括号里面是查看有没有这个数据库 d ... 
- java实现第七届蓝桥杯七星填数
			七星填数 如图[图1.png]所示. 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏. 要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字. 请计算其它位置要填充的数字,答案唯 ... 
- Linux 系统资源查看
			vmstat监控系统资源 vm [刷新延时 刷新次数],vmstat 1 3 dmesg查看开机时内核检测信息 dmesg | grep CPU free命令查看内存使用状态 查看cpu信息:cat ... 
- 密码学DAY1_02
			目录 1.1 ASCII编码 1.2 凯撒加密 1.2.1 中国古代加密 1.2.2 外国加密 1.2.3 凯撒位移加密--JAVA代码实现 1.2.4 频度分析法破解恺撒加密 1.3现代常用的加密方 ... 
- python—面向对象设计
			一:三大编程范式 1.面向过程编程 2.函数式编程 3.面向对象编程 (类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念) (对象:就是基于类而创建的一个具体的事物 [具体存在的] ... 
- nginx功能介绍和基本安装
			一.简介 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外ngi ... 
- 嵌入式Linux内核开发工程师必须掌握的三十道题
			如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师. 1. Linux中主要有哪几种内核锁?(进程同步与互斥) (1)自旋锁:非睡眠锁 (2)信号量: ... 
- 【Spring注解驱动开发】使用@Scope注解设置组件的作用域
			写在前面 Spring容器中的组件默认是单例的,在Spring启动时就会实例化并初始化这些对象,将其放到Spring容器中,之后,每次获取对象时,直接从Spring容器中获取,而不再创建对象.如果每次 ... 
- 5、vue的传值
			1-父组件向子组件 -父组件向孙子组件传值(属性传值) //父组件<template> <div id='app'> <headera v-bind:hea=" ... 
