滑模控制器理论推导和matlab/simulink实例分享

滑模控制的运动轨迹主要分为两个方面:(1)系统的任意初始状态向滑模面运动阶段;(2)系统到达滑模面后并且慢慢趋于稳定的阶段。所以,对于滑模变结构控制器的设计,对应于系统运动的两个阶段,可以分为两个部分:第一部分,滑模面的设计;第二部分,控制律的设计。

0、前言

滑模控制(Sliding Mode Control,SMC)是一种非线性控制方法,其核心思想是通过引入一个滑动模态,使系统状态在该模态上滑动,并保持在滑动面上。滑模控制具有强鲁棒性和快速响应的特点,能够有效应对系统参数不确定性、外部干扰和测量噪声等问题。

 

滑模控制的基本原理是通过设计一个滑动面,使系统状态在该面上滑动,并且在滑动面上滑动的速度足够快,从而将系统状态迅速带到所期望的工作区域。通常情况下,滑动面由一个或多个状态变量的线性组合构成,可以根据实际应用需求进行选择。

滑模控制的主要步骤包括:

  1. 滑动面设计:根据系统的数学模型和控制目标,设计一个合适的滑动面。滑动面应具有良好的鲁棒性和适应性,能够满足所需的控制性能。

  2. 控制律设计:根据滑动面的定义,设计一个控制律使得系统状态在滑动面上滑动。通常情况下,控制律包括两个部分:滑动面的控制和滑模调节器。滑动面的控制用来使系统状态迅速进入滑动模态,而滑模调节器用来保持系统状态在滑动面上滑动。

  3. 控制器实现:根据设计的控制律,实现具体的控制器。控制器可以是连续时间控制器或离散时间控制器,具体选择取决于被控系统的特性和应用需求。

滑模控制的优点包括:

  • 鲁棒性:滑模控制对系统的参数不确定性和外部干扰具有较强的鲁棒性,能够使系统在不确定性和扰动的影响下仍能保持滑动模态。

  • 快速响应:由于滑动模态的特性,滑模控制具有快速响应的特点,能够使系统迅速达到所期望的状态。

  • 简单性:相对于一些复杂的控制方法,滑模控制比较简单,容易实现和应用。

1、滑模面的设计

以电液伺服控制系统为例,电液伺服控制系统中不考虑伺服阀的非线性影响将其简化为比例环节,所以由电液伺服系统的数学模型可得伺服阀阀芯位移到液压缸活塞位移的传递函数为:

图片

辨识后的模型为

图片

状态空间方程为

图片

被控对象为三阶系统, X = [x x' x'']为系统状态变量。设定r为给定的输入信号, y为系统输出信号,所以系统的误差为 e=r -y,,定义系统的误差向量为:

图片

可以根据系统模型状态空间方程

图片

写出误差状态方程

图片

所设计的滑模切换函数为

图片

滑模运动的微分方程为

图片

其中c1、c2决定了滑动模态的动态品质,可以采用极点置法求得c1、c2  。选择期望极点为-34.4±168.52i,可以得到参数 c1=29582, c2=68.8, 

2、控制器的设计

对于滑模变结构控制器的设计如下: 

u=ueq+usw

ueq是等效控制,能够实现系统状态的跟踪,即将系统的状态一直保持在滑模面上; usw是切换控制,使系统状态趋近于滑模面,削弱系统的抖振,常用的趋近率有三种:

图片

本节将采用指数趋近律,

等效控制部分,对s=c1*e1+c2*e2+e3求导得

图片

根据s'=0可得到等效控制:

图片

切换控制部分,选择指数趋近律,即

图片

假如eta过小,那么趋近的速度很慢,调节的过程太慢;相反,若eta太大,那么系统到达切换面的时候,具有比较大的速度,引起较大的抖动。对于 k,能够加快调节时间,能够快速到达滑模面的过程,还可以削弱抖振,改善系统的品质。本文中,指数趋近律的参数 k 为 20, eta为 5。所以切换控制为:

图片

综上所述,滑模变结构的控制器设计为

图片

3、实例建模和分析

在matlab simulink中用sfunction搭建对应的仿真模型

图片

放大结果图,可以看到在滑模控制能够很快的实现输入跟踪,控制效率极高

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/38745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从规划到落地,数字化工厂如何破局

随着第四次工业革命的推进,数字化工厂解决方案已经成为制造业转型升级的必经之路。然而,在实际推进过程中,许多企业却面临着规划难以落地、投资回报率低、人才短缺等问题。如何破局,实现数字化工厂的顺利转型,成为制造…

卡尔曼滤波

初见Kalman 假设我养了一只猪: 一周前,这只猪的体重是460.5kg。注意,在这里我用了0.5,表示其实我对这只猪一周前的体重并不是那么确定的,也就是说,46kg这个体重有0.5kg的误差。现在,我又养了这只…

计算机竞赛 python+opencv+机器学习车牌识别

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器学习的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖,适…

使用插件实现pdf,word预览功能

效果 代码&#xff1a; 插件地址&#xff1a; https://github.com/501351981/vue-office <a-modalv-model:visible"visible":title"title"ok"handleOk":bodyStyle"bodyStyle":width"1200":maskClosable"false"…

2023年网络安全比赛--综合渗透测试(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.扫描目标靶机将靶机开放的所有端口,当作flag提交(例:21,22,23); 2.扫描目标靶机将靶机的http服务版本信息当作flag提交(例:apache 2.3.4); 3.靶机网站存在目录遍历漏洞,请将…

Linux设备树详解

Linux 设备树详解 Linux 操作系统早期是针对个人电脑设备而开发的操作系统&#xff0c;而个人电脑处理器产商较为单一&#xff08;例如只有 Intel&#xff0c;AMD&#xff09;同时个人电脑产商均使用 Intel 或 AMD 制造的处理器&#xff0c;业界形成了统一的总线/硬件接口标准…

JavaScript进阶 第二天

深入对象内置构造函数 一. 深入对象 创建对象三种方式构造函数实例成员&静态成员 1.1 创建对象三种方式 ① 利用对象字面量创建对象 const o {name: 哈哈 } ② 利用new Object 创建对象 const o new Object({ name: 哈哈 }) ③ 构造函数创建对象 1.2 构造函数 …

探索规律:Python地图数据可视化艺术

文章目录 一 基础地图使用二 国内疫情可视化图表2.1 实现步骤2.2 完整代码2.3 运行结果 一 基础地图使用 使用 Pyecharts 构建地图可视化也是很简单的。Pyecharts 支持多种地图类型&#xff0c;包括普通地图、热力图、散点地图等。以下是一个构建简单地图的示例&#xff0c;以…

认识Transformer:入门知识

视频链接&#xff1a; https://www.youtube.com/watch?vugWDIIOHtPA&listPLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index60 文章目录 Self-Attention layerMulti-head self-attentionPositional encodingSeq2Seq with AttentionTransformerUniversal Transformer Seq2Seq …

浅谈 EMP-SSL + 代码解读:自监督对比学习的一种极简主义风

论文链接&#xff1a;https://arxiv.org/pdf/2304.03977.pdf 代码&#xff1a;https://github.com/tsb0601/EMP-SSL 其他学习链接&#xff1a;突破自监督学习效率极限&#xff01;马毅、LeCun联合发布EMP-SSL&#xff1a;无需花哨trick&#xff0c;30个epoch即可实现SOTA 主要…

资讯速递 | ArkUI-X 预览版已正式开源!

OpenHarmony项目群技术指导委员会&#xff08;以下简称“TSC”&#xff09;-跨平台应用开发框架TSG所孵化项目 —— ArkUI-X&#xff0c;近期已正式开源 &#xff0c;开发者基于一套主代码&#xff0c;就可以将在OpenHarmony上开发的精美、高性能应用同时运行在Android、iOS等其…

LNMP环境搭建wordpress以及跳转后台报404解决

基于上文配置好的LNMP环境继续搭建wordpress 目录 一.到官网下载tar.gz包&#xff0c;并上传到Linux上&#xff0c;也可以通过复制链接地址进行下载 二. 将wordpress中的所有文件移动到你nginx.conf中指定目录中 三.为wordpress配置数据库 四.到浏览器进行注册 1.刚开始…

好用的安卓手机投屏到mac分享

工具推荐&#xff1a;scrcpy github地址&#xff1a;https://github.com/Genymobile/scrcpy/tree/master mac使用方式 安装环境&#xff0c;打开terminal&#xff0c;执行以下命令&#xff0c;没有brew的先安装brew brew install scrcpy brew install android-platform-too…

学习 Iterator 迭代器

今天看到一个面试题&#xff0c; 让下面解构赋值成立。 let [a,b] {a:1,b:2} 如果我们直接在浏览器输出这行代码&#xff0c;会直接报错&#xff0c;说是 {a:1,b:2} 不能迭代。 看了es6文档后&#xff0c;具有迭代器的就一下几种类型&#xff0c;没有Object类型&#xff0c;…

404. 左叶子之和

给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别是 9 和 15&#xff0c;所以返回 24示例 2: 输入: root [1] 输出: 0提示: 节点…

【NetCore】09-中间件

文章目录 中间件&#xff1a;掌控请求处理过程的关键1. 中间件1.1 中间件工作原理1.2 中间件核心对象 2.异常处理中间件:区分真异常和逻辑异常2.1 处理异常的方式2.1.1 日常错误处理--定义错误页的方法2.1.2 使用代理方法处理异常2.1.3 异常过滤器 IExceptionFilter2.1.4 特性过…

react实现对数组做增删改操作自定义hook

需求 实现对数组的增删改操作。 实现 import { useState } from react;const useArray (currList) > {const [list, setList] useState(currList);// 增const addItem (item) > {setList([...list, item]);};// 删const removeItem (idx) > {const _arr [...l…

实战指南,SpringBoot + Mybatis 如何对接多数据源

系列文章目录 MyBatis缓存原理 Mybatis plugin 的使用及原理 MyBatisSpringboot 启动到SQL执行全流程 数据库操作不再困难&#xff0c;MyBatis动态Sql标签解析 从零开始&#xff0c;手把手教你搭建Spring Boot后台工程并说明 Spring框架与SpringBoot的关联与区别 Spring监听器…

基于eBPF技术构建一种应用层网络管控解决方案

引言 随着网络应用的不断发展&#xff0c;在linux系统中对应用层网络管控的需求也日益增加&#xff0c;而传统的iptables、firewalld等工具难以针对应用层进行网络管控。因此需要一种创新的解决方案来提升网络应用的可管理性。 本文将探讨如何使用eBPF技术构建一种应用层网络…

【CSS】禁用元素鼠标事件(例如实现元素禁用效果)

文章目录 基本用法 基本用法 pointer-events 属性指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件。实际运用中可以通过对auto 和none动态控制&#xff0c;来动态实现元素的禁用效果。 属性描述auto与pointer-events属性未指定时的表现效果相同&#xff0c;对…