在simulink中建立调度增益控制系统的模型
文章目录
- 一、在simulink中建立调度增益控制系统的模型
- 二、对调度增益建模Model Scheduled Gains
- 三、常见控制元素的增益调度等效项Gain-Scheduled Equivalents for Commonly Used Control Elements
- 1)调度增益陷波滤波器Gain-Scheduled Notch Filter
- 2)调度增益PI控制器Gain-Scheduled PI Controller
- 3)矩阵调度增益Matrix-Valued Gain Schedules
- 四、自定义增益调度控制架构Custom Gain-Scheduled Control Structures
一、在simulink中建立调度增益控制系统的模型
在simulink中,你可以建立一个增益调度控制系统gain-scheduled control systems,在这个系统中,控制器增益或者系数取决于调度变量scheduling variables,例如时间,环境条件,或者是模型参数等。
在Control System Toolbox™
库中的模块可以让你实现变量增益variable gains的常规控制系统common control-system ,使用查找表或者MATLAB函数模块来实现增益调度映射gain schedule,这些增益gains 一般都是独立于调度变量scheduling variables的。
在simulink中建立一个增益调度控制系统gain-scheduled control system,通常需要4步:
- 确定调度变量scheduling variables和信号signals ,并使用他们在模型中表示。 举例来说,如果你的系统是一个飞行器,那调度变量可能就是入射角和速度。
- 使用一个查找表或者MATLAB函数模块,根据调度变量scheduling variables得到增益比例gain 或系数coefficient 。 如果你没有查找表,也没有MATLAB函数,还可以使用
systune
来实现,具体参考 Tune Gain Schedules in Simulink。 - 使用增益调度gain-scheduled来替代原先的控制元素。 举例来说,使用一个可变PID模块(增益调度映射来决定PID的增益),来替代一个固定系数的PID控制器。
- 添加调度逻辑和安全保证。
二、对调度增益建模Model Scheduled Gains
调度增益的目的,就是将调度变量scheduling variables当前的值转换成控制器增益,有以下几种方法可以在simulink中实现这一目的:
- 查找表——一个查找表是断点breakpoints和对应增益值的列表,当调度变量在断点之间时,查找表会在两个对应的增益之间进行插值interpolates,通常使用以下的模块来实现:
- 查找表1-D Lookup Table, 2-D Lookup Table, n-D Lookup Table——适合依赖1个,2个,和多个调度变量的控制系统
- 矩阵插值Matrix Interpolation ——适合依赖于1个,2个,或多个调度变量的矩阵,这个模块在Simulink Extras库中
- MATLAB函数模块——如果从调度变量到增益有一个函数表达式,就是用MATLAB函数模块。MATLAB函数模块通常会比查找表得到的结果更加平滑,而且更加节省内存空间。
如果你有一个Simulink Control Design™
,可以使用systune
函数来调节增益调度,参考Tune Gain Schedules in Simulink.
控制器中的调度增益Scheduled Gain in Controller
首先打开这个模型(包括PI控制器和一个lead补偿)
open_system(fullfile(matlabroot,'examples','controls_id','rct_CSTR.slx'))
其中,浓度Concentration 控制器和温度Temperature 控制器模块都将CSTR
模块的输出Cr
作为输入,这个值既是系统的控制变量,又是控制器的调度变量。
双击打开浓度控制器:
这个模块是一个PI控制器,比例增益Kp和Ki输入到1-D查找表中,温度控制器也是同理。
查找表如下:
三、常见控制元素的增益调度等效项Gain-Scheduled Equivalents for Commonly Used Control Elements
使用控制系统工具箱Control System Toolbox里的线性参数变化Linear Parameter Varying
块库函数,这些 模块提供了 一些常见元素,其中增益和参数可以作为额外的输入,以下表格列出了这些块的应用:
1)调度增益陷波滤波器Gain-Scheduled Notch Filter
陷波频率随着以两个调度变量为自变量的函数值变化,函数关系在MATLAB函数中实现。
2)调度增益PI控制器Gain-Scheduled PI Controller
Kp和Ki都随着同一个调度变量变化,映射关系使用1-D查找表。
3)矩阵调度增益Matrix-Valued Gain Schedules
一个矩阵调度增益以1个或多个调度变量为输入,返回一个矩阵matrix 而不是标量scalar value,比如,假设你想实现一个时变的LQG控制器:
dxe=Axe+Bu+L(y−Cxe−Du)u=−Kxe\begin{aligned} d x_{e} &=A x_{e}+B u+L\left(y-C x_{e}-D u\right) \\ u &=-K x_{e} \end{aligned} dxeu=Axe+Bu+L(y−Cxe−Du)=−Kxe
其中,状态空间矩阵,A,B,C,D和状态反馈矩阵K,以及观察增益矩阵L都是时变的。在这里,时间是调度变量,增益调度决定了矩阵值。
在simulink中,可以用以下方法实现矩阵增益调度:
- MATLAB函数模块——制定一个MATLAB函数,以调度变量为输入,返回矩阵值
- 矩阵插值模块Matrix Interpolation block——制定一个查找表,来关联在每个断点breakpoints处的调度变量和矩阵对应值,然后在断点之间,进行插值。
对于LQG控制器,可以使用这两种方法来实现一个时变矩阵作为输入的可变观测形式模块Varying Observer Form block,例如:
四、自定义增益调度控制架构Custom Gain-Scheduled Control Structures
参考文献:
Model Gain-Scheduled Control Systems in Simulink - MATLAB & Simulink - MathWorks 中国
在simulink中建立调度增益控制系统的模型相关推荐
- 自动驾驶控制器,车道偏离预警系统,基于Prescan设计场景和交通流,在Simulink中建立了相应的控制模型
自动驾驶控制器,车道偏离预警系统,基于Prescan设计场景和交通流,在Simulink中建立了相应的控制模型. 进行LDW功能验证. 整个模型自己建立,再次强调不是Prescan自带的那种很乱很模糊 ...
- 利用gensim在simulink中建立神经网络模型
利用gensim在simulink中建立神经网络模型 首先构建测试数据 x = [1 2 3 4 5 6]y = 3*x 然后建立线性神经网络模型 net = newlind(x,y) 创造测试数据 ...
- 基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型
基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型,为路径规划奠定基础,能够更好的检验简化的运动学模型反映运动过程的准确性. 包括:1.simulink仿真验证(版本为2018b) ...
- MATLAB光伏并网仿真模型,在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等
MATLAB光伏并网仿真模型,在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行. 太阳能电池,MPPT,包括输电线路,接入三电平 ...
- 在Simulink中调整增益映射 Tune Gain Schedules in Simulink
文章目录 调节增益调度的工作流程 Workflow for Tuning Gain Schedules 1)选择一组设计点,充分覆盖你需要调优的操作范围 2)获取一组在设计点处描述线性动力学性能的线性 ...
- 调度增益控制基础概念Gain Scheduling Basics学习笔记
文章目录 一.调度增益基础Gain Scheduling Basics 调度增益gain scheduling是什么? 调度增益gain scheduling是如何实现的? 调度增益gain sche ...
- 如何在matlab中建立水箱模型_在MATLAB中实现水箱液位控制系统的设计
在 MATLAB 中实现水箱液位控制系统的设计 [摘要] 本论文的目的是设计双容水箱液位串级控制系统. 在设计中充分利 用计算机技术, 自动控制技术, 以实现对水箱液位的串级控制. 首先对被控对象 的 ...
- 基于simulink的永磁无刷直流电机控制系统的仿真研究
基于simulink的永磁无刷直流电机控制系统的仿真研究 摘要: 永磁无刷直流电动机由于它具有调速方便.结构简单.易于控制.维护方便.功率密度大等优点,在计算机外围设备.伺服系统.仪器仪表.变 ...
- simulink显示多个数据_如何在 Simulink 中使用 PID Tuner 进行 PID 调参?
作者 | 安布奇责编 | 胡雪蕊出品 | CSDN(ID: CSDNnews)本文为一篇技术干货,主要讲述在Simulink如何使用PID Tuner进行PID调参. PID调参器( PIDTuner ...
最新文章
- oracle date怎么用,Oracle to_date的使用方法
- BZOJ3166 [Heoi2013]Alo 【可持久化trie树 + 二分 + ST表】
- DOM---文档对象模型(Document Object Model)的基本使用
- Springboot 启动问题
- xUtils网络超时设置configCurrentHttpCacheExpiry和SoTimeout和connectionTimeout的区别
- CodeForces - 528D Fuzzy Search(多项式匹配字符串)
- iOS开发 UILabel实现自适应高宽
- HTML5给我们带来了什么
- .net core精彩实例分享 -- 异步和并行
- 最新关于try ,catch,throw的使用小结
- 国际象棋测试软件只能支持8核,CPU多线程测试:wPrime/国际象棋_AMD FX-8350_CPUCPU评测-中关村在线...
- 2020年尾矿考试技巧及尾矿考试平台
- OpenDDS系列(1) —— OpenDDS 简介
- 年仅30岁!腾讯游戏程序员毛星云意外身故。。。
- 重构改善既有代码的设计思维导图
- 离散数学4_第5章关系与函数__关系矩阵
- win10计算机怎么拨号上网,win10如何设置宽带拨号连接
- 关于部分小米机型沉浸式图标变色失败的解决方式
- dell Precision 3550 更换固态硬盘
- 单词串联记忆 - 故事 - Party上浪漫的事后传
热门文章
- Netty工作笔记0013---Channel应用案例4Copy图片
- System学习笔记003---Windows把内存变成快速虚拟硬盘
- python数据结构剑指offer-两个链表的第一个公共结点
- mysql数据库建order,group表时的错误
- 多线程的那点儿事(之windows锁)
- 扫雷计算机教案,《扫雷游戏》教学设计
- php 查找文件 替换内容,关于php:文件中查找和替换功能困扰
- h5物体拖动_html5实现拖拽效果
- 判断类型是否继承_【Java学习 | Javase】继承与多态
- commit分拆多个 git_Git操作:在多个分支之间,使用git am打patch和同步分支