最近自动控制原理学到伯德图部分了。写作业要用到坐标纸了呢(苦恼)。
本文需要搭配配套源代码使用。
按照惯例,先看效果:
图中的 x 轴(频率)以及 y 轴(幅值、相位)的上下限都可以自定义。对于相位轴,既可以使用角度制显示,也可以使用弧度制显示,需要输入参数进行设置。
1. 制作1x1的伯德图坐标纸
使用Bode_PrintPaper(Omega_L, Omega_H, Mag_L, Mag_H, Pha_L, Pha_H, Rad_sign)
函数制作。
Omega_L :频率轴的显示下限
Omega_H :频率轴的显示上限
Mag_L :幅值轴的显示下限
Mag_H :幅值轴的显示上限
Pha_L :相位轴的显示下限
Pha_H :相位轴的显示上限
Rad_sign :弧度制标志位。
其中的Rad_sign
参数,当他的值为 1 时,伯德图相位部分使用弧度制表示,为 0 时使用角度制表示。
如以下例子,在matlab命令行中输入以下代码,同时保证matlab当前文件夹中有Bode_PrintPaper.m文件。
% 角度制
Bode_PrintPaper(1e-1,1e4,-100,100,-270,180,0)
% 弧度制
Bode_PrintPaper(1e-1,1e4,-100,100,-2*pi,2*pi,1)
运行之后,就会在当前目录下生成一个已经绘制好的伯德图坐标纸PDF文件。如下:
通过输入不同的参数,可以改变坐标轴的显示上下限。但坐标轴的长度是固定的,就是说你上下限取得越宽,你图上的线条就会越密,所以够用就行够用就行。如图:
值得注意的是,在代码中可以选择在打印期间是否弹出图窗,可以自行进行修。也就是这部分代码,默认弹出图窗。
默认在显示图窗2秒后,图窗会自动关闭。这是因为在制作的过程中发现,没有关闭图窗,然后再运行其他两个制作2x2和2x1的代码时,某些图像会出现一些小错误,导致导出的pdf文件也会存在这样的错误。
所以建议关掉图窗,自动或者手动关闭均可以。
2. 制作2x1的伯德图坐标纸
使用Bode_PrintPaper_21(Omega_L, Omega_H, Mag_L, Mag_H, Pha_L, Pha_H, Rad_sign)
函数制作。
_21表示的是在A4纸绘制2x1的伯德图哈。参数说明跟上面的一样哈,就不多说了。
例子:
% 角度制
Bode_PrintPaper_21(1e-1,1e4,-100,100,-270,180,0) % 角度制
% 弧度制
Bode_PrintPaper_21(1e-1,1e4,-100,100,-2*pi,2*pi,1) % 弧度制
运行后会在当前目录生成一个同名的PDF文件。
注意事项和制作1x1的一样,同样要注意关闭图窗。
3. 制作2x2的伯德图坐标纸
使用Bode_PrintPaper_22(Omega_L, Omega_H, Mag_L, Mag_H, Pha_L, Pha_H, Rad_sign)
函数制作。
% 角度制
Bode_PrintPaper_22(1e-1,1e4,-100,100,-270,180,0) % 角度制
% 弧度制
Bode_PrintPaper_22(1e-1,1e4,-100,100,-2*pi,2*pi,1) % 弧度制
参数和上面的一样,不多说了。运行后会在当前目录生成一个同名的PDF文件。注意关闭图窗。
4. 小声bb两句
如果生成的坐标纸不符合要求的话,可以在代码上进行修改,包括坐标轴位置,字体大小等等。还有,自动控制原理真的好难啊。愿每一位自动化人都能够被善待(微笑)。