基于MATLAB的倒立摆系

合集下载

基于MATLAB的直线一级倒立摆的PID控制研究

基于MATLAB的直线一级倒立摆的PID控制研究

基于MATLAB的直线一级倒立摆的PID控制研究一、内容概述本文旨在研究基于MATLAB的直线一级倒立摆的PID控制策略。

倒立摆系统作为控制理论中的重要实验对象,具有非线性、不稳定性以及快速运动等特点,对于控制系统的设计与实现提出了较高要求。

PID控制作为一种经典的控制方法,在倒立摆系统中具有广泛的应用价值。

本文利用MATLAB软件平台,对直线一级倒立摆的PID控制进行深入研究和探讨。

文章对直线一级倒立摆系统的基本原理进行介绍,包括其物理模型、运动方程以及稳定性分析等方面。

在此基础上,详细阐述了PID 控制器的基本原理、参数整定方法及其在倒立摆系统中的应用。

通过对比不同PID参数下的控制效果,分析了PID控制器在倒立摆系统中的性能特点。

文章重点介绍了基于MATLAB的直线一级倒立摆PID控制系统的设计与实现过程。

利用MATLAB的Simulink仿真工具,搭建了直线一级倒立摆的仿真模型,并设计了PID控制器进行仿真实验。

通过不断调整PID控制器的参数,观察系统的动态响应和稳态性能,得到了较优的控制参数。

文章还讨论了在实际应用中可能遇到的挑战与问题,并提出了相应的解决方案。

针对倒立摆系统的非线性特性,可以采用模糊PID控制或神经网络PID控制等智能控制方法进行改进;针对干扰和噪声的影响,可以采用滤波技术或鲁棒控制策略来提高系统的抗干扰能力。

文章总结了基于MATLAB的直线一级倒立摆PID控制研究的主要成果和贡献,并展望了未来研究方向和应用前景。

通过本文的研究,不仅加深了对倒立摆系统和PID控制方法的理解,也为实际工程应用提供了有益的参考和借鉴。

1. 直线一级倒立摆系统的介绍直线一级倒立摆系统,作为一个复杂且典型的非线性不稳定系统,历来被视为控制理论教学及实验的理想平台。

它不仅能够有效地反映出控制中的多种问题,如非线性、鲁棒性、镇定等,还因其在多个领域中的实际应用价值而备受关注。

直线一级倒立摆系统主要由小车、摆杆等部件构成,它们之间通过自由连接形成一个整体。

(完整)倒立摆MATLAB建模

(完整)倒立摆MATLAB建模

Matlab程序设计上交作业要求:1)纸质文档:设计分析报告一份(包括系统建模、系统分析、系统设计思路、程序及其执行结果).2)Matlab程序:按班级统一上交后备查。

题目一:考虑如图所示的倒立摆系统.图中,倒立摆安装在一个小车上。

这里仅考虑倒立摆在图面内运动的二维问题.图倒立摆系统假定倒立摆系统的参数如下。

摆杆的质量:m=0.1g摆杆的长度:2l=1m小车的质量:M=1kg重力加速度:g=10/s2摆杆惯量:I=0.003kgm2摆杆的质量在摆杆的中心.设计一个控制系统,使得当给定任意初始条件(由干扰引起)时,最大超调量%≤10%,调节时间ts ≤4s ,使摆返回至垂直位置,并使小车返回至参考位置(x=0)。

要求:1、建立倒立摆系统的数学模型2、分析系统的性能指标—-能控性、能观性、稳定性3、设计状态反馈阵,使闭环极点能够达到期望的极点,这里所说的期望的极点确定是把系统设计成具有两个主导极点,两个非主导极点,这样就可以用二阶系统的分析方法进行参数的确定4、用MATLAB 进行程序设计,得到设计后系统的脉冲响应、阶跃响应,绘出相应状态变量的时间响应图。

题目二:根据自身的课题情况,任意选择一个被控对象,按照上题所示步骤进行分析和设计,并给出仿真程序及其执行结果。

题目一:考虑如图所示的倒立摆系统.图中,倒立摆安装在一个小车上。

这里仅考虑倒立摆在图面内运动的二维问题.图倒立摆系统假定倒立摆系统的参数如下。

摆杆的质量:m=0.1g摆杆的长度:2l=1m小车的质量:M=1kg重力加速度:g=10/s2摆杆惯量:I=0。

003kgm2摆杆的质量在摆杆的中心。

设计一个控制系统,使得当给定任意初始条件(由干扰引起)时,最大超调量%≤10%,调节时间ts ≤4s ,使摆返回至垂直位置,并使小车返回至参考位置(x=0)。

要求:1、建立倒立摆系统的数学模型2、分析系统的性能指标—-能控性、能观性、稳定性3、设计状态反馈阵,使闭环极点能够达到期望的极点,这里所说的期望的极点确定是把系统设计成具有两个主导极点,两个非主导极点,这样就可以用二阶系统的分析方法进行参数的确定4、用MATLAB 进行程序设计,得到设计后系统的脉冲响应、阶跃响应,绘出相应状态变量的时间响应图.设计分析报告1 系统建模在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统。

倒立摆pd控制 matlab

倒立摆pd控制 matlab

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于Matlab的一级倒立摆模型的仿真

基于Matlab的一级倒立摆模型的仿真

基于Matlab的一级倒立摆模型的仿真一.倒立摆模型的研究意义倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想的实验平台。

对倒立摆系统的研究能有效的反应控制中的典型问题:如非线性问题、鲁莽性问题、镇定问题等。

通过对倒立摆的控制,用来检测新的控制方法是否有较强的处理非线性和不稳定性问题的能力。

二.倒立摆模型的数学建模质量为m的小球固结于长度为L的细杆上(细杆质量不计),细杆和质量为M的小车铰链相接分析过程如下:如图所示,设细杆摆沿顺时针方向转东伟正方向,水平向右为水平方向上的正方向。

当细杆白顺时针想要运动时水平方向施加的里应该是水平相应。

对方程组进行拉普拉斯变化,得到摆杆角度和小车位移的传递函数:摆杆角度和小车加速度之间的传递函数:摆杆角度和小车加速度之间的传递函数:位移X对外力F的传递函数:三.在Matlab中输入得到的反馈矩阵:采用MATLAB/Simulink构造单级倒立摆状态反馈控制系统的仿真模型,如下图所示。

首先,在M A T L A B的Command Window中输入各个矩阵的值,并且在模型中的积分器中设置非零初值(这里我们设置为[0 0 0.1 0]。

然后运行仿真程序。

得到的仿真曲线从仿真结果可以看出,可以将倒立摆的杆子与竖直方向的偏角控制在θ=0(即小球和杆子被控制保持在竖直倒立状态),另外说明下黄线代表位移,紫线代表角度。

四.总结由实验中可知,倒立摆系统是一个非线性的较复杂的不稳定系统,故要满足故要满足稳定性要求,就得对系统进行线性化近似和稳定控制。

当然我们调节出来的只是一个理想模型,在实际中会更加复杂,稳定性也会更难获得。

在这次实验中掌握了倒立摆仿真的整个过程,熟悉了MATLAB仿真软件Simulingk的使用,也对系统有了更好的理解。

一阶倒立摆控制系统设计matlab

一阶倒立摆控制系统设计matlab

一阶倒立摆控制系统设计matlab一、控制系统简介控制系统是指通过对某些物理系统或过程的改变以获取期望输出或行为的一种系统。

其中涉及到了对系统的建模、分析以及控制方法的选择和设计等多方面的问题。

控制系统可以通过标准的数学和物理模型来描述,并可以通过物理或者仿真实验进行验证。

本文将围绕一阶倒立摆控制系统设计和仿真展开。

主要内容包括:1.一阶倒立摆系统简介2.系统建模3.系统分析4.设计控制器5.仿真实验及结果分析一阶倒立摆(controlled inverted pendulum)是一种比较常见的控制系统模型。

它的系统模型简单,有利于系统学习和掌握。

一般而言,一阶倒立摆系统是由一个竖直的支杆和一个质量为$m$的小球组成的。

假设球只能在竖直方向上运动,当球从垂直平衡位置偏离时,支杆会向相反的方向采取动作,使得小球可以回到平衡位置附近。

为了控制一阶倒立摆系统,我们首先需要对其进行建模。

由于系统并不是非常复杂,所以建模过程相对简单。

假设支杆长度为$l$,支杆底端到小球的距离为$h$,支杆与竖直方向的夹角为$\theta$,小球的质量为$m$,地球重力为$g$,该系统的拉格朗日方程可以表示为:$L =\frac{1}{2}m\dot{h}^{2}+\frac{1}{2}ml^{2}\dot{\theta}^{2}-mgh\cos{\theta}-\frac{1}{2}I\dot{\theta}^{2}$$I$表示支杆的惯性矩,它可以通过支杆的质量、长度以及截面积等参数计算得出。

$h$和$\theta$分别表示小球和支杆的位置。

我们可以通过拉格朗日方程可以得出系统的动力学方程:$b$表示摩擦系数,$f_{c}$表示对支杆的控制力。

由于一阶倒立摆会发生不稳定的倾斜运动,即未受到外部控制时会继续倾斜。

我们需要对系统加上控制力,使得系统保持在稳定的位置上。

在进行控制器设计之前,我们需要对系统进行分析,以便更好地了解系统在不同条件下的特性表现。

基于ADAMS与MATLAB联合仿真的倒立摆设计毕业论文

基于ADAMS与MATLAB联合仿真的倒立摆设计毕业论文

基于ADAMS与MATLAB联合仿真的倒立摆设计摘要:倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。

倒立摆的控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。

本文先分别用MATLAB和ADAMS两种软件对倒立摆系统进行建模仿真,然后将两者联合仿真,采用PID控制,用三种方法实现了对倒立摆系统的的控制。

仿真结果互相对比、补充,充分展现了各种仿真方法的特点,并直观的论证出利用两种软件进行联合仿真的优点和意义。

关键词:ADAMS;MA TLAB;倒立摆;联合仿真Design of inverted pendulum based on the co-simulationof ADAMS and MATLABAbstract: The control of inverted pendulum system is a nonlinear,complex, unstable,system, It’s an ideal experimental platform of control theory teaching and carrying out of various control experiments. Control methods of inverted pendulum are widely used in military, aerospace, robotics and general industrial fields, such as robot balance control in rocket launch, the verticality control and satellite flight attitude control. This paper first respectively by MATLAB and ADAMS for modeling and Simulation of the inverted pendulum system, and then combining the two for co-simulation.With the PID control, the control of inverted pendulum system are realized by three methods. The simulation results contrast and complement each other, fully demonstrated the characteristics of various simulation methods, and intuitive proves the advantages and significance of combined simulation using this two kinds of software.Key words: ADAMS,MATLAB,inverted pendulum, co-simulation目录第1章绪论 (1)1.1 课题研究背景与意义 (1)1.2 国内外发展现状 (1)1.3 本论文主要内容 (2)第2章倒立摆的数学模型及控制方法 (3)2.1 建模方法的选择 (3)2.2 倒立摆系统模型 (3)2.3 控制方法的选择 (6)2.4 PID算法简介 (6)本章小结 (8)第3章基于MATLAB的倒立摆控制系统设计 (10)3.1 MATLAB软件简介 (10)3.2 倒立摆系统开环稳定性分析 (11)3.3 摆杆角度PID控制 (12)3.4 小车位移PID控制 (13)3.5 Simulink模型构建 (14)3.6 系统闭环稳定性分析 (14)3.7 系统脉冲响应分析 (15)3.8系统阶跃响应分析 (17)本章小结 (19)第4章基于ADAMS的倒立摆控制系统设计 (20)4.1 ADAMS软件介绍 (20)4.1.1 ADAMS简介 (20)4.1.2 ADAMS软件组成 (20)4.2 ADAMS中倒立摆控制方案 (22)4.3 倒立摆ADAMS模型建立 (22)4.4 PID控制 (24)4.4.1 不加控制时系统仿真分析 (24)4.4.2 PID控制时系统仿真分析 (26)本章小结 (27)第5章基于MATLAB和ADAMS联合仿真的倒立摆控制系统设计 (29)5.1 ADAMS与MATLAB联合仿真意义 (29)5.2 ADAMS与MATLAB联合仿真过程 (29)5.2.1 建立ADAMS模型 (29)5.2.2 确定ADAMS的输入输出 (30)5.2.3 ADAMS与MATLAB的连接 (31)5.2.4 构建控制模型 (32)5.2.5 联合仿真 (34)本章小结 (35)总结 (36)致谢................................................... 错误!未定义书签。

基于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模型,我们可以观察控制系统的响应,并评估系统的稳定性和性能。

基于MATLAB的旋转倒立摆建模和控制仿真

基于MATLAB的旋转倒立摆建模和控制仿真

倒立摆系统作为一个被控对象具有非线性、强耦合、欠驱动、不稳定等典型特点,因此一直被研究者视为研究控制理论的理想平台,其作为控制实验平台具有简单、便于操作、实验效果直观等诸多优点。

倒立摆具有很多形式,如直线倒立摆、旋转倒立摆、轮式移动倒立摆等等。

其中,旋转倒立摆本体结构仅由旋臂和摆杆组成,具有结构简单、空间布置紧凑的优点,非常适合控制方案的研究,因此得到了研究者们广泛的关注[1-2]。

文献[3]介绍了直线一级倒立摆的建模过程,并基于MATLAB 进行了仿真分析;文献[4]通过建立倒立摆的数学模型,采用MATLAB 研究了倒立摆控制算法及仿真。

在倒立摆建模、仿真和研究中大多数研究者常用理论建模方法,也可以利用SimMechanics 搭建三维可视化模型仿真;文献[5]使用SimMechanics 工具箱建立旋转倒立摆物理模型,通过极点配置、PD 控制和基于线性二次型控制实现了倒立摆的平衡控制;文献[6]通过设计的全状态观反馈控制器来实现单极旋转倒立摆SimMechanics 模型控制,表明了SimMechanics 可用于不稳定的非线性系统;文献[7]通过单级倒立摆SimMechanics 仿真,研究了Bang-Bang 控制和LQR 控制对倒立摆的自起摆和平衡控制;文献[8]基于Sim⁃Mechanics 建立了直线六级倒立摆模型,并基于LRQ 设计状态反馈器进行了仿真控制分析。

本文首先采用Lagrange 方法建立了旋转倒立摆的动力学模型,在获得了旋转倒立摆动力学微分方程后建立了s-func⁃tion 仿真模型;然后,本文采用SimMechanics 建立了旋转的可视化动力学模型。

针对两种动力学模型,采用同一个PID 控制器进行了控制,从控制结果可以看出两种模型的响应曲线完全一致,这两种模型相互印证了各自的正确性。

1旋转倒立摆系统的动力学建模旋转倒立摆是由旋臂和摆杆构成的系统,如图1所示,旋臂绕固定中心旋转(角度记为θ)带动摆杆运动,摆杆可以绕旋臂自由转动,角度记为α。

基于MATLAB的单级倒立摆的LQR控制研究

基于MATLAB的单级倒立摆的LQR控制研究

T h r o u g h a d j u s t i n g we i g h t e d ma t r i x Q a n d R , ma k e t h e c o n t r o l l e r s y s t e m p e r f o r ma n c e t o a c h i e v e o p t i ma l a n d d r a w t h e s y s —
u s e o f MA T L AB p o we r f u l c o mp u t i n g a n d s i mu l a t i o n c a p a b i l i t i e s t o d e s i g n t h e o p t i ma l c o n t r o l l e r s y s t e m c o n v e n t i o n a l L QR .
t T
在忽略 了空气阻力 , 各 种 摩擦之后 , 可 将 直 线 一 级 倒 立 摆 系 统 抽 象 成 小 车 和
匀质杆组成 的系统 , 如 下 图
1所 示 。
假设 M 为小车质量 , m 为摆杆 质量 , b为 小 车 摩 擦 系数 , l 为 摆 杆 转 动 轴 b到 杆质 心 的 长度 , I 为 摆 杆 惯 量, F为加 在 小 车上 的力 , X为 小 车 位 置 , ‘ p 为 摆 杆 与垂 直 向 上 方
基 于 MA T L A B 的单 级 倒 立 摆 的 L QR控 制 研 究
基于 M A T L A B的单级倒立摆的 L Q R控制研究
S t u d y o f L QR Co n t r o l Si n gl e I n v e r t e d P e n du l u m B a s e d o n 本 文 以单 级 倒 立 摆 为 研 究 对 象 ,给 出系 统 状 态 空 间方 程 和

基于MATLAB的单级倒立摆系统研究

基于MATLAB的单级倒立摆系统研究
1 Ax Bu x= +
【=C +Du v x
图 1
其中 ,为状态 向量 ,i x 为状态向量对时间 的微分 , 为输出向量 , y u
图2
为输入或 控制 向量 , A为系统矩 阵 , B为输入矩阵 , C为输 出矩阵 , D为 前 向反馈矩阵。
2单级倒立摆系统的控制方法分析 . 21倒立摆系统的 PD控制方法 . I
(,,,) ( )一 x ABQR , K= K 。 u 2 倒立摆 系统 的模糊控制 . 3 模糊控制是以模 糊集合论 、模糊语言变量及模糊逻辑 推理 为基础 的计算机智能控 制。 模糊控 制的核心部分是模糊控制器, 其实现主要包 括3 个部分, 模糊化 、 即: 模糊推理 、 解模糊化 。 在倒立摆 系统 的控制 中,
的原理如图 Βιβλιοθήκη 所示 。 2 倒立摆 系统 的 L R控制方法 . 2 Q
二次最优调节器 ( Q 针对状态方程 := x B , L R1 是 x A + u 通过确定最佳
控制量 ut K (使得 控制性能 指标达 到极小 。其 中 Q为正定( (一 x) ) t 或半 正定 ) 厄米 特或实对称矩 阵 , R为正 定厄米特或实对 阵矩阵 , Q和 R分 别 表示对状态变量和输入变量的加权值 。 Q L R控制器 的增益 为 K L R =Q
单级倒立摆 系统的控 制性能进行 了仿真分析。 [ 关键词 ] 单级倒立摆 控制 系统 MA L T ̄ 仿真
0引 言 .
单级倒立摆系统是一个典 型多变 量 、不稳定和强耦合 的非线性 系 统。 对于单级倒立摆系统, 目前已有多种控制方法可对其实现稳摆控制。 典型的有线性 PD控制 、 I 常规 PD控制 、 Q I L R控制 、 智能控制等 。 倒立摆 的控制方法在军工 、 航天 、 机器人领域 和一般工业过程 中都有 着广 泛的 用途 , 如机器人行走过程 中的平衡控 制 、 火箭发射 中的垂直 度控制和卫 星飞行中的姿态控制等 。对倒立摆 系统的研究能有效地反 映控制中的 许多典型问题 , 如非线性问题 、 鲁棒性 问题 、 随动 问题 以及跟踪 问题等。 因此倒立 摆系统通 常用来检验 控制策略 的效果, 是控 制理 论研究 中较

用Matlab完成倒立摆系统的分析与综合

用Matlab完成倒立摆系统的分析与综合

现代控制理论用Matlab 完成倒立摆系统的分析与综合2013/5/23 Thursday 学号:**********杨 博用Matlab 完成倒立摆系统的分析与综合一、实验要求1、熟悉非线性系统数学模型的建立过程。

2、非线性数学模型的近似线性化。

3、判断系统的能控性及能观性。

4、学习利用MATLAB 来分析系统的能观性、能控性和稳定性(Lyapunov 第一法)。

5、掌握状态反馈极点配置控制,并能用MATLAB 仿真软件进行控制算法的仿真验证与分析。

二、实验原理底座导轨摆杆XFϕl图1 一级倒立摆系统模型 图2 小车水平方向受力分析图3 摆杆垂直方向的受力分析Pb ẋ N F小车水平方向受力: Mẍ+bẋ+N =F摆杆水平方向受力:2(sin )2d N m x l dtθ=+即: N =mẍ+mlθcos θ−mlθsin θ得第一个运动方程:(M +m )ẍ+bẋ+mlθcos θ−mlθsin θ=F摆杆垂直方向受力:2(cos )2d P mg m l dtθ-=力矩平衡方程:−Pl sin θ−Nl cos θ=Iθ=+θπφ,cos cos φ=-sin sin φθ=-第二个运动方程:(I +ml 2)θ+mgl sin θ=−mlẍcos θ 两个运动方程化简得:{(I +ml 2)ϕ−mgl∅=mlẍ(M +m )ẍ+bẋ−mlϕ=u拉普拉斯变换得:222()()()()22()()()()()I ml s s mgl s mlX s sM m X s s bX s s ml s s U s ⎧+Φ-Φ=⎪⎨⎪++-Φ=⎩三、实验内容1、一级直线倒立摆传递函数的建立 摆杆输出角度和电机作用力的传递函数为:2()2()()()432ml s s qU s b I ml mgl M m bmgls s s sq q q⋅Φ=+++⋅-⋅-⋅ 其中22[()()()]q M m I ml ml =++-2、一级直线倒立摆状态空间方程的建立求解可得ẍ、ϕ,整理后得到系统的状态空间方程为:010002222()00222()()()00010()00222()()()x x I ml b m gl I ml x xI M m Mml I M m Mml I M m Mml umlbmgl M m ml I M m Mml I M m Mml I M m Mml φφφφ⎡⎤⎡⎤⎢⎥⎢⎥⎡⎤⎡⎤-++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥++++++⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎢⎥⎢⎥++++++⎣⎦⎣⎦1000000100x x x y u φφφ⎡⎤⎢⎥⎡⎤⎡⎤⎡⎤⎢⎥==+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎢⎥⎣⎦3、MATLAB 仿真要求 ➢ 求出状态空间表达式矩阵。

基于MATLAB的一阶倒立摆的建模及仿真

基于MATLAB的一阶倒立摆的建模及仿真

b a s e d o n MATLAB
We i Zho ng -ha i
( GUA NG XI U NI VE R S I TY C o U e g e o f E l e c t r i c a l E n g i n e e r i n g ,Na n n i n g,5 3 0 0 0 4 )

阶倒 立 摆系 统进 行分 析 , 建 立其 数学 模 型 , ; fJ  ̄ Ma t l a b 软件 进行 仿真 验证 , 仿真 时 , 观察 不 同的 初始条 件 下倒 立摆 的运 行特 性 。
[ 关键 词] 倒立 摆 , 数 学 模型 , MAT L AB 软件 , 仿真
Mo d e l i ng a n d S i mu l a t i o n 0 f a n i n v e r t e d p e n d u l u m
1 倒立 摄 的简 介 图1 ( a ) 为直线 单级倒立摆 实 际设备 , 为方便分 析 , 将 其抽象 这小车 与摆杆 的 示意图, 如 图l ( b ) 所示 。 由于可 使摆 杆维持 直立不 倒 ; 这 和手持 木棒 使之直立 不倒 的现象很 类似 , 。 设加 在
[ A b s t r a c t ] t h e i n v e r t e d p e n d u l u m s y s t e m i s a t y p i c a l f a s t ,mu l t i v a r i a b l e ,n o n l i n e a r ,u n s t a b l e s y s t e n, s r t u d y t h e s t a b i l i t y 1 S o f g r e a t
工 业技 术

单级倒立摆控制系统设计及MATLAB中的仿真

单级倒立摆控制系统设计及MATLAB中的仿真

单级倒立摆控制系统设计及MATLAB中的仿真第一步是建立单级倒立摆的数学模型。

单级倒立摆可以通过旋转关节将一根质量均匀的细杆与一个平台相连。

细杆的一端固定在平台上,另一端可以自由旋转。

细棒的旋转角度用θ表示,质心的位置用x表示。

根据牛顿力学和杆的动力学方程,可以得到如下数学模型:1.摆杆的运动方程:Iθ'' + mgl sin(θ) = u - F (1)其中,I是摆杆的转动惯量,m是摆杆的质量,g是重力加速度,l是摆杆的长度,u是控制输入(摆杆上的转动力矩),F是摩擦力。

2.质心的运动方程:m(x'' - lθ'²cos(θ)) = F (2)接下来是设计控制器来控制单级倒立摆。

一个常用的控制方法是使用线性化控制理论,其中线性化是将系统在一些工作点附近线性近似。

在这种情况下,将摆杆保持在垂直方向,并使质心静止作为工作点。

线性化系统的转移函数为:H(s) = θ(s)/u(s) = (ml²s² + mg)/(s(ml² + I))为了稳定单级倒立摆,可以使用自动控制理论中的反馈控制方法,特别是状态反馈。

状态反馈根据系统的状态变量来计算控制器输入。

为了设计状态反馈控制器,首先需要判断系统的可控性和可观测性。

根据控制系统理论,如果系统是可控和可观测的,则可以设计一个线性状态反馈控制器来稳定系统。

在MATLAB中,可以使用控制系统工具箱来设计单级倒立摆的控制系统。

首先,通过建立系统的传递函数模型(由线性化系统得到)来定义系统。

然后,使用控制系统工具箱中的函数来计算系统的稳定极点,并确定所需的反馈增益以稳定系统。

最后,可以使用MATLAB的仿真工具来模拟单级倒立摆的响应,并进行性能分析。

在进行仿真时,可以将倒立摆的初始状态设置为平衡位置,并应用一个输入来观察系统的响应。

可以通过调整控制器增益和系统参数来改变系统响应的性能,例如收敛时间、超调量和稳态误差。

基于MATLAB的单级倒立摆控制系统设计

基于MATLAB的单级倒立摆控制系统设计

基于MATLAB的单级倒立摆控制系统设计单级倒立摆是一种常见的控制系统,其结构简单,但具有较强的动态控制性能。

本文基于MATLAB对单级倒立摆控制系统进行设计,并详细介绍了设计过程和结果。

首先,我们需要了解单级倒立摆的结构和动力学模型。

单级倒立摆由轴、电机和旋转杆组成,电机通过轴和旋转杆相连。

倒立摆的目标是使旋转杆竖直,即使旋转杆的角度保持为0°。

为了实现倒立摆的控制,我们借助PID(Proportional-Integral-Derivative)控制器。

PID控制器是一种常用的线性控制系统,其中,比例系数(P)、积分系数(I)和微分系数(D)能够根据系统的需求进行调整。

接下来,我们需要确定系统的控制目标。

倒立摆的目标是使旋转杆的角度保持为0°。

因此,我们需要设计一个控制器,使得当旋转杆角度发生偏差时,控制器能够迅速响应,并产生相应的控制信号。

首先,我们需要获取倒立摆的角度信息。

我们可以通过连接传感器获取角度信息,并将其输入到MATLAB中进行处理。

然后,我们需要设计PID控制器来控制倒立摆。

在MATLAB中,可以使用pid函数来创建PID控制器对象,然后使用tune函数来调整PID控制器对象的参数。

调整PID控制器参数的过程通常可以通过试验和观察实现。

我们可以将倒立摆设置为初始状态,并控制器输出控制信号,然后观察倒立摆的响应。

根据实际观察,我们可以逐步调整PID控制器的参数,以达到系统的稳定性和响应速度的要求。

在完成PID控制器的参数调整后,我们可以进行仿真实验。

在MATLAB中,可以使用sim函数来进行仿真实验。

通过仿真实验,我们可以观察倒立摆的控制效果,并根据需要进行进一步的调整。

通过在MATLAB中进行控制器设计和仿真实验,我们可以对单级倒立摆进行控制系统设计。

该设计可以帮助我们理解控制系统的工作原理,并为实际应用提供参考。

同时,我们还可以根据具体需求对设计进行进一步调整和优化。

基于MATLAB编程的倒立摆实验的实现

基于MATLAB编程的倒立摆实验的实现
路 而 非集 中 在 编 程 环 节 ,需 要 一 种 直 观 性 和 操 作 性 都 非
常好 的 编 程 工 具 。 MA T L AB软 件 恰 恰 在 这 两 个 方 面 具 有 突 出 的优 点 ,
图 1 倒 立 摆 示 意 图
目前 ,国 外 的控 制 等 相 关课 程 都将 其 作 为 一 种 标 准 的 工 图 中 O为 x坐 标 轴 原 点 ,也 即 设 定 的 小 车 运 动 的 具 编 写进 教 材 并 应 用 到 教 学 中 ,而 我 国 在 此 方 面 的课 程 正 方 向 , 为 小 车 位 移 。 0为 倒 立 摆 偏 离 平 衡 位 置 的 偏 改 革 还显 得 不 足 ,尤其 在 本科 生 的 教 学 中涉 及 的仍 然 很 移量 ,单 位 取 弧度 。o为 小 车 运 动 加 速 度 ,正 方 向与 坐
和倒 立 摆 的 偏 移 量 。在 本 实 验 中 , 尽 管 小 车 的 行 程
除 了 可 以对 算 法进 行仿 真 外 ,还 可 以利 用 MA T L A B 有 限 ,但 我 们 并 不 控 制 小 车 的位 移 ,只 关 心倒 立 摆 的输 实 现 对 算 法 的模 块 化 编 程 。其 具 体 实 现 与传 统 c语 言 编 出偏 移 量 。
程 的方 法 有 很 大 的不 同 ,它 已经 脱 离 了逐 行 书 写 程 序 代 对 其 进 行 受 力 分 析 ,在 小 车 运 动 中 ,倒 立 摆 受 到 两 码 的方 式 。类 似 利 用 S i mu l i n k模 块 进 行 仿 真 ,它 只需 通 个 力 :一 为 自身 的 重 力 Mg,一 为 小 车 运 动 对 倒 立 摆 产 过 模 块 搭 建 来 实 现 算 法 编 程 ,相 比 逐 行 书 写 代 码 的 方 生 的 惯 性 力 Ma ,其 方 向与 小 车 加 速 度 方 向相 反 。 式 ,其 算 法 结 构 更 清 晰 , 出错 概 率 大 幅下 降 ,最 主 要 的 根据牛顿运动定律 : 是 将 仿 真 与 实 验 紧 密 的 联 系 起 来 ,缩 短 了 编 程 时 间 ,可 以使 学 生 有 更 多 的精 力 对 实 验 的整 体 进 行 把 握 并 对 算 法

基于matlab的倒立摆设计

基于matlab的倒立摆设计

摘要 (I)Abstract (II)第一章绪论 (1)1.1倒立摆的研究背景 (1)1.2国内外现状 (2)1.3应解决的问题和技术要求 (2)1.4工作内容 (3)第二章 MATLAB仿真软件及应用 (4)2.1 MATLAB软件的基本介绍 (4)2.1.1软件概述 (4)2.1.2 软件的构成部分 (5)2.2 MATLAB的仿真 (5)第三章倒立摆系统及数学建模 (7)3.1 倒立摆系统的组成 (7)3.1.1 系统组成及分类 (7)3.1.2 倒立摆的控制方法 (7)3.1.3实验设备简介 (8)3.2模型的建立 (9)3.2.1 模型的推导原理 (9)3.2.2 直线一级倒立摆数学模型的推导 (9)3.2.4 采用MATLAB语句形式进行仿真 (15)第四章 PID控制理论 (17)4.1 PID控制概述 (17)4.2 PID的控制规律 (18)4.3 PID控制原理的特点 (20)4.4 PID参数的调整 (20)第五章直线一级倒立摆的PID设计及仿真 (22)5.1 PID控制器的设计 (22)5.1.1 PID控制系统设计原理 (22)5.2 PID控制器设计MATLAB仿真 (25)5.2.1 摆杆角度控制算法仿真 (25)5.2.2 小车位置控制算法仿真 (28)5.2.3结果分析 (29)总结 (30)致谢 (31)参考文献 (32)摘要自动控制原理(包括经典部分和现代部分)是电气信息工程学院学生的一门必修专业基础课,课程中的一些概念相对比较抽象,如系统的稳定性、可控性、收敛速度和抗干扰能力等。

倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。

对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等,对倒立摆系统的研究在理论上和方法上都有深远的意义。

通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。

倒立摆控制系统设计matlab

倒立摆控制系统设计matlab

倒立摆控制系统设计matlab倒立摆控制系统设计是一个在工程领域中非常重要的课题。

倒立摆是一个经典的控制系统问题,通过控制电机的力矩来使倒立摆保持平衡。

在这篇文章中,我们将使用Matlab来设计一个倒立摆控制系统,并逐步回答其中的关键问题。

首先,我们需要明确设计的目标。

在倒立摆控制系统中,我们的目标是使摆杆保持垂直位置。

为了实现这个目标,我们需要采用逆向控制方法,即通过测量摆杆当前状态以及目标状态之间的差异,并控制力矩,从而使摆杆回复到垂直位置。

接下来,我们需要构建倒立摆的模型。

倒立摆模型可以采用Euler-Lagrange动力学方程进行描述。

具体地,我们可以使用如下的动力学方程来描述倒立摆:m*L^2*θ''(t) + m*g*L*sin(θ(t)) = u(t) - b*θ'(t) - c*sat(θ(t)) 其中,m是摆杆的质量,L是摆杆的长度,θ(t)是摆杆的角度,u(t)是电机的力矩,b是摩擦系数,c是控制器增益。

在上述动力学方程中,μ(t)表示补偿力,其作用是抵消由于重力引起的非线性成分。

有了动力学方程之后,我们可以使用Matlab来进行数值仿真。

首先,我们需要定义模型的初始状态和控制器增益。

我们可以选择一个合适的初始状态,比如θ(0)=pi/4,θ'(0)=0,然后根据模型的特性来选择控制器增益c。

接下来,我们可以使用Matlab的ode45函数来求解动力学方程的数值解。

ode45函数是一种常用的数值积分器,可以对常微分方程进行数值求解。

在本例中,我们可以将动力学方程与初始条件传递给ode45函数,然后使用该函数来求解摆杆的角度θ(t)和角速度θ'(t)的变化。

在求解得到角度和角速度之后,我们可以使用反馈控制方法来设计控制器。

一种常见的控制器设计方法是使用PID控制器。

PID控制器基于当前状态与目标状态之间的差异来计算控制信号。

具体地,PID控制器的输出可以通过如下公式来计算:u(t) = Kp*e(t) + Ki*∫e(t)dt + Kd*e'(t)其中,u(t)是控制器的输出,Kp、Ki和Kd分别是比例、积分和微分增益,e(t)=θ(t)-θd(t)是当前状态与目标状态之间的差异,e'(t)=θ'(t)-θd'(t)是当前状态与目标状态之间的差异的一阶导数。

基于MATLAB的倒立摆最优控制设计和仿真

基于MATLAB的倒立摆最优控制设计和仿真
I NTE LLG E N T RO BO T
《 智能机器人》 O c t o b e r . 2 0 1 6 L l _ 二 1
J : MAT L AB 的倒 摆妓优控制 没计 仿典
广州海洋工程有限公司 姜洪发
摘 要 : 本 文通过 对单级倒 立摆控制 系统研 究和分析 ,采用 了线性二 次型最优控制 的方法 ,通过改 变二 次型
址 优控 f ; J J 设 汁 仿 r
( 4 ) 传送带与皮带轮之 间相互无滑动 ,并且传送带 是实
时 的:
车 垂直之 间 的夹角 0、摆 杆 的运 动速 度 、小 车的移 动位 置 和小车 的移动 速度 。将 上述 单级倒 立摆 的运动 系统 方程
( 5)各组件摩擦力 和阻尼对系统的影响可忽略 不计 ,除 导轨与滑块之 间的摩擦力和摆杆转动轴承 的摩擦力除外 。 设摆 杆与小 车垂 直位置之 间 的角度 为 0,倒 立摆 摆杆 的
± : 。




篆( z + c s i n o ) = H
,L

( 4 )
3倒立摆 系 统能 控性 分析
f + ) , +
摆杆 重心进行垂直运动时可表示为 :


、J
篆f c 0 s 0 = m 9
警 — H


系统具有 良好的能控性是进行系统控制器设计 的前提条件 。 根据 系统的状态方程和能控性 的矩阵方程 M= 【 B A B… A 。 B ] ,在 MA T L A B软件 中调用 矩阵可控 性指令 c t r b来进行该 系统可控
如网 1 所 示 为
本 文通过对单级倒立摆控 制系统进
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

运行结果及响应曲线如下:
num = 2.3566 0 0 den = 1.0000 0.0883 -27.8285 -2.3094 0 kd = 1 k= 1 ki = 1 numc = 2.3566 0 0 0 denc = 1.0000 2.4449 -25.4720 0.0471 0 0 初始PID参数摆角状态图 参数摆角状态图 初始
其中,num1,deni,num2.den2分别代表被控对象1和
被控对象2传递函数的分子和分母。
4 3
ml2 q
G2 (s) =
可以推出小车位置的传递函数为
X (s) = U(s)
s2 −
mgl q
s +
3
4 3
bml2 q
s2 −
(M + m)mgl bmgl s− q q
其中
q = [( M + m )( I + ml
2.小车位置变化仿真 仿真结果如下:
M = 1.096; m = 0.109; b = 0.1; I = 0.0034; g = 9.8; l = 0.25; q =(M+m)*(I+m*l^2) -(m*l)^2; %simplifies input num1 = [m*l/q 0 0] den1 = [1 b*(I+m*l^2)/q -(M+m)*m*g*l/q b*m*g*l/q 0] num2 = [-(I+m*l^2)/q 0 m*g*l/q] den2 = den1 kd = 20 k = 100 ki = 1 numPID = [kd k ki]; denPID = [1 0]; numc = conv(num2,denPID) denc = polyadd(conv(denPID,den2),conv(numPID,num 1)) t=0:0.05:5; impulse(numc,denc,t)
1.参照上例的处理方法,把实际系统参数代入,进行PID控制仿真,并找到合适的参数 2. 将小车推到导轨正中间位置,并且使摆杆处于自由下垂的静止状态;3.给计算机和 电控箱通电; 4.打开计算机,在DOS操作系统下,键入“Pend” 启动程序,并按“s”使系统处于准备状态; 5.按 “↑”键起摆,等摆杆立起来并稳定下来之后(此时为LQR控制),选择”控制器”菜单中的 “PID”,输入参数,观察小车和摆杆的运动;(注意由于控制器只对摆杆进行了控制,所以在PID中输入 参数后小车可能向一个方向运动,此时需用手轻轻扶一下摆杆) 6.按“T”停止摆杆,当摆杆处于自由下垂的静止状态,并在”控制器”菜单中选择“PID”,并参照仿真 结果,输入PID控制器参数, 观察小车和摆杆的运动;(通过调整参数可以控制摆杆摆起并能够竖直向上, 此时可能需用手轻轻扶一下摆杆,以避免小车“撞墙”)。 7.如果控制效果不理想,调整控制器参数,直到获得较好的控制效果; 8.运动曲线文件保存在当前路径下,其中pos_x.dat为小车位置,pos_t.dat为摆杆角度con_u.dat为控制量; 9.到MatLab中运行如下指令,MatLab会将保存的曲线重新绘制出来。 9 MatLab MatLab
单级倒立摆数学模型的建立
• 在忽略了空气流动,各种摩擦之后, 可将倒立摆系统抽象成小车和匀质 杆组成的系统
• • • • • • • • • •
那我们在本实验中定义如下变量: M 小车质量 m 摆杆质量 b 小车摩擦系数 l 摆杆转动轴心到杆质心的长度 I 摆杆惯量 F 加在小车上的力 x 小车位置 φ 摆杆与垂直向上方向的夹角 θ 摆杆与垂直向下方向的夹角 (考虑到摆杆初始位置为竖直向 下)
0
图20小车位置曲线 小车位置曲线
实验总结: 实验总结:
经过这次实验,让我更加了解matlab软件的操作,并加深认识信号之间 的处理和图像的处理,matlab的功能很强大,很多实验实不能做的实验 都可以用matlab仿真,表现了matlab强大的仿真及数据分析处理能力。 matlab作为当前空寂控制技术界最流行的面向工程与科学计算的高级语 言,他可以轻易地再现C语言几乎全部的功能。从本次的实验看来,在 线性控制系统的分析和仿真中, matlab拥有非常方便快捷的数据处理能 力。其实我了解matlab只是一小部分,在今后的日子我会继续学习 matlab,经过这次论文的写作,我对matlab的认识和应用有了更加深刻 的理解。从以往的仿照例证,开始观察某个问题,然后根据学过的一些 语句和模块的知识来处理一些较为简单的问题,并加以分析。因为这个 软件对我们这个专业来说很重要,而且matlab能帮助我们仿真很多实验, 通过这次实践我收获很大。
其中,G(1)S是摆杆 传递函数 ,G(2)S是 小车传递函数。
由于输入信号r(s) =0, 所以可以把结构图转换成:
从此框图我们可以看出此处只对摆杆角度进行了控制,并没有对小车位置进行控制。小车位置输出为
num 2 G2 (s) den 2 X (s) = F ( s) = F (s) ( numPID )( num1 ) 1 + KD ( s )G1 ( s ) 1+ ( denPID )( den1 ) = ( num 2 )( denPID )( den1 ) F (s) ( denPID )( den1 )( den 2 ) + ( numPID )( num1 )( den 2 )
目的: 目的: 设计PID控制器,使得当在小车上施加1N的脉冲信号时,闭环系统的响应指标为: 1、稳定时间小于5秒 2、稳态时摆杆与垂直方向的夹角变化小于0.1 弧度 分析: 分析: 系统输出量为摆杆的位置,它的初始位置为垂直向上,我们给系统施加一个扰动, 观察摆杆的响应。系统框图如下: 考虑到输入
num1 = 2.3566 0 0 den1 = 1.0000 0.0883 -27.8285 -2.3094 0 num2 = -0.8832 0 23.0942 den2 = 1.0000 0.0883 -27.8285 -2.3094 0 kd = 20 k= 100 ki = 1 numc = -0.8832 0 23.0942 0 denc = 1.0000 47.2194 207.8268 0.0471 0
倒立摆系统的构成
• 系统包括计算机、运动控制卡、伺服机构、倒立摆本体 和光电码盘几大部分,组成了一个闭环系统。光电码盘 1将小车的位移、速度信号反馈给伺服驱动器和运动控 制卡,摆杆的位置、速度信号由光电码盘2反馈回控制 卡。计算机从运动控制卡中读取实时数据,确定控制决 策(小车向哪个方向移动、移动速度、加速度等),并 由运动控制卡来实现该控制决策,产生相应的控制量, 使电机转动,带动小车运动,保持摆杆平衡。
2
) − ( ml ) 2 ]
可以看出,den1=den2=den , 小车的算式可以简化成: X (s) = Matlab 仿真 实际系统参数如下:
( num2 )(denPID) F (s) (denPID)(den ) + k ( numPID)(num1 )
M 小车质量 1.096 Kg m 摆杆质量 0.109 Kg b 小车摩擦系数 0 .1N/m/sec l 摆杆转动轴心到杆质心的长度 0.2 5m I 摆杆惯量 0.0034 kg*m*m F 加在小车上的力 x 小车位置 θ 摆杆与垂直方向的夹角 T 采样频率 0.005秒
调节PID参数后摆角输出图 参数后摆角输出图 调节
系统稳定时间约为4秒,满足要求。由于此时稳态误差为0, 所以不需要改变积分环节(你可以改变积分系数,观察系统响应如何变化); 系统响应的超调量比较大,为了减小超调,增加微分系数KD,取KD=20,响应结果和响应曲线如下:
num = 2.3566 0 0 den = 1.0000 0.0883 27.8285 -2.3094 0 kd = 20 k= 100 ki = 1 numc = 2.3566 0 0 0 denc = 微调PID参数后摆角状态曲线 微调 参数后摆角状态曲线 1.0000 47.2194 207.8268 0.0471 0 0 系统稳定时间约为1秒,超调约为0.04,响应满足指标要求。
=
num den
其中
q = [( M + m)( I + ml 2 ) − (ml ) 2 ]
PID控制器的传递函数为
K I K D s 2 + K P s + K I numPID KD ( s ) = K D s + K P + = = s s denPID
调节PID控制器的各个参数,以得到满意的控制效果调。 考虑小车位置,得到改进的系统框图如下:
系统响应是不稳定的,不能满足要求,需要调整参数 Kp,Kd,和K1,直到获得满意的控制结果。 首先增加比例系数Kp,观察它对响应的影响,取Kp=100,Kd=1,系统响应如 :
num = 2.3566 0 0 den = 1.0000 0.0883 27.8285 -2.3094 0 kd = 1 k= 100 ki = 1 numc = 2.3566 0 0 0 denc = 1.0000 2.4449 207.8268 0.0471 0 0
1.摆杆角度控制 首先,需要把输出为摆杆角度
φ
时系统的传递函数用Matlab表示出来, 建立一个m-文件,将下面几行表示传递函数的语句拷贝进去
M = 1.096; m = 0.109; b = 0.1; 其中函数polyadd 是求两个多项式之和的函数 I = 0.0034; 它不是Matlab 工具,因此必须把它拷贝到polyadd.m文件中, 并把该文件的目录用addpath 命令加到路径中。Polyadd函数内容如下: g = 9.8; l = 0.25; function[poly]=polyadd(poly1,poly2) q =(M+m)*(I+m*l^2) -(m*l)^2; %simplifies if length(poly1)<length(poly2) input short=poly1; num = [m*l/q 0 0] long=poly2; den = [1 b*(I+m*l^2)/q -(M+m)*m*g*l/q else b*m*g*l/q 0] short=poly2; kd=1 long=poly1; k=1 end ki=1 mz=length(long)-length(short); numPID= [ kd k ki ]; if mz>0 denPID= [ 1 0 ]; poly=[zeros(1,mz),short]+long; numc= conv ( num, denPID ) else denc= polyadd ( conv(denPID, den ), poly=long+short; conv( numPID, num ) ) end t = 0 : 0.05 : 5; impulse ( numc , denc , t )
相关文档
最新文档