电机控制及调参

您所在的位置:网站首页 jscc电机参数的调节方式 电机控制及调参

电机控制及调参

2024-01-19 05:53| 来源: 网络整理| 查看: 265

电机调参 一、电机相关 0、废话 1、电机种类 2、电机控制方式 二、电机控制器 1、PID控制器 2、PID 各环节作用 3、PID 种类 三、电机调参 1、Tmotor 调参 1.1 控制框图 1.2 PID 程序 1.3 Tmotor 控制的完整程序 1.4 PID 调试技巧 2、M2006(M3508)调参 2.1 M2006(M3508)控制框图 2.2 M2006与M3508 完整的控制程序 2.3 调试技巧 四、存在的问题

一、电机相关

电机作为一种能将电能转化为机械能的装置,其在制造、医疗、运动控制等等许多地方都起着重要的作用。想学习了解机器人的小伙伴,从电机了解起走也是一条不错(坎坷)的道路。

0、废话

   其实电机对于我来说是接触的比较多了的,记得小时候玩四驱车,就特意将“马达”拆开来看过想搞懂原理,也单独将电机拿出来制作了一些小的diy,后来到了高中在学到了电磁学,算是了解了基础的原理了(在不停的刷题后),再后来到大学就是真正的使用了。第一次使用应该是在大一买的单片机,配了一个电机,有程序可以进行调速,但当时由于一些原因,没有再去使用。又到了大三,学习了电机拖动,对电机的认识又深了一点,也做了一些关于电机的实验。但是,令我难以忘记的是研究生开始调试电机的时候,真的是…一言难尽,之前也参考过许多大佬的博客,所以想把自己的这段难忘的经历做个总结,也给有需要的朋友一个参考。

1、电机种类

按电源种类分为:直流电机和交流电机。我们常见常用的电机大多是直流电机,相比前者,交流电机不需要换向器和电刷转换电流方向,与直流电机相比它的结构更简单,功率更大,在工业领域被广泛应用 在这里插入图片描述

根据有无电刷分为:有刷电机和无刷电机。有刷电机结构简单、开发久技术成熟、响应速度快,起动扭矩大、运行平稳,起制动效果好、控制精度高、使用成本低,维修方便;而无刷电机由于无电刷,具有低干扰、噪音低、运转顺畅、寿命长、低维护成本等优点。于是我接触的以无刷电机为主。 在这里插入图片描述

根据有无反馈分为:步进电机和伺服电机。前者没有反馈信号,位置精度不够高,且转速远远小于后者。在需要精确的控制,伺服电机更加常用。

2、电机控制方式 力矩控制:指定电机提供设置大小的力矩。(但是由于力矩传感器太贵了,这里的力矩的大小通常是通过电流换算的,其恒电流情况下,转矩=转矩常数*电流) 速度控制:指定电机达到设置的速度转动。 位置控制:指定电机转动到设置的位置。

由于位置是速度的积分,所以三种控制方式的控制框图是有要求的,下面是一种常见的控制结构图,当然,如果只针对某一两种控制模式,其控制方案将比这个更加简易。 在这里插入图片描述

二、电机控制器

    为了方便用户的使用,市面上许多电机都是针对上面的控制方式进行了封装的,也就是我们常听说的——控制器。控制器的控制方案有许多,针对不同的控制环也有不同的控制方案,例如:对于电流环,有FOC矢量控制,速度、位置环有PID。当然,也有其他的控制算法,但这里我们就使用常用的就行了。现在我们也可以开始谈谈标题了。

1、PID控制器

    PID 是一种传统且经典的控制算法,在工程中应用非常广泛,相比其他高大上甚至只存在于 paper 上的算法, PID 是非常接地气的。     PID ,即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。顾名思义,PID 控制算法是结合比例、积分和微分的融合怪,其规律可以描述为: u ( t ) = K p ( e ( t ) + 1 T t ∫ 0 t e ( t ) d t + T d d e ( t ) d t u(t)=K_p(e(t)+\frac{1}{T_t}\int_0^t e(t)dt+T_d\frac{de(t)}{dt} u(t)=Kp​(e(t)+Tt​1​∫0t​e(t)dt+Td​dtde(t)​     其中 K p K_p Kp​ 是比例增益, T t T_t Tt​ 是积分时间常数, T d T_d Td​ 是微分时间常数, u ( t ) u(t) u(t) 是输入信号, e ( t ) e(t) e(t) 是误差。 在这里插入图片描述

    三个环节在控制中也分别起着不同的控制作用。

2、PID 各环节作用

比例环节 P:比例环节与稳态误差相关,比例环节越大,上升速度越快,且稳态误差越小,但无论怎样多大都会存在误差,不能消除误差,而且过大还会导致震荡,反而不稳定 在这里插入图片描述

积分环节 I:积分环节则可以消除误差,合适的积分环节可以很快的消除误差,但是设置较大会产生超调,并且过大也会导致震荡,从而不稳定 在这里插入图片描述

微分环节 D:微分环节具有预测作用,可以预测信号的变化方向,从而可以减小超调,提高响应速度,但过大会导致系统不稳定 在这里插入图片描述

matlab PID 的参考代码如下(上面的图是在下面代码基础上修改了一点,但是核心没有变):

%% 说明 % 被控系统: 1/(0.1s+1) % 控制器: PID %% clc,clear ts=0.001; %采样时间=0.001s sys=tf(1,[0.1,1]); %建立被控对象传递函数 dsys=c2d(sys,ts,'z') % 离散化 [num,den]=tfdata(dsys,'v'); % 得到差分方程系数 y(k) = -den[2]*y(k-1) + num[2]*u(k-1) e_last=0; %前一时刻的偏差 E_integ=0; %累积偏差 u_last=0.0; %前一时刻的控制量 y_last=0; %前一时刻的输出 % PID参数 kp=1; ki=0; kd=0; u=zeros(1,10000); %设置仿真长度 time=zeros(1,10000); %时刻点(设定10000个) for k=1:1:10000 time(k)=k*ts; %时间 r(k)=100; %期望值 y(k)=-1*den(2)*y_last + num(2)*u_last; %系统响应输出序列 e(k)=r(k)-y(k); %误差信号 u(k)=kp*e(k)+ki*E_integ+kd*(e(k)-e_last); %系统PID控制器输出序列 E_integ=E_integ+e(k); %误差的累加和 u_last=u(k); %前一个的控制器输出值 y_last=y(k); %前一个的系统响应输出值 e_last=e(k); %前一个误差信号的值 end p1=plot(time,r,'-.');xlim([0,1]);hold on; %指令信号的曲线(即期望输入) p2=plot(time,y,'--');xlim([0,1]); %不含积分分离的PID曲线 hold on; 3、PID 种类

    上面的 PID公示 是针对连续情况下的,而在生活中,我们常常使用的是离散型的变量,比如时间,于是我们需要将 PID 的公式进行离散化,根据离散化的方法不同,PID 控制的公式就有两种,即位置式 PID 和增量式 PID,

位置式 PID u ( n ) = K p ∗ e ( n ) + K i ∗ ∑ e ( n ) + K d ∗ [ e ( n ) − e ( n − 1 ) ] / T u(n)=K_p*e(n)+K_i*\sum e(n)+K_d*[e(n)-e(n-1)]/T u(n)=Kp​∗e(n)+Ki​∗∑e(n)+Kd​∗[e(n)−e(n−1)]/T 从公式结构上看,位置式存在积分环节,误差会进行累加,当积分项饱和时,误差仍然会进行累加,当误差反向变化时,系统还需要一定时间从饱和区退出,所以常常需要积分限幅和输出限幅,实际使用位置式 pid 时一般常常使用 PD 进行控制。 增量式 PID Δ u ( n ) = K p ∗ [ e ( n ) − e ( n − 1 ) ] + K i ∗ e ( n ) + K d ∗ [ e ( n ) − 2 ∗ e ( n − 1 ) + e ( n − 2 ) ] / T \Delta u(n)=K_p*[e(n)-e(n-1)]+K_i* e(n)+K_d*[e(n)-2*e(n-1)+e(n-2)]/T Δu(n)=


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3