Python全面分析系统的时域特性和频率域特性


Posted in Python onFebruary 26, 2020

在不使用matlab的情况下,可以选择用python来实现自动控制理论有关系统打时域分析和频率域分析等,安装的package是python-control,在windows的控制台(cmd)或者linux终端下输入pip install control 即可,注意,如果同时安装了2.7 和 3.x(3.4或者3.5或者3.6 版本,使用pip 命令打时候需要指定版本号,如pip2 install control 或者pip3.4 install control ,当然,常用打科学计算用的package也要安装,numpy,scipy,sympy,matplotlib,pandas 等。

下面是自己练习时写的代码,写在此作记录和分享用,因为函数语法和matlab相差无几,这里就没有写太多的注释了,有需要打话可以去python-control打官网查看相关文档。

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 16 17:48:02 2016

@author: kindy
"""

from control import *
from scipy import signal as sgl
from matplotlib import pyplot as plt
import numpy as np

T=np.mgrid[0:8:0.02]
U1=T
U2=T**2


sys1 = tf([1],[0.5,1]) # 
sys2 = tf([2],[1,2,4]) # 

# Step Response
def step_resp():
 sout1,stime1 = step(sys1)
 sout2,stime2 = step(sys2)
 plt.plot(stime1,sout1,'b',linewidth=0.5)
 plt.plot(stime2,sout2,'b',linewidth=0.5)
 plt.xlabel("Time")
 plt.ylabel("Amplitude")
 plt.title("Step Resopnse",fontsize=12)
 #plt.legend()
 plt.show()

# Impulse Response
def impulse_resp():

 iout1,itime1 = impulse(sys1)
 iout2,itime2 = impulse(sys2)
 plt.plot(itime1,iout1,'m',linewidth=0.8)
 plt.plot(itime2,iout2,'r',linewidth=0.8)
 plt.show()

#impulse_resp()

# 任意输入信号的输出,lsim
def lsim_plot():
 yout1,Time1, xout1 = lsim(sys1, U1, T)
 yout2,Time2, xout2 = lsim(sys2, U1, T)
 plt.plot(Time1, yout1, 'b', linewidth=0.7)
 plt.plot(Time2, yout2, 'b', linewidth=0.7)
 plt.show()

#lsim_plot()

# 波特图
def bode_plot():
 bode(sys1)
 bode(sys2)

#bode_plot()

# Nyquist图
def nyquist_plot():
 nyquist(sys1)
 nyquist(sys2)

#nyquist_plot() 


# 根轨迹
def root_locus():
 rlocus(sys1)
 rlocus(sys2)

root_locus()

下面是运行打一些结果图:

Python全面分析系统的时域特性和频率域特性

Python全面分析系统的时域特性和频率域特性

Python全面分析系统的时域特性和频率域特性

Python全面分析系统的时域特性和频率域特性

以上这篇Python全面分析系统的时域特性和频率域特性就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python用GET方法上传文件
Mar 10 Python
Python中title()方法的使用简介
May 20 Python
python实现比较两段文本不同之处的方法
May 30 Python
python使用matplotlib绘制折线图教程
Feb 08 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
Python Matplotlib库安装与基本作图示例
Jan 09 Python
python批量修改xml属性的实现方式
Mar 05 Python
python异常处理、自定义异常、断言原理与用法分析
Mar 23 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
python下载的库包存放路径
Jul 27 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 #Python
Python中os模块功能与用法详解
Feb 26 #Python
Python中sys模块功能与用法实例详解
Feb 26 #Python
Python线程threading模块用法详解
Feb 26 #Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 #Python
Python基础之字典常见操作经典实例详解
Feb 26 #Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 #Python
You might like
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
一个php作的文本留言本的例子(三)
2006/10/09 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
Vue组件化开发思考
2018/02/02 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
python得到单词模式的示例
2018/10/15 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
小学生寒假家长评语
2014/04/16 职场文书
企业法人授权委托书
2014/09/25 职场文书
高三化学教学反思
2016/02/22 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js