matlab控制系统计算机辅助设计-长安大学

合集下载

MATLAB中常用的控制系统设计技巧

MATLAB中常用的控制系统设计技巧

MATLAB中常用的控制系统设计技巧MATLAB是一种广泛应用于科学与工程计算的高级编程语言和环境。

在控制系统设计中,MATLAB提供了许多强大的工具和函数,可以帮助工程师进行系统建模、分析与设计。

以下是MATLAB中常用的控制系统设计技巧的介绍:1.系统建模2.系统分析3.控制器设计在MATLAB中,有多种方法可以进行控制器设计。

根据系统的需求,可以选择经典(SISO)控制器设计方法,如PID控制器,或者现代(MIMO)控制器设计方法,如线性二次调节器(LQR)。

MATLAB提供了一系列用于系统控制器设计的函数和工具箱,如pidtool、sisotool和lqr。

4.基于优化的设计MATLAB中结合了优化算法和系统设计的功能,可以实现基于优化的控制器设计。

使用MATLAB的优化工具箱,可以通过最小化目标函数来优化控制器的性能指标。

例如,可以使用fmincon函数来优化控制器的参数,以满足给定的性能要求。

5.系统仿真MATLAB中的Simulink工具可以用于系统建模和仿真。

Simulink提供了一个图形化界面,用户可以使用不同的模块来描述系统的结构和行为。

通过连接这些模块,可以构建一个完整的系统模型,并对其进行仿真。

这种图形化的建模和仿真环境使得系统设计更加直观和灵活。

6.多变量系统分析MATLAB中的控制系统工具箱提供了多变量系统分析的功能。

可以使用函数如sigma(奇异值分解)、svd(奇异值分解)等来进行系统的频域分析。

此外,MATLAB还提供了一些用于多变量控制器设计的工具,如H∞合成和μ合成。

7.稳定性分析稳定性是控制系统设计中的一个重要指标。

MATLAB中提供了一些函数和工具箱,可以帮助用户分析系统的稳定性。

例如,可以使用margin 函数来计算系统的增益裕度和相位裕度,以评估系统的稳定性。

Matlab技术控制系统设计

Matlab技术控制系统设计

Matlab技术控制系统设计Matlab技术在控制系统设计中的应用引言控制系统是现代工程领域的重要组成部分,广泛应用于机械、电子、化工等各个行业。

而Matlab作为一种高级技术计算软件,以其强大的数学运算和数据处理功能,成为控制系统设计中的重要工具。

本文将通过介绍Matlab技术在控制系统设计中的应用,探讨其在不同环节的作用,并举例说明其在实际工程中的应用。

一、建模与仿真控制系统设计的第一步是建立准确的数学模型,并进行仿真验证。

而Matlab提供了丰富的工具箱,如Simulink、Control System Toolbox等,可以有效地进行系统建模和仿真。

在建模方面,Matlab提供了多种建模方法,例如状态空间法、传递函数法等。

我们可以根据实际问题选择适合的建模方法,并使用Matlab进行快速建模。

同时,Matlab还提供了多种模型分析工具,如频域分析、时域响应等,可以帮助我们对系统进行深入分析。

在仿真方面,利用Matlab的Simulink工具,我们可以直观地搭建整个控制系统的仿真模型。

通过设置输入信号和参数,我们可以模拟系统的运行过程,并得到准确的输出结果。

利用Matlab的仿真功能,可以有效地验证系统设计的可行性,提高设计的准确性和效率。

二、控制算法设计控制系统设计的核心是控制算法的设计。

Matlab提供了丰富的控制算法函数和工具箱,如PID控制器、根轨迹设计工具等,可以帮助工程师轻松实现各种经典和先进的控制算法。

以PID控制算法为例,Matlab提供了PID控制器设计工具,可以根据系统的数学模型自动计算出合适的控制增益,并通过仿真工具进行系统性能评估。

此外,Matlab还提供了自适应控制、模糊控制、最优控制等高级控制算法的实现工具,满足不同应用场景的需求。

同时,Matlab还支持使用优化算法进行控制器参数优化。

通过利用Matlab的优化工具箱,我们可以将控制系统的性能指标作为目标函数,结合系统模型和约束条件,自动搜索最佳的控制器参数。

控制系统计算机辅助设计-MATLAB语言与应用

控制系统计算机辅助设计-MATLAB语言与应用

20
国际上出版了关于 MATLAB及 CACSD 的专著和教材,但它们大都是MATLAB的
入门教材,并没有真正深入、系统地探讨 CACSD 技术及 MATLAB实现,将MATLAB
的强大功能与控制领域成果有机结合是本 书力图解决的主要问题。
2020/4/12
控制系统计算机辅助设计-MATLAB语言与应用
2020/4/12
控制系统计算机辅助设计-MATLAB语言与应用
17
除了经典的多变量频域方法之外,还出现了一些 基于最优化技术的控制方法,其中比较著名的是 英国学者 John Edmunds 提出的多变量参数最优化 控制方法和英国学者 Zakian 提出的不等式控制方 法等。
与此同时,美国学者似乎更习惯于状态空间的表 示与设计方法。此方法往往又称为时域方法 (timedomain),首先在线性二次型指标下引入了最优控 制的概念,并在用户的干预下(如人工选择加权矩 阵)得出某种最优控制的效果,这样的控制又往往 需要引入状态反馈或状态观测器新的控制概念。
辨识工具箱、鲁棒控制工具箱、多变量频域设计工 具箱、µ分析与综合工具箱、神经网络工具箱、最 优化工具箱、信号处理工具箱、以及仿真环境
Simulink。
2020/4/12
控制系统计算机辅助设计-MATLAB语言与应用
16
1.5 控制系统计算机辅助设计 领域的新方法
早期的 CACSD 研究侧重于对控制系统的计算机辅 助分析上,开始时人们利用计算机的强大功能把 系统的频率响应曲线绘制出来,并根据频率响应 的曲线及自己的控制系统设计经验用试凑的方法 设计一个控制器,然后利用仿真的方法去观察设 计的效果。
2020/4/12
控制系统计算机辅助设计-MATLAB语言与应用

控制系统计算机辅助设计MATLAB语言与应用教学设计

控制系统计算机辅助设计MATLAB语言与应用教学设计

控制系统计算机辅助设计MATLAB语言与应用教学设计背景介绍随着科学技术的不断发展,计算机在各个领域的应用越来越广泛,控制系统也不例外。

计算机辅助设计能够帮助控制系统工程师快速进行系统设计,提高设计效率和精度,降低错误率。

而MATLAB语言作为控制系统领域广泛应用的工具,能够更好地满足工程师的需求。

因此,本文将介绍控制系统计算机辅助设计MATLAB语言与应用教学设计。

教学目标1.熟练掌握MATLAB语言和控制系统的基础知识;2.能够设计控制系统的模型并进行仿真;3.能够分析和优化控制系统的性能参数;4.能够利用MATLAB工具进行控制系统实验。

教学内容本教学设计分为基础篇和进阶篇两部分。

基础篇MATLAB基础1.MATLAB语言环境搭建;2.熟悉MATLAB语言基本语法,如变量、函数、数组等;3.掌握MATLAB的数据类型、运算符及其使用方法;4.掌握MATLAB的流程控制语句;5.掌握MATLAB的图形化操作方法。

控制系统基础1.理解控制系统模型的基本概念;2.熟悉各种控制系统模型及其特点;3.理解闭环控制系统和开环控制系统;4.了解调节器和控制器的基本原理和分类;5.掌握各种控制系统的性能指标,如稳态误差、超调量、调节时间等。

控制系统模型设计与仿真1.构建控制系统模型;2.利用MATLAB进行控制系统建模;3.对控制系统模型进行仿真;4.分析控制系统仿真结果,如阶跃响应、脉冲响应等;5.通过仿真结果优化控制系统模型。

进阶篇PID控制1.理解PID控制器的基本原理和作用;2.了解PID控制器的数学模型及其参数调节方法;3.掌握MATLAB工具在PID控制系统设计中的应用;4.利用MATLAB对PID控制器进行参数优化。

其他控制算法1.了解其他常见控制算法的基本原理,如PI控制、PD控制等;2.掌握MATLAB工具在其他控制算法中的应用;3.对其他控制算法进行仿真和优化。

控制系统实验1.设计控制系统实验方案;2.利用MATLAB工具进行实验数据分析;3.分析实验结果,优化控制系统模型参数。

matlab控制系统计算机辅助设计-长安大学..

matlab控制系统计算机辅助设计-长安大学..
对单变量系统来说,校正装置接入系统的主要形式有两种,即串
联校正和并联校正。
3
6.1 基于传递函数的控制器设计方法
一般的控制目的是使得输出信号能很好地跟踪输入
信号,这样的控制也称为伺服控制。在这个基本的控制 结构下,误差信号E(s)和控制信号 U(s) 一般要求其尽可 能小。如图 6.2 所示系统,由于受控对象和控制器为串 联,故称其为串联控制。常用的串联控制有超前滞后校 正器和PID类控制器。 R(s)
p
φp φz 0
Z

-1/T
-1/ɑT
图6.3 超前网络零、极点在S平面上的分布
5
如图6.4可以看出, 引入这样具有正相位 的校正器,将增大前 向通道的相位,使其 相位“超前”于受控 对象的相位,因此称 为超前校正器。
超前校正器可使 校正后的闭环系统的 阶跃响应的速度加快, 超调量减小。
dB
L( )
在控制工程实践中,综合与校正的方法应根据特定的性能指标来
确定。一般情况下,若性能指标以稳态误差 e ss 、峰值时间 t p 、
最大超调量 p 、和过渡过程时间 t s 、等时域性能指标给出时, 应用根轨迹法进行综合与校正比较方便;如果性能指标是以相角裕 度r幅值裕度 K g 、相对谐振峰值 M 、谐振频率 r 和系统带宽 b r 等频域性能指标给出时,应用频率特性法进行综合与校正更合适。
15
性能指标常取为一个相对于状态x(t)和控制u(t)的二次型 积分性能指标,其形式为:
1 T 1 tf T J x (t f ) F x(t f ) x (t ) Q x(t ) u T (t ) R u (t ) dt 2 2 t0

《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案

《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案
polar(t,r);axis('square')
【17】
(1)z=xy
>>[x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
z=x.*y;
mesh(x,y,z);
>> contour3(x,y,z,50);
(1)z=sin(xy)
>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
【2】
相应的MATLAB命令:B=A(2:2:end,:)
>>A=magic(8)
A=
642361606757
955541213 515016
174746 202143 4224
4026273736 303133
323435 292838 3925
4123224445191848
491514 5253 11 10 56
【10】
function y=fib(k)
if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endﻭif nargout>1,error('出错:输出变量个数过多!');end
if k<=0,error('出错:输入序列应为正整数!');endﻭifk==1|k==2,y=1;ﻭelsey=fib(k-1)+fib(k-2);endﻭend
858 5954 62 631
>>B=A(2:2:end,:)
B =
955 541213515016
40262737 36303133
41232244451918 48
858 5954 62631

使用Matlab进行控制系统设计的基本步骤

使用Matlab进行控制系统设计的基本步骤

使用Matlab进行控制系统设计的基本步骤控制系统设计是一项重要的工程任务,它涉及到系统建模、控制器设计和系统分析等方面。

而Matlab作为一款强大的数学工具软件,提供了丰富的功能和工具,可以帮助工程师实现控制系统设计的各个环节。

本文将介绍使用Matlab进行控制系统设计的基本步骤。

一、系统建模控制系统设计的第一个关键步骤是系统建模。

系统建模是将实际的物理系统或过程转化为数学方程的过程。

Matlab提供了多种建模方法,可以根据实际需求选择适合的方法。

1.1 时域建模时域建模是一种基于微分方程和代数方程的建模方法,适合描述连续系统的动态特性。

可以使用Matlab的Simulink工具箱进行时域建模,通过拖拽模块和连接线的方式,构建系统模型。

1.2 频域建模频域建模是一种基于频率响应的建模方法,适合描述系统的幅频、相频特性。

可以使用Matlab的控制系统工具箱进行频域建模,通过输入系统的传递函数或状态空间矩阵,得到系统的频域特性。

1.3 时频域建模时频域建模是一种综合了时域和频域特性的建模方法,适合描述非线性和时变系统。

可以使用Matlab的Wavelet工具箱进行时频域建模,通过连续小波变换或离散小波变换,得到系统的时频域特性。

二、控制器设计在系统建模完成后,接下来是设计控制器。

控制器设计的目标是使得系统具有所需的稳定性、响应速度和鲁棒性等性能。

2.1 经典控制器设计Matlab提供了经典控制器的设计函数,如比例控制器(P控制器)、比例积分控制器(PI控制器)和比例积分微分控制器(PID控制器)等。

可以根据系统的特性和性能要求,选择合适的控制器类型和调节参数。

2.2 线性二次调节器设计线性二次调节(LQR)是一种优化控制方法,可以同时优化系统的稳态误差和控制能量消耗。

在Matlab中,可以使用lqr函数进行LQR控制器的设计,通过调整权重矩阵来获得不同的控制性能。

2.3 非线性控制器设计对于非线性系统,经典控制器往往无法满足要求。

控制系统计算机辅助设计MATLAB语言与应用第三版教学设计

控制系统计算机辅助设计MATLAB语言与应用第三版教学设计

控制系统计算机辅助设计MATLAB语言与应用第三版教学设计课程简介《控制系统计算机辅助设计MATLAB语言与应用》是一门针对控制系统理论与应用的课程,通过教学设定和实践操作让学生掌握MATLAB软件在控制系统设计中的应用。

本门课程主要内容包括控制系统基础、控制系统分析方法、MATLAB软件基础、MATLAB在控制系统设计中的应用等方面。

通过本课程学习,学生将深入掌握控制系统理论和计算机辅助设计方法,熟悉MATLAB语言的使用,掌握MATLAB在控制系统设计中的应用技巧。

教学目标本门课程的教学目标包括:1.掌握控制系统基本概念和控制系统设计原理2.熟悉MATLAB软件的基本操作和函数使用方法3.掌握控制系统仿真分析方法和MATLAB在控制系统设计中的应用技巧4.能够用MATLAB软件完成控制系统设计与仿真分析5.具备独立思考和解决实际问题的能力教学内容本门课程的教学内容主要包括以下几个部分:第一章:控制系统基础•控制系统概述•控制系统分类•控制系统组成结构•控制系统信号与变量•控制系统模型第二章:控制系统分析方法•系统时域分析方法•系统频域分析方法•系统稳定性分析方法第三章:MATLAB软件基础•MATLAB软件界面介绍•MATLAB基本命令与语法•MATLAB数据类型与数据结构第四章:MATLAB在控制系统分析与仿真中的应用•MATLAB在控制系统建模中的应用•MATLAB在控制系统分析与设计中的应用•MATLAB在实时控制中的应用第五章:课程实践项目•课程设计项目介绍•使用MATLAB完成控制系统设计和仿真分析总结本门课程旨在帮助学生掌握控制系统理论和计算机辅助设计方法,提升学生的实际操作能力和解决问题的能力。

通过课程学习与实践操作,可以让学生深入理解控制系统设计原理和MATLAB软件的使用方法,从而在实际工作中发挥出更高的效能。

基于Matlab辅助的“计算机控制技术”教学方法探讨_以“最少拍控制系统”设计为例

基于Matlab辅助的“计算机控制技术”教学方法探讨_以“最少拍控制系统”设计为例

基于Matlab辅助的“计算机控制技术”教学方法探讨_以“最少拍控制系统”设计为例基于Matlab辅助的“计算机控制技术”教学方法探讨:以“最少拍控制系统”设计为例摘要:计算机控制技术是现代自动化领域的核心内容之一,在这个领域中,掌握合适的教学方法对于学生的学习效果至关重要。

本文以“最少拍控制系统”设计为例,探讨基于Matlab辅助的计算机控制技术教学方法,并通过实践验证了该方法的有效性。

1. 引言计算机控制技术是自动化领域中的重要内容之一,它将计算机与控制系统相结合,实现对各种设备和过程的控制。

在计算机控制技术的教学中,如何提高学生的理论学习和实践能力是一个重要的问题。

本文通过引入Matlab辅助的教学方法,以“最少拍控制系统”设计为例,探讨了有效提高学生学习效果的教学方法。

2. Matlab辅助的教学方法计算机控制技术的理论性较强,学生往往难以理解其中的抽象概念和数学模型。

为了增强学生对理论知识的理解和掌握,可以采用Matlab辅助的教学方法。

Matlab是一种功能强大的数学软件,它能够将抽象的数学模型转化为直观的图形,有助于学生理解和记忆。

在计算机控制技术的教学中,教师可以通过设计一些简单的系统,并用Matlab进行仿真分析,在仿真实验中让学生观察系统的响应特性,并通过实验数据求解出系统参数。

这种实践性强、直观性好的教学方法,可以帮助学生更好地理解和掌握计算机控制技术的知识。

3. “最少拍控制系统”设计为了验证Matlab辅助的教学方法在计算机控制技术教学中的有效性,我们以“最少拍控制系统”设计为例进行了实践。

该系统的主要目标是设计一个控制器,使得系统在给定的最少拍数内稳定。

首先,我们通过Matlab进行仿真分析,得到系统的响应特性。

然后,我们根据系统的数学模型,设计了一个反馈控制器,并进行了仿真实验。

通过实验数据分析,我们得到了系统的最少拍数,并验证了控制器的设计是否有效。

4. 实验结果分析通过实验数据的分析,我们得到了系统的最少拍数为10。

控制系统计算机辅助设计_MATLAB语言与应用(第2版)薛定宇_课后复习题答案

控制系统计算机辅助设计_MATLAB语言与应用(第2版)薛定宇_课后复习题答案

第1章控制系统计算机辅助设计概述第2章 MATLAB语言程序设计基础第3章线性控制系统的数学模型第4章线性控制系统的计算机辅助分析第5章 Simulink在系统仿真中的应用第6章控制系统计算机辅助设计第1章控制系统计算机辅助设计概述【1】/已阅,略【2】已阅,略【3】已经掌握help命令和Help菜单的使用方法【4】区别:MATLAB语言实现矩阵的运算非常简单迅速,且效率很高,而用其他通用语言则不然,很多通用语言所实现的矩阵运算都是对矩阵维数具有一点限制的,即使限制稍小的,但凡维数过大,就会造成运算上的溢出出错或者运算出错,甚至无法处理数据的负面结果【5】【8】(1)输入激励为正弦信号(2)输入激励为脉冲模拟信号(3)输入激励为时钟信号(4) 输入激励为随机信号(5) 输入激励为阶跃信号δ=0.3δ=0.05δ=0.7结论:随着非线性环节的死区增大,阶跃响应曲线的围逐渐被压缩,可以想象当死区δ足够大时,将不再会有任何响应产生。

所以可以得到结论,在该非线性系统中,死区的大小可以改变阶跃响应的幅值和超调量。

死区越大,幅值、超调量将越小,而调整时间几乎不受其影响第2章 MATLAB语言程序设计基础【1】>> A=[1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1]A =1 2 3 44 3 2 12 3 4 13 24 1>>B=[1+4i,2+3i,3+2i,4+i;4+i,3+2i,2+3i,1+4i;2+3i,3+2i,4+i,1+4i;3+2i,2+3i,4+i,1+4i]B =1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i 1.0000 + 4.0000i3.0000 + 2.0000i 2.0000 + 3.0000i4.0000 + 1.0000i 1.0000 + 4.0000i >> A(5,6)=5A =1 2 3 4 0 04 3 2 1 0 02 3 4 1 0 03 24 1 0 00 0 0 0 0 5∴若给出命令A(5,6)=5则矩阵A的第5行6列将会赋值为5,且其余空出部分均补上0作为新的矩阵A,此时其阶数为5×6【2】相应的MATLAB命令:B=A(2:2:end,:)>> A=magic(8)A =64 2 3 61 60 6 7 579 55 54 12 13 51 50 1617 47 46 20 21 43 42 2440 26 27 37 36 30 31 3332 34 35 29 28 38 39 2541 23 22 44 45 19 18 4849 15 14 52 53 11 10 568 58 59 5 4 62 63 1>> B=A(2:2:end,:)B =9 55 54 12 13 51 50 1640 26 27 37 36 30 31 3341 23 22 44 45 19 18 488 58 59 5 4 62 63 1∴从上面的运行结果可以看出,该命令的结果是正确的【3】>> syms x s; f=x^5+3*x^4+4*x^3+2*x^2+3*x+6f =x^5 + 3*x^4 + 4*x^3 + 2*x^2 + 3*x + 6>> [f1,m]=simple(subs(f,x,(s-1)/(s+1)))f1 =19 - (72*s^4 + 120*s^3 + 136*s^2 + 72*s + 16)/(s + 1)^5m =simplify(100)【4】>> i=0:63; s=sum(2.^sym(i))s =615【5】>> for i=1:120if(i==1|i==2) a(i)=1;else a(i)=a(i-1)+a(i-2);endif(i==120) a=sym(a); disp(a); endend[ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, , , , , , 5, 7, 2, 9, 1, 20, 61, 81, 42, 723, 565, 288, 853, 141, 0994, 9135, 0129, 9264, 9393, 28657, 78050, 06707, 84757, 91464, , , , , , 8, 5, 3, 8, 31, 89, 20, 09, 29, 738, 167, 905, 072, 977, 6049, 9026, 5075, 4101, 9176, 83277, 82453, 65730, 48183, 413913, 662096, 076009, 738105, 814114, 0552219, 6366333, 6918552, 3284885, 0203437, 93488322, 23691759, 17180081, 40871840]【6】>>k=1;for i=2:1000for j=2:iif rem(i,j)==0if j<i, break;endif j==i, A(k)=i; k=k+1; break; endendendenddisp(A);Columns 1 through 132 3 5 7 11 13 17 19 23 29 31 37 41 Columns 14 through 2643 47 53 59 61 67 71 73 79 83 89 97 101 Columns 27 through 39103 107 109 113 127 131 137 139 149 151 157 163 167 Columns 40 through 52173 179 181 191 193 197 199 211 223 227 229 233 239 Columns 53 through 65241 251 257 263 269 271 277 281 283 293 307 311 313 Columns 66 through 78317 331 337 347 349 353 359 367 373 379 383 389 397 Columns 79 through 91401 409 419 421 431 433 439 443 449 457 461 463 467 Columns 92 through 104479 487 491 499 503 509 521 523 541 547 557 563 569 Columns 105 through 117571 577 587 593 599 601 607 613 617 619 631 641 643 Columns 118 through 130647 653 659 661 673 677 683 691 701 709 719 727 733 Columns 131 through 143739 743 751 757 761 769 773 787 797 809 811 821 823 Columns 144 through 156827 829 839 853 857 859 863 877 881 883 887 907 911 Columns 157 through 168919 929 937 941 947 953 967 971 977 983 991 997【7】说明:h和D在MATLAB中均应赋值,否则将无法实现相应的分段函数功能syms x; h=input(‘h=’); D=input(‘D=’);y=h.*(x>D)+(h.*x/D).*(abs(x)<=D)-h.*(x<-D)【10】function y=fib(k)if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endif nargout>1,error('出错:输出变量个数过多!');endif k<=0,error('出错:输入序列应为正整数!');endif k==1|k==2,y=1;else y=fib(k-1)+fib(k-2);endend【13】-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81【14】>> t=[-1:0.001:-0.2,-0.1999:0.0001:0.1999,0.2:0.001:1]; y=sin(1./t); plot(t,y);grid on;-1-0.8-0.6-0.4-0.20.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81【15】(1) >> t=-2*pi:0.01:2*pi; r=1.0013*t.^2;polar(t,r);axis('square')90270180(2) >> t=-2*pi:0.001:2*pi; r=cos(7*t/2);polar(t,r);axis('square')2700902701800(3) >> t=-2*pi:0.001:2*pi;r=sin(t)./t;polar(t,r);axis('square')90180【17】(1)z=xy>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);z=x.*y;mesh(x,y,z);>> contour3(x,y,z,50);-2-112-22-10-5510(1)z =sin(xy )>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3); z=sin(x.*y);mesh(x,y,z);>> contour3(x,y,z,50);-2-112-22第3章 线性控制系统的数学模型【1】(1) >> s=tf('s');G=(s^2+5*s+6)/(((s+1)^2+1)*(s+2)*(s+4)) Transfer function:s^2 + 5 s + 6--------------------------------s^4 + 8 s^3 + 22 s^2 + 28 s + 16(2) >> z=tf('z',0.1);H=5*(z-0.2)^2/(z*(z-0.4)*(z-1)*(z-0.9)+0.6) Transfer function:5 z^2 - 2 z + 0.2---------------------------------------z^4 - 2.3 z^3 + 1.66 z^2 - 0.36 z + 0.6 Sampling time (seconds): 0.1【2】(1)该方程的数学模型>> num=[6 4 2 2];den=[1 10 32 32];G=tf(num,den)Transfer function:6 s^3 + 4 s^2 + 2 s + 2------------------------s^3 + 10 s^2 + 32 s + 32(2)该模型的零极点模型>> G=zpk(G)Zero/pole/gain:6 (s+0.7839) (s^2 - 0.1172s + 0.4252)-------------------------------------(s+4)^2 (s+2)(3)由微分方程模型可以直接写出系统的传递函数模型【5】(1) >> P=[0;0;-5;-6;-i;i];Z=[-1+i;-1-i];G=zpk(Z,P,8)Zero/pole/gain:8 (s^2 + 2s + 2)-------------------------s^2 (s+5) (s+6) (s^2 + 1)(2) P=[0;0;0;0;0;8.2];Z=[-3.2;-2.6];H=zpk(Z,P,1,'Ts',0.05,'Variable','q')Zero/pole/gain:(q+3.2) (q+2.6)---------------q^5 (q-8.2)Sampling time (seconds): 0.05【8】(1)闭环系统的传递函数模型>> s=tf('s');G=10/(s+1)^3;Gpid=0.48*(1+1/(1.814*s)+0.4353*s/(1+0.4353*s));G1=feedback(Gpid*G,1)Transfer function:7.58 s^2 + 10.8 s + 4.8-------------------------------------------------------------- 0.7896 s^5 + 4.183 s^4 + 7.811 s^3 + 13.81 s^2 + 12.61 s + 4.8(2)状态方程的标准型实现>> G1=ss(G1)a =x1 x2 x3 x4 x5x1 -5.297 -2.473 -2.186 -0.9981 -0.7598x2 4 0 0 0 0x3 0 2 0 0 0x4 0 0 2 0 0x5 0 0 0 0.5 0b =u1x1 2x2 0x3 0x4 0x5 0c =x1 x2 x3 x4 x5y1 0 0 0.6 0.4273 0.3799d =u1y1 0Continuous-time state-space model.(3)零极点模型>> G1=zpk(G1)Zero/pole/gain:9.6 (s^2 + 1.424s + 0.6332)--------------------------------------------------------(s+3.591) (s^2 + 1.398s + 0.6254) (s^2 + 0.309s + 2.707)【11】>> Ga=feedback(s/(s^2+2)*1/(s+1),(4*s+2)/(s+1)^2);Gb=feedback(1/s^2,50);G=3*feedback(Gb*Ga,(s^2+2)/(s^3+14))Transfer function:3 s^6 + 6 s^5 + 3 s^4 + 42 s^3 + 84 s^2 + 42 s---------------------------------------------------------------------------s^10 + 3 s^9 + 55 s^8 + 175 s^7 + 300 s^6 + 1323 s^5 + 2656 s^4 + 3715 s^3+ 7732 s^2 + 5602 s + 1400【13】c1=feedback(G5*G4,H3)=G5*G4/(1+G5*G4*H3)c2=feedback(G3,H4*G4)=G3/(1+G3*H4*G4)c3=feedback(c2*G2,H2)=c2*G2/(1+c2*G2*H2)=G3*G2/(1+G3*H4*G4+G3*G2*H1)G=feedback(G6*c1*c3*G1,H1)=G6*c1*c3*G1/(1+ G6*c1*c3*G1*H1)=G6*G5*G4*G3*G2*G1/(1+G3*H4*G4+G3*G2*H1+G5*G4*H3+G5*G4*H3*G3*H4*G4+G5*G4*H3*G3* G2*H1+G6*G5*G4*G3*G2*G1*H1)【14】>> s=tf('s');c1=feedback(0.21/(1+0.15*s),0.212*130/s);c2=feedback(c1*70/(1+0.0067*s)*(1+0.15*s)/(0.051*s),0.1/(1+0.01*s));G=(1/(1+0.01*s))*feedback(130/s*c2*1/(1+0.01*s)*(1+0.17*s)/(0.085*s),0.0044/(1+ 0.01*s))Transfer function:0.004873 s^5 + 1.036 s^4 + 61.15 s^3 + 649.7 s^2 + 1911 s--------------------------------------------------------------------------- 4.357e-014 s^10 + 2.422e-011 s^9 + 5.376e-009 s^8 + 6.188e-007 s^7+ 4.008e-005 s^6 + 0.001496 s^5 + 0.03256 s^4 + 0.4191 s^3+ 2.859 s^2 + 8.408 s 第4章线性控制系统的计算机辅助分析【1】(1) >> num=[1];den=[3 2 1 2];G=tf(num,den);eig(G)ans =-1.00000.1667 + 0.7993i0.1667 - 0.7993i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(2) >> num=[1];den=[6 3 2 1 1];G=tf(num,den);eig(G)ans =-0.4949 + 0.4356i-0.4949 - 0.4356i0.2449 + 0.5688i0.2449 - 0.5688i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(3) >> num=[1];den=[1 1 -3 -1 2];G=tf(num,den);eig(G)ans =-2.0000-1.00001.00001.0000分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(4) >> num=[3 1];den=[300 600 50 3 1];G=tf(num,den);eig(G)ans =-1.9152-0.14140.0283 + 0.1073i0.0283 - 0.1073i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(5) >> s=tf('s');G=0.2*(s+2)/(s*(s+0.5)*(s+0.8)*(s+3)+0.2*(s+2));eig(G)ans =-3.0121-1.0000-0.1440 + 0.3348i-0.1440 - 0.3348i分析:由以上信息可知,系统的所有极点都在s域的左半平面,因此系统是稳定的【2】(1) >> num=[-3 2];den=[1 -0.2 -0.25 0.05];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =0.5000 0.5000 0.2000分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(2) >> num=[3 -0.39 -0.09];den=[1 -1.7 1.04 0.268 0.024];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =1.1939 1.1939 0.1298 0.1298分析:由以上信息可知,由于前两个特征根的模均大于1,因此该系统是不稳定的(3) >> num=[1 3 -0.13];den=[1 1.352 0.4481 0.0153 -0.01109 -0.001043];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =0.8743 0.1520 0.2723 0.2344 0.1230分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(4) >> num=[2.12 11.76 15.91];den=[1 -7.368 -20.15 102.4 80.39 -340];H=tf(num,den,'Ts',0.5,'Variable','q');abs((eig(H))')ans =8.2349 3.2115 2.3415 2.3432 2.3432分析:由以上信息可知,所有特征根的模均大于1,因此该系统是不稳定的【3】(1) >>-4-3.5-3-2.5-2-1.5-1-0.50x 10-6P ole-Zero Map Real Axis (seconds -1)I m a g i n a r y A x i s (s e c o n d s -1)A=[-0.2,0.5,0,0,0;0,-0.5,1.6,0,0;0,0,-14.3,85.8,0;0,0,0,-33.3,100;0,0,0,0,-10]; eig(A) ans =-0.2000 -0.5000 -14.3000 -33.3000 -10.0000分析:由以上信息可知,该连续线性系统的A 矩阵的所有特征根的实部均为负数,因此该系统是稳定的(2)>>F=[17,24.54,1,8,15;23.54,5,7,14,16;4,6,13.75,20,22.5589;10.8689,1.2900,19.099,…21.896,3;11,18.0898,25,2.356,9];abs(eig(F)') ans =63.7207 23.5393 12.4366 13.3231 19.7275分析:由以上信息可知,该离散系统的F 矩阵的所有特征根的模均大于1,因此该系统是不稳定的【4】>> A=[-3 1 2 1;0 -4 -2 -1;1 2 -1 1;-1 -1 1 -2]; B=[1 0;0 2;0 3;1 1];C=[1 2 2 -1;2 1 -1 2];D=[0 0;0 0];G=ss(A,B,C,D); tzero(G)pzmap(G)ans =-3.6124-1.2765结论:∴可以得到该系统的 零点为-3.6124、-1.2765分析:由以上信息可知,系统的特征根的实部均位于s 域的左半平面,因此该系统是稳定的>> s=tf('s');G=0.2*(s+2)/(s*(s+0.5)*(s+0.8)*(s+3)+0.2*(s+2)); Gc=sscanform(G,'ctrl')Go=sscanform(G,'obsv')a =x1 x2 x3 x4x1 0 1 0 0x2 0 0 1 0x3 0 0 0 1x4 -0.4 -1.4 -4.3 -4.3b =u1x1 0x2 0x3 0x4 1c =x1 x2 x3 x4y1 0.4 0.2 0 0d =u1y1 0Continuous-time state-space model.a =x1 x2 x3 x4x1 0 0 0 -0.4x2 1 0 0 -1.4x3 0 1 0 -4.3x4 0 0 1 -4.3b =u1x1 0.4x2 0.2x3 0x4 0c =x1 x2 x3 x4y1 0 0 0 1d =u1y1 0Continuous-time state-space model.(1)>> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];[R1,P1,K1]=residue(num,[den 0]);[R1,P1]ans =-1.2032 -8.0000-1.0472 -7.00000.2000 -6.00000.7361 -5.0000-2.8889 -4.00002.2250 -3.0000-2.0222 -2.00003.0004 -1.00001.0000 0>> [n,d]=rat(R1);sym([n./d]')ans =[ -379/315, -377/360, 1/5, 53/72, -26/9, 89/40, -91/45, 7561/2520, 1][阶跃响应的解析解]y(t)=(-379/315)*e-8t+(-377/360)*e-7t+(1/5)*e-6t+(53/72)*e-5t+(-26/9)*e-4t+(89/40)*e-3t +(-90/45)*e-2t+(7561/2520)*e-t+1(2) >> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];[R2,P2,K2]=residue(num,den);[R2,P2]ans =9.6254 -8.00007.3306 -7.0000-1.2000 -6.0000-3.6806 -5.000011.5556 -4.0000-6.6750 -3.00004.0444 -2.0000-3.0004 -1.0000>> [n,d]=rat(R2);sym([n./d]')ans =[ 3032/315, 887/121, -6/5, -265/72, 104/9, -267/40, 182/45, -7561/2520][脉冲响应的解析解]y(t)=(3032/315)*e-8t+(887/121)*e-7t+(-6/5)*e-6t+(-265/72)*e-5t+(104/9)*e-4t+(-267/40) *e-3t+Linear Simulation ResultsA m p l i t u d e(182/45)*e -2t +(-7561/2520)*e -t(3) >> syms t;u=sin(3*t+5); Us=laplace(u) Us =(3*cos(5) + s*sin(5))/(s^2 + 9) >> s=tf('s');Us=(3*cos(5)+s*sin(5))/(s^2+9);num=[18 514 5982 36380 122664 222088 185760 40320]; den=[1 36 546 4536 22449 67284 118124 109584 40320]; G=tf(num,den); Y=Us*G; num=Y.num{1}; den=Y.den{1};[R3,P3,K3]=residue(num,den); [R3,P3] ans =1.1237 -8.0000 0.9559 -7.0000 -0.1761 -6.0000 -0.6111 -5.00002.1663 -4.0000 -1.1973 - 0.0010i 0.0000 +3.0000i -1.1973 + 0.0010i 0.0000 - 3.0000i -1.3824 -3.0000 0.8614 -2.0000 -0.5430 -1.0000 >> [n,d]=rat(R3); sym([n./d]') ans =[109/97, 282/295, -59/335, -965/1579, 951/439, - 449/375 + (18*i)/17981, - 449/375 - (18*i)/17981, -1663/1203, 317/368, -82/151] [正弦信号时域响应的解析解]y(t)=(109/97)*e -8t+(282/295)*e -7t+(-59/335)*e -6t+(-965/1579)*e -5t+(-449/375)*e -4t+(-1663/1203)*e -3t +(317/368)*e -2t +(-82/151)*e -t-2.3947sin(3t) [输出波形]>> num=[18 514 5982 36380 122664 222088 185760 40320]; den=[1 36 546 4536 22449 67284 118124 109584 40320];G=tf(num,den); t=[1:.1:20]';u=sin(3*t+5); lsim(G,u,t);分析:由解析解可知,输出信号的稳态 部分是振荡的,并且其幅值与相位始终 在到达稳态的时候保持不变,因此 右图所示的输出波形与解析解所得的结论是一致的【10】(1)因为PI 或PID 控制器均含有Ki/s 项,这是一个对误差信号的积分环节,假设去掉这一环节,则当Kp →∞,即|e(t)|很小也会存在较大扰动,这会影响到系统的动态特性;当加入这一环节后,如果要求|e(t)|→0,则控制器输出u(t)会由Ki/s 环节得到一个常值,此时系统可以获得较好的动态特性,因此这两个控制器可以消除闭环系统的阶跃响应的稳态误差(2)不稳定系统能用PI 或PID 控制器消除稳态误差。

利用Matlab进行控制系统设计和分析

利用Matlab进行控制系统设计和分析

利用Matlab进行控制系统设计和分析控制系统是各个工程领域中不可或缺的一部分。

它可以用来控制机器人、飞行器、电机以及其他众多的实际工程应用。

Matlab作为一种功能强大的数值计算软件,提供了丰富的工具和函数来进行控制系统设计和分析。

本文将介绍如何利用Matlab来进行控制系统的设计和分析。

一、控制系统基本概念在开始之前,我们先来了解一些控制系统的基本概念。

控制系统由三个基本组成部分构成:输入、输出和反馈。

输入是指信号或者指令,输出则是系统对指令的响应,而反馈则是输出信号对系统输入的影响。

二、Matlab中的控制系统工具箱Matlab提供了专门用于控制系统设计和分析的工具箱。

其中最重要的是Control System Toolbox。

该工具箱中包含了一系列用于控制系统设计和分析的函数和工具。

使用Control System Toolbox,我们可以很方便地进行控制系统的建模、设计和分析。

三、控制系统的建模控制系统的建模是指将实际系统抽象为数学模型。

在Matlab中,我们可以使用State Space模型、Transfer Function模型以及Zero-Pole-Gain模型来描述控制系统。

1. 状态空间模型状态空间模型是一种常用的描述系统动态响应的方法。

在Matlab中,我们可以使用stateSpace函数来创建状态空间模型。

例如,我们可以通过以下方式创建一个简单的二阶状态空间模型:A = [0 1; -1 -1];B = [0; 1];C = [1 0];D = 0;sys = ss(A, B, C, D);2. 传递函数模型传递函数模型是另一种常用的描述系统动态响应的方法。

在Matlab中,我们可以使用tf函数来创建传递函数模型。

例如,我们可以通过以下方式创建一个简单的一阶传递函数模型:num = 1;den = [1 2];sys = tf(num, den);3. 零极点增益模型零极点增益模型是用来描述系统频域特性的一种方法。

Matlab进行控制系统的计算机辅助设计自动控制原理课设

Matlab进行控制系统的计算机辅助设计自动控制原理课设

自动控制原理课设报告班级: 08030902 姓名:王勋学号: 26时间:目录一、题目重述 (3)(1)设计目的 (3)(2)设计任务 (3)(3)设计步骤 (3)二、确定开环增益K (3)r三、绘制待校正系统特性曲线 (3)(1)待校正系统的频域特性曲线 (3)(2)待校正系统的时域特性曲线 (4)四、确定校正超前网络的交接频率 (5)五、选择系统的截止频率''c w和校正网络衰减因子α/1 (5)六、估算校正网络滞后部分的交接频率ω (5)a七、校验已校正系统的各项性能指标 (6)(1)动态性能指标 (6)(2)频域性能指标 (7)(3)稳定性 (8)八、校正前后系统的对比 (8)(一)时域性能对比 (8)(二)频域性能对比 (8)九、串联滞后校正可行性分析 (9)(一) 原理分析 (9)(二)可行性分析 (9)附录 (12)MATLAB代码:1、校正前系统 (12)2、校正后系统 (12)3、用matlab绘制校正前后系统的伯德图和响应曲线的对比 (12)4、用matlab求串联滞后系统的传递函数及响应、波特图 (12)参考文献 (14)一、 题目重述(1)设计目的:学习使用Matlab 进行控制系统的计算机辅助设计(2)设计任务:某单位反馈控制系统,其开环传递函数为)2)(1()(++=s s s K s G r (1-1) 试设计一个串联滞后-超前装置,使校正后系统:1、稳态速度误差系数等于101-s ;2、相位裕度045≥γ。

(3)设计步骤:1、用Matlab 编程绘制校正前后系统的伯德图、单位阶跃响应曲线,并从图中得出系统的频域及时域性能指标;2、对校正前后系统的性能进行比较,检验所设计系统性能指标是否达到要求;3、能否设计一个串联滞后校正装置,使系统达到设计要求?若能,将设计结果与串联滞后-超前设计结果进行对比,能得出什么结论?二、确定开环增益r K 由初始条件可知,系统的开环传递函数是:)2)(1()(++=s s s K s G γ,要求校正后的速度误差系数110-=s K v ,首先将传递函数化简成标准形式,可得到: )15.0)(1(2/)(++=s s s K s G γ 根据速度误差系数公式1102K K -==s γν可得到:120K -=s γ,则开环传递函数为: )15.0)(1(10)(++=s s s s G (2-1) 四、 绘制待校正系统特性曲线(1)待校正系统的频域特性曲线图3-1 待校正系统的波特图由上图可得:截止频率c w =s ,幅值裕度h=(dB),相位裕度γ= °,相位穿越频率g w = s ,幅值穿越频率p w = s 。

《MATLAB控制系统计算机辅助设计》实验指导书

《MATLAB控制系统计算机辅助设计》实验指导书

自动化专业(12个学时)《控制系统计算机辅助设计》实验指导书刘璎瑛南京农业大学工学院自动化教研室2012年6月目录实验一 Matlab环境熟悉与基本运算 (3)实验二 Matlab语言程序设计 (5)实验三控制系统时、频域仿真 (6)实验四控制系统模型的建立和分析 (8)实验一、Matlab 环境熟悉与基本运算一、实验目的1、掌握 Matlab 软件使用的基本方法;2、熟悉 Matlab 的数据表示、基本运算方法;3、熟悉 Matlab 绘图命令及基本绘图控制。

二、实验原理MATLAB 环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。

MATLAB 有3种窗口,即:命令窗口(The Command Window )、m-文件编辑窗口(The Edit Window )和图形窗口(The Figure Window ),而Simulink 另外又有Simulink 模型编辑窗口。

1.命令窗口(The Command Window )当MATLAB 启动后,出现的最大的窗口就是命令窗口。

用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。

在MATLAB 中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。

在命令窗口中输入该文件名,这一连串命令就被执行了。

因为这样的文件都是以“.m ”为后缀,所以称为m-文件。

2.m-文件编辑窗口(The Edit Window )我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。

在MATLAB 主界面上选择菜单“File/New/M-file ”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open ”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。

三、实验内容:1、矩阵运算(1)矩阵的乘法已知 A=[1 2;3 4]; B=[5 5;7 8]; 求 A^2*B(2)矩阵除法已知 A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; 求 A\B,A/B(3)矩阵的转置及共轭转置已知 A=[5+i,2-i,1;6*i,4,9-i]; 求 A.', A'(4)使用冒号选出指定元素已知: A=[1 2 3;4 5 6;7 8 9];求 A 中第 3 列前 2 个元素;A 中所有列第 2,3 行的元素; (5)复数矩阵的生成: 生成矩阵⎥⎦⎤+⎢⎣⎡+j b j b e a j b a ea jb 43422311a ,若a1=3,a2=-2,a3=9,a4=23,b1=5,b2=3,b3=6,b4=33,求出矩阵的具体数值。

控制系统计算机辅助设计MATLAB语言与应用第三版课程设计

控制系统计算机辅助设计MATLAB语言与应用第三版课程设计

控制系统计算机辅助设计MATLAB语言与应用第三版课程设计介绍MATLAB是一种强大的计算机辅助设计工具,它广泛应用于控制系统设计中。

本文将介绍控制系统计算机辅助设计MATLAB语言与应用第三版课程设计,包括课程设计的目的、内容、流程和注意事项。

希望本文能帮助到正在学习或教授这门课程的同学们。

目的控制系统计算机辅助设计MATLAB语言与应用第三版是一门专门为控制系统设计方向的本科生、硕士研究生和工程技术人员定制的课程。

本课程的目的是教授控制系统设计原理、MATLAB编程基础和应用技巧、以及用MATLAB辅助设计控制系统的方法和技术。

通过本课程的学习,学生将掌握MATLAB的基本语法,了解控制系统的基本原理和常见控制器的设计方法,能够使用MATLAB辅助设计控制系统、分析和优化控制系统的性能。

内容控制系统计算机辅助设计MATLAB语言与应用第三版主要包括以下内容:•MATLAB基本语法•系统建模与仿真•PID控制器设计与调节•线性二次调节器设计•状态反馈控制器设计•频域分析与设计•非线性控制系统设计•多变量系统控制流程控制系统计算机辅助设计MATLAB语言与应用第三版课程设计的流程如下:1.阅读课程教材,掌握各个章节的主要内容和知识点。

2.按照教材上的要求完成例题和习题,巩固理论知识并增强编程能力。

3.独立设计一个控制系统,包括系统建模、控制器设计和系统仿真。

4.提交设计报告和MATLAB代码。

注意事项在控制系统计算机辅助设计MATLAB语言与应用第三版课程设计中需要注意以下几点:1.认真学习课程教材,掌握基础理论和编程技能。

2.独立思考和设计,不要复制粘贴别人的代码。

3.注意代码的规范性和清晰性,写注释并保证代码能够正常运行。

4.在控制器设计和系统仿真时,要细心谨慎,注意每一步的操作和结果的正确性。

5.撰写设计报告时,注意排版规范,附上必要的截图和解释,表述清晰明了。

结论控制系统计算机辅助设计MATLAB语言与应用第三版课程设计,是一门重要的课程,掌握好这门课程对于控制系统工程师的未来发展大有裨益。

基于matlab计算机控制技术课程设计

基于matlab计算机控制技术课程设计

基于matlab计算机控制技术课程设计课程设计题目:车辆防撞及轨迹控制系统设计一、实验目的1.了解基于matlab的控制系统设计流程。

2.掌握汽车防撞及轨迹控制的基本原理。

3.学习控制系统的建模与仿真技巧。

二、实验内容根据实验要求,建立汽车防撞及轨迹控制系统模型,并进行仿真实验。

基本要求:1.建立车辆动力学模型。

2.设计制动力控制器,实现车辆防撞功能。

3.设计转向控制器,实现车辆轨迹控制功能。

三、实验步骤1.建立车辆动力学模型。

根据车辆动力学的基本原理,建立车辆动力学模型。

可以使用Simulink进行建模,包括车辆运动学模型和动力学模型。

2.设计制动力控制器,实现车辆防撞功能。

根据车辆防撞的基本原理,设计制动力控制器,实现车辆防撞功能。

可以使用PID控制器或其他控制算法来实现。

3.设计转向控制器,实现车辆轨迹控制功能。

根据车辆轨迹控制的基本原理,设计转向控制器,实现车辆轨迹控制功能。

可以使用PID控制器或其他控制算法来实现。

4.进行仿真实验。

使用Simulink进行仿真实验,验证设计的控制系统的可行性和有效性。

四、实验结果分析分析仿真实验结果,得出结论。

根据实验结果,优化控制器的设计参数,使得实验结果更优。

五、实验报告要求1.实验目的、原理、方法和步骤等。

2.实验系统的建模和仿真结果。

3.分析实验结果,得出结论。

4.控制器的优化设计。

5.总结与讨论。

六、实验考核方法实验报告撰写及答辩。

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

1/T ωm -20dB/dec
1/bT
ω
20lgb
Z -1/T
φz
P -1/αT
φp
0

0 -90
ω
7
图6.5
图6.6 滞后校正器的Bode图
3、超前滞后校正器
串联超前校正主要是利用超前网络的相角超前特性来 提高系统的相角裕量或相对稳定性,而串联滞后校正 是利用滞后网络在高频段的幅值衰减特性来提高系统 的开环放大系数,从而改善系统的稳态性能。
6.1.2 控制系统工具箱中的设计界面
MATLAB控制工具箱提供了控制器设计界面函数 sisotool(G,Gc),其中G为受控对象模型,Gc为控制器模型。
例:受控对象模型为 由下面语句启动 10( s 1) G( s) sisotool s( s 0.1)(s 10)(s 20) G=zpk([-1],[0,-0.1,-10,-20],10); Gc1=zpk(10,55,1)); %超前校正器 sisotool(G,Gc1)
E(s) Gc(s) U(s) G(s)
Y(s)
H(s)
6.2 串联校正
4
6.1.1 串联超前滞后校正器
1、超前校正器 超前校正器传递函数可写成: G(S)=K(1+αTS)/(1+TS) (6.1) 其有一个极点p(-1/T)和一个零点Z(-1/αT),它们在复平面 上的分布如图6.3所示. jω φm = φz - φp>0,相位超前作用. s
K [ R GT SG]1 BT S F
K可以由dlqr ( )函数求解。 注:由最优控制率表达式,可以看出,最优性取决于Q、 R矩阵的选择,但如何选择这两个矩阵没有解析的方法, 只能定性地选择。
21
例6.2 已知连续系统的状态方程模型参数为
0.3 0 0 0 1.358 0.0409 0.0491 2.615 0.6956 0.4 0.0982 0.0818 0 0 A 0 0.0478 0.25 0 0, B 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 Q diag(1000 ,0,1000 ,500,500), R I 2
第6章 控制系统计算机辅助设计
1
设计一个自动控制系统一般经过以下三步:
根据任务要求,选定控制对象;
根据性能指标的要求,确定系统的控制规律,并设计出满足这个 控制规律的控制器,初步选定构成控制器的元器件; 将选定的控制对象和控制器组成控制系统,如果构成的系统不能 满足或不能全部满足设计要求的性能指标,还必须增加合适的元 件,按一定的方式连接到原系统中,使重新组合起来的系统全面 满足设计要求。
15
性能指标常取为一个相对于状态x(t)和控制u(t)的二次型 积分性能指标,其形式为:
1 T 1 tf T J x (t f ) F x(t f ) x (t ) Q x(t ) u T (t ) R u (t ) dt 2 2 t0


设计的任务是确定一个控制u*(t) ,使得相应的性能指标 J[u*(t)]取得极小值。 从线性系统理论可知,许多设计问题所得到的控制 规律常具有状态反馈的形式。但是由于状态变量为系统 的内部变量,通常并不是每一个状态变量都是可以直接 量测的。这一矛盾的解决途径是:利用可量测变量构造 出不能量测的状态,相应的理论问题称为状态重构问题 ,即状态观测器问题。
如图6.8,单击FS可改变控制结构,单 击控制器模块可选择控制器。
图6.8
11
图6.9
12
工具栏可改变零极点
图6.10
Analysis菜单可显示各种响应和分析 曲线。
Tools/Draw Simulink Diagram菜单项 将自动绘制闭环系统的Simulink仿真 框图。
图6.11
13
6.2 基于状态空间模型的控制器设计方法
p
φp φz 0
Z

-1/T
-1/ɑT
图6.3 超前网络零、极点在S平面上的分布
5
如图6.4可以看出, 引入这样具有正相位 的校正器,将增大前 向通道的相位,使其 相位“超前”于受控 对象的相位,因此称 为超前校正器。
超前校正器可使 校正后的闭环系统的 阶跃响应的速度加快, 超调量减小。
dB
L( )
权阵 R diag{1 , 2 ,, r } , i 0, i 1,2,, r 则系统的
每一个反馈控制回路均具有: (1)至少±60º的相角裕度;(2)从0.5到无穷大的幅值裕度。 控制系统工具箱函数lqr( )的调用格式为:
[K,P,e]=lqr(A,B,Q,R)
其中:K为设计线性定常、连续时间系统的最优反馈增益 矩阵,P为Riccati方程的解,e为闭环系统的特征值, (A, B)为给定对象的状态方程模型。
对单变量系统来说,校正装置接入系统的主要形式有两种,即串
联校正和并联校正。
3
6.1 基于传递函数的控制器设计方法
一般的控制目的是使得输出信号能很好地跟踪输入
信号,这样的控制也称为伺服控制。在这个基本的控制 结构下,误差信号E(s) 和控制信号U(s) 一般要求其尽可 能小。如图 6.2 所示系统,由于受控对象和控制器为串 联,故称其为串联控制。常用的串联控制有超前滞后校 正器和PID类控制器。 R(s)
考虑线性、定常、连续控制系统,其状态空间描述为:
D v u B + + A F
xLeabharlann ∫xCy
用u(t)=v(t)-Fx(t)带入开环系统的状态方程模型,则有
x A x B u x(t0 ) x0 , t t0 y C x D u
14
如果系统(A, B)完全可控,则选择合适的F矩阵,可 以将闭环系统矩阵A-BF的特征值配置在任意地方。换句 话说,系统设计问题就是寻找一个控制作用 u(t) ,使得 在其作用下系统运动的行为满足预先所给出的期望性能 指标。设计问题中的性能指标可分为非优化型性能指标 和优化型性能指标两种类型。 非优化型指标是一类不等式型的指标,即只要性能指 标值达到或好于期望性能指标就算实现了设计目标,如 极点配置问题、解耦控制问题、跟踪问题、调节问题。 优化型指标则是一类极值型的指标,设计目标是要使 性能指标在所有可能值中取得极小(或极大)值。
控制器 原系统 控制对象 校正装置 图6.1 系统综合与校正示意图 原系统 校正系统
能使系统的控制性能满足控制要求而有目的地增添的元件 称为控制系统的校正器或称校正装置.
2
必须指出,并非所有经过设计的系统都要经过综合与校正这一步
骤,对于控制精度和稳定性能都要求较高的系统,往往需要引入 校正装置才能使原系统的性能得到充分的改善和补偿。反之,若 原系统本身结构就简单而且控制规律与性能指标要求又不高,通 过调整其控制器的放大系数就能使系统满足实际要求的性能指标。
u* (t ) R 1BT (t )
即u*(t)为最优解。而λ(t)可写为 (t ) P(t ) x(t )其中,
P R nn 满足下述Riccati矩阵代数方程:
18
P(t)的终值为P(tf )=F ,于是有最优控制信号为
u* (t ) R 1BT P(t ) x(t )
16
6.2.1 线性二次型最优调节器
考虑受控系统,其性能指标为:
1 T 1 tf T J x (t f ) F x(t f ) x (t ) Q x(t ) u T (t ) R u (t ) dt 2 2 t0


其中,Q和R分别为对状态变量和输入变量的加权矩阵,tf 为控制终止时间,F对控制系统的终值也给出某种约束。 线性二次型最优控制问题,简称为LQ(Linear Quadratic) 问题。就是寻找一个控制u*(t),使得系统沿着由指定初 态x0出发的相应轨线x*(t) ,其性能指标J取得极小值。 有限时间LQ问题:终端时刻tf是固定的,且为有限值 无限时间LQ问题: tf →∞
在控制工程实践中,综合与校正的方法应根据特定的性能指标来
确定。一般情况下,若性能指标以稳态误差 e ss 、峰值时间 t p 、
最大超调量 p 、和过渡过程时间 t s 、等时域性能指标给出时, 应用根轨迹法进行综合与校正比较方便;如果性能指标是以相角裕 度r幅值裕度 K g 、相对谐振峰值 M 、谐振频率 r 和系统带宽 b r 等频域性能指标给出时,应用频率特性法进行综合与校正更合适。
试由下面语句求系统状态反馈矩阵、Riccati方程解,以及 闭环特征值。 A=[-1.3576 0.3 0 0 0;2.6151 -0.6956 0.4 0 0; 0 0.0478 -0.25 0 0;-1 0 0 0 0;0 0 -1 0 0]; B=[0.0409 -0.0491;0.0982 -0.0818;zeros(3,2)]; Q=diag([1000 0 1000 500 500]); R=eye(2) [K,S,e]=lqr(A,B,Q,R)
T1s 1 T2 s 1 Gc( s) K T1 1 T2 s 1
其兼有超前和滞后校正器的优点。 由图6.7,α>1表示超前部分,β>1表 示滞后部分。
-1/T2 -1/βT2 -1/ɑT1

-1/T1
0

图6.7 超前滞后零极点在S平面上的分布
9
从频率响应的角度来看,串联滞后校正主要 用来校正开环频率的低频区特性,而超前校正 主要用于改变中频区特性的形状和参数。因此, 在确定参数时,两者基本上可独立进行。可先 根据动态性能指标的要求确定超前校正装置的 参数,在此基础上,再根据稳态性能指标的要 求确定滞后装置的参数。应注意的是,在确定 滞后校正装置时,尽量不影响已由超前装置校 正好了的系统的动态指标,在确定超前校正装 置时,要考虑到滞后装置加入对系统动态性能 的影响,参数选择应留有裕量。 10
相关文档
最新文档