MPC控制初长成——我陷过的误区
2024-08-23 21:23:40
真正接触控制一个多月,现记录自己的误区,以警示自己:
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作用于系统的思想。
茅塞顿开的感觉真棒,有人带的感觉真好,感谢王工,希望有一天自己也可以独当一面!!!加油
最新文章
- [LeetCode] Intersection of Two Linked Lists 求两个链表的交点
- ES6 对象增强和结构赋值
- javaweb -- 获取请求IP(附实现源码)
- Codeforces 607B Zuma(区间DP)
- java 13-1 数组高级二分查找
- logback日志项目使用方法 - 150205交易模块添加日志信息logback,orderNo订单号为log主键便于跟踪,数字常量化,解决取消支付BUG,弱网络环境原因
- Linux kernel API的查看
- CDN云主机与传统虚拟主机功能对比
- Fiddler 教程(转)
- IT忍者神龟之使用 PowerDesigner
- OpenGL与vs编程——error C2440: “glMaterialfv”: 无法从“GLfloat”转换为“const GLfloat *”
- Alamofire源码解读系列(四)之参数编码(ParameterEncoding)
- Android 5.0及以上版本使用webview不能存储第三方Cookies解决方案
- 【翻译】FreeMarker——入门
- Python一切皆对象
- [BZOJ 1058][ZJOI 2007]报表统计 平衡树+线段树
- RDIFramework.NET V3.3 Web版新增报表管理功能模块-重量级实用功能
- Thread.join(), CountDownLatch、CyclicBarrier和 Semaphore区别,联系及应用
- MySQL的4种事务隔离级别
- Expected one result (or null) to be returned by selectOne(), but found: 3
热门文章
- Kubernetes笔记(四):详解Namespace与资源限制ResourceQuota,LimitRange
- 使用Mac的Remote Desktop Manager连接ubuntu16.04 &; Win10的远程桌面
- Java实现第八届蓝桥杯杨辉三角
- PAT 说反话
- PAT 组个最小数
- 【Spring注解驱动开发】自定义TypeFilter指定@ComponentScan注解的过滤规则
- 自己动手实现深度学习框架-7 RNN层--GRU, LSTM
- 2020/06/06 JavaScript高级程序设计 面向对象的程序设计
- 【Jmeter】分布式压测环境配置
- 关于Integer类的值使用==比较