​​控制学习_有刷直流力矩电机的建模、仿真、控制带宽的讨论、驱动方式与选择

1 有刷直流力矩电机的建模

图1
图1为有刷直流力矩电机的等效控制框图,其中 e i ( t ) {e_i}\left( t \right) ei(t)为电机输入电压, L a {L_a} La为电枢电感, R a {R_a} Ra为电枢电阻, e m ( t ) {e_m}\left( t \right) em(t)为电机工作时产生的反电动势, i a ( t ) {i_a}\left( t \right) ia(t) 为回路电流, T ( t ) T\left( t \right) T(t)为电机输出转矩, θ 0 ( t ) {\theta _0}\left( t \right) θ0(t)为电机输出转角, J e {J_e} Je为系统及负载在电机轴的等效转动惯量, M c ( t ) {M_c}\left( t \right) Mc(t) 为作用在电机轴空载转矩、负载转矩和摩擦力矩的总负载转矩。

由Kirchhoff定律及电磁感应定律有:
e i ( t ) = R a i a ( t ) + L a d i a ( t ) d t + e m ( t ) e m ( t ) = K e d θ 0 ( t ) d t \begin{align} & {{e}_{i}}\left( t \right)={{R}_{a}}{{i}_{a}}\left( t \right)+{{L}_{a}}\frac{d{{i}_{a}}\left( t \right)}{dt}+{{e}_{m}}\left( t \right) \\ & {{e}_{m}}\left( t \right)={{K}_{e}}\frac{d{{\theta }_{0}}\left( t \right)}{dt} \\ \end{align} ei(t)=Raia(t)+Ladtdia(t)+em(t)em(t)=Kedtdθ0(t)
其中, K e {{K}_{e}} Ke 电机反电动势系数。
根据力矩平衡方程以及Lorentz电磁定律有:
T ( t ) − M c ( t ) = J e d 2 θ 0 ( t ) d t 2 T ( t ) = K t i a ( t ) M c ( t ) = T 0 + T L + D m d θ 0 ( t ) d t \begin{align} & T\left( t \right)-{{M}_{c}}\left( t \right)={{J}_{e}}\frac{{{d}^{2}}{{\theta }_{0}}\left( t \right)}{d{{t}^{2}}} \\ & T\left( t \right)={{K}_{t}}{{i}_{a}}\left( t \right) \\ & {{M}_{c}}\left( t \right)={{T}_{0}}+{{T}_{L}}+{{D}_{m}}\frac{d{{\theta }_{0}}\left( t \right)}{dt} \\ \end{align} T(t)Mc(t)=Jedt2d2θ0(t)T(t)=Ktia(t)Mc(t)=T0+TL+Dmdtdθ0(t)
其中: K t {{K}_{t}} Kt为电动机力矩系数; T 0 {{T}_{0}} T0为空载转矩; T L {{T}_{L}} TL为负载转矩; D m {{D}_{m}} Dm为系统在电机轴上的等效粘滞阻尼系数; D m d θ 0 ( t ) d t {{D}_{m}}\frac{d{{\theta }_{0}}\left( t \right)}{dt} Dmdtdθ0(t)表示摩擦力矩。
联立上述公式(1)(2)(3)(4)并进行Laplace变换可得:
Θ 0 ( s ) = K t E i ( s ) − ( L a s + R a ) M c ( s ) L a J e s 3 + R a J e s 2 + K t K e s \begin{align} {{\Theta }_{0}}\left( s \right)=\frac{{{K}_{t}}{{E}_{i}}\left( s \right)-\left( {{L}_{a}}s+{{R}_{a}} \right){{M}_{c}}\left( s \right)}{{{L}_{a}}{{J}_{e}}{{s}^{3}}+{{R}_{a}}{{J}_{e}}{{s}^{2}}+{{K}_{t}}{{K}_{e}}s} \end{align} Θ0(s)=LaJes3+RaJes2+KtKesKtEi(s)(Las+Ra)Mc(s)
由式(6)可得电机系统模型框图如图2所示,由式(6)不难看出,电机输出角度取决于 E i ( s ) {{E}_{i}}\left( s \right) Ei(s) M c ( s ) {{M}_{c}}\left( s \right) Mc(s)两部分系统输入,2个输入变量与输出分别构成单输入-单输出系统,且2个系统均为典型的二阶振荡系统。
图2
基于线性系统的叠加性原理,将 M c ( s ) {{M}_{c}}\left( s \right) Mc(s)视为系统的扰动,可得电机输入电压到电机输出转角的传递函数为:
Θ ( s ) E i ( s ) = K t L a J e s 3 + R a J e s 2 + K t K e s \begin{align} \frac{\Theta \left( s \right)}{{{E}_{i}}\left( s \right)}=\frac{{{K}_{t}}}{{{L}_{a}}{{J}_{e}}{{s}^{3}}+{{R}_{a}}{{J}_{e}}{{s}^{2}}+{{K}_{t}}{{K}_{e}}s} \end{align} Ei(s)Θ(s)=LaJes3+RaJes2+KtKesKt
电机总负载转矩到电机输出转角的传递函数为:
Θ d ( s ) M c ( s ) = − ( L a s + R a ) L a J e s 3 + R a J e s 2 + K t K e s \begin{align} \frac{{{\Theta }_{d}}\left( s \right)}{{{M}_{c}}\left( s \right)}=\frac{-\left( {{L}_{a}}s+{{R}_{a}} \right)}{{{L}_{a}}{{J}_{e}}{{s}^{3}}+{{R}_{a}}{{J}_{e}}{{s}^{2}}+{{K}_{t}}{{K}_{e}}s} \end{align} Mc(s)Θd(s)=LaJes3+RaJes2+KtKes(Las+Ra)
Θ d ( s ) {{\Theta }_{d}}\left( s \right) Θd(s)表示由电机负载所产生的扰动角度。
定义两个时间常数:
T e = L a R a − − − 电枢电路电磁时间常数 \begin{align} {{T}_{e}}=\frac{{{L}_{a}}}{{{R}_{a}}} ---电枢电路电磁时间常数 \end{align} Te=RaLa电枢电路电磁时间常数

T m = J e R a K t K e − − − 电机机电时间常数 \begin{align} {{T}_{m}}=\frac{{{J}_{e}}{{R}_{a}}}{{{K}_{t}}{{K}_{e}}} ---电机机电时间常数 \end{align} Tm=KtKeJeRa电机机电时间常数

将公式(9)(10)带入(7),可进一步化简为:
Θ ( s ) E i ( s ) = 1 / K e s ( T m T e s 2 + T m s + 1 ) \begin{align} & \frac{\Theta \left( s \right)}{{{E}_{i}}\left( s \right)}=\frac{{1}/{{{K}_{e}}}\;}{s\left( {{T}_{m}}{{T}_{e}}{{s}^{2}}+{{T}_{m}}s+1 \right)} \end{align} Ei(s)Θ(s)=s(TmTes2+Tms+1)1/Ke
由于 T m ≫ T e {{T}_{m}}\gg {{T}_{e}} TmTe,而且 T e {{T}_{e}} Te很小可忽略,因此常会有一个近似,就是给公式(11)的分母添加一项 T e s {{T}_{e}}s Tes ,即
Θ ( s ) E i ( s ) ≈ 1 / K e s ( T m T e s 2 + T m s + T e s + 1 ) = 1 / K e s ( T m s + 1 ) ( T e s + 1 ) \begin{align} \frac{\Theta \left( s \right)}{{{E}_{i}}\left( s \right)}\approx \frac{{1}/{{{K}_{e}}}\;}{s\left( {{T}_{m}}{{T}_{e}}{{s}^{2}}+{{T}_{m}}s+{{T}_{e}}s+1 \right)}=\frac{{1}/{{{K}_{e}}}\;}{s\left( {{T}_{m}}s+1 \right)\left( {{T}_{e}}s+1 \right)} \end{align} Ei(s)Θ(s)s(TmTes2+Tms+Tes+1)1/Ke=s(Tms+1)(Tes+1)1/Ke

本文的推导参考
书《惯性器件及应用实验技术》(作者:郭立东等人)的第3.1.2小节;
书《光电成像系统》(作者:张秉华)的第4.3.2小节;
论文《采用力矩电机直驱的数控机床进给系统伺服刚度优化》的第1.1小节。

根据公式(9)(10)(12)可知,要对一个力矩电机系统建模需要知道以下参数:
K e {{K}_{e}} Ke 电机反电动势系数 = U f / n 0 {{{U}_{f}}}/{{{n}_{0}}}\; Uf/n0 (峰值堵转电压 / 最大空载转速)
K t {{K}_{t}} Kt 电动机力矩系数 = M n / I n {{{M}_{n}}}/{{{I}_{n}}}\; Mn/In ((连续堵转转矩 / 连续堵转电流)
L a {{L}_{a}} La 电枢电感和 R a {{R}_{a}} Ra电枢电阻
J e {{J}_{e}} Je为系统及负载在电机轴的等效转动惯量(一般可用 1 2 m r 2 \frac{1}{2}m{{r}^{2}} 21mr2近似)

2 有刷直流力矩电机的仿真

图3
以 河北宇捷电机科技有限公司 的NH186LYX-M53-E48电机拖动质量为120kg,半径为0.35m的负载为例进行Matlab建模分析,由于电机厂家的资料中并未提供电枢电阻和电枢电感,因此直接联系厂家查询后得电机的电枢电阻和电枢电感分别为:3.1Ω和7.8mH。

Matlab代码如下:

clear all; close all; clc;%--------------------------------
Uf = 48;         %峰值堵转电压
n0 = 115;       % r/min最大空载转速
n0 = n0 * 6;    % deg/s
n0 = n0 /57.3;  % rad/s
Ke = Uf / n0;   % 电机反电动势系数
%--------------------------------%--------------------------------
Mn =29.5;         % 连续堵转转矩
In = 8;       % 连续堵转电流
Kt = Mn / In;   % 电动机力矩系数
%--------------------------------%--------------------------------
La = 7.8*10^(-3);% 电枢电感 H
Ra = 3.1;      % 电枢电阻 Ohms
Te = La / Ra;   % 电动机力矩系数
%--------------------------------%--------------------------------
m = 120;        % kg负载重量
r = 0.35;       % m 负载半径
Je = 0.5 * m * r^2;   % 负载转动惯量
%--------------------------------%--------------------------------
Tm = Je * Ra / (Kt * Ke);
%--------------------------------s = tf('s');
k = 1/Ke;
G = 1 / s / (Tm*s+1) / (Te*s + 1);% 被控对象
figure(1);
p = bodeoptions;
p.FreqUnits = 'Hz';
bode(G,p);grid on; hold on;% C = 1;
% Phi = C*G/(1+C*G);
% bode(Phi,p);grid on; hold on;
% legend('被控对象','闭环传函');

图5

3 有刷直流力矩电机的控制带宽的讨论

第2小节的仿真我们可以看到,系统的开环穿越频率在0.1Hz左右,根据控制理论的经验,如果不设计控制器 ,那么闭环后的带宽也就是0.1Hz左右。 但如果我设计了控制器,比如就是一个C = 100的P控制器,那么系统添加控制器后的开环穿越频率将达到1.2Hz(如下图所示)。 那么闭环后带宽也将达到1.2Hz左右。 那么是不是说,我控制器增益可以无限去提升,我的带宽也可以无限去提升呢?答案肯定是否定的。 因为系统的输入电压是受到约束的,比如控制器的输出是100V的电压,但是电机允许的最大输入电压也才40V。 这样的约束可视为增益下降。 也就是说我们的控制器增益并不是可以无限提升的。 当我给控制器的输入是小幅值的时候,理论上带宽是可以比较高的,比如幅值最大是0.4V的输入,我可以放到100倍到40V。但是,当我给的控制器的输入是大幅值的时候,比如幅值最大是10V,带宽就做不到多高了,我控制器增益最大能到4倍。
在这里插入图片描述

4 有刷直流力矩电机的驱动方式

在这里插入图片描述
如上图所示,如果需要控制速度、扭矩和方向,则采用由电子开关(晶体管、IGBT或MOSFET)组成的“ H桥”来驱动电机向任一方向旋转。施加到电机上的电压可以是任一极性,它使电机沿不同方向旋转。而通过调制开关脉冲的宽度(PWM)可以控制电机的速度或扭矩。
参考文献:有刷直流电机驱动方式

5 有刷直流力矩电机的选择

电机的选择主要依赖的是输出力矩平衡方程,如式(13)所示
T = M 0 + M L + M f + M d + J ⋅ a \begin{align} T={{M}_{0}}+{{M}_{L}}+{{M}_{f}}+{{M}_{d}}+J\cdot a \end{align} T=M0+ML+Mf+Md+Ja
其中 M 0 {{M}_{0}} M0指空载力矩, M L {{M}_{L}} ML指负载力矩, M f {{M}_{f}} Mf指摩擦力矩, M d {{M}_{d}} Md指风阻力矩, J ⋅ a J\cdot a Ja指惯性力矩,J指转动惯量,a指角加速度(rad/s),不考虑空载力矩、负载力矩、风阻力矩 , T ≈ M f + J ⋅ a T ≈ {{M}_{f}}+J\cdot a TMf+Ja

假设对系统的要求2s内调转180°,不限制系统角速度。即系统会经历一个最大加速度加速度过程与最大减速度减速过程,没有最大角速度匀速的过程。 假设最大加速度和减速度相等,有。
2 × 1 2 × a × 1 2 = 180 ⇒ a = 180 o / s 2 2\times \frac{1}{2}\times a\times {{1}^{2}}=180\Rightarrow a={{180}^{o}}/{{s}^{2}} 2×21×a×12=180a=180o/s2,考虑留有足够的裕量,乘以1.5倍, a ′ = a × 1.5 = 270 o / s 2 = 4.71 r a d / s 2 {a}'=a\times 1.5={{270}^{o}}/{{s}^{2}}=4.71rad/{{s}^{2}} a=a×1.5=270o/s2=4.71rad/s2

假设电机要拖动负载是质量为120kg,半径为0.35m圆柱体。则
J = 0.5 ⋅ m ⋅ r 2 = 0.5 ⋅ 120 ⋅ 0.3 5 2 = 7.35 k g ⋅ m 2 \begin{align} J = 0.5\cdot m\cdot r^2 = 0.5\cdot 120 \cdot 0.35^2 = 7.35 kg\cdot m^2 \end{align} J=0.5mr2=0.51200.352=7.35kgm2
而之前已经给出了系统最大的角加速度为 4.71 r a d / s 2 4.71rad/{{s}^{2}} 4.71rad/s2,那么系统的最大惯性力矩为 J ⋅ a = 7.35 ⋅ 4.71 = 34.6185 N ⋅ m J\cdot a = 7.35 \cdot 4.71 = 34.6185 N\cdot m Ja=7.354.71=34.6185Nm

摩擦力矩一般难以计算,根据经验假设摩擦力矩系数为0.01来算。 轴承的内径和外径分别为160和220,轴承法向角度为25°。
M f = 0.01 ⋅ 1200 / s i n 25 ° ⋅ ( 160 + 220 ) / 4 / 1000 = 2.697525 N ⋅ m \begin{align} {{M}_{f}}= 0.01\cdot 1200/sin25° \cdot (160+220) / 4 / 1000 = 2.697525 N\cdot m \end{align} Mf=0.011200/sin25°(160+220)/4/1000=2.697525Nm
考虑摩擦力矩估计偏差,在选择电机时,摩擦力矩按两倍算即 M f = 5.4 N ⋅ m {{M}_{f}} = 5.4N\cdot m Mf=5.4Nm
那么电机总的输出力矩力矩为 34.6185 + 5.4 = 40 N ⋅ m 34.6185 + 5.4 = 40 N\cdot m 34.6185+5.4=40Nm

根据经验,选择电机时,应再考虑留一个1.3倍的裕量。即电机输出力矩应为 40 ⋅ 1.3 = 52 N ⋅ m 40\cdot 1.3 = 52 N\cdot m 401.3=52Nm,上述计算的这个力矩则是选择电机时的峰值堵转力矩。 关于电机其余参数的选择,则是在满足电学和结构要求的前提下,尽量选择连续堵转力矩大,连续堵转电压大,连续堵转电流大的电机。

选择电机原则:首先满足输出力矩要求,其次在此基础上,选择连续堵转力矩更大,连续堵转电压更大,连续堵转电流更大的电机(这样呢,控制带宽可以做高点)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/540305.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学了 Python 但又感觉没学 Python 不如重学 Python - day2(基础内置函数与变量引用的详细理解)

目录 1、int 函数 2、 bin、oct、hex 函数 3、 type 函数 4、complex 函数 5、布尔运算 6、chr 与 ord 函数 7、max 与 min 函数 8、eval 函数 9、变量对象引用 10、对象的垃圾回收 11、变量命名规则 12、 序列赋值 13、增强赋值 1、int 函数 按 n 进制将整数字符…

mac删除带锁标识的app

一 、我们这里要删除FortiClient.app 带锁 常规方式删除不掉带锁的 app【如下图】 二、删除命令,依次执行即可。 /bin/ls -dleO /Applications/FortiClient.app sudo /usr/bin/chflags -R noschg /Applications/FortiClient.app /bin/ls -dleO /Applications/Forti…

【漏洞复现】畅捷通T+ GetStoreWarehouseByStore接口处存在反序列化RCE漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

Python电梯楼层数字识别

程序示例精选 Python电梯楼层数字识别 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《Python电梯楼层数字识别》编写代码,代码整洁,规则,易读。 学习与应…

ModStartBlog v9.1.0 桌面快捷应用,图片上传前端压缩

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 …

企业为什么需要内容管理平台?应该如何搭建?

企业进行内容管理在提升员工工作效率、促进知识共享、优化业务流程、支持数字化转型和创新以及增强企业竞争力等方面发挥着重要作用。因此,对于希望在现代商业环境中保持竞争力的企业来说,建立和维护一个高效的内容管理平台是非常必要的。 | 企业搭建内容…

【计算机网络】1.5 分组交换网中的时延、丢包和吞吐量

A.分组交换网中的时延 当分组从一个节点沿着路径到后一节点时,该分组在沿途的各个节点经受了几种不同类型的时延。 时延的类型 处理时延 - d n o d a l d_{nodal} dnodal​ 处理时延包括以下部分—— a. 检查分组首部 b. 决定分组导向 排队时延 - d p r o c d_{…

亚信安慧AntDB数据库分布式架构剖析之snapshot receiver进程

本文主要介绍亚信安慧AntDB数据库的分布式架构下的特有进程之snapshot receiver的设计,这也是分布式架构的核心进程之一。 进程简介 该进程的作用从逻辑上解释包含两个方面: 同步快照,并且是作为通信的client端存在 同步事务号,…

循环购模式玩法,贡献值能量值助力可持续发展

​小编介绍:10年专注商业模式设计及软件开发,擅长企业生态商业模式,商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地;扶持10余个电商平台做到营收过千万,数百个平台达到百万会员,欢迎咨询。 循…

EPSON 精致小巧的32.768KHz晶振广泛用于时钟模块

32.768K晶振在电子主板PCB随处可见,32.768K晶振负责为各种计算机,控制器,微处理器等提供高精度的时钟频率,而在这些晶振中,32.768KHz贴片时钟晶振特别重要,因为它不仅被广泛应用于电子设备中,而且还有着小巧,低功耗的优点,32.768KHz贴片时钟晶振在现代电子设备中应用广泛,如计算…

el-table的border属性失效问题解决方案

目录 问题: 使用的代码: 官方文档的说明: 可能的问题所在: 关于使用了作用域插槽: a.自定义内容的样式覆盖: b.表格结构的改变: 解决方案: 通过css样式解决: 下面…

[江苏工匠杯]easyphp

先看源码 <?php highlight_file(__FILE__); $key1 0; $key2 0; ​ $a $_GET[a]; $b $_GET[b]; ​ if(isset($a) && intval($a) > 6000000 && strlen($a) < 3){if(isset($b) && 8b184b substr(md5($b),-6,6)){$key1 1;}else{die("…