1 Star 0 Fork 3

rongxie/k-tx-foc

forked from kp9527/k-tx-foc 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
pid_norm.py 1.53 KB
一键复制 编辑 原始数据 按行查看 历史
kp9527 提交于 2024-03-22 10:18 . 2023-11-01
import numpy as np
import matplotlib.pyplot as plt
pole = 3
#测试pid归一化处理
rpm_2_omega = 2 * np.pi * pole / 60 # omega = 2*PI*rpm*pole/60
rpm_set = 1256
rpm_max = 2123
rpm_min = 0
omega_set = int(rpm_2_omega * rpm_set)
omega_max = int(rpm_2_omega * rpm_max)
omega_min = int(rpm_2_omega * rpm_min)
omega_ramp = 0
kp = 0.3
ki = 0.01
omega_set_norm = int((omega_set/(omega_max - omega_min)) * 32767)
omega_ramp_norm = 0
kp_norm = 0.9 * 32767
ki_norm = 0.6 * 32767
show_omega = []
show_out = []
def pid_raw_data():
global omega_ramp
sum = 0
err = 0
for i in range(400):
err = omega_set - omega_ramp
out = kp * err + ki * sum
sum = sum + err
omega_ramp += out/6
show_omega.append(omega_ramp)
show_out.append(out)
show_omega_norm = []
show_out_norm = []
def pid_norm_data():
global omega_ramp_norm
sum = 0
err = 0
for i in range(400):
err = omega_set_norm - omega_ramp_norm
out = kp_norm * err + ki_norm * sum
sum = sum + err
omega_ramp_norm += out/(6*32767)
show_omega_norm.append(omega_ramp_norm / 32767 * (omega_max - omega_min))
show_out_norm.append(out / 32767)
if __name__ == "__main__":
print(rpm_set, omega_set, omega_set_norm )
pid_raw_data()
pid_norm_data()
plt.figure("pid")
# plt.plot(show_omega, label='omega')
plt.plot(show_out, label='out')
plt.figure("pid norm")
# plt.plot(show_omega_norm, label='omega')
plt.plot(show_out_norm, label='out')
plt.show()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/rongxie/k-tx-foc.git
[email protected]:rongxie/k-tx-foc.git
rongxie
k-tx-foc
k-tx-foc
master

搜索帮助