控制系统仿真基于maltab语言演示教学

上传人:yuzo****123 文档编号:139196633 上传时间:2020-07-20 格式:PPT 页数:41 大小:765.50KB
返回 下载 相关 举报
控制系统仿真基于maltab语言演示教学_第1页
第1页 / 共41页
控制系统仿真基于maltab语言演示教学_第2页
第2页 / 共41页
控制系统仿真基于maltab语言演示教学_第3页
第3页 / 共41页
控制系统仿真基于maltab语言演示教学_第4页
第4页 / 共41页
控制系统仿真基于maltab语言演示教学_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《控制系统仿真基于maltab语言演示教学》由会员分享,可在线阅读,更多相关《控制系统仿真基于maltab语言演示教学(41页珍藏版)》请在金锄头文库上搜索。

1、1,控制系统仿真 -基于MATLAB语言,2020/7/20,2,本节内容 本节介绍matlab语言的基础知识,主要包括: 矩阵及其操作(创建矩阵、矩阵的属性和操作) 矩阵及数组的简单运算(加减乘点运算) 多维矩阵及其操作 结构体和元胞数组的用法 字符串的创建,3,22 MATLAB的基础知识,1. 矩阵及其操作 1)矩阵的创建,MATLAB中使用方括号、逗号和分号创建,A=1 2 3 4 A=1 2 3 4 B=1; 2; 3; 4 B= 1 2 3 4,Var = Start : Step : Stop Var = linspace(Start, Stop, n) 产生一个有n个元素的一维

2、向量,第一个元素是Start最后一个是Stop,n个元素为等差数列 A=1:4 A=1 2 3 4 B=1:2:4 B=1 3 C=linspace(1,4,5) C=1.0000 1.7500 2.5000 3.2500 4.0000,4,例:创建一个二维矩阵,命令: A=1 2 3;2 5 6;1 4 5 B=1:5;linspace(3,10,5);3 5 2 6 4 C=1:3 linspace(2,3,3) 3 5 6 结果: A = 1 2 3 2 5 6 1 4 5 B = 1.0000 2.0000 3.0000 4.0000 5.0000 3.0000 4.7500 6.50

3、00 8.2500 10.0000 3.0000 5.0000 2.0000 6.0000 4.0000 C = 1.0000 2.0000 3.0000 2.0000 2.5000 5.0000 3.0000 3.0000 6.0000,6,1. 矩阵及其操作 3)创建特殊矩阵,0-1矩阵:矩阵元素均由0或1组成。 1. zeros(m,n) 创建一个m行n列的全0矩阵 2. ones(m,n) 创建一个m行n列的全1矩阵 3. eye(m,n) 创建单位矩阵,对角线元素为1 zeros(size(A), ones(size(A), eye(size(A),创建和A具有相同大小的特殊矩阵 A

4、=zeros(2,2) A = 0 0 0 0 B=ones(2,4) B = 1 1 1 1 1 1 1 1 C=eye(size(A) C = 1 0 0 1,7,1. 矩阵及其操作 4)矩阵操作,矩阵的保存和装载:在许多实际应用中矩阵多是较庞大的,操作步骤多,经常不能在短期内完成。需要对矩阵进行保存和装载。 Save 将工作区的变量保存为.mat的二进制文件,其中filename为文件名,var是变量名 2. Load 将文件filename中保存的内容装载到工作区中,变量名分别为var1和var2 save exp1 A B C,8,1. 矩阵及其操作 4)矩阵操作 简单运算,矩阵的常

5、规运算:矩阵间的加、减、乘、乘方运算。 加减法需要参与运算的矩阵必须具有相同的尺寸。 乘法要求第一数组的列等于第二数组的行。 A+B B-A A*C 矩阵的点运算:对两个尺寸相同的矩阵A和B对应元素进行乘、除或乘方运算。 A.*B A./B A.n,9,2.1 矩阵加、减(,)运算 规则: 相加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。 允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。,2、矩阵运算, a=1 2 3;4 5 6;7 8 9; b=2 4 6;1 3 5;7 9 10; a+b ans = 3 6 9 5 8 11 14 17 19,10,2.

6、2 矩阵的点运算 点乘,点除,点乘方(,./,.,.) ab a,b两数组必须有相同的行 和列两数组相应元素相乘。 a=1 2 3;4 5 6;7 8 9; b=2 4 6;1 3 5;7 9 10; a.*b ans = 2 8 18 4 15 30 49 72 90,11,a./b=b.a a.b=b./a a./b=b.a 都是b的元素被a的对应元素除a/b a.b=b./a 都是a的元素被b的对应元素除b/a 例: a=1 2 3;b=4 5 6; c1=a.b; c2=b./a c1 = 4.0000 2.5000 2.0000 c2 = 4.0000 2.5000 2.0000,

7、给出a,b对应元素间的商,12,矩阵乘方(.) 元素对元素的幂 例: a=1 2 3;b=4 5 6; z=a.2 z = 1.00 4.00 9.00 z=a.b z = 1.00 32.00 729.00,13,2.3矩阵乘()运算 规则: A矩阵的列数必须等于B矩阵的行数 标量可与任何矩阵相乘。 a=1 2 3;4 5 6;7 8 0;b=1;2;3;c=a*b c =14 32 23,14,a=1 2 3;4 5 6;7 8 9; b=2 4 6;1 3 5;7 9 10; a*b ans = 25 37 46 55 85 109 85 133 172 d=-1;0;2;f=pi*d

8、f = -3.1416 0 6.2832,15,inv(A) 矩阵求逆 det(A) 行列式的值 eig(A) 矩阵的特征值 diag(A) 对角矩阵 A 矩阵转置 sqrt(A) 矩阵开方,2.5 矩阵的其它运算,16,关系运算,关系运算的对象a,b可以都是矩阵,它们的大小相同,关系操作是对矩阵各对应元素的比较。返回值1表示真,0则表示假。,17,通过实例了解关系运算,a=1 6 12; 3 32 7 b =2 3 4; 6 7 8 c =gt(a,b) c = 0 1 1 0 1 0,18,2.6 矩阵的一些特殊操作,矩阵的变维 a=1:12;b=reshape(a,3,4)%将矩阵a转换

9、为34矩阵并赋给变量b b =1 4 7 10 2 5 8 11 3 6 9 12 c=zeros(3,4);c(:)=a(:)%给矩阵c赋值 c =1 4 7 10 2 5 8 11 3 6 9 12,19,2.6 矩阵的一些特殊操作,矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻 b =1 4 7 10 2 5 8 11 3 6 9 12, flipud(b) ans = 3 6 9 12 2 5 8 11 1 4 7 10, rot90(b) ans = 10 11 12 7 8 9 4 5 6 1 2 3,20,2.6 矩阵的一些特殊操作,矩阵的抽取 diag

10、:抽取主对角线; tril: 抽取主下三角; triu:抽取主上三角 矩阵的扩展, diag(b) ans = 1 5 9, tril(b) ans = 1 0 0 0 2 5 0 0 3 6 9 0,21,矩阵的修改, 直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。 指令修改 可以用A(,)= 来修改。,22,例如 a=1 2 0;3 0 5;7 8 9 a =1 2 0 3 0 5 7 8 9 a(3,3)=0 a =1 2 0 3 0 5 7 8 0,可以用函数subs修改, 还可用find函数修改。,23,课堂练习,1.使用几种方法创建2个2维矩阵a,b;

11、2.计算a+b, a-b, ab, ab, a/b 3.针对题目1.创建的a和b矩阵完成以下操作: 1)练习对矩阵a的rot90:旋转, fliplr:上翻, flipud:下翻 2)练习对数组b的diag:抽取主对角线, tril: 抽取主下三角,triu:抽取主上三角 3)保存上面2)的各项结果,24,22 MATLAB的基础知识,3. 多维矩阵及其操作,多维矩阵的创建 3.1通过指定索引把二维矩阵扩展为多维矩阵 3.2使用内联函数创建 3.3用CAT函数进行链接创建,可以将预先创建好的矩阵按照某一维度链接起来。,25,22 MATLAB的基础知识,3.1 通过指定索引把二维矩阵扩展为多维

12、矩阵, A = 5 7 8; 0 1 9; 4 3 6; A(:,:,2) = 1 0 4; 3 5 6; 9 8 7 A(:,:,1) = 5 7 8 0 1 9 4 3 6 A(:,:,2) = 1 0 4 3 5 6 9 8 7,26,3.2 使用内联函数创建,ones(d1,d2,d3.) 生成d1*d2*d3的多维全1数组 ones(size(A) 生成与数组A同样尺寸的全1数组 zeros(d1,d2,d3.) 生成d1*d2*d3的多维全0数组 zeros(size(A) 生成与数组A同样尺寸的全0数组 rand(d1,d2,d3.) 生成d1*d2*d3的多维数组,数组元素服从

13、【0,1】均匀分布 rand(size(A) 生成与数组A同样尺寸的多维数组,数组元素服从【0,1】均匀分布,27,3.2 使用内联函数创建,例:随机生成3*3的三维数组 A=rand(3,3,2) A(:,:,1) = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 A(:,:,2) = 0.4447 0.9218 0.4057 0.6154 0.7382 0.9355 0.7919 0.1763 0.9169,28,3.3 用CAT函数进行链接创建,例: A = cat(3, 9 2; 6 5, 7 1; 8 4

14、); %在页面方向连接上两个新建立的二维数组创建三维数组 A(:,:,1) = 9 2 6 5 A(:,:,2) = 7 1 8 4,A(:,:,1),A(:,:,2),9 2 6 5,29,22 MATLAB的基础知识,4.结构体和元胞数组,结构体和元胞数组是两种较复杂的数据类型,都可以存储多组不同类型的数据。结构体和C语言的类似,可以通过字段存储多个不同类型的数据。,PAT,Name - zhang,Billing - 127.00,test - 12 75 23 180 178 177.5 220 210 206,30,4.1结构体的创建,4.1.1直接使用赋值语句创建,pat.name

15、 = zhang; pat.billing = 127.00; pat.test = 79 75 73; 180 178 177.5; 220 210 205; pat whos,pat = name: zhang billing: 127 test: 3x3 double Name Size Bytes Class pat 1x1 468 struct array Grand total is 21 elements using 468 bytes,31,4.1.2 利用创建函数struct 语法形式为:Array=struct(field1,val1,field2,val2,),创建结构体对象,并将第n字段fieldn赋值为valn, weather(2)= struct(total,sunny,temp,18,rainfall,0.0) weather = 1x2 struct array with fields: total temp rainfall weather(1)%结构体数组的第一个元素没有赋值,因此所有字段赋值为空数组 ans = total: temp: rainfa

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号