2010MATLAB及控制系统仿真_2_matlab_2
控制系统matlab仿真实验报告2

09自动化张家明080312009081控制系统仿真实验报告实验2:MATLAB的数学运算、M文件及外部数据操作班级:09自动化报告人:张家明完成时间:2012-10-221. M文件和函数的创建1)创建一个计算阶乘的函数2)创建一个M文件,并用它调用1)所创建的函数进行阶乘计算3)创建一个能读取外部数据的函数,并建立一个有数据的外部文件,使用该函数读取文件中的数据并求数据之和、平均值。
1).M函数:function result=jc(n)result=1;for i=1:nresult=result*i;endresult2).创建一个M文件,在文件中输入:result=jc(6)运行结果:result =7203).M函数:function [data,average,total]=cal(x1)Fid=fopen(x1,'rt');if Fid==-1disp('file does not exist !')elsedata=fscanf(Fid, '%f',inf);fclose(Fid);dataaverage=mean(data)total=sum(data)end运行结果:>> cal('data.dat')09自动化张家明0803120090811234567891011121314151617181920average =10.5000total =2102. MATLAB的程序设计function result=find_zero(m,n)a=rand(m,n)<0.7result=zeros(m,1);for i=1:mfor j=1:nif ~a(i,j)result(i)=j;break;endendif result(i)==0result(i)=Inf;endendresult运行结果:>> find_zero(3,4)a =0 1 1 11 0 1 11 0 0 0result =1223. 编写函数:判断一个点与三角形的位置关系,能够给出点在三角形内部,在三角形边上,还是在三角形外部的信息。
应用MATLAB控制系统仿真

01
根据系统性能要求,设计比例、积分、微分控制器参数,优化
系统性能。
状态反馈控制器设计
02
通过状态反馈控制器设计,实现系统的最优控制。
鲁棒控制器设计
03
针对不确定性系统,设计鲁棒控制器,提高系统对参数变化的
适应性。
04
控制系统仿真的动态行为,通过建立和求解微 分方程来模拟系统的动态响应。
性能等。
05
Matlab控制系统仿真实 例
一阶系统仿真
总结词:简单模拟
详细描述:一阶系统是最简 单的控制系统,其动态行为 可以用一个一阶微分方程描 述。在Matlab中,可以使用 `tf`函数创建一个一阶传递函 数模型,然后使用`step`函 数进行仿真。
总结词:性能分析
详细描述:通过仿真,可以 观察一阶系统的响应曲线, 包括超调和调节时间等性能 指标。使用Matlab的绘图功 能,可以直观地展示系统的 动态行为。
THANKS FOR WATCHING
感谢您的观看
适用于模拟数字控制系统、采样控制系统等。
实时仿真
01
在实际硬件上实时模拟控制系统的动态行为,通过将
控制算法嵌入到实际控制系统中进行实时仿真。
02
使用Matlab中的`real-time workshop`等工具箱进
行建模和仿真,可以方便地实现实时仿真。
03
适用于模拟实际控制系统、验证控制算法的正确性和
实时仿真
Matlab支持实时仿真,可以在实 际硬件上运行控制算法,进行系 统测试。
02
控制系统数学模型
线性时不变系统
线性时不变系统(LTI)是指系统的输出与输入之间的关系 可以用线性常数来描述的系统。在控制系统中,LTI系统是 最常见的系统类型之一。
MATLAB实验报告3-控制系统仿真

MATLAB 实验报告3 控制系统仿真1、一个传递函数模型: )6()13()5(6)(22++++=s s s s s G 将该传递函数模型输入到MATLAB 工作空间。
num=6*[1,5];den=conv(conv([1,3,1],[1,3,1]),[1,6]);tf(num,den)2、 若反馈系统为更复杂的结构如图所示。
其中2450351024247)(234231+++++++=s s s s s s s s G ,s s s G 510)(2+=,101.01)(+=s s H 则闭环系统的传递函数可以由下面的MATLAB 命令得出:>> G1=tf([1,7,24,24],[1,10,35,50,24]);G2=tf([10,5],[1,0]);H=tf([1],[0.01,1]);G_a=feedback(G1*G2,H)得到结果:Transfer function:0.1 s^5 + 10.75 s^4 + 77.75 s^3 + 278.6 s^2 + 361.2 s + 120 -------------------------------------------------------------------- 0.01 s^6 + 1.1 s^5 + 20.35 s^4 + 110.5 s^3 + 325.2 s^2 + 384 s + 1203、设传递函数为:61166352)(2323++++++=s s s s s s s G 试求该传递函数的部分分式展开num=[2,5,3,6];den=[1,6,11,6];[r,p,k]=residue(num,den)图 复杂反馈系统4、给定单位负反馈系统的开环传递函数为:)7()1(10)(++=s s s s G 试画出伯德图。
利用以下MATLAB 程序,可以直接在屏幕上绘出伯德图如图20。
>> num=10*[1,1];den=[1,7,0];bode(num,den)5、已知三阶系统开环传递函数为:)232(27)(23+++=s s s s G画出系统的奈氏图,求出相应的幅值裕量和相位裕量,并求出闭环单位阶跃响应曲线。
MATLAB与系统仿真实验手册2010

MATLAB与控制系统仿真实验指导书河北大学电子信息工程学院20010年9月目录实验一MATLAB基本操作与基本运算 (1)实验二M文件及数值积分仿真方法设计 (3)实验三MATLAB 的图形绘制 (4)实验四函数文件设计和控制系统模型的描述 (6)实验五控制系统的分析与设计 (7)实验六连续系统离散化仿真方法设计 (8)实验七SIMULINK 仿真 (9)实验八SIMULINK 应用进阶 (10)附录MATLAB常用函数 (12)实验一MATLAB基本操作与基本运算一、实验目的及要求:1.熟悉MATLAB6.5的开发环境;2.掌握MATLAB6.5的一些常用命令;3.掌握矩阵、变量、表达式的输入方法及各种基本运算。
二、实验内容:1.熟悉MATLAB6的开发环境:①MATLAB的各种窗口:命令窗口、命令历史窗口、启动平台窗口、工作空间窗口、当前路径窗口。
图1 MA TLAB界面窗口②路径的设置:建立自己的文件夹,加入到MA TLAB路径中,并保存。
设置当前路径,以方便文件管理。
③改变命令窗口数据的显示格式>> format short>> format long然后键入特殊变量:pi (圆周率),比较显示结果。
2.掌握MATLAB 常用命令>> who %列出工作空间中变量>> whos %列出工作空间中变量,同时包括变量详细信息 >>save test %将工作空间中变量存储到test.mat 文件中 >>load test %从test.mat 文件中读取变量到工作空间中 >>clear %清除工作空间中变量>>help 函数名 %对所选函数的功能、调用格式及相关函数给出说明 >>lookfor %查找具有某种功能的函数但却不知道该函数的准确名称如: lookfor Lyapunov 可列出与Lyapunov 有关的所有函数。
《MATLAB与控制系统仿真》实验报告

《MATLAB与控制系统仿真》实验报告一、实验目的本实验旨在通过MATLAB软件进行控制系统的仿真,并通过仿真结果分析控制系统的性能。
二、实验器材1.计算机2.MATLAB软件三、实验内容1.搭建控制系统模型在MATLAB软件中,通过使用控制系统工具箱,我们可以搭建不同类型的控制系统模型。
本实验中我们选择了一个简单的比例控制系统模型。
2.设定输入信号我们需要为控制系统提供输入信号进行仿真。
在MATLAB中,我们可以使用信号工具箱来产生不同类型的信号。
本实验中,我们选择了一个阶跃信号作为输入信号。
3.运行仿真通过设置模型参数、输入信号以及仿真时间等相关参数后,我们可以运行仿真。
MATLAB会根据系统模型和输入信号产生输出信号,并显示在仿真界面上。
4.分析控制系统性能根据仿真结果,我们可以对控制系统的性能进行分析。
常见的性能指标包括系统的稳态误差、超调量、响应时间等。
四、实验步骤1. 打开MATLAB软件,并在命令窗口中输入“controlSystemDesigner”命令,打开控制系统工具箱。
2.在控制系统工具箱中选择比例控制器模型,并设置相应的增益参数。
3.在信号工具箱中选择阶跃信号,并设置相应的幅值和起始时间。
4.在仿真界面中设置仿真时间,并点击运行按钮,开始仿真。
5.根据仿真结果,分析控制系统的性能指标,并记录下相应的数值,并根据数值进行分析和讨论。
五、实验结果与分析根据运行仿真获得的结果,我们可以得到控制系统的输出信号曲线。
通过观察输出信号的稳态值、超调量、响应时间等性能指标,我们可以对控制系统的性能进行分析和评价。
六、实验总结通过本次实验,我们学习了如何使用MATLAB软件进行控制系统仿真,并提取控制系统的性能指标。
通过实验,我们可以更加直观地理解控制系统的工作原理,为控制系统设计和分析提供了重要的工具和思路。
七、实验心得通过本次实验,我深刻理解了控制系统仿真的重要性和必要性。
MATLAB软件提供了强大的仿真工具和功能,能够帮助我们更好地理解和分析控制系统的性能。
MATLAB与控制系统仿真

用tf( )命令可以建立一个传递函数模型,或将零极点增益模型和 状态空间模型转换为传递函数模型。 tf( )命令调用格式如下: Sys=tf(num,den): 用于生成S传递函数。
传递函数的部分分式展开 传递函数有时需要进行有理分式的分式展开。所谓部分 分式展开,就是将高阶的有理分式化为若干个一阶有理 分式之和的形式。如果传递函数G(s)不包含多重极点, 那么,将G(s)用部分分式展开后即可得到: n r
其中,k是常数项,对于真分式来说 k=0; r是各分式的系数,p是系统的极点。 MATLAB提供了一条函数residue( )可以求解有理分式的 部分分式展开,其基本调用格式为:(R,P,K)=residue(B,A) 其中B和A分别是降幂排列的该有理分式的分子和分母多 项式系数:R是求得的部分分式展开的各分式系数,P是 系统极点,K是常数项。
G1 ( s ) s5 ( s 1)(s 3 )
G2 ( s ) s 2 4s 4 )
系统输入信号为r(t)=sin(t),用Simulink求系统输出响应。
5.3.2 时域响应性能指标求取
调用单位阶跃响应函数step(),可以获得系统的单位阶跃 响应,当采用[y,t]=step(G)的调用格式时,通过对y,t的计 算,可以得到时域性能指标。 1. 峰值时间(timetopeak) [Y,k]=max(y) %求出y的峰值及相应的时间 timetopeak=t(k) %获得峰值时间 2 . 超调量(percentovershoot) C=dcgain(G) %求取系统的终值 [Y,k]=max(y) %求出y的峰值及相应的时间 percentovershoot=100*(Y-C)/C %计算超调量
MATLAB与控制系统仿真

第31页/共52页
传递函数描述
连续系统的传递函数模型
连续系统的传递函数如下:
G(s)
C(s) R(s)
b1s m a1s n
b2 s m1 a2 s n1
... bns ... ans
bm1 an1
(2)“%” 后面所有文字为注释. (3) “...”表示续行.
+ 加法运算,适用于两个数或两个同阶矩阵相加. — 减法运算 * 乘法运算 .* 点乘运算 / 除法运算 ./ 点除运算 ^ 乘幂运算 .^ 点乘幂运算 \ 反斜杠表示左除.
第3页/共52页
3、数学函数
函数 sin(x) cos(x) tan(x) abs(x) min(x) sqrt(x) log(x) sign(x)
end 步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,对 于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的 值小于终止值时,循环结束。
第8页/共52页
程序控制语句
while循环的基本格式为: while 表达式 循环体 end
若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若 为假则跳出循环体,向下继续执行,否则继续执行循环体。 • break:从循环体中跳出,并使循环结束
• Gzpk=zpk(Gtf) • [zz,pp,kk]=zp kdata(Gzpk ,’v’) • %获得G(s)的零点、极点和增益
• ZPK形式变换为TF形式
• Svv=tf(Sxx) • [nn,dd]=tfdata(Svv,’v’) • %获得分子分母多项式系数
第17页/共52页
《MATLAB及系统仿真》2010年课程简介

《MATLAB及系统仿真》2010年课程简介第一篇:《MATLAB及系统仿真》2010年课程简介课程编号:216317课程名称:MATLAB及系统仿真学分:2学分总学时:32学时其中授课学时:20学时上机学时:12学时先修课程:C语言、线性代数、信号与系统、通信原理开课部门:计算机与通信学院课程内容:本课程要求学生掌握:MATLAB基本语句结构,矩阵的基本运算,控制语句,M文件和M函数的编写与调用,绘图功能,数学函数库的调用,SIMULINK仿真。
通过本课程的学习,学生应能够在MATLAB 环境下解决常见的数学问题和工程问题,并且能利用MATLAB软件对通信系统里的各种调制和解调过程进行仿真分析。
选课对象:通信工程,计算机科学与技术、电子信息技术第二篇:电子信息MATLAB系统仿真与设计电子信息系统仿真与设计课程设计报告设计课题: 油价变化系统的模型姓名:学院: 机电与信息工程学院专业: 电子信息科学与技术班级: 09级 2班学号: 日期 2010-2011第三学期指导教师: 李光明张军蕊山东大学威海分校信息工程学院建模:1背景设某一星期的油价为p,其中n表示年份,它与上一星期的油价、油价升值速率以及新增资源所能满足的个体数目之间的动力学方程由如下的差分方程所描述:从此差分方程中可以看出,此油价变化系统为一非线性离散系统。
如果设油价初始值、油价升值速率、新增资源所能满足的个体数目,要求建立此油价动态变化系统的系统模型,并分析油价在未来100个星期内之间的变化趋势。
2 建立油价变化系统的模型(1)Discrete模块库Unit Delay模块:其主要功能是将输入信号延迟一个采样时间,它是离散系统的差分方程描述以及离散系统仿真的基础。
在仿真时只要设置延迟模块的初始值便可计算系统输出。
(2)Discrete模块库Zero-Order Hold模块:其主要功能是对信号进行零阶保持。
使用Simulink对离散系统进行仿真时,单位延迟是Discrete模块库中的Unit Delay模块来完成的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主讲教师:姜萍
1.2.2 MATLAB基本设计
1、变量
变量在使用前不需定义维数和大小。
命名规则:以字母打头、不含标点符号、最多不超过 19个字符,区分字母的大小写,如X1、 x1、 a、 A 等。另外要避免使用特殊变量。 变量可按需要定义成全局变量和局部变量:
• 典型 M函数文件的结构如下 :
函数申明行:位于函数文件的首行,以关键字 function 开头,函数名以及函数的输入输出变量都在 这一行被定义。 笫一注释行:紧随函数申明行之后以%开头笫一注释行。 该行供lookfor关键词查询和 help在线帮助使用 在线帮助文本区 :笫一注释行及其之后的连续以%开 头的所有注释行构成整个在线帮助文本。 编写和修改记录:与在线帮助文本区相隔一个“空”行, 也以%开头,标志编写及修改该M文件的作者日期等 。 函数体:为清晰起见,与前面的注释以“空”行相隔。 例:函数myguass.m 调用testguass.m
函数文件中定义的变量为局部变量,在函数内有效。
全局变量的定义: global 变量名
避免使用特殊变量:
特殊变量 取值 NaN 不定量 如0/0
ans
pi eps flops inf
结果的缺省变量名
圆周率 计算机的最小数 浮点运算数 无穷大 如1/0
ij
nargin
基本虚数单位
函数的输入变量数目
nargout 函数的输出变量数目 realmin 最小的可用正实数
矩阵块操作
可进行元素更改、插入子块、提取子块、重排子块、 扩大子块等。
冒号“:”的应用:代表全部
冒号“:”在列标位置:代表全部的列 冒号“:”在行标位置:代表全部的行
2、矩阵运算
1)矩阵与标量的运算 矩阵与标量进行+ - 和乘方运算时,是完 成矩阵的每个元素对标量的运算。 如a=[1 2 3;4 5 6] , 要运算a1=a+2, a2=a-2, a3=a*2 , a4=a/2 ; 矩阵乘方时要求矩阵为方阵,如b=[2 4;1 5], b1=b^2 %求平方b*b b2=b^(-1) %求b的逆矩阵 b3=b^(0.2) %对b开5次方 p18.m
3、常用特殊矩阵和矩阵函数
常用矩阵函数
命令 d=eig(A) 矩阵特征值 说明
[v,d]=eig(A) 矩阵特征值和特征向量
det(A)
inv(A) poly(A) trace(A) rank(A) orth(A)
行列式计算
求逆 特征多项式 对角元素之和 矩阵的秩 正交化
常用特殊矩阵
命令 A=[ ] 空矩阵 N维单位矩阵 全部元素都为1的矩阵 全部元素都为0的矩阵 元素为0到1之间均匀分布的随机矩阵 元素为零均值单位方差正态分布的随机矩阵 说明
format 命令方式
注意:format 命令仅仅只能改变数据的显示 格式,MATLAB的数值计算都采用双精度浮点 运算。
3、 常用标点符号
,和 ;可用于隔开放在一行中的多条命令,或 者命令的末尾,注意区别: 逗号,显示运行结果 分号;不显示运行的结果 … 如果一行中无法写下一个完整命令,可在行 尾加入三个连续的点,表示命令余下的部分在下 一行出现。 百分号%之后的所有文字为注释,注释为单行型。
五.不多时,可由FileSave Workspace As保存 工作空间当前所有变量(保存为***.mat)。类似地, 由File Import Data 可装载数据。 2、save、load命令:以二进制格式保存和读入 save 将工作空间所有变量以二进制格式存入matlab.mat save filename 将所有变量以二进制格式存入filename.mat save filename x y z 将变量x y z以二进制格式存入
MATLAB的关系操作符可以用来比较两个大小相同的数组, 或者比较一个数组和一个标量。在与标量比较时,结果和数组大 小一样。 例p38
2) 逻辑操作符:定义按照“与”、“或”、“非”的关系表达
式
&(与) |(或) ~(非) 3) NaN、Inf和空矩阵 例p40 NaN(Not a Number)表示: 0/0 或 Inf-Inf Inf表示: 1/0或计算中的数值上溢产生的
function g=myguass(a)
%The Solution of Linear Systems AX=B by Guassian Elimination %input a=[A|B] is augmented matrix %output g=x is the result %It was edited in Mar 20,2002 and modified in May 3,2003 by JP
基本的数据类型:
数据类型 举例 说明
double
char sparse cell struct uint8
[1 2;3 4]
‘hello’ speye(5) {17‘hello’eye(2)} a.day=12; a.color=‘red’; Uint8(magic(3))
双精度数值类型,最常用
字符数组,每字符16位 双精度稀疏矩阵,只存非0元素 细胞数组,元素可为不同类型、 维数
②函数文件
用于把重复的程序段封装起来,完成复杂 任务,可以输入输出参数,输入输出变量可以 是标量、数组、矩阵或字符串,也可以没有输 入输出参数。
函数文件的笫一行总是以 “function”引导的 “函数申明行”。基本格式: function [y1,y2,…]=myfunc(x1,x2,…)
关键字
filename .mat
save filename x y z –ascii 以8位ASCII代替二进制格式 与save相对应,可用load命令加载数据。 3、低级文件输入输出命令 常用基本命令 例inout.m
%inout.m
f1=fopen('test.txt','r') p=fscanf(f1,'%c') f2=fopen('C:\Documents and Settings\Administrator\桌 面\教学\simulation\程序 \chapter1\name1.m','w'); fprintf(f2,'%s15\n,%9.5f\n,%9. 5f\n,%4(3.5f)\n',p); fclose('all');
n=length(a)
for i=2:1:(n-1) %消元过程 for k=i:1:(n-1) m=a(k,i-1)/a(i-1,i-1); for j=1:1:n a(k,j)=a(k,j)-a(i-1,j)*m; end end end
%回代过程 for i=n-1:-1:1 f=0; for j=i+1:n-1 f=f+a(i,j)*x(j); end x(i)=(a(i,n)-f)/a(i,i); end g=x;
4、简单数学运算
MATLAB可以象计算器一样进行一些简单 的数学运算,如可直接输入16*12.2+25*1.82 计 算。常用运算符有: MATLAB支持常用的基本数学函数,要注 意只对弧度操作,如sin(30*pi/180)=0.5。 复数运算不需要特殊处理,用i、j和sqt(-x)表 示,运算时与实数运算形式相同。还可以用 real、imag、abs、angle命令来表示一个复数 的实部、虚部、幅值和相角。
A=eye( n ) A=ones(n,m) A=zeros(n,m) A=rand(n,m) A=randn(n,m)
1.2.4 MATLAB程序设计
MATLAB被成为第四代编程语言,具有极高的编 程效率,而且简单易学。 一、M文件 分成命令文件和函数文件两种: ①命令文件 用于把需在命令窗口执行的命令放在一起便于修 改,无输入参数也无输出参数,比函数文件简单。 命令文件可对工作空间的变量进行操作,而且运行 后 ,所产生的所有变量都驻留在工作空间,可被其它 M文件或 SIMULINK直接引用,直到关闭MATLAB或 使用清除指令clear。
四. 字符运算
可定义一串文字并进行字符串的处理与运算。字符 串是ASCII码的数值数组,每个字符占用2个字节存储。 定义格式:用单引号括起来‘ ’ x=‘Matlab is a software’ 字符串的转换 MATLAB定义一些字符串转换函数 例p41.m 字符串运算函数 eval命令是执行字符串的功能,可以执行一些操作 命令,运行已有的M函数,计算并赋值给其它变量。 例p43.m
(3)矩阵除法运算 有左除和右除两种: 左除: A\B=A-1B,A为方阵(X=A\B是A*X=B的解) 右除: A/B=AB-1,B为方阵(X=A/B是X*B=A的解) 通常A\B≠A/B p20.m
(4).矩阵点运算
矩阵有* \ / ^,向量有 .* .\ ./ .^。但矩阵也可用 点运算,是矩阵对应元素之间的直接运算(element by element)。点乘、点除要求矩阵的维数相同。 P21.m
全局变量 应在工作 空间和M 函数中都 要同时定 义。
testguass.m %命令文件调用myguass.m函数文件 a=[1 2 3;3 4 8] x=myguass(a)
二.程序结构和控制语句(主要是三种结构):
1、顺序结构 2、循环结构: 固定次数的for和不定次数的while
for 循环变量=数组范围 命令串 end myfor.m while 条件表达式 命令串 end mywhile.m
realmax 最大的可用正实数
2、 数据
MATLAB有多种数据类型。 MATLAB的数值计算都采用双精度浮点运算, 指定精度运算需用符号工具箱处理。在数值计算 中只能改变数值的显示格式。