控制系统仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《控制系统计算机仿真一课程设计作业》
姓名: 专业:
学号:
(1)
试将A.* B 与A* B 的结果相加,并找出相加后新矩阵中绝对值大于
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=fi nd(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 。
⑵在同一窗口绘制曲线 y 仁sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲线为红色点划线,标记
点为圆圈;y2为蓝色虚线,标记点为星号。
程序代码: t=li nspace(0,2*pi,50);
1.构造矩阵
,B
5 7,C
y1=si n( 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. 写出生成下图所示波形的MATLAB程序。图中三个波形均为余弦波,x范围为[pi/2 ~
2 4 8 10
7*pi/2]。要求它的正半波被置零;且在[,]和[——, ]处被削顶。
3 3 3 3
程序:x=li nspace(pi/2,7*pi/2,100);
y1=cos(x);
figure (1)plot (x,y1 )y1(fi nd(y1>0))=0;
figure(2) plot(x,y1)
n=fi nd((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 n, 2n], y1=si nx、y2=cosx、y3=s in 2x、y4=cos2x
①用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注。
②另建一个窗口,不分区,用不同颜色、线型绘出四条曲线,并标注图例注解。
Matlab : x=linspace(-2*pi,2*pi,1000);
y1=si n( x);
y2=cos(x);
y3=si n( 2*x);
y4=cos(2*x);
figure(1)
subplot(2,2,1)
plot(x,y1)
xlabel( 'o ax ?±e x=[-2*pi,2*pi]' );
ylabel( ' x Y x ?±e y=sin(x)')
title( 'y=sin(x)? u [-2*pi,2*pi]???? 卩?? u ?? i ?' )
5. 请分析并修改下面的程序,使用矩阵或数组运算的顺序结构完成嵌套
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 是 这 样 一 组 数 组 : a(n) a(n 1)2 a(n 2)2 a(n 3)2 , 且 a(1) 0,a(2) 1, a(3) 2。试分别用循环指令 for 以及 while 来寻求该数组中第一个大于 10000 的元素。 Matlab : a(1)=0;
a(2)=1; a( 3)=2; for i=4: inf
a(i)=a(i-1)A 2-a(i-2)A 2+a(i-3)A 2; if a(i)>10000
break end end
subplot(2,2,2) plot(x,y2)
xlabel( 'o ax ?±e x=[-2*pi,2*pi]' ylabel( ' x Y x ? ±e y=cos(x)') title( 'y=cos(x)? u [-2*pi,2*pi]???? subplot(2,2,3); plot(x,y3);
xlabel( 'o ax ?±e x=[-2*pi,2*pi]' ylabel( ' x Y x ?±e y=sin(2x)' ) title( 'y=sin(2x)? u [-2*pi,2*pi]???? subplot(2,2,4); plot(x,y4); xlabel( 'o ax ?± e x=[-2*pi,2*pi]'
ylabel( 'x Y x ?± e y=cos(2x)' ) title( 'y=cos(2x)?
u [-2*pi,2*pi]????
figure(2)
plot(x,y1, 'r-' ,x,y2, 'b.'
,x,y3,
legend( 'y=sin(x)'
, 'y=cos(x)' );
卩??u ??
?' )
);
卩??u ?? ?'
)
);
卩??u ?? ?'
)
'ko' ,x,y4,
'g*'
)
,'y=sin(2x £ ?' ,‘y=cos(2x)'
)
for 语句的相同功