控制系统仿真.docx

上传人:b****5 文档编号:7640650 上传时间:2023-01-25 格式:DOCX 页数:15 大小:254KB
下载 相关 举报
控制系统仿真.docx_第1页
第1页 / 共15页
控制系统仿真.docx_第2页
第2页 / 共15页
控制系统仿真.docx_第3页
第3页 / 共15页
控制系统仿真.docx_第4页
第4页 / 共15页
控制系统仿真.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

控制系统仿真.docx

《控制系统仿真.docx》由会员分享,可在线阅读,更多相关《控制系统仿真.docx(15页珍藏版)》请在冰豆网上搜索。

控制系统仿真.docx

控制系统仿真

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

姓名:

专业:

学号:

1.构造矩阵

(1)试将

的结果相加,并找出相加后新矩阵中绝对值大于10的元素。

(2)组合成一个4⨯3的矩阵,第一列为按列顺序排列的A矩阵元素,第二列为按列顺序排列的B矩阵元素,第三列为按列顺序排列的C矩阵元素。

(1)matlab:

A=[-71;8-3];

B=[42;57];

C=[59;62];

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=

-745

129

856

-372

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

(1)在区间

均匀的取50个点,构成向量X。

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

程序代码:

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

y1=sin(2*t-0.3);

y2=3*cos(t+0.5);

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

holdon

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

holdoff

3.写出生成下图所示波形的MATLAB程序。

图中三个波形均为余弦波,x范围为[pi/2~7*pi/2]。

要求它的正半波被置零;且在

处被削顶。

程序:

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.请分析并修改下面的程序,使用矩阵或数组运算的顺序结构完成嵌套

语句的相同功能。

A=[123;456;789];

[rc]=size(A);

fori=1:

1:

r

forj=1:

1:

c

if(A(i,j)>8|A(i,j)<2)

A(i,j)=0;

end

end

end

修改后的matlab:

A=[123;456;789];

A(find(A>8|A<2))=0;

A

6.假设a是这样一组数组:

,且

试分别用循环指令for以及while来寻求该数组中第一个大于10000的元素。

Matlab:

a

(1)=0;

a

(2)=1;

a(3)=2;

fori=4:

inf

a(i)=a(i-1)^2-a(i-2)^2+a(i-3)^2;

ifa(i)>10000

break

end

end

a(i),i

结果:

ans=

871431

i=

8

7.编写分段函数

的函数文件,存放在文件ff.m中,用input语句输入x值,计算

的值。

x=input('ÇëÊäÈëx=');

ifx>=0&x<1

f(x)=x;

elseifx>=1&x<=2

f(x)=2-x;

else

f(x)=0;

end

f(x)

结果:

请输入x=-2

f=

0

>ff.m

请输入x=sqrt

(2)

f=

0.5858

>>ff.m

请输入x=inf

f=

0

8.

(2)将上题编程改为M函数程序文件,该函数文件满足:

对于任意输入的正整数n,能够输出对应次数小球反弹的高度。

functionff=f(x)

ifnargin==0,x=1;end

ifx>=0&x<1

f(x)=x;

elseifx>=1&x<=2

f(x)=2-x;

elseifx<0

disp('ÊäÈë´íÎó');

else

f(x)=0;

end

f(x)

9.已知两个传递函数分别为:

①在MATLAB中分别用传递函数、零极点、和状态空间法表示;

②在MATLAB中分别求出通过反馈、串联、并联后得到的系统模型;

Matlab:

sys1=tf([1],[31])

ss(sys1)

zpk(sys1)

sys2=tf([2],[3,1,0])

ss(sys2)

zpk(sys2)

feedback(sys1,sys2,-1)

parallel(sys1,sys2)

series(sys1,sys2)

10.已知系统的方框图如图所示,试推导出从输入信号到输出信号的总系统模型。

Matlab:

sys1=tf([1],[1,1]);

sys2=tf([1,0],[1,0,2]);

sys3=tf([4,2],[1,2,1]);

sys11=feedback(sys1*sys2,sys3,-1);

sys4=tf([1],[1,0,0]);

sys22=feedback(sys4,50,-1);

sys5=tf([1,0,2],[1,0,0,14]);

sys=3*feedback(sys11+sys22,sys5,-1)

结果:

Transferfunction:

6s^8+15s^7+168s^6+417s^5+384s^4+2358s^3+4662s^2+2436s+84

-----------------------------------------------------------------------------------

s^10+3s^9+55s^8+177s^7+305s^6+1382s^5+2775s^4+3882s^3

+7952s^2+5716s+1404

11.设单位负反馈控制系统的开环传递函数为:

(1)试绘制K=10,100时闭环系统的阶跃响应曲线,并计算上升时间,超调量和过渡时间;

(2)绘制K=1000时闭环系统的阶跃响应曲线,与K=10,100所得的结果相比较,分析增益系数与系统稳定性的关系。

Matlab:

K=input('请输入增益系数K=');

sys1=tf([K],[1,7,17,0]);

sys=feedback(sys1,1);

[y,t]=step(sys);

plot(t,y)

grid

[Y,k]=max(y);

timeopeak=t(k);

c=dcgain(sys);

percentovershoot=100*(Y-c)/c%Çó½â³¬¶ÈÁ¿

n=1;

whiley(n)<0.1*c

n=n+1

end

m=1;

whiley(m)<0.9*c

m=m+1;

end

risetime=t(m)-t(n)%Çó½âÉÏÉýʱ¼ä

i=length(t);

while(y(i)>0.98*c&y(i)<1.02*c)

i=i-1;

end

settingtime=t(i)%Çó½â¹ý¶Éʱ¼ä

K=10时闭环系统的阶跃响应曲线

percentovershoot=

-0.1162

risetime=

2.7802

settingtime=

5.1279

K=100时闭环系统的阶跃响应曲线

percentovershoot=

76.0846

risetime=

0.3180

settingtime=

24.5778

K=1000:

percentovershoot=

9.6105e+026

risetime=

0.0674

settingtime=

22.1165

由k=10,100,1000,过渡时间依次为:

5.1279,24.5778,22.1165,且由第三个图看出K=1000时系统已经呈现高度不稳定性,由此可以看出增益系数越高,过渡时间越长,系统稳定性更差

*12.设单位负反馈控制系统的开环传递函数为

(1)利用Matlab建立上述控制系统的数学模型。

(2)利用Matlab绘制系统的单位阶跃响应曲线和单位冲激响应曲线。

(3)利用LTIViewer工具绘制系统的单位阶跃响应曲线和单位冲击响应曲线,并分析系统性能。

Matlab:

num=[1.53];

den=conv([10],conv([0.25,1],[1,1]));

sys=tf(num,den);

sys=feedback(sys,1);

figure

(1)

step(sys)

figure

(2)

impulse(sys)

ltiview

控制系统的数学模型为:

Transferfunction:

1.5s+3

-------------------------------

0.25s^3+1.25s^2+2.5s+3

单位阶跃响应曲线:

单位冲激响应曲线:

利用LTIViewer工具:

系统上升时间在1s左右,且经过4s后单位阶跃响应趋近与稳定。

*13.已知系统如下

绘制在下列条件下的根轨迹:

Matlab:

a=input('ÇëÊäÈëa=');

num=[1,1];

den=[1,a,0,0];

sys=tf(num,den);

rlocus(sys);

gridon;

title('¸ù¹ì¼£');

根轨迹依次为:

通过比较上述各条件下的根轨迹,你能得出什么结论?

结论:

a越大,该开环极点对根轨迹的变化影响就越小

14.考虑如下的控制系统

试作出系统单位阶跃响应曲线.

Matlab:

sys1=tf([40.746.062],[8.040]);

sys2=tf([1],[20,1]);

sys3=tf([0.20.4],[0.25,1,0]);

sys=feedback(sys1*sys2*sys3,1);

step(sys)

grid

系统单位阶跃响应曲线:

由此看出该系统为非稳定系统。

15.结合本专业课程,介绍MATLAB和计算机仿真方法在本专业中的应用情况,并分析至少3个实际例子。

本专业为生物医学工程专业,现在就已经接触通过采集生物信号并用计算机完成对信号的过滤,分析并发现规律,其中matlab和计算机仿真方法发挥了不可缺少的作用。

一下简略的讲讲目前我了解到的几个实际例子。

1我们专业最大的发展方向可以说是脑波的研究并实现脑机结合服务人类。

由于脑波信号幅值小,频率低,在采集过程必定有干扰信号,于是设计相关滤波器显得十分重要。

滤波器的设计使用matlab大量的内部函数(如fft,conv,还有各种内置完成分析波形的函数),从这方面可以看出matlab在完成这些工作中的不可替代性

2matlab在分析信号方面可以完成大量工作,仿真效果显著,特别在对需要精确计算的工作来说更是如此。

我们专业很多工作譬如视觉神经机制的建立,希望通过电极传导眼动并在电脑屏幕上迅速准确的完成显示,就需要反映效率高,准确度可靠性高的软件作为辅助,通过重新在matlab上编辑算法实现优化的方法可以完成工作

3目前各种专业软件层出不穷,计算机效率和专业性问题得到很好的解决,在软件选择方面实现多样化,matlab在处理数据和建模仿真方面做得很好。

举一个相关例子:

人类基因组测序工作完成后,我们在后基因组时代面临的一个重要问题,即如何处理越来越多的数据,进而分析基因组序列的意义,研究尚不清楚的结构和功能等。

这些仅用生物学知识是无法分析的,必须结合物理,数学模型等知识,并利用计算机手段才能解决,运用matlab仿真建模可以解决问题。

以上为目前为止我对matlab和控制系统计算机仿真对本专业的一点看法,我也希望通过运用matlab这一工具帮助我更好的解决专业问题。

 

附加题:

假设一维热传导方程表达式为

使用Matlab做出其数值解图像(提示:

可令

等式中

使用差分法离散,再做出图像)。

课程设计提交方式:

第17周(6月20日)周5下午2点半,将报告的打印版交到主楼C2-501,贺威老师,并发报告电子版和仿真程序到邮箱:

hewei.,邮件标题注明学号和姓名。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1