真正接触控制一个多月,现记录自己的误区,以警示自己:

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作用于系统的思想。

茅塞顿开的感觉真棒,有人带的感觉真好,感谢王工,希望有一天自己也可以独当一面!!!加油

最新文章

  1. [LeetCode] Intersection of Two Linked Lists 求两个链表的交点
  2. ES6 对象增强和结构赋值
  3. javaweb -- 获取请求IP(附实现源码)
  4. Codeforces 607B Zuma(区间DP)
  5. java 13-1 数组高级二分查找
  6. logback日志项目使用方法 - 150205交易模块添加日志信息logback,orderNo订单号为log主键便于跟踪,数字常量化,解决取消支付BUG,弱网络环境原因
  7. Linux kernel API的查看
  8. CDN云主机与传统虚拟主机功能对比
  9. Fiddler 教程(转)
  10. IT忍者神龟之使用 PowerDesigner
  11. OpenGL与vs编程——error C2440: “glMaterialfv”: 无法从“GLfloat”转换为“const GLfloat *”
  12. Alamofire源码解读系列(四)之参数编码(ParameterEncoding)
  13. Android 5.0及以上版本使用webview不能存储第三方Cookies解决方案
  14. 【翻译】FreeMarker——入门
  15. Python一切皆对象
  16. [BZOJ 1058][ZJOI 2007]报表统计 平衡树+线段树
  17. RDIFramework.NET V3.3 Web版新增报表管理功能模块-重量级实用功能
  18. Thread.join(), CountDownLatch、CyclicBarrier和 Semaphore区别,联系及应用
  19. MySQL的4种事务隔离级别
  20. Expected one result (or null) to be returned by selectOne(), but found: 3

热门文章

  1. Kubernetes笔记(四):详解Namespace与资源限制ResourceQuota,LimitRange
  2. 使用Mac的Remote Desktop Manager连接ubuntu16.04 & Win10的远程桌面
  3. Java实现第八届蓝桥杯杨辉三角
  4. PAT 说反话
  5. PAT 组个最小数
  6. 【Spring注解驱动开发】自定义TypeFilter指定@ComponentScan注解的过滤规则
  7. 自己动手实现深度学习框架-7 RNN层--GRU, LSTM
  8. 2020/06/06 JavaScript高级程序设计 面向对象的程序设计
  9. 【Jmeter】分布式压测环境配置
  10. 关于Integer类的值使用==比较