电机:有刷直流电机的原理

一、什么是有刷直流电机

直流有刷电机(Brushed DC Motor),定子是用永磁铁或者线圈做成,以形成固定磁场。在定子一端上有固定碳刷,或者铜刷,负责把外部电流引入转子线圈。而转子是由线圈构成,线圈连接轴端的换相器(Commutator),外部电流通过碳刷和换相器,到达转子线圈。当线圈通电,产生磁场,这个磁场被永磁铁吸引,促使转子转动,转过一定角度后,转子线圈通过机械换相器和碳刷改变电流方向,从而改变磁场方向,保证转子连续转动。

有刷电机使用机械换相器,优点是结构简单,价格低廉,可以提供较高的扭矩,缺点是容易磨损,无法用于洁净室,而且寿命有限,需要定期维护。

有刷直流电机原理动图

二、有刷直流电机的结构图

 

三、有刷直流电机的励磁方式

根据励磁方式的不同,直流有刷电机,又可以分为单独励磁直流电机自励磁直流电机永磁电机。所谓励磁就是定子线圈通电,产生吸引转子的磁场。

自励磁直流电机,根据绕线方式的不同,还可以继续分为:串联励磁电机并联励磁电机复合励磁电机(串联和并联)。

 单独励磁直流电机结构简图

并联励磁直流电机结构简图

串联励磁直流电机结构简图

复合励磁直流电机结构简图

不同直流电机速度扭矩曲线图

 

### 有刷直流电机在Simulink中的建模与仿真 #### 创建电机模型 为了在Simulink中创建有刷直流电机的模型,首先要定义电机的关键物理特性。这包括电磁感应定律和牛顿第二运动定律的应用,用于描述电机内部发生的能量转换过程[^1]。 ```matlab % 定义电机参数 R = 0.8; % 绕组电阻 (Ohm) L = 0.003; % 绕组电感 (H) Kt = 0.027; % 扭矩常数 (Nm/A) Ke = 0.027; % 反电动势常数 (Vs/rad) J = 0.01; % 转动惯量 (kg*m^2) B = 0.005; % 阻尼系数 (Nms/rad) % 初始化状态变量 theta = 0; % 初始角度位置(rad) omega = 0; % 初始角速度(rad/s) i = 0; % 初始电流(A) ``` #### 设计控制系统 对于有刷直流电机而言,在Simulink环境中实现有效的控制通常涉及构建一个反馈回路。此回路由比例积分微分(PID)控制器组成,负责调节施加于电机绕组上的电压以达到预期的速度或位置目标值[^2]。 ```matlab % PID 控制器设置 kp = 1; ki = 0.1; kd = 0; pidController = pid(kp, ki, kd); ``` #### 构建完整的仿真环境 将上述组件整合起来形成整个仿真的框架。具体来说就是把代表实际硬件行为的部分——即之前提到过的电机动力学方程同虚拟传感器、执行机构以及用户自定义逻辑结合起来共同作用在一个封闭循环内运行。 - **输入信号源**:提供给定的目标转速作为参考输入。 - **被控对象(Plant)**:由前述MATLAB函数表示的实际电机动态响应。 - **测量环节(Measurement)**:模拟编码器或其他形式的位置/速度检测装置输出当前运转状况的数据流。 - **误差计算(Error Calculation)**:对比设定点(setpoint)减去实测值得到偏差(error),供后续调整依据。 - **补偿算法(Controller)**:采用PID算法处理来自前一步骤产生的差值并据此改变最终供给负载端口处的指令级别。 最后,通过Scope模块观察各阶段变量随时间变化的趋势图以便直观理解整体运作机制及其稳定性表现。 ```matlab % Simulink Model Construction model = 'DC_Brush_Motor_Simulation'; open_system(model); add_block('simulink/Sources/Step', [model '/Reference Speed']); add_block('simulink/Commonly Used Blocks/Gain', [model '/Speed Gain']); set_param([model '/Speed Gain'], 'Gain', num2str(Kt/J)); add_block('simulink/Continuous/Transfer Fcn', [model '/Motor Dynamics']); set_param([model '/Motor Dynamics'], ... {'numerator', 'denominator'}, ... {num2cell(polyder([Kt Ke])), num2cell(polyder([J B]))}); add_block('simulink/Math Operations/Subtract', [model '/Error']); add_block('simulink/Control System Toolbox/PID Controller', [model '/PID']); connect_blocks(model, {'Reference Speed', 'Error/in1'}); connect_blocks(model, {'Error/out1', 'PID/setpoint'}); connect_blocks(model, {'PID/control', 'Motor Dynamics/U'}); connect_blocks(model, {'Motor Dynamics/Y', 'Speed Gain/in1'}); save_system(model); close_system(model, 0); ``` #### 运行仿真测试 完成以上准备工作之后就可以开始正式执行仿真流程了。在此过程中应当密切监视所有重要指标的变化情况从而确保所得结论具备充分可信度;必要时还可以尝试修改某些初始条件重新开展实验直至获得满意的结果为止。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值