欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

8.2 时域分析和频域分析

最编程 2024-03-18 18:56:44
...

时域和频域分析师自动控制原理里非常重要的内容,也是《热工过程自动控制》里的基础内容。首先分析一个常见的RC网络电路:

不难写出其传递函数(1/sC)/(R+(1/sC)),即:

我们算出其单位脉冲响应,输出函数的拉氏变换计算如下:

则其拉氏反变换为:

假设RC=1,将输出函数绘图,得到输出信号:

绘制代码如下:

1. <!DOCTYPEhtml>

2. <htmlstyle="height: 100%">

3. <head>

4. <metacharset="utf-8">

5. </head>

6. <bodystyle="height: 100%; margin: 0">

7. <divid="container" style="height: 100%"></div>

8. <scripttype="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>

9. <scripttype="text/javascript">

10. var dom = document.getElementById("container");

11. var myChart =echarts.init(dom);

12. var app = {};

13. option= null;

14. var xData = [];

15. var yData = [];

16. for (var i = 0; i <= 200; i++) {

17. var x=i/25;

18. var y=1-Math.exp(-x);

19. xData.push(x);

20. yData.push(y);

21. }

22. option= {

23. xAxis:{

24. type:'category',

25. data:xData,

26. },

27. yAxis:{

28. type:'value'

29. },

30. series:[{

31. data:yData,

32. type:'line'

33. }]

34. };

35. ;

36. if (option&& typeof option === "object") {

37. myChart.setOption(option,true);

38. }

39. </script>

40. </body>

41. </html>

虽然不如MATLAB工具箱一行代码就搞定,但这里每一步意义都很鲜明。我们接着进行频域分析。比如这个电路的幅频特性,将上述传递函数中的s替换为jω,不难得到幅频特性:

将其绘图(这里同样假设RC=1):

显而易见,这是个低通滤波器。绘制代码如下:

1. <!DOCTYPEhtml>

2. <htmlstyle="height: 100%">

3. <head>

4. <metacharset="utf-8">

5. </head>

6. <bodystyle="height: 100%; margin: 0">

7. <divid="container" style="height: 100%"></div>

8. <scripttype="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>

9. <scripttype="text/javascript">

10. var dom = document.getElementById("container");

11. var myChart =echarts.init(dom);

12. var app = {};

13. option= null;

14. var xData = [];

15. var yData = [];

16. for (var i = 0; i <= 200; i++) {

17. var x=i/25;

18. var y=1/Math.sqrt(1+x*x);

19. xData.push(x);

20. yData.push(y);

21. }

22. option= {

23. xAxis:{

24. type:'category',

25. data:xData,

26. },

27. yAxis:{

28. type:'value'

29. },

30. series:[{

31. data:yData,

32. type:'line'

33. }]

34. };

35. ;

36. if (option&& typeof option === "object") {

37. myChart.setOption(option,true);

38. }

39. </script>

40. </body>

41. </html>

[结语]:纸上得来终觉浅,绝知此事要躬行。通过功能强大的MATLAB可以方便的分析各种时域和频域问题,但我们这里使用js编程也可以直观的体会分析的过程,而不仅仅是一个结果。