基于MATLAB图形的表达研究

2022-06-10 22:28杨道洪李自成余奕民杨文罗正元
科技尚品 2022年4期
关键词:交互仿真控制系统

杨道洪 李自成 余奕民 杨文 罗正元

摘 要:自动控制领域中有大量烦琐的计算与仿真曲线的绘制任务,用手工很难精确地画出系统的时间响应曲线。对于较为复杂的系统,如果想要精确地画出系统的根轨迹、波特图、奈奎斯特图等也较困难。因此,需要设计一套控制系统的教学软件,使学生可以直观、深刻地掌握控制系统的基础知识,准确、便捷地从仿真结果中进行推理,有效补充和完善传统教学。文章阐述了在MATLAB开发环境下,设计和开发线性控制系统教学仿真软件,同时结合LTI Viewer和SISO系统设计工具,使得控制系统可以实时改变系统各个環节的参数,具有很强的互动性,使整个过程更加直观生动、简单易懂。

关键词:MATLAB;控制系统;交互;仿真

中图分类号:TP391.41;TP311.1 文献标识码:A 文章编号:1674-1064(2022)04-0-03

DOI:10.12310/j.issn.1674-1064.2022.04.027

MATLAB的图形表达与仿真能力是多样化的[1],能让人们更加直观地从图像中看到各种函数的变化趋势,能使人们更加快捷多样地分析与矫正函数[2]。相比其他语言,MATLAB的图形表达更能让大众理解,也更加简单。一般而言,MATLAB操作系统简单、容易上手,一般只要学习一些基本的计算机操作方法,即可掌握MATLAB的操作[3]。在MATLAB的程序编写中,相对于C语言程序来说,C语言复杂的程序编写,在MATLAB中用很少的语句就可以完成。

1 MATLAB中二维图形的绘制

1.1 二维绘图简介

二维图形的描绘是MATLAB最基本的绘图方式,与其他图形相比,这是最基本的绘图,也是其他绘图的前提。一般来说,二维绘图用绘图函数plot()进行操作。

1.2 函数调用

首先,运用函数plot()描绘图形。在plot()的调用中,一般有以下三种格式可供选择:

Plot(a,'k’)格式;

Plot(a,b,'k’)格式;

Plot(a1,b1,'k1’,a2,b2,'k2’...)格式。

使用plot(a,'k')格式绘制图形时,其中a可以是实数向量、复数向量、实数矩阵、复数矩阵。a为选项开关,可设置曲线的颜色、线性、数据点类型。

1.2.1 线条颜色选项

B→蓝色;G→绿色;R→红色;C→青色;M→品红色;Y→黄色;K→黑色;W→白色。

1.2.2 线条类型选项

(—)→实线(:)→虚线(—.)→点划线(——)→双划线(none)→无线。

1.2.3 数据点型选项

(.)→黑点(+)→十字符(*)→八线符(<)→向左(>)→向右(d)→菱形符(h)→六角形符(o)→空心圆圈(p)→五角星符(s)→方块图[4]。

1.3 调用特殊函数

函数命令有:

fplot,ezplot:用于精确度较高函数的绘制。

调用格式:

Fplot(fun,lims,tol,n,p1,p2...);

Ezplot(fun,lims,fig)。

格式意义为:

Fun:绘制fun的图形;Lims:作图的一个区间;Tol:误差,一般默认为2e-3;to相当于精度控制;N:作图点数p1,p2...:函数的一些参数,默认情况下没有参数[5]。

写入命令plot(a,b,'k'),若a,b都为向量时,则可以画出a,b为横纵坐标的曲线。根据相同原理可得,调用多根曲线可绘制多条曲线,每条曲线以(a,b,k)形式绘制。

1.4 单一图像的绘制

在制图时,首先需要最基本的函数,根据函数的定义、范围,明确所需要的数据,从而选择合适的命令与格式,最后完成图形的绘制。

调用plot()函数如下:

>>a=0:0.1*pi:pi;

>>b=sin(a).*cos(a);

>>plot(a,b)

绘制图形如图1所示:

1.5 多条曲线、实线颜色的应用

一条曲线只有一种颜色,但是人们在绘制多条曲线时,可以根据自身的需求、爱好选择相应的曲线,从而绘图。

1.5.1 简单双色曲线的绘制

调用函数如下:

>>a=0:0.9:8*pi;

>>b1=exp(-0.3*a).*sin(a);

>>b2=exp(-0.3*a).*sin(a+1);

>>plot(a,b1,a,b2)

绘制图形如图2所示:

1.5.2 四色曲线的绘制

调用函数:

>>a=0:0.9:8*pi;

>>b1=exp(-0.3*a).*sin(a);

>>b2=exp(-0.3*a).*sin(a+1);

>>b3=exp(-0.3*a).*sin(a+2);

>>b4=exp(-0.3*a).*sin(a+3);

>>plot(a,b1,a,b2,a,b3,a,b4)

绘制图形如图3所示:

1.5.3 复杂多色曲线的绘制

调用函数如下:

>>a=(0:pi/100:10*pi)';

>>k=0.5:0.2:3;

>>B=cos(a)*k;

>>plot(B)

绘制图形如图4所示:

从图4可知,当设置的参数越多越复杂时,曲线会呈现周期性变化。最后,进行各种调试就可以得到需要的图形。

由上述图形及程序表达来看,制图时均通过“plot( )”实现,绘制其他多次重叠的曲线时,则通过另外的函数命令“hold”实现[6]。

1.6 多个窗口图形的绘制

在绘制多个窗口的图形时,首先要学习创建窗口命令,前文制图时一般没有进行设置,没有多窗口时,系统会自动命令一个窗口。需要多个窗口时,则通过“figure(x)”命令进行设置,x=0、1、2、3...N。

如果已知四个函数分别为y1=sin5x,y2=2cos5x,y3=-2xsin5x,y4=-2xcos5x,则有以下函数命令:

>>x=0:4*pi/180:4*pi;

>>y1=sin(5*x);

>>plot(x,y1,'r')

>>figure(2)

>>y2=exp(2).*cos(5*x);

>>plot(x,y2,'r')

>>figure(3)

>>y3=exp(-2*x).*sin(5*x);

>>plot(x,y3,'r')

>>figure(4)

>>y4=exp(-2*x).*cos(5*x);

>>plot(x,y4,'r')

绘制的四幅图如图5、图7、图8、图9所示:

在MATLAB中输入figure()指令后,会重新打开一个空白的制图窗口,如图6所示:

从四个图形可以得到以下分析:当函数的选择不同时,其中有系数、函数类型、表达方式等,得到的图形是完全不同的。相比类似的图形,其图形对应的参数也完全不同,此例也更加充分地说明了仿真图形的直观性。

1.7 窗口的多样图形绘制

在一个窗口下,可以实现多个图形的同步显示。利用同步的图形对比,可以具体分析系统、函数、指标,也就是相当于一个主程序下有多个子程序的原理,利用窗口分割函数“subplot()”进行分割。窗口分割图形如图10所示。

已知函数:y1=sin5x,y2=2xcos(5x),y3=y1y2。

运行函数如下:

>>x=pi*(0:2000)/2000;

>>y1=sin(5*x);

>>y2=exp(2*x).*cos(5*x);

>>y12=sin(5*x).*exp(2*x).*cos(5*x);

>>subplot(2,2,1),plot(x,y1),axis([0,pi,-1,1])

>>subplot(2,2,2),plot(x,y2),axis([0,pi,-1,1])

>>subplot('position',[0.2,0.05,0.6,0.45])

>>plot(x,y12),axis([0,pi,-1,1])

2 結语

运用MATLAB绘制基本图形,笔者认识到,图形的表达可以更加直观可靠地提供事实论据,使函数变化以图形形式呈现,清晰易懂。从编程方面分析,该软件包功能强大、界面美观而简洁。从计算方面分析,该软件运算速度快、可实现的算法较多。从操作方面分析,操作方便、简单易学,只要根据实际情况输入差值函数表达式和差值接点数,再点击相应的功能按钮就可达到预期效果。从应用方面分析,该软件具有形式灵活、实用性能强等优点。

参考文献

[1] 李小光,曲振峰.MATLAB在信号与系统课程教学中的应用探讨[J].张家口职业技术学院学报,2008(3):59-61.

[2] 蔡启仲.控制系统计算机辅助设计[M].重庆:重庆大学出版社,2003.

[3] 何衍庆,姜捷,江艳君,等.控制系统分析、设计和应用一MATLAB语言的应用[M].北京:化学工业出版社,2002.

[4] 李宜达.控制系统设计与仿真[M].北京:清华大学出版社,2004.

[5] 周建兴等编.MATLAB从入门到精通[M].北京:人民邮电出版社,2008.

[6] 胡涛松.自动控制原理基础教程[M].北京:科学出版社,2017.

猜你喜欢
交互仿真控制系统
Ka频段卫星通信自适应抗雨衰控制系统设计
Buck开关变换器的基本参数设计及仿真分析
基于PLC的钢厂热连轧感应加热炉控制系统实现
试析PLC控制下的自动化立体仓库仿真情况分析
基于MADYMO的航空座椅约束系统优化设计
中国体态假人模型与FAA Hybrid Ⅲ 型假人模型冲击差异性分析
基于图形用户界面的多点触控交互技术综述
虚拟现实技术概论
关于信息化教育模式的大学教育变革的探讨