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 相关文章推荐
py2exe 编译ico图标的代码
Mar 08 Python
Python写的创建文件夹自定义函数mkdir()
Aug 25 Python
python创建和删除目录的方法
Apr 29 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
详解Python 函数如何重载?
Apr 23 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
python 获取等间隔的数组实例
Jul 04 Python
python3.6生成器yield用法实例分析
Aug 23 Python
详解Python time库的使用
Oct 10 Python
使用python的turtle绘画滑稽脸实例
Nov 21 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
python tkinter的消息框模块(messagebox,simpledialog)
Nov 07 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
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP类型约束用法示例
2016/09/28 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
mac系统安装Python3初体验
2018/01/02 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
群胜软件Java笔试题
2012/09/29 面试题
小学少先队活动方案
2014/02/18 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
2014年党员个人剖析材料
2014/10/08 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
常住证明范本
2015/06/23 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
Python list列表删除元素的4种方法
2021/11/01 Python