MATLAB仿真应用_第5章(2)
matlab在电路分析和仿真中的应用
MATLAB/SIMULNK的主要产品及其相互关系
2019/8/3
MATLAB的优点
• 1. 容易使用 • 2. 可以由多种操作系统支持 • 3. 丰富的内部函数 • 4. 强大的图形和符号功能 • 5. 可以自动选择算法 • 6. 与其他软件和语言有良好的对接性
2019/8/3
matlab自定义的函数文件称内置函数文件
调用内置函数的方法:使用函数名并给出相应的入 口、出口参数即可。
例如:sin.m函数——用type sin查不到。
调用格式:y=sin(2*x)
1
实际应用中:
0.8
x=0:2*pi/180:2*pi;
0.6
y=sin(2*x)
0.4
0.2
plot(x,y)
0
• 包含matlab语言代码的文件称为m文件,其 扩展名为m。
• 编辑m文件可使用各种文本编辑器。
2019/8/3
m文件的创建
• m文件的类型是普通的文本文件,我们可以 使用系统认可的文本文件编辑器来建立m文件。 如dos下的edit,windows的记事本和word等。
• 具体的创建方法: 1. 在matlab命令窗
-0.2
2019/8/3
-0.4
-0.6
取R=255欧,L=125uH,C=6800pF,则:
H (s)
sRC s2LC sRC
1
85s2
1734000s 1734000s
1014
m文件如下: % LCR串联谐振电路 R=255; L=125*10^(-6); C=6800*10^(-12);
2019/8/3
使用帮助系统
MATLAB使用教程
2.2 变量和赋值
2.2.1 变量的命名 在MATLAB中,变量名是以字母开头, 后接字母、数字或下划线的字符序列, 最多19个字符。 在MATLAB中,变量名区分字母的大小 写。MATLAB提供的标准函数名以及命 令名必须用小写字母。
目录 21
2.2.2 赋值语句 MATLAB赋值语句有两种格式: (1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如 果在语句的最后加分号,那么,MATLAB仅仅 执行赋值操作,不再显示运算的结果。 在MATLAB语句后面可以加上注释,注释以% 开头,后面是注释的内容。
目录 22
例2.1 计算表达式的值,并将结果赋给变量x, 然后显示出结果。 在MATLAB命令窗口输入命令:
x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) %计算表达式的值
目录 23
2.2.3 数据的输出格式 MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 数据输出时用户可以用format命令设置或改 变 数 据 输 出 格 式 。 format 命 令 的 格 式 为 : format 格式符 注意,format命令只影响数据输出格式,而 不影响数据的计算和存储。
17
例1.4 设有常微分方程初值问题,试求 其数值解,并与精确解相比较。 (1)建立函数文件funt.m: function yp=funt(t,y) yp=(y^2-t-2)/4/(t+1); (2)求解微分方程: t0=0;tf=10;y0=2; [t,y]=ode23('funt',[t0,tf],y0); y1=sqrt(t+1)+1; t'
matlab控制系统课程设计
matlab控制系统课程设计一、课程目标知识目标:1. 学生能掌握MATLAB软件的基本操作,并运用其进行控制系统的建模与仿真。
2. 学生能理解控制系统的基本原理,掌握控制系统的数学描述方法。
3. 学生能运用MATLAB软件分析控制系统的稳定性、瞬态响应和稳态性能。
技能目标:1. 学生能运用MATLAB软件构建控制系统的模型,并进行时域和频域分析。
2. 学生能通过MATLAB编程实现控制算法,如PID控制、状态反馈控制等。
3. 学生能对控制系统的性能进行优化,并提出改进措施。
情感态度价值观目标:1. 学生通过课程学习,培养对自动化技术的兴趣和热情,提高创新意识和实践能力。
2. 学生在团队协作中,学会沟通与交流,培养合作精神和集体荣誉感。
3. 学生能认识到控制系统在现代工程技术中的重要作用,增强社会责任感和使命感。
课程性质:本课程为实践性较强的课程,注重理论知识与实际应用相结合。
学生特点:学生具备一定的数学基础和控制理论基础知识,对MATLAB软件有一定了解。
教学要求:教师需采用案例教学法,引导学生运用MATLAB软件进行控制系统设计,注重培养学生的实际操作能力和解决问题的能力。
同时,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 控制系统概述:介绍控制系统的基本概念、分类及发展历程,使学生了解控制系统的基本框架。
- 教材章节:第一章 控制系统概述2. 控制系统的数学模型:讲解控制系统的数学描述方法,包括微分方程、传递函数、状态空间方程等。
- 教材章节:第二章 控制系统的数学模型3. MATLAB软件操作基础:介绍MATLAB软件的基本操作,包括数据类型、矩阵运算、函数编写等。
- 教材章节:第三章 MATLAB软件操作基础4. 控制系统建模与仿真:利用MATLAB软件进行控制系统的建模与仿真,分析系统的稳定性、瞬态响应和稳态性能。
- 教材章节:第四章 控制系统建模与仿真5. 控制算法及其MATLAB实现:讲解常见控制算法,如PID控制、状态反馈控制等,并通过MATLAB编程实现。
第五章-Simulink与电力系统仿真精选全文
这样,所有的数据都将显示,在所需显示的数据相对较
多时,需要计算机有较大的内存容量。
“save data to workshop”被选中时,可以将显示数据放
到工作空间去,以备MATLAB的绘图命令调用。与此相
关的项目有两个,“Variable name” 代表要保存的数据
名称;“Format”为数据的保存格式,共有三种,Array
的分析与设计的计算机程序,利用该模块进行系统的分
析与综合,比用MATLAB/Simulink更加方便快捷,已
2024/9/28
4
经成为国际上许多学校自动控制课程的教学辅助工具, 在MathWorks网站控制类工具箱下载中长期排名第一。
2024/9/28
5
5.2 Simulink的进入及内 容 1、Simulink的常见进入 方法 ①在MATLAB的命令窗口 下输入如下的命令:
将2024/9/28
20
按采样间隔提取数据进行显示。
“floating scope”如被选中,则该示波器成为浮动示波器,
即没有输入接口,但可以接受其他模块发来的数据。
Data history选项卡:
“limit data points to last”为最后可以保存的用于显示的
数据的最多点数,默认值为5000点。也可以不选这一项,
已经远远地超出了“矩阵相关计算”这个狭小的范围。 由于MATLAB在其软件设计之初,其开发者Cleve Moler 教授就秉承开放性的理念,在1993年的Simulink1.0出现
以后,人们发现这是许多科学家和工程技术人员梦寐以 求的仿真形式,从此以后,许多领域的顶尖科研人员以
2024/9/28
3
MATLAB语言为依托,编写了自己所从事领域的 Simulink工具箱,如控制界最流行的控制系统工具箱 (Control System Toolbox),系统辩识工具箱(System Identification Toolbox),鲁棒控制工具箱(Robust Control Toolbox),神经网络工具箱(Neural Network Toolbox),模型预测控制工具箱(Model Predictive Control Toolbox),还有如航空宇宙模块集(Aerospace Blockset),机械系统仿真模块(SimMechanics),电 力系统仿真模块(SimPowerSystems)甚至如生物系统 仿真模块(SimBiology)等。这其中,也有一些杰出中 国学者的贡献,如东北大学薛定宇教授在Control Kit的 基础上开发的CtrlLAB工具箱是专门用于反馈控制系统
matlab课程设计
二阶弹簧—阻尼系统PID控制器设计及其参数整定班级:自动化12-1班_姓名: ________学号: _________指导老师: ______前言 (1)一、MATLAB产生的历史背景 (1)二、MATLAB的语言特点 (2)三、Matlab的典型应用 (3)第一章、比例控制系统 (4)第二章、积分控制系统 (4)第三章、比例积分系统 (5)第四章、比例积分微分系统 (5)第五章、原理的应用仿真 (7)第六章、仿真的结果 (8)第七章、结果分析 (12)第八章、结论 (12)心得体会 (14)参考文献 (15)PID控制器结构简单,其概念容易理解,算法易于实现,且具有一定的鲁棒性,因此,在过程控制领域中仍被广泛使用,除非在特殊情况下证明它不能满足既定的性能要求。
对于单输入单输出的系统,尤其是阶跃响应单调变化的低阶对象,已有大量的PID整定方法及其比较研究。
当对象的阶跃响应具有欠阻尼特性时,如果仍近似为惯性对象,被忽略的振荡特性有可能引起控制品质的恶化。
现有的一些针对二阶欠阻尼对象的PID整定方法,例如极点配置方法,幅值相位裕量方法等,尽管在各自的假设前提下取得了较好的控制效果,但并非适用于所有的二阶欠阻尼对象,其性能鲁棒性问题也有待讨论。
本文通过使用MATLAB对二阶弹簧—阻尼系统的控制器(分别使用P、PI、PID控制器)设计及其参数整定,定量分析比例系数、积分时间与微分时间对系统性能的影响。
同时,掌握MATLAB语言的基本知识进行控制系统仿真和辅助设计,学会运用SIMULINK对系统进行仿真,掌握PID控制器参数的设计。
一、MATLAB产生的历史背景在20世纪70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库。
EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库。
在当时,这两个程序库代表矩阵运算的最高水平。
第五章 MATLAB与电力系统仿真
(6)三相电源元件(3-Phase Source) 三相电源元件是电力系统设计中最常见的电路元件,也 是最重要的元件,其运行特性对电力系统的运行状态起到决 定性的作用。三相电源元件提供了带有串联RL支路的三相电 源。 (7)三相可编程电压源元件(3-Phase Programmable Voltage Source) 三相可编程电压源是可以对其进行编程的三相电压源, 它的幅值、相位、频率、谐波均可随时间进行变化,应用非 常灵活。其主要作用是提供一个幅值、相位、频率、基频分 量进行实时编程的三相电压源;此外,还可以提供两个谐波 分量,作用于基频信号。
仿真结果及分析: 合理设置示波 器参数后,激活仿 真按钮,得到仿真 结果如图所示。示 波器1输出的电压波 形为交流电压源U1 和U2的叠加,横轴 为时轴,纵轴为电 压幅值。从仿真结 果可见,在交流电 路中,多个交流电 压源共同作用的结 果等效于一个非线 性电压源。
图
例1 仿真结果
5.1.2 电力系统电路图模型结构分析 利用电力系统工具箱建立电路图模型,操作简单,熟悉电路元件的人员 可以很容易地掌握建立电力系统数学模型的方法,避免了利用程序建模 的复杂步骤。根据上一小节示例的建模方法可以很容易建立起电力系统 的电路图模型。在MATLAB软件中,提供了一种对电路图进行分析的方 法,这就是power2sys函数。利用该函数,可以对电路图的结构特征、 状态方程等进行较为全面的分析。 power2sys 函数的表达式如下: psb=power2sys('sys','structure') 用来显示电路图的结构 psb=power2sys(‘sys’,‘sort’) 用来显示电路图中元件和支路的信息 psb=power2sys(‘sys’,‘ss’) 将电路图模型转换为状态方程 [A,B,C,D,x0,states,inputs,outputs,uss,xss,yss,freqyss,Hlin]= psb=power2sys('sys') 用来显示电力系统模型的结构信息 psb=power2sys('sys','net') 用来显示电力系统的网络结构
《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案
【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语言与应用(第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 =0615【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, , , , , 5, 1, 6, 7, 3, 70, 03, 73, 76, 49, , 074, 099, 173, 272, 2445, 3717, 6162, 9879, 6041, 55920, 81961, 37881, 19842, 106, 177565, 035288, 212853, 248141, 0460994, , 1170129, 1879264, 8065, , , , 00884757, , 0, 5, 6, 1, 0, 88, , 673, 58, 931, , 120, , 029, 4, 2, 9905, 3072, 2977, 46049, 69026, 15075, 40, 99176, 083277, 082453, 165730, 248183, 7576, 62096, , 4738105, 5814114, 9, 186333, , 284885, 9, 3488322, 9, 0, 0]【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】【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;【15】(1) >> t=-2*pi:0.01:2*pi;r=1.0013*t.^2;polar(t,r);axis('square')(2) >> t=-2*pi:0.001:2*pi;r=cos(7*t/2);polar(t,r);axis('square')(3) >> t=-2*pi:0.001:2*pi;r=sin(t)./t;polar(t,r);axis('square')(4) >> t=-2*pi:0.001:2*pi;r=1-cos(7*t).^3;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);z=sin(x.*y);mesh(x,y,z);>> contour3(x,y,z,50);第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.6Sampling 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 x5 x1 -5.297 -2.473 -2.186 -0.9981 -0.7598x2 4 0 0 0 0 x3 0 2 0 0 0 x4 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) >> 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,…-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)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 分析:由以上信息可知,【5】>> s=tf('s');Gc=sscanform(G,'ctrl') Go=sscanform(G,'obsv') a =x1 x2 x3 x4 x1 0 1 0 0 x2 0 0 1 0 x3 0 0 0 1 x4 -0.4 -1.4 -4.3 -4.3 b =u1 x1 0 x2 0 x3 0 x4 1 c =x1 x2 x3 x4 y1 0.4 0.2 0 0 d =u1 y1 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.【9】(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+(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.00000.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.00000.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]Linear Simulation Results Time (seconds)A m p l i t u d e [正弦信号时域响应的解析解]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(2)不稳定系统能用PI 或PID 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。
matlab语言第5章 Simulink仿真设计
信号源模块(Sources)
l Band-Limited White Noise:宽带限幅白噪声; l Chirp Signal:线性调频信号(频率随时间线性变 化的正弦波);
l Clock:时钟信号; l Constant:常数输入; l Counter Free-Running:自动计数器,发生溢出后, 从0开始重新计数;
分; lPID Controller:PID控制; lPID Controller(2DOF):二维PID控制; lState-Space:状态空间模型; lTransfer-Fcn:传递函数模型; lTransport Delay:输入信号延迟一个固定时间输出; lVariable Time Delay:输入可变时间信号延迟输出; lVariable Transport Delay:输入信号延迟可变输出; lZero-Pole:零极点模型。
3. Simulink模型的创建和仿真
以图示系统建立Simulink模型
模型建立
(1)启动工具箱 (2)建立Simulink空白模型 (3)根据系统模型选择模块 首先要确定所需模块所在的子模块库名称。例子中用 到的模块有单位阶跃信号﹑符号比较器﹑传递函数模 型和信号输出模块,分别属于信号源模块库﹑数学运 算模块库﹑连续模块库和输出模块库。在模块库浏览 器中打开相应的模块库,选择所需模块。
常用模块库(Commonly Used Blocks)
l Bus Creator:将输入信号合并为总线信号; l Bus Selector:由总线信号选择需要的信号输出; l Constant:常数信号; l Data Type Conversion:数据类型转换模块; l Delay:延迟模块; l Delux:信号分解模块; l Discrete-Time Integrator:离散时间积分器; l Gain:增益模块; l Ground:接地模块; l In1:输入模块; l Integrator:输入信号积分;
matlab及工程运用全
Command Window操作要旨
1.指令窗的显示方式 :默认的输入显示方式、运算
结果的显示、显示方式的永久设置。
2.指令中的标点符号: 3.常用控制指令 4.常用键盘控制
指令窗的显示方式
指令中的 标点符号
常用控制指令
常用键盘控制
帮助系统及其使用
常用帮助指令
help 列出所有函数分组名(Topic Name) help TopicName 列出指定名称函数组中的所有函数 help FunName 给出指定名称函数的使用方法 helpwin 列出所有函数分组名(Topic Name) helpwin TopicName列出指定名称函数组中的所有函数 helpwin FunName 给出指定名称函数的使用方法 doc ToolboxName 列出指定名称工具包中的所有函数名 doc FunName 给出指定名称函数的使用方法
逻辑操作
常用的逻辑运算符:&(与)、|(或)、~(非)和 xor(异或)。在逻辑运算中,非0元素表示true,0元 素表示false。 标量可以与任何维数数组进行逻辑运算。 当逻辑运算中没有标量时,参与运算的数组必须维数 相同。
在MATLAB表达式中同时出现多种运算符时,优先 级按:
设标量a和数组B =[bij]mXn进行算术运算的结果是cij=a#bij 函数f(.)的数组运算规则是指‚该函数对数组的逐个元素 起作用‛(表2.2常用数组运算函数)
基于MATLAB的液压仿真系统的研究_(4)
将式(5.10)代入(5.11)得
V (s) =
s zV b + s 2
⎡ ⎢QV ⎣
(s
)
−
1 s
⎜⎛ ⎝
ZV
+
c 2
s
⎟⎞ ⎠
Fz
(s
)⎥⎦⎤
( ) mc
s2
+
bc 2
+ mzV
s +1
2 zV b + S 2
zV b + S 2
当 FZ = 0 时有主控传递函数
s
( ) FXQ (s) =
X (s) Q(s)
( ) Q1 = Qt1 + k1 p1 − p2 + k2
p1
−
p2
+ C1
dp1 dt
(5.1)
上式中理论流量 Qt1 = S1v ,v 是活塞的运动速度, S1 为活塞左端面有效面积, k1, k2
为泄漏系数。 缸的出油腔瞬态流量连续方程为
( ) Q2 = Qt2 + k1 p1 − p2 + k2
将式(5.8)与式(5.9)相加并整理得
P1
(s)
=
− P2
(s)
=
QV (s) −
cs+ 2
Qt ZV
(s
)
=
QV (s)
⎜⎛ Th s ⎝2
− +
Qt (s)
1⎟⎞Z ⎠
V
( ) 将力平衡方程
m
dv dt
+
bv
+
Fz
=S
p1
− p2
拉氏变换得
(ms + b)V (s) + FZ (s) = S(P1(s) − P2 (s))
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章 数字通信系统的仿真
X=b′.*x;%ASK x3=[ones(1,64)zeros(1,8128)];% y1=X(1:(2^13));y4=x1.*x3;% Y1=fft(y1,(2^13));magY1=abs(Y1(1:1:(2^12)+1))/(200); %求调制基带信号的FFT Y4=fft(y4,(2^13));magY4=abs(Y4(1:1:(2^12)+1))/(37); %求调制后脉冲信号的FFT k1=0:(2^12);w1=(2*pi/(2^13))*k1;
第5章 数字通信系统的仿真
图5-39中,时域图的上图是最小码元宽度为64 (fc=1GHz)ASK调制后的波形。频域图的上图是基带信 号进行频带( fc =1GHz)ASK调制后的频谱,包络是用1 个宽度为64的方波信号进行频带( fc =1GHz) ASK调制后 的频谱。频域图的下图是基带信号的频谱,包络是用1个 宽度为64的方波信号的频谱,它是用于与ASK基带调制 信号的频谱作比较的。由图可见,宽度为64的方波信号 与最小码元宽度为64的随机二进制基带信号的频谱特性 吻合得很好。
第5章 数字通信系统的仿真 图5-39 ASK调制信号的时域图和频域图
第5章 数字通信系统的仿真
程序5-2 %产生一个最小码元宽度为64 n=1:8192; m=1:128;x(n)=randint(1,8192,2);x=[x(n)]′; y(n)=zeros(1,8192);z(m)=zeros(1,128); forn=1:8192 form=1:128 ifn==64*m-63%当n为64的整数倍时对z z(m)=x(n); ifm==ceil(n/64) y([(64*m-63):(64*m)]′)=z(m);
第5章 数字通信系统的仿真 图5-40 FSK基带调制仿真系统
第5章 数字通信系统的仿真
为了便于比较,建立了三个条件基本一致的仿真系统, 即相同的信号源(伯努利随机二进制发生器),相同的传输 环境(加性高斯白噪声环境,FSK的信噪比为-3dB,其余两 个是-6dB),都是基带调制、解调模块。图5-40是FSK(移频 键控)的仿真试验框图,图5-41是基带FSK(移频键控)调制 信号的频谱,图5-42是MSK(最小移频键控)的仿真试验框 图,图5-43是基带MSK(最小移频键控)调制信号的频谱, 图5-44是GMSK(高斯滚降最小移频键控)的仿真试验框图, 图5-45是基带GMSK(高斯滚降最小移频键控)调制信号的频 谱。表5-31~表5-37分别给出了三个仿真系统中模块的主要参 数。注意,FSK系统误码表的接收延迟时间与MSK、GMSK 是不同的。三个系统的频谱仪参数是一致的,便于比较。
第5章 数字通信系统的仿真
u=(2*w1/pi)*1e9; figure(1) subplot(2,1,1); plot(u,magY1,′b′,u,magY4,′r′);grid%将两信号频谱画 在一个图上,作比较 title(′ASKr′);axis([4e8,1.6e9,0,1.1]) X2=b′.*x2;% y2=X2(1:(2^13)); Y2=fft(y2,(2^13));magY2=abs(Y2(1:1:(2^12)+1))/(200)+e ps; %求基带信号的FFT k1=0:(2^12);w1=(2*pi/(2^13))*k1;
第5章 数字通信系统的仿真
第5章 数字通信系统的仿真(2)
5.5 调制技术(数字调制) 5.6 多元调制仿真
第5章 数字通信系统的仿真
5.5
5.5.1 ASK 幅度键控(数字幅度调制)就是把频率、相位作
为常量,而把振幅作为变量。 幅度随着输入的数字信号的变化而相应地变化。
下面的程序用于研究、描述频带ASK调制的时间、频 率的特性。图5-39所示是运行程序5-2后的结果。
第5章 数字通信系统的仿真
u=(2*w1/pi)*1e9; Y3=fft(x3,(2^13));magY3=abs(Y3(1:1:(2^12)+1))/(35)+eps;
%求脉冲信号的FFT subplot(2,1,2);semilogy(u,magY2,′b′,u,magY3,′r′);grid
title(′ASKr-modulation′);axis([0,1.2e9,3e-2,3]) figure(2) subplot(2,1,1);plot(n,x2);title(′ASKr′); axis([0,640,-0.2,1.2]);grid subplot(2,1,2);plot(n,x); axis([0,640,-1.2,1.2]);grid
第5章 数字通信系统的仿真 图5-41 FSK基带调制信号频谱
第5章 数字通信系统的仿真 图5-42 MSK基带调制仿真系统
第5章 数字通信系统的仿真 图5-43 MSK基带调制信号频谱
第5章 数字通信系统的仿真 图5-44 GMSK基带调制仿真系统
第5章 数字通信系统的仿真 图5-45 GMSK基带调制信号频谱
第5章 数字通信系统的仿真
5.5.2 用二进制数字基带信号控制载频的频率实现调制
称为移频键控FSK。由于二进制基带信号变化时会引 起载波的相位突变等问题,又发展出MSK,称为最小 移频键控。为了进一步降低传输带宽,又发展出 GMSK,称为高斯滚降最小移频键控。这三种数字频 率调制也是目前应用广泛的调制方式。本小节就讨论 三种基带调制方式的仿真系统,了解它们的工作特性 及占用带宽。
第5章 数字通信系统的仿真 end%y成了一个以64 end end end n=1:8192;rm2=y(n); x2=rm2;%产生基带信号,64为最小长度的随机二进制序
n=[1:(2^13)]; x1=cos(n.*1e9*2*pi/4e9);%载频1GHz x=x1.*x2;%ASK b=blackman(2^13);%