np.roots函数

np.root函数

解释:python中用来求方程的根或函数的零解(复数根或实数根都可以
句法:np.roots(,)
括号中的参数就是一个定义多项式的参数向量,,具体点说就是,方程多项式按照未知数的降幂排列,然后将各式的系数依次填入括号中。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要画出一个系统的轨迹,需要以下步骤: 1. 确定系统的传递函数,例如: ``` G(s) = K / (s^2 + 2ζωn s + ωn^2) ``` 其中,`K` 是系统增益,`ζ` 是阻尼比,`ωn` 是自然频率。 2. 据传递函数的特点,确定系统的极点和零点。 对于上面的传递函数,它的极点为: ``` s = -ζωn ± jωn sqrt(1-ζ^2) ``` 如果阻尼比 `ζ` 为 0,则极点是纯虚数,表示系统是无阻尼振荡的。 如果阻尼比 `ζ` 在 0 到 1 之间,则极点是共轭复数对,表示系统是有阻尼振荡的。 如果阻尼比 `ζ` 大于 1,则极点是实数,表示系统是过阻尼的。 3. 据极点和零点的位置,画出轨迹。 轨迹是极点随着增益 `K` 的变化轨迹。轨迹的起点和终点分别是零点和无穷远点。轨迹从左侧进入到右侧,每经过一个极点就改变方向。当极点在实轴上时,轨迹从极点两侧经过。当极点在虚轴上时,轨迹在虚轴上对称。 下面是一个画轨迹的 Python 代码示例: ```python import numpy as np import matplotlib.pyplot as plt # 传递函数 K = 1 ζ = 0.5 ωn = 1 num = [K] den = [1, 2*ζ*ωn, ωn**2] # 极点和零点 poles = np.roots(den) zeros = np.roots(num) # 计算轨迹 k = np.linspace(0, 10, 1000) roots = np.zeros((len(poles), len(k)), dtype=np.complex128) for i in range(len(poles)): roots[i, :] = np.sqrt(poles[i]**2 + k**2) # 画图 fig, ax = plt.subplots() ax.plot(np.real(roots), np.imag(roots), 'b') ax.plot(np.real(poles), np.imag(poles), 'rx') ax.plot(np.real(zeros), np.imag(zeros), 'o') ax.axhline(y=0, color='k') ax.axvline(x=0, color='k') ax.set_aspect('equal', 'box') ax.set_xlabel('Real Axis') ax.set_ylabel('Imaginary Axis') ax.set_title('Root Locus') plt.show() ``` 这段代码可以画出上面传递函数轨迹。据需要,可以调整传递函数的参数,或者修改代码中的传递函数,来画出不同的轨迹。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌风lpc

打赏将使小编打满鸡血

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值