BaseRpm 机械角度 电角速度

speed1.BaseRpm = 120*BASE_FREQ/P; BASE_FREQ单位(电频率,单位为Hz)极对数为1,BASE_FREQ为50;极对数为2, BASE_FREQ为100;极对数为4,BASE_FREQ为200;所以 BASE_FREQ=50*极对数。 BASE_FREQ/P; P应该是极数而非极对数,电频率转到机械转速RPM的公式为:speed1.BaseRpm = 60*BASE_FREQ/(P/2)=120*BASE_FREQ/P.所以我们看极对数为4的电机,BaseRpm=3000转。 所以speed1.BaseRpm 是描绘机械角度转速快慢的一个参数。 speed1.K1 = _IQ21(1/(BASE_FREQ*T));进行电角度标标幺值过程中的系数 speed1.K2 = _IQ(1/(1+T*2*PI*30)); K2、K3为了减小纯微分运算所造成的放大噪声,进行一阶低通滤波 speed1.K3 = _IQ(1)-speed1.K2; 系数 在第 k 个速度采样周期结束时转子相对于初始位置的电角度为 eθ(k) ,那么在第 k 个速度采样周期内转子的平均电角速度为:

 

BaseRpm <wbr>机械角度 <wbr>电角速度

为了减小纯微分运算所造成的放大噪声,需要进行一阶低通滤波,离散化可得

BaseRpm <wbr>机械角度 <wbr>电角速度
 
所以:Tmp1 = _IQmpy(v->K1,(v->ElecTheta - v->OldElecTheta));

      Tmp1 = _IQmpy(v->K2,_IQtoIQ21(v->Speed))+_IQmpy(v->K3,Tmp1);

      v->Speed = _IQ21toIQ(Tmp1);

得到电角速度.




http://blog.sina.com.cn/s/blog_48b13b24010152cw.html

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于 PI-PLL锁相环的角速度估算算法的 C 语言示例代码: ```c // 定义 PI-PLL锁相环参数 #define Kp 1.0 // 比例系数 #define Ki 0.1 // 积分系数 #define Kf 0.01 // 频率系数 #define T 0.01 // 采样时间 // 定义变量 float theta_e = 0; // 机实际角度 float theta_r = 0; // 机参考角度 float omega_e = 0; // 机实际角速度 float omega_r = 100; // 机参考角速度 float error = 0; // 角度误差 float error_int = 0; // 角度误差积分 float v_d = 0; // 直流分量 float v_q = 0; // 交流分量 float i_d = 0; // d 轴流 float i_q = 0; // q 轴流 float u_d = 0; // d 轴压 float u_q = 0; // q 轴压 float sin_theta = 0; // sin(theta) float cos_theta = 0; // cos(theta) // PI-PLL锁相环算法 void pi_pll() { // 计算角度误差 error = theta_r - theta_e; // 积分误差 error_int += error; // 计算直流分量 v_d = Kp * error + Ki * error_int; // 计算交流分量 v_q = Kf * omega_e; // 计算 d 轴流 i_d = cos_theta * v_d + sin_theta * v_q; // 计算 q 轴流 i_q = -sin_theta * v_d + cos_theta * v_q; // 计算 d 轴压 u_d = i_d; // 计算 q 轴压 u_q = i_q - omega_e * Kf; // 更新角度 theta_e += omega_e * T; // 更新角速度 omega_e = u_q; } int main() { // 初始化参数 theta_e = 0; theta_r = 0; omega_e = 0; omega_r = 100; // 循环运行 PI-PLL锁相环算法 while (1) { // 计算 sin(theta) 和 cos(theta) sin_theta = sin(theta_e); cos_theta = cos(theta_e); // 运行 PI-PLL锁相环算法 pi_pll(); } return 0; } ``` 这段代码中,我们首先定义了 PI-PLL锁相环的参数,然后定义了一些变量,包括机实际角度机参考角度机实际角速度机参考角速度角度误差、角度误差积分、直流分量、交流分量、d 轴流、q 轴流、d 轴压、q 轴压、sin(theta) 和 cos(theta)。 接着,我们实现了一个名为 pi_pll() 的函数,用于运行 PI-PLL锁相环算法。在这个函数中,我们首先计算角度误差,然后计算角度误差积分,接着计算直流分量和交流分量,然后根据 d 轴流和 q 轴流计算 d 轴压和 q 轴压,最后更新角度角速度。 在主函数中,我们首先初始化了参数,然后通过一个无限循环来不断运行 PI-PLL锁相环算法,计算出机的角速度

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值