控制系统仿真

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

《控制系统计算机仿真—课程设计作业》

姓名: 专业: 学号:

1. 构造矩阵

(1)试将.*A B 与B A *的结果相加,并找出相加后新矩阵中绝对值大于10的元素。 (2)组合成一个4⨯3的矩阵,第一列为按列顺序排列的A 矩阵元素,第二列为按列顺序排列的B 矩阵元素,第三列为按列顺序排列的C 矩 阵元素。

(1)matlab :

A=[-7 1;8 -3]; B=[4 2;5 7]; C=[5 9;6 2]; D=A.*B+A*B

num=find(abs(D)>10); D(num) 结果:D =

-51 -5 57 -26 ans = -51 57 -26

(2)matlab :NEW=[A(1,:),A(2,:);B(1,:),B(2,:);C(1,:),C(2,:)]’ 结果:NEW =

-7 4 5 1 2 9 8 5 6 -3 7 2

2. 绘制函数曲线,要求写出程序代码

(1)在区间[0,2]π均匀的取50个点,构成向量X 。

(2)在同一窗口绘制曲线y1=sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。

程序代码:

t=linspace(0,2*pi,50);

714259,,835762A B C -⎡⎤⎡⎤⎡⎤===⎢⎥

⎢⎥⎢⎥

-⎣⎦⎣⎦⎣⎦

y1=sin(2*t-0.3);

y2=3*cos(t+0.5);

plot(t,y1,'r.',t,y2,'b-');

hold on

plot(t,y1,'o',t,y2,'*');

hold off

3. 写出生成下图所示波形的MA TLAB 程序。图中三个波形均为余弦波,x范围为[pi/2 ~

7*pi/2] 。要求它的正半波被置零;且在

24

[,]

33

ππ

810

[,]

33

ππ

处被削顶。

程序:x=linspace(pi/2,7*pi/2,100);

y1=cos(x);

figure(1)

plot(x,y1)

y1(find(y1>0))=0;

figure(2)

plot(x,y1)

n=find((x>2*pi/3&x<4*pi/3)|(x>8*pi/3&x<10*pi/3));

y1(n)=cos(2*pi/3);

figure(3)

plot(x,y1)

4对于x=[-2π,2π],y1=sinx、y2=cosx、y3=sin2x、y4=cos2x

①用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注。

②另建一个窗口,不分区,用不同颜色、线型绘出四条曲线,并标注图例注解。Matlab:x=linspace(-2*pi,2*pi,1000);

y1=sin(x);

y2=cos(x);

y3=sin(2*x);

y4=cos(2*x);

figure(1)

subplot(2,2,1)

plot(x,y1)

xlabel('ºá×ø±êx=[-2*pi,2*pi]');

ylabel('×Ý×ø±êy=sin(x)')

title('y=sin(x)ÔÚ[-2*pi,2*pi]Ö®¼äµÄÇúÏßͼ')

subplot(2,2,2) plot(x,y2)

xlabel('ºá×ø±êx=[-2*pi,2*pi]'); ylabel('×Ý×ø±êy=cos(x)')

title('y=cos(x)ÔÚ[-2*pi,2*pi]Ö®¼äµÄÇúÏßͼ') subplot(2,2,3); plot(x,y3);

xlabel('ºá×ø±êx=[-2*pi,2*pi]'); ylabel('×Ý×ø±êy=sin(2x)')

title('y=sin(2x)ÔÚ[-2*pi,2*pi]Ö®¼äµÄÇúÏßͼ') subplot(2,2,4); plot(x,y4);

xlabel('ºá×ø±êx=[-2*pi,2*pi]'); ylabel('×Ý×ø±êy=cos(2x)')

title('y=cos(2x)ÔÚ[-2*pi,2*pi]Ö®¼äµÄÇúÏßͼ') figure(2)

plot(x,y1,'r-',x,y2,'b.',x,y3,'ko',x,y4,'g*')

legend('y=sin(x)','y=cos(x)','y=sin(2x£©','y=cos(2x)')

5. 请分析并修改下面的程序,使用矩阵或数组运算的顺序结构完成嵌套for 语句的相同功能。

A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c

if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end

修改后的matlab :

A=[1 2 3; 4 5 6; 7 8 9]; A(find(A>8|A<2))=0; A

6. 假设

a 是这样一组数组:2

2

2

()(1)(2)(3)

a n a n a n a n =---+-,且

(1)0,(2)1,(3)2a a a ===。试分别用循环指令for 以及while 来寻求该数组中第一个大于

10000 的元素。 Matlab :a(1)=0;

a(2)=1;

相关文档
最新文档