MATLAB实验报告 下载本文

实验八控制系统PID 校正器设计法

一、实验目的

1、熟悉常规PID 控制器的设计方法 2、掌握PID 参数的调节规律

3、学习编写程序求系统的动态性能指标

二、相关知识——临界比例度法(边界稳定法)

用系统的等幅振荡曲线来整定控制器的参数。先测出系统处于闭环状态下对象的等幅振荡曲线,根据等幅振荡曲线定出一些能反映控制对象动态特性的参数,具体做法是将比例增益K(或比例度?=1/K)调在比较小的位置上(对应?为比较大位置上),逐渐增大K值(或逐渐减小?),直到出现等幅振荡曲线,此时的比例增益为Km,称为临界比例增益,?m?1/Km 称为临界比例度。从振荡曲线上读出临界周期Tm。根据得到的Km(或?m)、Tm两个参数,利用下表来计算控制器的控制参数。

控制器类型 P PI PID 控制器的控制参数 比例增益Kp 0.5Km 0.45Km 0.6Km 比例度? 2?k 2.2?k 1.7?k 积分时间Ti 微分时间Td 0 0 0.125Tm ? Tm/1.2 0.5Tm 三、实验内容

1、在SIMULINK 窗口建立如下页模型。 2、设计PID控制器,传递函数模型如下

Gc(s)?Kp[1?1?TDs] Tis

3、修改PID参数Kp、Ti、Td,讨论参数对系统的影响

4、利用临界比例度法(即:稳定边界法)对PID参数Kp、Ti、Td校正设计。

参 数 数 值 Km 0.68 Tm 1.991 Kp 0.306 Ti 1.6592 Td

5、根据PID参数Kp、Ti、Td对系统的影响,调节PID参数实现系统的超调量小于10%。

5

Step参数 数值

Kp Ti SubtractTd 6、通过程序求得系统的超调量、上升时间和调节时间(误差带选为5%) Subsystem四、实验报告要求:

写出程序及上机的结果,并对结果进行分析。

Gain178Transfer FcnSubtract1Transfer Fcn1Transfer Fcn20.00167s+144ClockTo Work spacet0.017s+10.075s+111 实验一 MATLAB环境的熟悉与基本运算 一、实验目的及要求 To Work space1ScopeTransfer Fcn31.熟悉MATLAB的开发环境; 2.掌握MATLAB的一些常用命令; 3.掌握矩阵、变量、表达式的输入方法及各种基本运算。 二、实验内容

3.矩阵运算:已知:A=[1 2;3 4]; B=[5 5;7 8]; 求:A*B、A.*B,并比较结果。 程序:A*BA.*B 结果:19 215 10 43 4721 32

6

结果分析:*表示矩阵相乘,而.*表示矩阵的各元素对应相乘 4.使用冒号选出指定元素:

已知:A=[1 2 3;4 5 6;7 8 9]; 求:A中第3列前2个元素;A中所有列第2,3行的元素; 程序:A(1:2,3)A(2:3,:) 结果:34 5 6 67 8 9

5.在MATLAB的命令窗口计算: 1) sin(2?)

2) (89?55?0.4)?4.5

程序:f=sin(2*pi) (89^(1/2)+55*0.4)/4.5 结果:f = -2.4493e-016ans = 6.9853 6.关系及逻辑运算

1)已知:a=[5:1:15]; b=[1 2 8 8 7 10 12 11 13 14 15],求: y=a==b,并分析结果程序:y=a==b

结果:y = 0 0 0 1 0 1 0 0 1 1 结果分析:

2)已知:X=[0 1;1 0]; Y=[0 0;1 0],求:x&y+x>y,并分析结果 程序:X&Y+X>Y 结果:0 1

1 0 结果分析: 7.文件操作

1)将0到1000的所有整数,写入到D盘下的data.txt文件

程序:x=[0:1:1000]

结果:save data.txt x -ascii –double

2)读入D盘下的data.txt文件,并赋给变量num 程序:num=load(‘data.txt’) 8.符号运算

1)对表达式f=x3-1 进行因式分解 程序:syms x f=x^3-1 factor(f)

结果:ans =(x - 1)*(x^2 + x + 1)

2)对表达式f=(2x2*(x+3)-10)*t,分别将自变量x和t的同类项合并 程序:syms x t

>> f=(2*(x^2)*(x+3)-10)*t;

7

1 >>collect(f,x) >> collect(f,t)

结果:ans =2*t*x^3 + 6*t*x^2 - 10*t ans =(2*x^2*(x + 3) - 10)*t

x?(1?z)3dz3)求

程序:syms x z >> f=x/(1+z)^3; >> int1=int(f,z)

结果:int1 =-x/(2*(z + 1)^2)

实验二 MATLAB 语言的程序设计

一、实验目的

1、熟悉 MATLAB 程序编辑与设计环境 2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉变量传递和赋值

二、实验内容

1.编写程序,计算1+3+5+7+…+(2n+1)的值(用input语句输入n 值)。 程序:function [s] = WFSSY21(x,n)

%UNTITLED2 Summary of this function goes here % Detailed explanation goes here n=input('please input n:'); s=0

for n=0:1:n x=2*n+1; s=s+x;

end

结果:please input n:5

s =36

0?x?1?x?f(x)??2?x1?x?2?0其它?2.编写分段函数的函数文件,存放于文件ff.m中,并求 f(?3),f(2),f(?)的值。

程序:function [ y] =WFSSY22( x )

%UNTITLED5 Summary of this function goes here % Detailed explanation goes here

8