目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

随着关于倒立摆控制系统研究的不断推进,倒立摆在设计结构上有很多种类,其中最常见的有直线型倒立摆和环形倒立摆(如图1.1所示),从倒立摆的阶数方面看,可以分为3阶倒立摆,4阶倒立摆甚至更高阶倒立摆等。倒立摆在使用过程中,往往通过一个小车在水平方向上来回行驶,使得小车上方的倒立摆达到一个稳定的状态。而在为了达到这个动态平衡状态,研究者需要尝试不同的控制技术使得倒立摆达到一个严格的稳定状态。

倒立摆在实际作业过程中,其动态平衡往往是一个非线性的变化过程,因为采用传统的控制方式将无法满足倒立摆达到动态平衡的需求。针对这个问题,有学者提出了一种基于滑膜变结构的控制算法。滑膜变结构控制系统是一种非线性的控制方法,其对于控制对象的系统参数以及外部的干扰影响因素具有较强的不变性,即无论设置不同控制系统参数还是设置不同环境干扰因素,其均可保证控制过程的稳定性。

倒立摆控制系统总体的动能和势能分别可以表示为:

二、核心程序

...............................................LEN= 10000;
%离散
ts = 0.01;
g=9.81;
m1=0.04;
m2=0.132;
m3=0.208;
l1=0.09;
l2=0.27;K12 = 3*(-2*g*m1-4*g*m2-4*g*m3)/(2*(-4*m1-3*m2-12*m3)*l1);
K13 = 9*m2*g/(2*(-4*m1-3*m2-12*m3)*l1);K17 = 3*(-2*m1-m2-4*m3)/(2*(-4*m1-3*m2-12*m3)*l1);K22 = 2*g*(m1+2*(m2+m3))/(4*m2*l2-16/9*(m1+(3*m2+m3))*l2);
K23 = 4*g*(m1+3*(m2+m3))/3/(4*m2*l2-16/9*(m1+(3*m2+m3))*l2);
K27 = (2*(m1+2*(m2+m3))-4/3*(m1+3*(m2+m3)))/(4*m2*l2-16/9*(m1+(3*m2+m3))*l2);A  = [0,0 ,0 ,1,0,0;0,0,0,0,1,0;0,0,0,0,0,1;0,0,0,0,0,0;0,K12,K13,0,0,0;0,K22,K23,0,0,0;];B   = [0;0;0;1;K17;K27];  C  = [0.4495,4.1930,-8.8675,0.8035,0.0151,-1.5196];
[F,G]   = c2d(A,B,ts);
Q       = diag([1 0 1 1 0 1]);
R       = [1];
[K,p,e] = dlqr(F,G,Q,R);
F       = F-G*K;  %初始条件
x1_0 = 1;
x2_0 = 0;
x3_0 = 0;
x4_0 = 1;
x5_0 = 0;
x6_0 = 0;
u_0  = 0;for k=1:1:LENktime(k) = k*ts;x1(k)   = F(1,1)*x1_0+F(1,2)*x2_0+F(1,3)*x3_0+F(1,4)*x4_0+F(1,5)*x5_0+F(1,6)*x6_0+G(1)*u_0;x2(k)   = F(2,1)*x1_0+F(2,2)*x2_0+F(2,3)*x3_0+F(2,4)*x4_0+F(2,5)*x5_0+F(2,6)*x6_0+G(2)*u_0;x3(k)   = F(3,1)*x1_0+F(3,2)*x2_0+F(3,3)*x3_0+F(3,4)*x4_0+F(3,5)*x5_0+F(3,6)*x6_0+G(3)*u_0;x4(k)   = F(4,1)*x1_0+F(4,2)*x2_0+F(4,3)*x3_0+F(4,4)*x4_0+F(4,5)*x5_0+F(4,6)*x6_0+G(4)*u_0;x5(k)   = F(5,1)*x1_0+F(5,2)*x2_0+F(5,3)*x3_0+F(5,4)*x4_0+F(5,5)*x5_0+F(5,6)*x6_0+G(5)*u_0;x6(k)   = F(6,1)*x1_0+F(6,2)*x2_0+F(6,3)*x3_0+F(6,4)*x4_0+F(6,5)*x5_0+F(6,6)*x6_0+G(6)*u_0;u       =-K(1)*x1(k)-K(2)*x2(k)-K(3)*x3(k)-K(4)*x4(k)-K(5)*x5(k)-K(6)*x6(k);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X_back(k)= u+randn/50;c    = 1e-4;if k==1X_back2=0;elseX_back2=X_back(k)-X_back(k-1);ends    = c*X_back2;y    =-inv(C*B)*(C*A*s+5*s+0.05*sign(s));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X(k)    = min(y);u_0     = X(k);x1_0    = x1(k);x2_0    = x2(k);x3_0    = x3(k);x4_0    = x4(k);x5_0    = x5(k);    x6_0    = x6(k);
end
x1a=x1;
x2a=x2;
x3a=x3;
x4a=x4;
x5a=x5;
x6a=x6;
A  = [0,0 ,0 ,1,0,0;0,0,0,0,1,0;0,0,0,0,0,1;0,0,0,0,0,0;0,K12,K13,0,0,0;0,K22,K23,0,0,0;];B   = [0;0;0;1;K17;K27];  C  = [0.4495,4.1930,-8.8675,0.8035,0.0151,-1.5196];
[F,G]   = c2d(A,B,ts);
Q       = diag([1 0 1 1 0 1]);
R       = [1];
[K,p,e] = dlqr(F,G,Q,R);
F       = F-G*K;  %初始条件
x1_0 = 1;
x2_0 = 0;
x3_0 = 0;
x4_0 = 1;
x5_0 = 0;
x6_0 = 0;
u_0  = 0;for k=1:1:LENktime(k) = k*ts;x1(k)   = F(1,1)*x1_0+F(1,2)*x2_0+F(1,3)*x3_0+F(1,4)*x4_0+F(1,5)*x5_0+F(1,6)*x6_0+G(1)*u_0;x2(k)   = F(2,1)*x1_0+F(2,2)*x2_0+F(2,3)*x3_0+F(2,4)*x4_0+F(2,5)*x5_0+F(2,6)*x6_0+G(2)*u_0;x3(k)   = F(3,1)*x1_0+F(3,2)*x2_0+F(3,3)*x3_0+F(3,4)*x4_0+F(3,5)*x5_0+F(3,6)*x6_0+G(3)*u_0;x4(k)   = F(4,1)*x1_0+F(4,2)*x2_0+F(4,3)*x3_0+F(4,4)*x4_0+F(4,5)*x5_0+F(4,6)*x6_0+G(4)*u_0;x5(k)   = F(5,1)*x1_0+F(5,2)*x2_0+F(5,3)*x3_0+F(5,4)*x4_0+F(5,5)*x5_0+F(5,6)*x6_0+G(5)*u_0;x6(k)   = F(6,1)*x1_0+F(6,2)*x2_0+F(6,3)*x3_0+F(6,4)*x4_0+F(6,5)*x5_0+F(6,6)*x6_0+G(6)*u_0;u       =-K(1)*x1(k)-K(2)*x2(k)-K(3)*x3(k)-K(4)*x4(k)-K(5)*x5(k)-K(6)*x6(k);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X_back(k)= u+randn/50;c    = 1e-4;if k==1X_back2=0;elseX_back2=X_back(k)-X_back(k-1);ends    = c*X_back2;y    =-inv(C*B)*(C*A*s+5*s+0.05*sats(s));%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X(k)    = min(y);u_0     = X(k);x1_0    = x1(k);x2_0    = x2(k);x3_0    = x3(k);x4_0    = x4(k);x5_0    = x5(k);    x6_0    = x6(k);
end
x1b=x1;
x2b=x2;
x3b=x3;
x4b=x4;
x5b=x5;
x6b=x6;.............................................

三、测试结果

参数名称

参数数值与单位

1

重力加速度g

9.81m/s2

2

杆1的质量m1

0.04kg

3

杆2的质量m2

0.132kg

4

质量块的质量m3

0.208kg

5

摆杆1转动轴心到杆质心的长度l1

0.09m

6

摆杆2转动轴心到杆质心的长度l2

0.27m

7

采样时间T

0.02s

通过上述参数,得到如下的仿真结果:

采用第二种控制律函数不仅可以达到相应的控制效果,而且可以有效降低控制系统的抖振。

A08-82

基于滑模变结构的倒立摆控制系统matlab仿真相关推荐

  1. 【基于滑模变结构控制策略的双向DC-DC变换器研究】

    基于滑模变结构控制策略的双向DC-DC变换器研究 本文通过先进的滑模控制策略来改进双向DC-DC变换器的响应速度和动态品质.通过仿真软件MATLAB/Simulink建立双向DC-DC变换器模型,通过 ...

  2. 基于滑模控制的直接转矩控制的MATLAB仿真

    模型是基于袁雷老师主编的<现代永磁同步电机控制原理机MATLAB仿真>一书为参考. 个人认为使用滑模控制的DTC控制器有几个原因:1 系统存在滑模态 2点击要求转矩与磁链小脉动3逆变器需要 ...

  3. 基于Qlearning强化学习的倒立摆控制系统matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 强化学习通常包括两个实体agent和environment.两个实体的交互如下,在envir ...

  4. 有偿!!!比较急,求基于滑模观测器的开关磁阻电机的matlab仿真

    标题@TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdo ...

  5. 滑模变结构控制高超声速飞行器(源代码)

    一.高超声速飞行器数学模型 二.滑模变结构控制器的设计 三.仿真结果

  6. 全阶滑模观测器程序_基于扩张状态观测器的永磁同步电机全阶滑模变结构位置伺服控制方法...

    基于扩张状态观测器的永磁同步电机全阶滑模变结构位置伺服控制方法 [技术领域] [0001] 本发明涉及一种永磁同步电机全阶滑模变结构位置伺服控制方法,特别是系统部 分状态和非线性不确定项上界均未知的永 ...

  7. 滑模变结构控制(2)--RBF神经网络

    目录 前言 1 问题描述 2 RBF神经网络原理 3 控制算法设计与分析 4 仿真实例 5 总结 参考文献 前言 如果被控对象的数学模型已知,滑模控制器可以使系统输出直接跟踪期望指令,但较大的建模不确 ...

  8. 终端滑模matlab程序,滑模变结构控制 MATLAB程序

    [实例简介] 滑模控制 MATLAB [实例截图] [核心代码] fac23b3f-e420-4e36-9a5a-2e225aeaf4da └── 滑模变结构控制MATLAB仿真(第3版):基本理论与 ...

  9. 工业机器人滑膜变结构控制技术_机器人智能滑模变结构控制方法的研究

    学校代号 10532 学 号 S150900769 分 类 号 TP241 密 级 公开 硕士学位论文 机器人智能滑模变结构控制方法的研究 学位申请人姓名 张爱林培 养 单 位 电气与信息工程学院导师 ...

  10. 通俗理解滑模变结构(2)

    一.仿真 接上一节的内容,用Matlab simulink模块搭建模块,搭建模型如下: 前面control是控制器部分,model是我们上一节的对象. 给定x1初始值为3,x2,x3的初始值为0,仿真 ...

最新文章

  1. 信息项目管理师-整体管理知识点
  2. 手机浏览器页面知识收集
  3. 成绩不超过100的C语言,输入若干个学生的百分制成绩,计算平均分并输出.输入-1表示结束,若输入的成绩超过100,则需重新输入.c语言...
  4. 初探Golang(4)-map和流程控制语句
  5. 怎么把文件导入云服务器,怎么把文件放到云服务器里
  6. gis计算机信息技术,信息技术(IT)对GIS的影响
  7. Android模拟器的换肤和Android学习资料下载
  8. linux服务器连接中文,Linux系统遇到SecureCRT连接到linux服务器之后出现乱码问题
  9. 深入剖析Redis高可用集群架构原理
  10. 【亲测】2022最新H5手机微商城运营源码/简约轻量版/对接支付个人免签接口/带搭建教程
  11. sprinboot打包jar后读取不到/resource/data/ip2region.xdb的文件.
  12. mysql主从架构的实现
  13. 先思索后动笔:论讨论与结论的区别
  14. ThinkPHP 模板变量输出
  15. 拒绝精神内耗,5个适合中年人的自学网站,让你脱胎换骨
  16. pmp练习题及其答案
  17. 解决JS双击事件dblclick触发时,同时会执行click事件中的语句
  18. android系统移植之按键驱动篇
  19. 新进入一个研发团队,或者项目组要做什么?
  20. 【自学笔记】尚硅谷数据结构与算法Chapter 5 递归

热门文章

  1. WebService 服务 转
  2. Visual Assist X 10.8.2001 破解版 支持VC2013及以下版本
  3. 网站克隆:setoolkit社工软件
  4. Java获取打印机打印图片
  5. VassistX的简单介绍与下载安装
  6. JavaScript高级程序设计读书笔记--语言基础
  7. 信奥中的数学:进位制
  8. 一个简单的dos命令实现无限弹窗,卡死电脑
  9. Docker安装Tomcat7
  10. HEVC 推出专利使用费标准