基才Matlab的倒立摆系统实时模糊控制研究

合集下载

基于MATLAB的倒立摆控制参数优化的研究

基于MATLAB的倒立摆控制参数优化的研究

基于MATLAB的倒立摆控制参数优化的研究【摘要】倒立摆典型的不稳定的非线性系统,具有成本低、结构简单、易于控制的特点,因此常常用倒立摆系统来检验各种控制方法的优劣。

倒立摆摆起的控制是研究倒立摆控制的难点,目前关于倒立摆的研究已经很多,这些研究基本上都是建立在嘉定倒立摆系统的小车轨道足够长的基础上的。

本文在介绍倒立摆的基础上提出了倒立摆轨道控制的难题,将小车的位移以及摆起时间作为优化参数,实现在长度受限的轨道上使用较少的时间完成摆起。

【关键词】摆起控制;实时控制1.引言倒立摆系统的控制是控制理论应用当中的重要的内容,其是一个具有多变量、非最小相位的绝对不稳定系统。

由于倒立摆具有的绝对不稳定性质,因此需要采取有效的措施稳定它,倒立摆控制方法在军工航天、机器人等领域有着广泛的用途。

随着技术的发展,不断的出现新的控制方法,人们通过倒立摆来检验新的控制方法时候能够处理多变量、非线性以及绝对不稳定性。

倒立摆成为一种检验控制策略有效性的较为理想的实验手段。

2.倒立摆的稳摆控制对于一个线性的系统,其性能能泛函如果是状态变量或者控制变量的二次函数的积分,那么这样的最优控制问题就变成了线性二次型最优控制问题。

利用线性二次性能指标设计的控制器被称作LQR。

线性二次型(LQ)性能指标容易分析处理,并且通过LQ二次型最优设计方法得到的倒立摆具有优异的动态特性,能够获得线性反馈等优点,因而这种方式在实际的倒立摆控制系统当中得到了广泛的应用。

2.1 最优控制策略LQR假设给定的线性定常系统的状态方程为:其二次型性能指标函数:其中:X是n维向量,U是r维向量,Y是m维的输出向量,A,B,C,D 分别为常数矩阵。

Q和R作为加权矩阵是用来平衡状态向量和输入向量的权重Q 是半正定矩阵。

如果系统受到外界的干扰偏离了零的状态,通过调整U使得系统重新的回到零的附近并且同时满足J达到了最小的值,那么这个时候的U就称之为最优控制。

2.2 倒立摆LQR控制器设计图2.1所示为设计的LQR控制器的框图,R是加在小车上的阶跃输入,X 是四个状态量,其中包括了角度、角速度、小车的位移以及小车的运动速度。

倒立摆pd控制 matlab

倒立摆pd控制 matlab

倒立摆pd控制 matlab倒立摆是一种经典的控制系统问题,它的应用广泛,常常用于教学和研究。

在本文中,我们将探讨倒立摆的 PD 控制方法,并使用MATLAB 实现该算法。

首先,让我们简要介绍一下倒立摆问题。

倒立摆是一种由单摆和质点组成的系统,其目标是将摆杆竖直并保持平衡。

在这个问题中,我们需要设计一个控制器来控制摆杆的位置和角度,以保持系统的稳定运行。

因此,控制器的设计对于倒立摆的运行非常重要。

在倒立摆的控制中,PD 控制是一种广泛使用的方法。

PD 控制器根据当前系统状态的误差和其变化率来计算控制输入。

因此,它可以更好地应对一些不稳定的系统,并具有更快的响应速度和更小的稳态误差。

接下来,我们将步骤如下:1.模型建立首先,我们需要建立倒立摆的数学模型。

该模型可以用一组偏微分方程来表示,但通常我们使用更简单的状态空间模型来描述系统。

在这种模型中,我们将系统状态表示为一组变量,通常包括摆角度和摆杆角速度等。

2.控制器设计接下来,我们将使用 PD 控制器来计算控制输入。

PD 控制器的输出等于当前误差和误差变化率乘以控制器的比例和微分增益。

这两个增益参数的选择是控制器设计中最重要的部分之一,通常需要通过试验和优化来确定。

3.仿真验证为了验证 PD 控制器的性能,我们将使用 MATLAB 对倒立摆进行仿真。

在仿真中,我们将输入控制信号并观察系统响应。

通过改变比例和微分增益,我们可以评估控制器的性能,并选择最优的参数。

4.实际应用最后,我们可以将 PD 控制器应用于实际倒立摆系统中。

在这种情况下,我们将需要将控制器代码嵌入到实际控制器硬件中,并进行实际运行测试。

通过不断调整比例和微分增益,我们可以优化控制器的性能,并实现更好的稳定性和控制效果。

总之,倒立摆 PD 控制是一种广泛使用的控制方法,可以应用于许多不同的控制系统。

通过 MATLAB 仿真,可以有效地评估控制器性能并选择最佳参数。

在将控制器应用于实际系统之前,我们需要进行充分的测试和优化,以确保其稳定性和控制效果。

基于MATLAB-GUI的一级倒立摆控制仿真软件设计

基于MATLAB-GUI的一级倒立摆控制仿真软件设计

基于MATLAB-GUI的一级倒立摆控制仿真软件设计基于MATLAB/GUI的一级倒立摆控制仿真软件设计摘要:本文介绍了一种基于MATLAB/GUI的一级倒立摆控制仿真软件的设计方法。

倒立摆是一个经典的控制系统问题,通过控制摆杆使其保持垂直状态。

本文使用MATLAB作为仿真平台,并通过GUI界面设计,使得用户可以方便地输入参数、观察系统状态和结果。

通过该仿真软件,可以有效地学习和研究控制系统的设计与应用。

关键词:MATLAB;倒立摆;控制系统;仿真软件;GUI一、引言倒立摆是一种非线性、强耦合且不稳定的控制系统,是控制理论中经典的问题之一。

倒立摆控制系统受到广泛的研究关注,其在机器人、飞行器、自动驾驶等领域有着重要的应用。

为了帮助学习者理解控制系统的原理和特点,设计了一种基于MATLAB/GUI的一级倒立摆控制仿真软件。

二、仿真软件设计1. 系统模型建立使用MATLAB工具箱中的Simulink建立倒立摆的系统模型。

系统包含两个部分:摆杆和电机控制器。

摆杆模型包括质量、长度、角度等参数;电机控制器模型包括电压、电流、转速等参数。

连接两个模块,构建完整的倒立摆控制系统。

2. GUI界面设计使用MATLAB的GUI工具进行界面设计,用户可以通过界面方便地输入参数、选择控制算法和观察系统状态。

界面包括输入参数框、按钮、图表等控件。

3. 控制算法设计通过GUI界面,用户可以选择不同的控制算法,如PID控制、模糊控制、自适应控制等。

根据选择的算法,修改Simulink模型中的控制器参数,并进行仿真分析。

4. 仿真结果可视化在GUI界面中添加图表,可以实时显示倒立摆的角度、位置等参数。

用户可以通过修改参数和算法,观察系统的响应结果并进行分析。

三、应用实例以PID控制算法为例,进行系统仿真。

用户可以通过GUI界面输入摆杆的质量、长度、角度等参数。

选择PID控制算法后,可以调节PID参数的值,观察系统响应和稳定性。

matlab仿真毕设--倒立摆现代控制理论研究

matlab仿真毕设--倒立摆现代控制理论研究

内蒙古科技大学本科生毕业设计说明书(毕业论文)题目:倒立摆现代控制理论研究倒立摆现代控制理论研究摘要倒立摆系统是一个复杂的非线性、强耦合、多变量和自不稳定系统。

在控制工程中,它能有效地反映诸如可镇定性、鲁棒性、随动性以及跟踪性等许多控制中的关键问题,是检验各种控制方法的理想工具。

理论是工程的先导,它对倒立摆系统的控制研究具有重要的工程背景,单级倒立摆与火箭的飞行有关,二级倒立摆与双足机器人的行走有相似性,日常生活中的任何重心在上,支点在下的问题都与倒立摆的控制有极大的相似性,所以对倒立摆的稳定控制有重大的现实意义。

迄今,人们已经利用古典控制理论、现代控制理论及多重智能控制理论实现了多种倒立摆系统的稳定控制[5]。

倒立摆的控制方法有很多,如状态反馈控制,经典PID控制,神经网络控制,遗传算法控制,自适应控制,模糊控制等。

其控制方法已经在军工、航天、机器人和一般工业过程等领域得到了应用。

因此对倒立摆系统的控制研究具有重要的理论和现实意义,成为控制领域中经久不衰的研究课题。

本文是应用线性系统理论中的极点配置、线性二次型最优(LQR)和状态观测器等知识,设计了倒立摆系统线性化模型的控制器,通过MA TLAB仿真,研究其正确性和有效性。

通过分析仿真结果,我们知道了,状态反馈控制可以使倒立摆系统很好的控制在稳定状态,并具有良好的鲁棒性。

关键词:倒立摆;现代控制;Matlab仿真;Modern Control Theory Of Inverted PendulumAbstractInverted pendulum system is a complex nonlinear and strongly coupled,multi-variable and unstable system since.In control engineering,it can effectively reflect such stabilization,robustness,with the mobility of control and tracking,and many other key issue,It is the test ideal for a variety of control methods.Theory is the project leader,inverted pendulum control system also has important engineering research background,inverted pendulum with single-stage related torocket for the flight,Inverted pendulum and biped walking robot similar nature in any life in the center of gravity,the fulcrum in the next issue with the inverted pendulum control has a great similarity,so the stability control of inverted pendulum significant practical significance.So far,it has been the use of classical control theory,modern control theory and control theory of multiple intelligence to achieve a variety of inverted pendulum system stability control[5].Inverted pendulum control methods there are many,such as the state feedback control,the classic PID control,neural network control,genetic algorithm control,adaptive control,fuzzy control.The control method has been in military,aerospace,robotics and general industrial processes and other areas have been intended use.Therefore,the control of inverted pendulum system research has important theoretical and practical significance,of becoming enduring research topics in the field.This is the application of the theory of linear systems pole placement,linear quadratic optimal (LQR) and the state observer of such knowledge,the design of the linear inverted pendulum model of the controller,through simulation to study the correctness and effective sex.By analyzing the results of MATLAB simulation,state feedback control can make a goodcontrol of inverted pendulum system in a stable state,and has good robustness,stability control features.Key words: Inverted pendulum;Modern control;Matlab simulation;目录摘要 (I)Abstract (II)第一章绪论 (1)1.1倒立摆系统模型简介 (1)1.2倒立摆研究的背景与意义 (2)1.3国内外研究现状、水平和发展趋势 (3)1.3.1倒立摆和控制理论的发展 (3)1.3.2倒立摆的控制方法 (4)1.3.3倒立摆的发展趋势 (5)1.4本论文的主要工作介绍 (6)第二章一级倒立摆的数学模型建立及其性能分析 (7)2.1 系统的组成 (7)2.2 一级倒立摆数学模型的建立 (8)2.2.1 数学模型的建立 (8)2.2.2 系统的结构参数 (9)2.2.3 用牛顿力学方法来建立系统的数学模型 (9)2.2.4 一级倒立摆的性能分析[7] (13)2.3 本章小结 (15)第三章现代控制理论在倒立摆控制中的应用 (16)3.1 自动控制理论的发展历程 (16)3.2 经典控制理论 (18)3.2.1 PID控制现状 (18)3.2.2 PID控制的基本原理 (18)3.2.3 常用PID数字控制系统 (20)3.3 现代控制理论 (21)3.3.1 极点配置[11] (22)3.3.2 线性二次型最优的控制理论[7,8] (24)3.3.3 加权矩阵的选取 (26)3.3.4 状态观测器[7] (26)3.4 本章小结 (29)第四章MA TLAB仿真技术 (30)4.1 仿真软件——Matlab简介 (30)4.1.1 MA TLAB的优势 (30)4.2 Simulink简介 (32)4.3 S-函数简介 (33)4.3.1 用M文件创建S-函数 (34)4.4 倒立摆仿真模块的建立 (36)4.5 本章小结 (37)第五章一级倒立摆线性模型系统的仿真 (38)5.1 倒立摆控制器结构选择 (38)5.2 一级倒立摆线性模型系统仿真 (38)5.2.1 Simulink仿真 (42)5.3 本章小结 (46)结束语 (48)参考文献 (49)附录A (51)致谢 (53)第一章绪论1.1倒立摆系统模型简介倒立摆控制系统是一个复杂的、不稳定的、非线性的系统,是进行控制理论教学及开展各种控制实验的理想实验平台,但它并不是我们想象的那样抽象,其实在我们日常生活中就有很多这样的例子。

基于MATLAB的一级倒立摆控制系统仿真与设计

基于MATLAB的一级倒立摆控制系统仿真与设计

基于MATLAB的一级倒立摆控制系统仿真与设计一级倒立摆是一个经典的控制系统问题,它由一根杆子和一个在杆子顶端平衡的质点组成。

杆子通过一个固定的轴连接到一个电机,电机可以通过施加力来控制杆子的平衡。

设计一个控制系统来实现对一级倒立摆的稳定控制是一个重要的研究课题。

在这篇文章中,我们将介绍基于MATLAB的一级倒立摆控制系统仿真与设计。

我们将首先介绍一级倒立摆的数学模型,并根据模型设计一个反馈控制器。

然后,我们将使用MATLAB来进行仿真,评估控制系统的性能。

一级倒立摆的数学模型可以通过牛顿第二定律得到。

假设杆子是一个质点,其运动方程可以表示为:ml²θ''(t) = mgl sin(θ(t)) - T(t)其中m是质点的质量,l是杆子的长度,g是重力加速度,θ(t)是杆子相对于竖直方向的偏角,T(t)是电机施加的瞬时力。

为了设计一个稳定的控制系统,我们可以使用PID控制器,其控制输入可以表示为:T(t) = Kp(θd(t) - θ(t)) + Ki∫(θd(t) - θ(t))dt +Kd(θd'(t) - θ'(t))其中Kp,Ki和Kd分别是比例,积分和微分增益,θd(t)是我们期望的杆子偏角,θ'(t)是杆子的角速度。

在MATLAB中,我们可以使用Simulink来建模和仿真一级倒立摆的控制系统。

我们可以进行以下步骤来进行仿真:1. 建立一级倒立摆的模型。

在Simulink中,我们可以使用Mass-Spring-Damper模块来建立质点的运动模型,并使用Rotational Motion 库提供的Block来建立杆子的旋转模型。

2. 设计反馈控制器。

我们可以使用PID Controller模块来设计PID 控制器,并调整增益参数以实现系统的稳定性和性能要求。

3. 对控制系统进行仿真。

通过在MATLAB中运行Simulink模型,我们可以观察控制系统的响应,并评估系统的稳定性和性能。

倒立摆控制系统的研究

倒立摆控制系统的研究

倒立摆控制系统研究【关键词】 状态空间、可控可观、状态反馈、降维观测器、Simulink 非线性系统仿真一、研究背景基于自动控制原理课程设计《倒立摆控制系统研究》以及3号楼实验室具有硬件实验平台,我们在已知系统的非线性模型、简化线性模型的条件下对系统进行设计控制,有利于我们将控制理论真正地应用到实际中去解决问题。

同时也能有利于我们对Matlab 软件具有较好的应用。

二、研究目的1、学会使用Simulink 软件分析复杂的控制系统。

2、学会状态反馈进行控制系统设计。

3、了解状态观测器的实现。

4、加深对现代控制理论的理解。

三、实验平台装有Matalab 的计算机以及打印机 一台 实际倒立摆系统 一套四、倒立摆的数学模型1、实际的非线性模型)(cos 00144.00061.0212001θθθ--+=⋅⋅B A 2121121222)sin(2.1)cos(2.1sin 2.61⋅⋅⋅⋅⋅⋅⋅-----=θθθθθθθθθθ其中:⋅⋅---++=11212110]0168.0)cos()sin(00144.0[sin 2979.00236.0θθθθθθθu A 2221212210])sin()[cos(0012.0sin )cos(0734.0⋅⋅---+--=θθθθθθθθθB2、简化的线性模型 状态空间表达式为X AX BU Y CX DU⎧=+⎨=+⎩其中:''1212x θθθθ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦ ,12y θθ⎡⎤=⎢⎥⎣⎦,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----=3444.16254.42122.822122.822760.07062.38751.168751.6510000100A ,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=5125.62184.500B⎥⎦⎤⎢⎣⎡=00100001C ,⎥⎦⎤⎢⎣⎡=00D3、系统研究方法 由现代控制理论知识知,原系统的状态空间模型为BU AX X+= ,若系统的状态是完全能控的,则引入状态反馈调节器KX R U -=。

基于matlab的倒立摆模糊操纵_课程设计报告

基于matlab的倒立摆模糊操纵_课程设计报告

智能操纵理论及应用课程设计报告题目:基于matlab的倒立摆模糊操纵院系:西北民族大学电气工程学院专业班级: 10级自动化(3)班学生姓名:蔡余敏学号: P101813455指导教师:刁晨2021.10基于MATLAB的倒立摆模糊操纵蔡余敏指导教师:刁晨摘要:倒立摆的操纵问题确实是使摆杆尽快地达到一个平稳位置,而且使之没有大的振荡和过大的角度和速度。

当摆杆抵达期望的位置后,系统能克服随机扰动而维持稳固的位置。

本文要紧针对较为简单的单级倒立摆操纵系统而进行的设计分析。

通过成立微分方程模型,求出相关参数,设计出对应的模糊操纵器,并运用MATLAB软件进行系统模型的软件仿真,从而达到预定操纵成效。

目前,一级倒立摆的研究功效应用于火箭发射推动器和操纵卫星的飞行状态等航空航天领域。

关键词:单级倒立摆;微分方程;模糊操纵;MATLAB仿真1背景分析倒立摆操纵系统是一个复杂的、不稳固的、,是进行操纵理论教学及开展各类操纵实验的理想实验平台。

对倒立摆系统的研究能有效的反映操纵中的许多典型问题:如非线性问题、问题、镇定问题、随动问题和跟踪问题等。

通过对倒立摆的操纵,用来查验新的操纵方式是不是有较强的处置非线性和不稳固性问题的能力。

同时,其操纵方式在军工、航天、机械人和一样工业进程领域中都有着普遍的用途,如机械人行走进程中的平稳操纵、火箭发射中的垂直度操纵和卫星飞行中的姿态操纵等。

正是由于倒立摆系统的特殊性,许多不同领域的专家学者在查验新提出理论的正确性和实际可行性时,都将倒立摆系统作为实验测试平台。

再将通过测试后的操纵理论和操纵方式应用到更为普遍的领域中去。

现代操纵理论已经在工业生产进程、军事科学、航空航天等许多方面都取得了成功的应用。

例如极小值原理能够用来解决某些最优操纵问题;利用卡尔曼滤波器能够对具有有色噪声的系统进行状态估量;预测操纵理论能够对大滞后进程进行有效的操纵。

可是它们都有一个大体的要求:需要成立被控对象的精准数学模型。

倒立摆论文:倒立摆 粒子群 LQR 模糊控制 实时控制

倒立摆论文:倒立摆 粒子群 LQR 模糊控制 实时控制

【关键词】倒立摆粒子群 LQR 模糊控制实时控制【英文关键词】Inverted pendulum PSO LQR Fuzzy control Real-time control倒立摆论文:基于粒子群优化的二级倒立摆控制研究【中文摘要】倒立摆系统是一个多变量、强耦合、自然不稳定的高阶非线性系统,研究它的控制设计具有很大的意义。

一方面可以反映许多控制理论中的经典问题,如系统鲁棒性问题、镇定问题、跟踪问题;另一方面对于军事工业、航天仪器、机器人领域和一般工业进程也有着很高的理论指导意义,是控制理论与实际应用的桥梁;倒立摆系统作为检验各种控制算法和控制理论的典型实验装置,为检验控制器设计方法的有效性做了重要贡献。

本文以直线二级倒立摆系统为研究对象,将粒子群算法应用到传统控制理论和智能控制理论当中,设计了基于粒子群优化的二级倒立摆LQR最优控制器和基于粒子群优化的二级倒立摆模糊控制器,并对倒立摆实物系统进行了实时控制。

具体研究内容如下:1)介绍倒立摆系统的和研究现状,运用拉格朗日方程建立二级倒立摆系统的数学机理模型,并在平衡点附近进行线性化处理得到其状态空间方程,运用线性控制理论对其进行定性分析,证明了直线二级倒立摆系统的自然不稳定性和平衡位置附近的能控能观性。

2)介绍LQR最优控制和粒子群算法的基本原理。

利用粒子群算法所具有的智能式搜索、渐进式优化,快速收敛等特点,获取Q、R的全局最优解,从而设计状态反馈控制律K,实现基于粒子群算法优化的二级倒立摆LQR控制器设计,并仿真验证了控制方法的有效性。

3)利用LQR控制器设计的状态反馈控制率K,设计信息融合函数,将系统输入变量降维,然后将粒子群算法的强大优化功能应用到比例因子和加权因子的选取当中,实现了基于粒子群优化的二级倒立摆模糊控制器设计,并通过仿真验证了控制方法的有效性。

最后对所设计的两种控制器进行了仿真对比分析,结果表明基于粒子群算法优化的模糊控制器具有更好的稳定性和鲁棒性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基才Matlab的倒立摆系统实时模糊控制研究徐雄,石曙东(湖北师范学院计算机科学系,湖北黄石 435002)1 引言倒立摆系统是一种是非最小相位系统,它具有非线性、多变量和不稳定的特点,因而成为控制理论教学和科研的典型对象,以往主要通过软件仿真或在精密倒立摆上实现各种控制算法,而对倒立摆硬件系统开发的相关报道却甚少。

目前,国内各高校基本上都采用香港固高公司和加拿大Quanser公司生产的系统,由于采用高精度的零部件,因此,硬件成本较高;其软件大多采用VC等可视化编程软件来开发,研发周期长,并且不提供源代码,缺乏可读性和再利用性。

本文介绍一种倒立摆系统的软硬件开发,其硬件系统具有低成本、高可靠性和稳定性等优点;其软件系统在Matlab环境下编程和实时控制,源代码完全开放,而且可调用丰富的Matlab 工具箱函数,非常适用于教学和科研上的再学习和开发。

2 倒立摆系统的硬件设计一级水平倒立摆硬件系统框图如图1所示,多级水平倒立摆也相类似,区别之处只是摆杆不同。

倒立摆系统由导轨、力矩电机、滑块与摆杆、皮带等部件组成。

摆杆连接滑块,滑块由皮带拖动在导轨上滑行。

滑块离中心点的水平位移和摆杆的角度分别由旋转编码器1和2检测,通过旋转编码器信息采集卡转换后对应于θ和x的计数值。

在导轨的两侧各有一个限位开关(常闭),当滑块滑行到两侧时,将碰到限位开关并使其断开,用来判断滑块的位置是否超出限定范围以及是否立即停止电机运行。

限位开关的通断信号由数据采集卡I/O采集,控制电压通过数据采集卡D/A输出,经过力矩电机控制器转换后作用于电机。

硬件系统组成部件说明如表1 所列。

2.1 力矩电机控制器设计数据采集卡D/A输出电压一般为0 V~+5 V或0 V~+10 V,而力矩电机的伺服驱动电压为-24 V~+24 V,因此需要设计一个控制器,将数据采集卡的输出电压按比例转换成力矩电机控制所需的伺服电压。

力矩电机控制器采用不带MPU的分立元件反馈方法设计,以提高可靠性。

当电机带动小车运动到两端碰到限位开关时,施加在电机上的电压必须马上变成0 V,电机立即停止转动,但力矩电机的堵转电流非常大,会击穿达林顿管,因此在设计力矩电机控制器时,应考虑碰到限位开关时要立即切断电机的达林顿输出电路,使电机端的电压箝位于0 V。

2.2 旋转编码器接口设计摆杆的角度(θ)是倒立摆控制所需的最主要的反馈检测信号,而小车的位置(x)只起到辅调节作用,要求精度不高。

因此,摆杆角度检测采用日本NEMI- COM公司生产的高精度旋转编码器,而小车位置检测所用旋转编码器则自制,由旋转编码盘加上带槽光耦检测电路实现。

旋转编码器的典型输出为两个相位差90°的方波信号(A和B)以及零位脉冲信号Z。

其中,Z 脉冲信号标志旋转编码盘转过的圈数(每圈360°),A、B两相信号脉冲数标志转编码盘转过的角度,A、B之间的相位关系为码盘的转向,即当A相超前B相90°时,标志码盘正转;当B相超前A相90°时,标志码盘反转。

旋转编码器接口电路将A、B、Z脉冲信号转换成旋转码盘转过角度的计数值,一般采用单片机来实现。

从光电编码器接口电路要求高速度、高精度和计算机接口等方面考虑,本系统设计的旋转编码器接口应为插在计算机PCI插槽上的PCI板卡,计数电路采用高速CPLD器件EPM7128实现,采用抗干扰二倍频方法设计,PCI接口器件采用PLX公司的PCI9052。

自制旋转编码器及接口电路框图如图2所示,左边虚线框内是自制的旋转编码器电路,调整好带槽光耦01 和02之间的距离,转动带齿光码盘,A、B就会产生相位差为90°的脉冲信号。

3 倒立摆软件系统设计倒立摆软件系统一般都是在Windows操作系统中采用Turbo C、Visual C++、C++Builder等可视化编程软件开发,虽然实时性比较好,但控制算法实现难度较高,开发周期长并且缺乏灵活性。

笔者提出以计算、绘图和仿真功能强大的Matlab软件作为控制算法的开发环境,用Visual C++开发MEX接口生成的动态链接库(DLL)作为Matlab与PCI数据采集卡和旋转编码器信号采集卡进行通信的中介,编制M文件实现模糊控制算法,具有编程简单、工具箱函数调用和数据分析方便等优点。

3.1 Matlab环境下实现实时控制用Matlab 对系统进行实时控制有两种可选择的方法,编制M文件或利用Simulink,这两种方法也可以交互使用。

另外,也可以采用Matlab与第三方软件相互调用的方法实现实时控制。

直接采用M文件编程简单易学,但运行速度较慢;使用Simulink和Real-Time Workshop 进行实时控制,控制参数修改方便,运行速度快,在仿真和调试完成后,可生成C代码并移植到硬件直接使用,快速实现控制系统。

Matlab 环境下这两种方法的数据交换过程如图3所示,其中,上部是编制M文件实现实时控制的数据交换过程。

Matlab 只带有知名公司板卡产品的驱动程序,如果采用国内公司或者用户自行设计的板卡,则需要自行编写设计驱动程序并采用Matlab访问硬件的接口程序。

M文件下没有直接访问硬件的函数,因此需要使用Matlab提供的MEX接口函数来开发硬件驱动,生成动态链接库(DLL)。

如果利用Simulink模块实时控制,则需要编制访问硬件的S-Function接口,利用此函数可以编写实现自身功能的Simulink模块。

还可以采用S-Function编写 Mat-lab不带驱动的硬件板卡的驱动程序。

3.2 变量组合的模糊控制器设计单级倒立摆是一个两输入单输出的多变量系统,控制目标是摆杆的角度θ和滑块的水平位移X皆为0或者在0点附近动态调整,若要控制这两个量,就必须引入其变化率作为反馈量。

因此,模糊控制器的输入量为摆杆的角度θ、角速度ω、滑块的水平位移X以及水平速度V,而输出为力矩电机的控制电压U。

通过线性变换,将摆的角度θ的电压值映射到论域[-6,6],角速度ω的论域和角度θ相同。

θ和ω采用7级分割,分别为NB、NM、NS、ZE、PS、 PM、PB、用钟形隶属度函数。

同理,将滑块的水平位移X映射至论域[-1,1],模糊分割为3级,分别是NM、ZE、PM,使用三角形隶属度函数。

水平速度V论域为[-1,1],模糊分割为2级,分别是N、P,使用三角形隶属度函数。

输出的控制电压u论域为[-6,6],分割成7级,分别为NB、NM、 NS、ZE、PS、PM、PB。

在进行模糊推理运算时,采用Mamdani最大-最小合成运算,而输出的解模糊运算则采用重心法。

对于多变量模糊控制系统,由于可能的控制规则数目是输入变量数的指数,因此,如何有效地减少多变量模糊控制系统中控制规则的数目,对理论分析和工程应用都有着非常重要的意义。

为了减少规则的数量,本文根据摆杆的角度θ和滑块的水平位移x分别设置模糊控制规则库,而最终的控制信号就是分别调用这两个规则库所得到的控制信号的组合。

具体地,第i条规则就是:其中,如果根据摆杆的角度和角速度来确定控制信号,那么,I1=θ而I2=ω;如果根据水平位移x和速度v确定控制信号,那么,I1=x而I2=v。

具体的模糊控制规则分别如表2和表3所示,推理采用max-min合成运算,解模糊则采用重心法。

在实际控制中,这两个规则库是交替使用的,从而在保证摆杆不倒的前提下,使滑块向中心位置靠拢。

具体做法:每三个采样周期的前两个周期采用角度控制规则库,第三个周期则同时采用两个规则库进行模糊推理计算,并将得到的两个控制量按下式加权计算出最终的控制量U。

其中,Uθ和Ux分别为通过角度控制规则库和位移控制规则库推理计算得到的控制量,加权系数可根据不同要求进行调整。

倒立摆系统的控制算法分两部分:摆杆自动起摆控制和稳定在垂直小角度范围内控制,一般以摆杆偏离垂直站立角度±12°为界限,在±12°范围内采用模糊控制算法使其稳定在垂直站立状态,超出这个范围则启动自动起摆控制算法,再次使其稳定在垂直站立状态。

为了提高倒立摆系统的抗干扰性能,摆杆在±12°范围内摆动时使用的模糊规则库可进一步细分,以确定合适的控制电压。

4 实验结果单级倒立摆控制系统的采样周期一般不大于20 ms。

本系统模糊控制器的采样周期为15 ms,即每隔15 ms采样一次θ、ω、x和v的值,并给出控制信号U。

图4和图5分别给出了前20 s内摆杆的角度电压曲线和前100 s内滑块的位移电压曲线。

在倒立摆处于竖直倒立状态时加入不同的扰动信号,本控制系统表现出良好的抗干扰性能。

图6和图7分别为加入幅值0.5的阶跃扰动和幅值0.5频率为0.5 Hz的方波扰动后的摆杆角度波形图。

扰动是通过将程序代码加在输出控制电压值上来实现的,输出控制电压范围为0~+10 V。

由图可以看出,在Matlab环境下应用组合变量模糊控制策略对倒立摆系统的实时控制取得了很好的效果。

在实际运行时,Matlab环境下的模糊控制器使倒立摆系统保持稳定时间可以长达几个小时,并且具有鲁棒性,受外界干扰时可自动调整至稳定状态。

5 结束语本文给出了一种低成本、高可靠性和稳定性的倒立摆硬件系统的解决方案以及在Matlab环境下控制软件的实现方法。

在硬件方面,与其他同类倒立摆系统相比较,本系统在保证性能的前提下大大降低了成本、实用性强;而且在软件方面,控制软件在Matlab环境下开发,利用简单的Matlab语言编程,对教学和科学研究十分有益。

实验结果表明,在Matlab环境下进行复杂非线性系统的实时控制是可行的。

使用Matlab进行实时控制系统的开发,可大大简化系统建模和控制算法的实现,利用Real-Time Workshop生成的C代码可直接移植到硬件或其他软件上,有效地缩短软件的开发时间。

相关文档
最新文档