(一)3.执行器 电动 之 直流电动机中的工作原理

1.电磁力定律:直流电动机应用,产生力和力矩

电磁力:F = BIl   

2.电磁感应定律:直流发电机应用:产生电势

电动势:e = Blv

3.原理阐述:
在这里插入图片描述

我们化简电动机,针对其中一砸线圈来说
1.我们知道磁场向下,左手定则,判断出靠近N的那根线圈受到向右的力,同时,下面的那根线
	受到向左的力,线圈开始旋转
2.在线圈旋转到水平状态,到达电刷的缺口,所以线圈断电,不受力了
3.线圈依靠惯性,转过去后,重新接触到电刷,此时重复上面受力情况,所以线圈持续转动

绕组基础知识:
上面说的是单个线圈,真实情况显然是不止一个线圈
当多个线圈缠绕在一起,还是称为线圈,但也可以称为绕组元件

绕组元件显然不是绕组,所以多个绕组元件组成了绕组,下面是示意图

线匝 ----> 线圈 ----> 绕组
在这里插入图片描述观察发现一个线匝拥有两个平行的边,可以知道,这是卡在电枢铁心槽内的部分,同时也是切割磁感线的部分,即有效部分,剩下的是为了回路通畅
在这里插入图片描述
单叠绕组

绕组方式众多,而且很复杂,我们这里只看一种简单的绕组方式:单叠绕组

所谓的单叠,就是一个槽内放两根线,呈上下的状态,任意一个线圈的两根线,注定一个上一个下,如下图

在这里插入图片描述
这是一个16轴的转子铁心,内有标号。
我们看看1号,他的第一根线在1号槽内,在上面,最终连接到1号换向片
另外一个在5号槽的下面,最终连接到2号换向片

相邻的2号两根线依旧和1号的线相邻

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
f28335作为核心可以实现无刷直流电动机控制器的速度开环控制,以下是一个简单的实现过程: 1. 配置PWM模块:设置PWM模块的周期和占空比,以控制电机的转速。同时,需要设置PWM的计数模式和时钟分频等参数。 2. 读取电机速度反馈信号:使用编码器或霍尔传感器等设备读取电机的速度反馈信号,并将信号转换为数字信号。 3. 计算目标速度:根据应用场景和控制策略,计算出电机的目标速度。 4. 计算PWM输出频率:根据电机的目标速度和PWM周期,计算出PWM输出频率。 5. 更新PWM输出:通过修改PWM的占空比,实现对电机转速的控制。根据目标速度和PWM输出频率,计算出PWM的占空比,并更新PWM输出。 6. 循环执行:在速度开环控制下,只需要根据需要不断修改PWM的占空比,即可控制电机的转速。 以下是一个简单的基于f28335的无刷直流电动机控制器的速度开环控制代码示例: ```c #include "DSP2833x_Device.h" #include "DSP2833x_Examples.h" // 定义电机控制相关参数 #define PWM_FREQ 20000 // PWM 频率 #define PWM_DUTY 5000 // PWM 占空比 // 定义电机状态变量 volatile uint16_t motor_speed = 0; // 初始化GPIO、PWM、ADC等外设 void Init_Peripherals(void) { InitSysCtrl(); // 初始化系统时钟 InitGpio(); // 初始化GPIO InitPieCtrl(); // 初始化PIE InitPieVectTable(); // 初始化PIE断向量表 EALLOW; PieVectTable.EPWM1_INT = &EPWM1_ISR; // 绑定PWM断函数 EDIS; InitEPwmGpio(); // 初始化PWM对应的GPIO InitEPwm1(); // 初始化EPWM1 InitADC(); // 初始化ADC } // 读取电机速度 void Update_Motor_Speed(void) { motor_speed = Read_Motor_Speed(); // 读取电机实时速度 } // 更新PWM输出 void Update_PWM_Output(void) { uint16_t pwm_period = (Uint16)(EPWM1_TIMER_TBPRD+1); // 计算PWM周期 uint16_t pwm_duty = (Uint16)(pwm_period * PWM_DUTY / 10000); // 计算PWM占空比 EPwm1Regs.TBPRD = pwm_period; // 设置PWM周期 EPwm1Regs.CMPA.half.CMPA = pwm_duty; // 设置PWM占空比 } // PWM断服务函数 interrupt void EPWM1_ISR(void) { Update_Motor_Speed(); // 读取电机速度 Update_PWM_Output(); // 更新PWM输出 EPwm1Regs.ETCLR.bit.INT = 1; // 清除断标志位 PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; // 确认断 } int main(void) { Init_Peripherals(); // 初始化外设 EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // 设置PWM计数模式 EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // 禁用相位补偿 EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // 设置高速时钟分频 EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; // 设置时钟分频 EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO; // 设置PWM断触发时机 EPwm1Regs.ETSEL.bit.INTEN = 1; // 使能PWM断 EPwm1Regs.ETPS.bit.INTPRD = ET_1ST; // 设置PWM断周期 IER |= M_INT3; // 使能Group 3断 EINT; // 全局开断 ERTM; // 使能实时断 while(1) { // 循环执行 } } ``` 以上代码仅为示例,实际应用需要根据具体的电机参数和控制策略进行修改。同时,需要注意调试和测试过程的安全问题,避免电机损坏或人身伤害。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值