自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pou光明的博客

让你的编程不再孤立无援

  • 博客(345)
  • 资源 (4)
  • 收藏
  • 关注

原创 3_foc闭环调试_pi控制器调试程序框架

1、ADC电流偏置读取void Offset_CurrentReading(void) {staticuint16_tADC_PhaseU_Curr[100];staticuint16_tADC_PhaseV_Curr[100];uint16_ttemp;uint32_tsum_U=0;uint32_t...

2024-09-13 22:56:14 256

原创 2_foc闭环调试_ADC电流采样与滤波及pid数据结构

1、ADC电流采样上次添加了编码器获取电角度的程序,将之前开环控制的角度进行了替换,这次再将电流采样添加进来,之后就可以利用这样一个有反馈的系统进行电流环PI控制器参数调试。 之前写过ADC+DMA电流采样的stm32库函数程序,现在来看还是有很大缺陷的:首先当电机没有转动时,ADC采样已经有了一个数值,即是一个偏置,需要后面将其减去,这块采回来的电流理论上是一个正弦波数值。另外需要将...

2024-09-11 23:22:23 642

原创 keil5 File has been changed outside the editor, reload?

2024-09-09 20:48:19 101

原创 基于InstaSPIN-user‘s guide Foc电流环速度环PI参数计算过程

这次先直接说明计算过程,推导过程暂不注释。1、参数结论 PI控制器有串联有并联,以串联为基础。结论:电流环:速度环: 使用以下公式计算支持设计要求所需的电流环路带宽(通过曲线拟合分析获得):BWc是电流环带宽Kp是电流环参数L是电机电感BWs是速度环带宽δ是阻尼因子2、实际例子计算24V永磁同步电机具有以下特点:Rs = 0.4 ohms Ls = 0.6 ...

2024-09-02 23:20:12 472

原创 4_PMSM基于s函数的仿真建模_1

为了检验电机仿真模型的正确性,,以基于s函数方法搭建的数学模型为例,搭建如图的三相所示的简单三相PMSM矢量控制系统,此模型忽略了PWM逆变器的影响。另外,感兴趣的同志可以对基于Simulink方法搭建的仿真模型进行验证。 图中三相PMSM的数学模型采用MATLAB/Simulink中User-DefinedFunctions中的S-Function模块,该模块的具体设置...

2024-08-29 23:44:36 335

原创 3_3_改进型PID

3.3.1 积分分离PID控制算法 在普通PID控制中,引入积分环节的目的主要是为了消除静差,提高控制精度。但在过程的启动、结束或大幅增减设定时,短时间内系统输出有很大的偏差,会造成PID运算的积分累积,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的超调,甚至引起系统较大的震荡,这在生产中是绝对不允许的。 积分分离控制基本思路是,当被控量与设定...

2024-08-27 07:04:16 444

原创 3_2_数字PID控制

计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量。因此,连续PID控制算法不能直接使用,需要采用离散化方法。在计算机PID控制中,使用的是数字PID控制器。1.11.1位置式PID控制算法 按模拟PID控制算法,以一系列的采样时刻点kT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,即:可得离散式PID表达式:error(k-1)和erro...

2024-08-26 00:03:42 412

原创 3_1_PID控制原理

自从计算机进入控制领域以来,用数字计算机代替模拟计算机调节器组成计算机控制系统,不仅可以用软件实现PID控制算法,而且可以利用计算机的逻辑功能,使PID控制更加灵活。数字PID控制在生产过程中是一种最普遍采用的控制方法,在机电、冶金、机械、化工等行业中获得了广泛的应用。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。...

2024-08-25 10:20:08 926

原创 2_foc转速环_电磁转矩方程与运动方程的传递函数

转速环里面包含有电流环在内,当外面给定转速时,系统通过控制iq来控制电磁转矩,从而电机开始转动。电机在转动的过程,传感器检测到机械角度会改变,也就是说电角度也会改变,由电角度在单位时间的变化,就可以求出电角速度,从而就可以得到反馈回来转速参与转速决策,最终可以控制转速稳定。1、电磁转矩方程与运动方程的传递函数网上的结构框图如下:通过之前的学习,上面三种框图组成部分可分为速度环PI控...

2024-08-20 23:33:16 434

原创 1_FOC电流环_PI控制器参数整定_2

接着上次继续:1、第一个结论——电流环开环传递函数是典型一阶系统现在我们大概了解到d,q轴的某一单轴电流环控制流程:PI控制器、延迟环节(逆变器和cpu周期)、电机环节, 图3-1 图3-2 ...

2024-08-18 20:46:57 602

原创 1_FOC电流环_PI控制器参数整定_1

1、PMSM同步旋转坐标系下的数学建模 为了便于后期控制器的设计,通常选择同步旋转坐标系d-q下的数学模型,其定子电压方程可以表示为:定子磁链方程为:将(1-26)带入式(1-25),可得定子电压方程为:其中:ud、uq分别是定子电压的d-q轴分量;id、iq分别是定子电流的d-q轴分量;R是定子的电阻;φd、φq为定子磁链的d-q轴分量;ωe是电角速度;Ld、Lq分别是d-q轴电感分量;φ...

2024-08-14 23:01:21 384

原创 2_foc开环控制详细流程

上次是使用DMA与ADC采样相电流,后面经过验证,开环让电机转动可以提给一个固定的相电流。 iα和iβ手动给一个固定值,经过Clarke(结合基尔霍夫定律)变换,再经过Park变换、反Park变换,最后将输出的电压给到SVPWM模块。即实际控制中需要获取到电流,再反Park前电流一般会经过PI控制器。 开环控制配置的几个部分如下:1、3路PWM波控制...

2024-08-10 17:47:38 458

原创 4_通过DMA与ADC对PMSM相电流采样

代码是直接问GPT生成的,和网上的再简单核对下。感觉“需求”越详细,GPT生成的可能会更好。 1、stm32f405RGT6 标准外设库 adc1 A6 A7 C4采集 dma2 通道0 配置例子#include "stm32f4xx.h" #defineADC1_DR_ADDRESS((uint32_t)0x4001204C)__IO uint16_t ...

2024-08-06 19:56:32 598

原创 1_foc控制PMSM开环转动流程

前面铺垫了很多的理论和仿真,像Clarke变换、Park变换、七段式SVPWM计算流程,SVPWM基于Simulink的仿真,stm32f4的基础外设操作等,经过这些理论与部分实践的结合,终于要迈进实质性接触电机的时候了——FOC电机开环转动。 再重新温习下FOC(Field-Oriented Control),磁场定向控制,也被称作矢量控制(VC,Vector Cont...

2024-08-04 15:54:35 334

原创 3_stm32_pwm呼吸灯

到目前已经可以进行基础的Led亮灭控制、使用定时器中断控制Led的亮灭。但是发现Led只有“亮”和 “灭”两种状态,那是否可以有更多状态?如何有更多状态呢?更进一步的想法,Led亮是有了电压差,其中一端是地,那么输入端的电压改变,Led的亮度不就可以改变了?通过之前的控制我们知道,引脚PC9只有高低两种状态,那如何可以有除了这两种以外的状态呢?甚至如何将这个引脚输出“正弦波”的波形...

2024-08-03 17:47:54 339

原创 2_stm32定时中断点灯

定时器是个好东西啊~ 之前搞上层应用时,通过定时器可以以某种频率刷新状态,stm32定时器的一种功能就是如此。此外,stm32的定时器还有很多其他功能,如PWM输出等。定时器具体再细分可以分为高级控制定时器、通用定时器、基本定时器等。1、定时时间的计算 基本定时器只具备基本的定时功能,也就是在时钟源的驱动下,从0开始累加脉冲计数,直到超过预定值,然后触发中断或...

2024-08-01 22:50:25 465

原创 1_stm32点亮led

通过之前Simulink的仿真后,大体知道了SVPWM的工作过程,为了实际验证控制PMSM,需要在mcu上实操。硬件电路不投入过多精力,以软件调试为主。 Mcu型号:stm32f405RGT6 使用的工程是自带的,这块不是重点,目前大多使用Hal库进行开发。最终是调制出PWM,先点亮一个led灯,然后使用PWM点一个呼吸灯,之后控制PMSM。 先找到板子上可用的led灯,还好有一个,绿色标出。看右...

2024-07-31 00:06:18 382

原创 7_8_SVPWM基于Simulink的仿真与建模

一、整体流程简介目前,SVPWM算法的合成主要有两种:基于软件模式的合成(七段式SVPWM)和基于硬件模式的合成(五段式SVPWM)。本笔记主要记录软件模式。本次介绍的红框部分内容。这次之后,主要还差速度环与位置环的PI控制器。但这次之后我们可以实现开环的PMSM控制。正如之前的分析(后面再补上),要实现SVPWM信号的实时调制,首先要知道参考电压矢量Uout所在的区间位置,然后利用所在扇区的相邻...

2024-07-28 20:09:00 458

原创 AGV平面坐标系变换公式及实例

1、AGV坐标系简介如上图,小车前后对角是有激光雷达的,其坐标系称为激光坐标系,采用极坐标系体现。中间为车体坐标系,激光坐标系相对于车体坐标系关系不变;左下角是地图坐标系,小车扫图后,建立的坐标系即为地图坐标系,小车在运动过程中,车体坐标系相对于地图坐标系是变化的。2、坐标系旋转与点旋转的变换公式 坐标系旋转: 直角坐标系XOY逆时针旋转θ角后变成X′OY′,原坐标系内...

2024-07-20 00:17:44 461

原创 AGV栅格地图与QImage图片转换笔记

最近在加班加点处理一个agv相关的任务,印象比较深的是将agv给的json数据转换为一个图片。最终的简化需求是将某坐标系下的二维点数据转换为一张图片的像素。Ok,首先的问题是如何将二维的数据映射到栅格坐标系。先看数据例子:"mapType":"2D-Map","maxPos":{"x":4.51,"y":16.331},"minPos":{"x":-14.138,"y":-1.48}"resol...

2024-07-15 23:43:01 371

原创 7_4_SVPWM三相电压空间矢量表示_逆变器开关与电压

对于典型的两电平三相电压源逆变器电路,其原理如图2-3所示。定义开关量sa, sb, sc, sa’, sb’, sc’表示6个功率器开关器件的开关状态。当sa, sb 或sc为1时,逆变器电路上桥臂的开关器件开通,其上下桥臂的开关器件关断(即sa’, sb’,或sc’为0);反之,当sa, sb 或sc为0时,上桥臂的开关器件关断而下桥臂的开关器件开通(即sa’, sb’,或s...

2024-07-09 21:37:38 210

原创 7_3_三相电压的空间矢量表示_理论推导

7_1_SVPWM概述这里面提到了“若能将三相3个标量用一个合成量表示,并保持信息的完整性,则三相的问题将简化为单相的问题”。下面聊聊这个问题。 假设三相3个标量为xa、xb、xc,并满足xa+xb+xc=0[1],则可以引入变换式(2-1)的变换将3个标量用一个复数Xout表示,复数Xout在复平面上为一个向量,如图2-1所示,其实部和虚部分别表示为(欧拉公式)欧拉公式(英语:E...

2024-07-07 11:04:20 806 2

原创 7_2_SVPWM原理之正弦电压与恒定旋转磁场

SVPWM是近年发展的一种比较新颖的控制方法,是由三相功率逆变器的六个功率开关元件组成的特定开关模式产生的脉宽调制波,能够使输出电流波形尽可能接近于理想的正弦波形。空间电压矢量PWM与传统的正弦PWM不同,它是从三相输出电压的整体效果出发,着眼于如何使电机获得理想圆形磁链轨迹。SVPWM技术与SPWM相比较,绕组电流波形的谐波成分小,使得电机转矩脉动降低,旋转磁场更逼近圆形,而且使直流母线电压的利...

2024-07-06 23:29:26 234

原创 7_1_SVPWM概述

1、SPWM正弦脉宽调制法(SPWM)是将每一正弦周期内的多个脉冲作自然或规则的宽度调制,使其依次调制出相当于正弦函数值的相位角和面积等效于正弦波的脉冲序列,形成等幅不等宽的正弦化电流输出。通过调整占空比使等效电流近似为正弦波,这种PWM也就是SPWM。SPWM不依赖开关顺序,3相独立调制,类似开环控制,是没有反馈的,只管生成正弦波。① SPWM调试方式在FOC实现中并不常用,原因是SPWM要比后...

2024-07-04 23:43:49 341

原创 Keil用ST-LINK下载STM32程序后不自动运行

之后程序可以运行了,但是串口还没有输出,在debug模式下都是ok的。

2024-07-03 23:27:56 358

原创 Keil5 ST-LINK setting闪退问题解决

我的库文件目录:

2024-07-02 22:16:37 812

原创 6_Park变换计算过程及Simulink仿真

之前一些相关的资料。https://ww2.mathworks.cn/discovery/clarke-and-park-transforms.html三相电压的大小是随时间变化的正弦波形,相位依次相差120°,具体如下图所示:在????????静止坐标系中,????轴和????轴的相位差为90°,且????????的大小是随时间变化的正弦波形,具体如下图所示:1、Park变换将静止坐标系α-β变换到同步旋转坐标系d-...

2024-06-30 14:15:37 832

原创 5_Clark变换Simulink仿真详细步骤

一、Clark变换的计算过程根据投影定理:Iα由Ia、Ib、Ic共同投影决定,根据几何原理,Iα=Ia-cos(60°)*Ib-cos(60°)*Ic,即是Iα=Ia-0.5*Ib-0.5*IcIβ由Ib、Ic共同投影决定,根据几何原理,Iβ=sin(60°)*Ib-sin(60°)*Ic,即是 Iβ=(lb-lc)二、Simulink仿真模型搭建刚开始接触这些还是有些抽象的,如...

2024-06-28 20:38:51 562

原创 4_FOC之Clarke变换原理及推导_1

三相PMSM的数学模型是一个比较复杂且强耦合的多变量系统。为了便于后期控制器设计,必须选择合适的坐标变换对数学模型进行降阶和解耦变换。1、什么是Clark变换静止abc轴系与αβ轴系如上图。为满足功率不变约束,在图中设αβ轴系中定子绕组以及转子绕组的的有效匝数均为abc轴系每项绕组的倍。磁动势等效是坐标变换的基础和原则。因为只有这样,坐标变换后才不会改变电机内的气隙磁场分布,才不会影响机电能量转换...

2024-06-26 00:16:33 399

原创 3_电机的发展及学习方法

一、电机组成及发展1、什么是励磁?在电磁学中,励磁是通过电流产生磁场的过程。发电机或电动机由在磁场中旋转的转子组成。磁场可以由永磁体或励磁线圈产生。对于带有励磁线圈的机器,电流必须在线圈中流动才能产生(激发)磁场,否则就不会有电力传输到转子或从转子传输。励磁线圈提供最灵活的磁通量调节和解除调节形式,但代价是电流的流动。存在混合拓扑,其在同一配置中同时包含永磁体和励磁线圈。旋转电机的灵活励...

2024-06-23 08:21:12 376

原创 8_机械臂工作台坐标系标定及验证

1、机械臂实际数据AUBO 机械臂xOxy方式标定用户坐标系:O:X轴正半轴一点:XOY象限任意一点(还是有一些要求的): 一些坐标点的验证:2、如何根据上述3点,计算work1坐标系与base坐标系的关系?最开始在网上没找到相关的资料(论资料搜索对程序员的重要性),唯一一篇有参考价值的还需要充会员,最后不得不冲了会员,太想知道了。之后就有了向量叉积那篇笔记。有了前两篇笔记的铺垫,本次笔记...

2024-06-21 20:57:50 578

原创 2_电机控制入门_淘宝买的PMSM电机与FOC

1、 前言自学电机控制的难度还是不小的,一是否是相关专业,二适合初学者的资料。永磁同步电机和无刷直流电机由于具有效率更高、运行更安静和可靠性更高等优势,正在许多应用中越来越多地取代直流有刷电机。尽管结构不同,但所有三相永磁电机 (BLDC、PMSM 或PMAC) 均由脉冲宽度调制 (PWM) 三相桥(三个半桥)驱动,以便为电机提供可变频率和幅...

2024-06-19 18:19:37 477

原创 7_机械臂工作台坐标系理论_一般坐标系的映射_2

1、一般坐标系的映射经常有这种情况,我们已知矢量相对坐标系{B}的描述,并且想求出它相对于另一个坐标系{A}的描述。结合上次的理论和平时对机械臂使用的经验,使用3点法标定机械臂工作台坐标系(我习惯称为用户坐标系,下面称为用户坐标系),则是已知3点基于基坐标系的描述,求3点基于用户坐标系的描述,即用户坐标系相对基坐标系的描述。现在考虑映射的一般情况。此时,坐标系{B}的原点和坐标系{A...

2024-06-18 17:59:00 397

原创 6_工作台坐标系理论_向量叉积_1

一、相关理论温习1、叉积的定义及其几何解释向量叉积(Cross product)又译为交叉积(交叉积的名称来自于其运算规则,因为两个向量作叉积运算时,是把向量的元素交叉相乘;当然其计算符号a×b刚好也是叉叉),也可称为外积,因为叉积会产生新的一维向量。两个向量确定了一个二维的平面,叉积又会产生垂直于这个平面的向量。叉积的定义也有两个,下面我们把它们列举出来并探...

2024-06-17 21:45:39 300

原创 5_机械臂工具位姿计算理论及代码实现验证

1、机械臂工具位姿计算理论机器人的首要功能之一是能够计算它所持的夹具(或未夹持夹具)相对于规范坐标系的位姿,也就是说需要计算工具坐标系{T}相对于工作台坐标系{S}的变换矩阵。只要通过运动学方程计算出,就可以应用第二章所述的笛卡尔变换计算{T}相对于{S}的变换矩阵。求解一个简单的变换方程,得出:方程3-18在某些机器人系统中称为WHERE函数,用它可计算手臂的位置。对于图3-28的情况,WHE...

2024-06-16 08:12:55 434

原创 4_机械臂坐标系简介

一、坐标系的标准命名为了规范起见,有必要给机器人和工作空间专门命名和确定专门的“标准”坐标系。图3-27为一种典型的工况,机器人抓持某种工具,并把工具末端移动到操作者指定的位置。图3-27所示的5个坐标系就是需要命名的坐标系。这五个坐标系的命名以及随后在机器人的编程和控制系统中的应用都以简单易懂的的特点提供了一种通用性。所有机器人的运动都将按照这些坐标系描述。下图所示为坐标系的简化定义。1、基坐标...

2024-06-15 18:08:34 474

原创 3_机械臂位姿变换计算过程代码

1、aubo arcs sdk poseTrans 使用例子先贴代码:autocur_pose=rpc_cli->getRobotInterface(robot_name)->getRobotState() ->getTcpPose();std::vectortarget_pose;target_pose = {0,...

2024-06-12 23:11:55 290

原创 1_电机控制基础知识扫盲

1、术语中英文简称PWM 脉宽调制(Pulse Width Modulation)SPWM 正弦波脉宽调制(Sinusoidal PWM)BLDC 直流无刷电机(Brushless DC Motor)PMSM 永磁同步电动机或永磁同步伺服电机(Permanent-Magnet SynchronousMotor)FBC 电流反馈环节FBS 测速反...

2024-06-11 23:52:17 331

原创 4_机械臂位姿求逆理论及代码计算

1、aubo arcs sdk poseInverse 使用例子auto cur_pose = rpc_cli->getRobotInterface(robot_name) ->getRobotState() ->getTcpPose(); // 2.288083 0.035207 1.550335 ...

2024-06-10 20:36:41 321

原创 3_机械臂位姿变换计算代码_2&aubo arcs sdk poseTrans 使用例子

1、aubo arcs sdk poseTrans 使用例子先贴代码:auto cur_pose = rpc_cli->getRobotInterface(robot_name) ->getRobotState() ->getTcpPose();std::vectortarget_pose;target_pose = {0, 0, 0....

2024-06-05 21:40:42 328

ThreadClientSendPicture.zip

Qt 线程中使用socket发送图片数据,由于图片数据较大,进行了拆包操作。想要具体了解可参考之前的博客。https://blog.csdn.net/ACK_ACK/article/details/98565090

2019-09-07

ConditionWait.tar.gz

使用条件变量域互斥锁来同步生产者和消费者之间访问临界区数据问题,大幅降低CPU占用率问题。

2019-08-20

NRF无线通信

NRF通信

2016-12-21

蓝牙开发书籍

想开发蓝牙的可以看看一看,里面有协议栈,链路等等的介绍

2015-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除