python仿真,clark变换和park变换

   伺服算法离不开clark变换和park变换,我看了其他博主都是用matlab进行仿真,无奈这是个收费软件。所以自己用python写了下,也可以达到同样的效果,仅供大家参考。

原理方面大家可以参考小麦大叔的博客。以下只会提供下仿真的代码。

(7条消息) FOC中的Clarke变换和Park变换详解(动图+推导+仿真+附件代码)_GREYWALL-CSDN博客_clarke变换

原始波形

x = np.linspace(0,4,1000)
y = np.linspace(0,0,1000)
a = np.sin(np.pi*x)
b = np.sin(np.pi*(x+120/180))
c = np.sin(np.pi*(x-120/180))
plt.plot(x,y)
plt.plot(x,a)
plt.plot(x,b)
plt.plot(x,c)
plt.figure()

clark变换

 

#clark变换
ia = a
ib = np.sqrt(3)/3*(c-b)
plt.plot(x,y)
plt.plot(x,ia)
plt.plot(x,ib)
plt.figure()

反clark变换

#clark反变换
a = ia
b = -ia/2+np.sqrt(3)/2*ib
c = -ia/2-np.sqrt(3)/2*ib
plt.plot(x,y)
plt.plot(x,a)
plt.plot(x,b)
plt.plot(x,c)
plt.figure()

park变换

 

#park变换
theta = np.pi*x
d =  ia*np.cos(theta)+ib*np.sin(theta)
q = -ia*np.sin(theta)+ib*np.cos(theta)
plt.plot(x,y)
plt.plot(x,d)
plt.plot(x,q)
plt.figure()

反park变换

#反park变换
ia = d*np.cos(theta) - q*np.sin(theta)
ib = d*np.sin(theta) + q*np.cos(theta)
plt.plot(x,y)
plt.plot(x,ia)
plt.plot(x,ib)
plt.show()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值