电控 .

正点原子

步进电机:

35-步进电机专题-第2讲 步进电机控制原理_哔哩哔哩_bilibili

步进电机的开环效果很好,一般用作开环控制

静态指标

动态指标

DengFOC

【手把手教写FOC算法】4_帕克变换_哔哩哔哩_bilibili

帕克逆变换(Inverse Park Transform)的作用是将旋转坐标系(d-q坐标系)中的直流量转换回静止坐标系(α-β坐标系)中的交流量。

问题:

iq是控制力矩的,那id是干嘛的? 旋转速度快慢是不是由计算这个过程快慢,计算周期多久转得快,计算周期少就转得慢

解答:

id 则表示电机的磁场定向,也就是电机转子磁场与 d 轴之间的夹角。 在交流电路中,电流和电压的相位差会导致电能的传输出现一些特殊的现象,其中包括有功功率和无功功率。有功功率是指在交流电路中产生有用功率的能量,用于推动电机等设备的运转。而无功功率是指由于电路中的电感和电容等元件的存在,电能在电路中来回流动而未转化为有用功率,只是在电路中形成一种能量储存和释放的状态。 无刷电机也是一种交流电路元器件,因此也有有功功率和无功功率,其体现主要与电机的电感和电容等特性有关。当电机运行时,会在电机内部产生磁场,该磁场会与电机绕组中的电流之间存在相位差,从而导致电机产生一定的无功功率。该无功功率不会对电机的实际运行产生有用的功效,只会浪费能量并引起电机的热损耗。 因此,对于电机而言,为了提高电机的效率和运行稳定性,需要尽可能降低电机的无功功率,设定id的值,就可以改变电机转子磁场与 d 轴之间的夹角,从而对“相位差”产生微调,进而达到效率最优。 当然也不是所有情况下id都=0,这得看电机是凸极性还是非凸,非凸下,id一般=0就能获取最优效率,而凸极性电机,id可能会不为0才能达到最优效率,具体往下就可以写很长了,可以看看这方面的文章。

至于旋转速度快慢,因为我们已经能够实现力矩的输出,力矩可以用来加速或者减速,因此只需要有一个闭环速度传感器力矩作为其内环就可以控速

所以最本质的都是基于力矩的生成,把其作为内环以实现电机的控制。

【手把手教写FOC算法】5b_开环速度代码编程+硬件调试教学_哔哩哔哩_bilibili

【手把手教写FOC算法】7a1_写闭环速度代码的前置知识_哔哩哔哩_bilibili

AS5600编码器是测得的角度是在0-6.28之间变化的

【手把手教写FOC算法】8a_撰写电流环代码的前置知识_哔哩哔哩_bilibili

【手把手教写FOC算法】9b_电流环改进速度和位置闭环代码编程+硬件调试教学_哔哩哔哩_bilibili

可以作为参考使用的闭环案例:

【手把手教写FOC算法】8b_精确电流力矩环代码编程+硬件调试教学_哔哩哔哩_bilibili

欧拉电子

pwm中央对齐设置

SVPWM电流采样时刻详细讲解:

结论:在计数器溢出时做adc采样

9.2_Hall速度控制 - 建模+CubeMX配置+代码集成_哔哩哔哩_bilibili

Simulink

在Simulink中使用的mod函数的作用

例:利用mod(t, T)将时间变量t映射到周期T内

本身是取余的计算mod(),不过也可以在这种情况用作归一化

SVPWM

03_SVPWM原理及实现_哔哩哔哩_bilibili

stm32高级定时器实现

浮点运算通过转化为整数的比例放大和缩放实现性能优化

SVPWM参考模型:

对比于SPWM,SVPWM模型在park逆和克拉克逆变换之间多了一个SVPWM的转换

自己实现SPWM

注意事项:

使用DengFOC提供的软件IIC读取as5600角度(FOC调出来会很顺滑),但是自己通过stm32的hal库硬件IIC实现读取(FOC调出来会很抖)。都放在while(1)里实现,所以不会是因为延时的问题,猜测是因为HAL库IIC代码内部实现方式导致实时性的影响。

自己实现SVPWM

void Set_CurTorque(float Target)
{
    //Target=0.01;
    current = GetPhaseCurrent();
    cur_q[0]=cal_Iq_Id(current.I_a,current.I_b,electricAngle());

    cur_q[1] = Lowpassfilter(&current_low,cur_q[0]);
    
  cur_out = PID_Controller(&current_pid,-(Target - cur_q[1]) );
/*要注意这里的输入ERROR(Target - cur_q[1])这个整体,如果正负弄反了
就无法形成负反馈,导致控制异常*/

     
    SetPhaseVoltage(cur_out, 0, electricAngle());


}

知识普及:

线电压:

UVW端点两两测得的电压

例:Uvw Uuw

相电压:

UVW端点相对于电机中共同连接点(N 类似于零线)的电压

例:Uvn Uwn

端电压:

UVW端点相对于GND(O)的电压

例:Uvo Uwo

在控制电机时的波形变化:

方波六部换相法SPWM法SVPWM法
端电压梯形波正弦波马鞍波
线电压正负变化的梯形波 正弦波 正弦波
相电压梯形波正弦波正弦波  

H桥驱动:

PWM的占空比决定了每个两个相线之间(UV UW VW )的导通时间和导通方向(是UW还是WU)

为什么下图没有连接VDC电源?

因为下桥臂的电流是从相线流过来的

上下两端的MOS管不能同时导通,因为他们之间没有负载连接 而其他mos之间有所以可以同时导通(相线有等效电感电阻作为负载)

这里采集的是什么电流?为什么电阻这么小?为什么要用运放?

相电流 

这个采样电阻是算在电机的相电阻中的,如果采样电阻大了会影响控制算法

因为电流很小 需要放大

为什么要使用偏置电路?

因为相电压存在负值

Iq代表的是准确的电机力矩大小 和Ia Ib Ic(相电流)有关系(Ia Ib Ic先通过克拉克变换 再帕克变换得到Iq和Id) 但不一样

这里做的电流环闭环也是闭环的力矩,有关系但不是真正的相电流

问题:

1、使用AS5600编码器的时候出现了速度瓶颈问题

到150的时候速度提不上去了 

目前的思路是因为编码器的通信速度较慢,导致更高的采集频率也不能提升速度上限

V=Angle/dt(dt采集频率无法提高)

2、速度的采集有时会出现突变

猜测是因为磁铁装的位置不好

3、六不换相无法实现

暂时在解决

总结:

1、滤波和速度计算这些公式代码一定要写的规范,要有dt,要有理论依据,这样才可以反应现实的真实数据。


 



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值