1 什么是迭代学习控制

迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。

迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐步改进下一次控制输入,以使控制效果越来越好。迭代学习控制仅需要较少的先验知识,对于处理模型未知且具有重复运动性质的系统,是一种行之有效的控制策略。

ILC控制适应于运行过程能够不断地重复的系统。 通常用于跟踪某一特定目标,且跟踪目标往往保持不变。(是不是非常类似于重复控制?)。ILC控制方式是一种智能控制方式,它能够通过不断迭代次数的增加不断学习进化,从而适配到最优的控制方式。ILC可以不需要关心系统的精确控制模型,只是以非常简单的控制方式就可以实现精度非常高的控制性能。

考虑重复运行的动力学系统模型如下:

迭代学习的控制律用最简单的表述方式就是:

解释一下这几个变量的意义:

  —— 第k+1次控制时的控制器在t时刻的输出

     ——  第k次控制时控制器在t时刻的输出

      —— 第k次控制时参考输出和实际输出的误差

这里L算式可以是任意算法。常用的是P算法、PD算法或PID算法。按照误差更新方式又分为开环迭代和闭环迭代。

开环PD迭代控制律的用数学方程表示为:

闭环PD迭代控制率的数学方程表示为:

2 迭代学习控制实例

考虑一个二阶系统,其连续传递函数表述为:

当采样周期Ts=0.001时,其离散化传递函数为:

现在假设输入信号为幅值为4的10Hz正弦波,要让系统跟踪这个正弦波,采用开环PD迭代学习控制律。

3  Simulink建模

建立的Simulink系统模型如图:

这里Sine Wave是输入参考信号。Y为保存到工作空间的系统输出。uk为从Matlab的工作空间读取的上次迭代控制量。U为保存到工作空间的本次迭代控制输出量,故有关系式:

Chart为Stateflow模块,里面实现了系统建模与PD迭代控制律。Chart内部流程图如图:

Matlab中建立一个m文件来控制模型的仿真:

clc;
clear all;
T=1;%和SIMULINK中相同
Ts=0.001;
t=0:0.001:1;%采样时间和仿真时间可修改,但是要注意SIMULINK的也要修改
 for k=1:1:1001
   ud(k)=4*sin(2*pi*10*Ts*k);
   uinit(k)=0;
 end  
 uk=[t',uinit'];
for i=1:10        
    sim('ILC_stateflow');
    uk=[t',U];
    figure(i);
    plot(t,ud','r',t,Y,'b');
end

这里设置仿真次数为10次,每一次都画出参考和输出的对照图。

运行M文件查看仿真结果:

第一次迭代

运行:

第3次迭代:

第10次迭代:

可见仿真结果非常不错,基本实现了对输入的无静差跟踪。仿真模型已上传CSDN,在我的资源中有下载。资源下载链接:

https://download.csdn.net/download/liuzhijun301/11561528

迭代学习控制方式Simulink建模与仿真相关推荐

  1. 无模型自适应迭代学习控制原理和matlab代码仿真学习记录

    无模型自适应ILC原理及代码实现 这里学习的是很老的一篇论文<基于无模型自适应控制的反馈-前馈迭代学习控制系统收敛性研究>,作者是晏静文和侯忠生,大家有兴趣可以找来看看.这里主要介绍的无模 ...

  2. 永磁同步电机PMSM启动Simulink建模与仿真

    永磁同步电机PMSM启动Simulink建模与仿真 学习完PMSM的基本原理之后,再根据具体的连接原则设计simulink仿真模型:主要包括一个产生三相正弦波的产生源,再两两相加减,再经过两个受控电压 ...

  3. 高阶无模型自适应迭代学习控制学习记录

    高阶无模型自适应迭代学习控制 参考文献 "High-Order Model-Free Adaptive Iterative Learning Control of Pneumatic Art ...

  4. 【更新中…】Matlab simulink建模与仿真

    本文为学习笔记,视频来源:https://www.bilibili.com/video/BV1L7411a7uL Matlab simulink建模与仿真 1 初始simulink 1.1 simul ...

  5. FXLMS主动降噪的simulink建模与仿真

    ** ** FXLMS主动降噪的Simulink建模与仿真 ** ** 最近在研究关于主动降噪的课题,在摸索学习的过程中,分享一些初步学到的知识. **FXLMS算法是基于LMS算法在次级通道补偿方向 ...

  6. 转载:深入研究simulink建模与仿真之输入端口模块(Inport)的几种不同的图标

    深入研究simulink建模与仿真之输入端口模块(Inport)的几种不同的图标 版权 在临摹学习时,经常会看到demo中的Inport模块有多种不同的形式,现总结一下. 默认图标 从Ports &a ...

  7. m基于PID控制器的电动车充放电系统的simulink建模与仿真

    目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件 1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 随着全球经济的增长. ...

  8. 【MASHIII调制器】MASHIII调制器的Simulink建模与仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 这里,基于小数分频的频率合成器,考虑到你需要实现sigma-delta以及mash等结构.因此,系统的模块结构如下图所示: 下面,我们对这个结 ...

  9. 基于arx模型的MPC预测控制器simulink建模与仿真实现

    目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 MPC的优点 模型预测控制善于处理多输入多输出系统        对于MIMO系统,PID需要为每个子系统单独设计PID控制器,由于存在耦 ...

最新文章

  1. EEMD算法的基本原理
  2. python如何进行数据抓取_如何进行手机APP的数据爬取?
  3. hibernate 一对一(One-to-One)
  4. 命令行下一种新的加帐号的方法
  5. map转字符串数组中 php_js将map转换成数组
  6. 计组之存储系统:4、双口RAM和多模块存储器(存取周期、双端口RAM、多体并行存储器、存储体)
  7. Java怎么不启动_dubbo不启动了怎么回事???一模一样的另一个没问题
  8. 20 个百无一用的 Firefox 扩展
  9. LeetCode刷题——除数博弈
  10. 三调业务摘要201709
  11. 【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)
  12. android 多媒体之播放网络音乐demo
  13. linux中怎样隐藏文件,Linux下如何隐藏文件
  14. 测试基础(含答案2)
  15. 物联网智慧物流平台开发
  16. 由浅入深玩转华为WLAN—10安全认证配置(3)无线dot1 PEAP认证,基于微软IAS服务器
  17. c语言此项目已过期是什么意思,Visual Studio 2017 许可证已过期解决方案
  18. 华中科技大学计算机考研书籍,2020年华中科技大学计算机应用技术考研经验分享...
  19. 比特大陆内部究竟发生了什么?
  20. 新鸟文章:foreach里的Sqlcommand(有SqlTransaction)

热门文章

  1. Mininet系列实验(六):Mininet动态改变转发规则实验
  2. 最激励人心\作为一个程序员
  3. Spring 之 @Cacheable 源码解析(上)
  4. 案例 | 苏州农村商业银行金融云平台支撑互联网创新业务发展
  5. 使用微PE工具箱PE装机工具U盘重装系统win11
  6. python实现sklearn的基本操作流程,sklearn预处理方法,sklearn基础算法的使用,以及sklearn模型的选择方法。
  7. python识别图片中数字_Python实现识别图片上的数字
  8. 令克软件再推OpenAPI与MAS系统服务,强大引擎赋能券商多元化发展
  9. 树莓派的linux操作系统,树莓派的6种轻量级操作系统介绍
  10. 2018-2019中国开发者调查报告简报(一文了解全貌)