其他分享
首页 > 其他分享> > 控制系统仿真技术(一)仿真软件-MATLAB

控制系统仿真技术(一)仿真软件-MATLAB

作者:互联网

太原理工大学控制系统仿真技术实验报告

  1. 在 MATLAB下输入矩阵 , ,并使用以下命令要求输出结果:A& B , A|B ,xor(A,B), A.*B。
    答案:
>> A=[1 2 3;4 5 0;7 8 9];B = [1 0 3;1 5 0;0 1 2];
>> A&B
>> A|B
>> xor(A,B)
>> A.*B

在这里插入图片描述
2.编写如下的分段函数:
在这里插入图片描述
给出自变量 x 的值,调用该函数后,返回 y 的值。

%建立分段函数
%ex1_2.m
function [y] = ex1_2(x)
if(x<=0)
    y=sin(x);
end
if(x>0&&x<=3)
    y=x;
end
if(x>3)
    y=-x+6;
end
end

在这里插入图片描述
3. 用循环语句和向量化两种方法解决级数求和问题:
在这里插入图片描述

并对两种方法的时间复杂度进行分析。

%循环语句和向量法求级数求和
%循环语句
i=1;s=0;
tic
while(i<=100000)
    s=s+(1/2^i)+(1/3^i);
    i=i+1;
end
toc
s

%向量法
s=0;a=[1:100000];
tic
for i=1:100000
    s=s+(1/2^a(i))+(1/3^a(i));
end
toc
s

观察可知:用循环语句计算,需要0.021513 s,用向量化计算,需要0.021148 s。因此,向量化法更节省时间,时间复杂度更小。

  1. 编写函数,求满足
    在这里插入图片描述
    (N 为任意正数)的最小 m 值。并给定 N 值,调用函数,得到 m 值和
    。
%求累加不大于N的m
%ex1_4.m
function [m,sum] = ex1_4(N)
sum=0;
for m=1:N
    sum=sum+m;
    if(sum>N)
        break;
    end
end
end

在这里插入图片描述
5. 在同一坐标系下分别绘制正弦(点划线,红色,线宽 2 磅)、余弦(圆圈线,黑色,线宽 1.5磅)两条曲线,并给出图例。

%绘制两条曲线
%ex1_5.m
x=0:0.1:2*pi;
y1=sin(x);y2=cos(x);
p=plot(x,y1,x,y2);
p(1).Color='r';
p(1).LineStyle='-.';
p(1).LineWidth=2;
p(2).Color='k';
p(2).Marker='o';
p(2).LineWidth=1.5;
gtext('点划线 y=sin(x)');
gtext('圆圈线 y=cos(x)');
%正常写法为plot(x1,y1,选项,x2,y2,选项)
%title('')
%xlabel('')
%ylabel('')
%grid 增加网格
%利用鼠标绘制图像 [x,y,button]=ginput(n)

在这里插入图片描述
6. 试绘制出函数方程 在 区间内的曲线,并采 用不同的步长来验证图形的准确性。

>> x = -pi:0.1:pi;y = sin(tan(x))-tan(sin(x));plot(x,y)
>> x = -pi:0.01:pi;y = sin(tan(x))-tan(sin(x));plot(x,y)
>> x = -pi:0.001:pi;y = sin(tan(x))-tan(sin(x));plot(x,y)
>> x = -pi:0.0001:pi;y = sin(tan(x))-tan(sin(x));plot(x,y) 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
观察图可知,步长越小,图形越准确。

7.以正弦数据为例,由语句将图形分割成 2行 2列的区域,在不同区域绘制正弦信号的不同表示。

%2行2列图形
%ex1_7.m
x=0:0.1:2*pi;
y=sin(x);
subplot(2,2,1);stairs(x,y);
subplot(2,2,2);stem(x,y);
subplot(2,2,3);bar(x,y);
subplot(2,2,4);semilogx(x,y);

在这里插入图片描述

标签:仿真,plot,sum,MATLAB,ex1,仿真技术,tan,pi,sin
来源: https://blog.csdn.net/weixin_46424753/article/details/122438810