汽车电子笔记之-012:旋变工作原理及软解码硬解码

目录

1、旋变

1.1、激励的产生

1.2、旋变的标定

2、旋变解码

2.1、旋变硬解码

2.2、软解码


1、旋变

        旋转变压器(旋变),是电机控制中常用的一种位置传感器,用来反应电机的转子位置,提供给软件做电机控制等相关算法。

        如上图所示,旋变也可以理解为是一个小电机,也分定子与转子,通常旋变的转子安装在电机的转轴上,与电机同步旋转,并在定子线圈中感应出位置信息,由定子线圈传递出来,得到最终的位置。       

        旋变的结构示意图如上图所示,中间的R1R2线圈为转子线圈,S1S2、S3S4分别为互相垂直的定子线圈,当R1R2中通入的是高频正弦信号,我们通常称该信号为激励信号;此时会在次级线圈中感应出高频的感应信号,这个信号就包含了具有位置信息的包络信号;我们将返回的感应信号提取包络,就可以获取对应的正余弦信息;通过硬解码/软解码等方式解码后,可以得到定子的绝对位置信息(这里注意强调一下是绝对位置)。下面我们来推导一下这个过程:

假设激励信号为:

        如上图中的位置所示,旋变的激励线圈与水平的夹角为θ

        那么结合激励线圈中的信号,可以分别得到两个感应线圈中的信号分别为:

所以,我们能分别得到激励、正弦及余弦的波形如下:

        其中正余弦的波形是幅值不断变化的正弦曲线,结合上面的方程不难理解,正弦曲线其实是激励源产生的,而之所以幅值会不断变化是因为旋转过程中,激励线圈与次级线圈的夹角 θ不断变化,所以产生了这种波形。而这个波形的外包络(即图中的黑线部分)就是我们所需要的正余弦信号。

        所以,我们在解码过程中,只需要能够提取正余弦信号的外包络,就可以获取转子的绝对位置信息了。

        那么,基于以上分析,了解了旋变的主要结构和工作原理以后,旋变的应用很重要的两个功能就是激励信号的产生和回采正余弦信号的外包络提取及角度计算(这一部分通常称为旋变解码)。

1.1、激励的产生

        注意激励信号sin+与sin-是差分信号。

        通过前面的介绍,我们知道旋变的工作需要一个高频的正弦信号输入,我们通常称为激励信号。而在实际的应用过程中,正弦曲线是无法通过MCU某个模块直接得到的。所以,我们很自然的能想到PWM调制技术,与电机控制一样,都是通过高频PWM的脉宽调制,最终达到近似输出正余弦电压的效果。

        另一方面,除了MCU输出的高频PWM信号外,控制器硬件上也需要相关电路的匹配设计,硬件需要完成的功能有调整比例、调整偏置、增加驱动能力等,软硬件结合后才能够最终得到我们所需要的激励信号波形。关于旋变的硬件电路这部分,网上有很多可用的资源作为参考,这里不过多的介绍。

        单片机产生的是输入信号,产生

产生的激励正负结果:

        仿真得到的激励波形在峰值点有点削波的情况,这是由于在PWM生成的地方有两个relay模块,在PWM小脉宽的时候,可能不满足relay中buffer的设定,所以在峰值点的时候波形存在缺失。

1.2、旋变的标定

        旋变的标定在日常工作中有很多通俗的说法,比如说零位角标定、电机角标等等。虽然说法不同,但是内容及功能是一致的,就是要知道旋变的零位与电机的零位之间的角度偏差。

        旋变是一种绝对位置传感器,获取的是电机转子位置的绝对位置。但是我们电机控制的本质是定子磁场与转子磁场的相互作用,而定子磁场是通过输出电流得到的,所以我们需要的并不是转子的绝对位置,而是转子与定子之间的相对位置,有了相对位置,定子磁场才可以准确的输出。

        旋变的标定需要寻找的是旋变的零位和电机零位的偏差,又由于旋变可以获取的是绝对位置,所以,实际应用过程中我们只要找到电机零位对应的旋变位置,其实就是旋变零位与电机零位的偏差了。

        旋变其实也可以理解为一个小电机,因为旋变也有极对数的概念,为了方便我们通常会与大电机极对数相同的旋变来作为传感器,这样旋变解码出来的角度就是电机的电角度。如果二者之间的极对数不相等,那还存在换算的关系。

2、旋变解码

        既然有了正确的激励,就有正确的返回值,当然也会经过一段sin/cos的电路,这部分不做分析了。然后就会到我们的MCU或者解码芯片了,由于回采的信号是带有sin/cos的外包络的高频信号,所以如何解码就成为获取电机转子位置很重要的一环了。既然有了正确的激励,就有正确的返回值,当然也会经过一段sin/cos的电路,这部分不做分析了。然后就会到我们的MCU或者解码芯片了,由于回采的信号是带有sin/cos的外包络的高频信号,所以如何解码就成为获取电机转子位置很重要的一环了。

注意上图波形sin的顶点与激励的(正负)顶点是对齐的。

        这里按照解码的途径来分类有两种,分别是软解码和硬解码;如果按照解码的思路来分类也分为两种,可以分为反正切和锁相环。无论是什么样的处理思路,都需要先提取正余弦返回信号的外包络,这里也分为两种方式,分别是取极值点和积分法。

2.1、旋变硬解码

        所谓旋变硬解码就是利用硬件来对旋变信号进行处理,当然也包括激励信号的生成。只不过是一颗独立的解码芯片来完成而已。同样的,对于反馈正余弦信号的处理也是由解码芯片完成,最终将解码的结果通过SPI/并口/ABZ等通信的方式传输给MCU。MCU获取的就是最终我们所需要的位置信息或者转速信息。

        接下来以AD2S1200为例,简单的介绍一下硬解码的解码方式和解码原理:

        关于具体功能,大家可以参看datasheet中的说明,这里强调一点,就是激励信号为什么要搭配外围的电路。因为无论是MCU产生的高频PWM还是解码芯片产生的激励信号,输出能力都是不够的,所以外围要增加缓冲放大电路来保证性能

        AD2S1200中采用的是Type II型闭环跟踪原理,这部分在芯片的datasheet中有描述。我们软解码中其实应用的也是这个原理,只不过是用软件实现了。下面简单介绍一下II型闭环跟踪原理:

        转换器产生输出角ϕ(追踪的这个角来自于芯片内部的计算,将前一次输出的转速经过积分得到的角度,再次给到下一个周期的输入),反馈后与输入角θ进行比较,借此来达到跟踪轴角θ的目的;两个角度之差即为误差,如果转换器正确跟踪输入角,误差趋于0。为了测量误差,将S3-S1乘以cosϕ,并将S2-S4与sinϕ相乘。得到手册中的公式:

上面两式作差

        括号外面的部分是激励信号的表达式,而括号中的角度是我们需要的追踪结果,所以,我们只需要看括号内的表达式,利用和差化积可以将括号中的表达式进行转化:

        

        Type-II跟踪环路消除了误差信号,完成该操作后,ϕ等于旋转角θ。由于计算的相邻周期间的角的误差,所以得到的结果是加速度,积分后得到速度,再积分后得到位置信息。

        而手册中在CIRCUIT DYNAMICS中,又详细介绍了Type-II跟踪环路系统:

        首先是当前的sin/cos输入,并与上一个周期的结果作差,然后经过和差化积运算,可以得到角度差,即为加速度。经过第一个积分器,可以得到速度。中间经过一个补偿滤波器(compensation filter),用于提供相位裕量并减小高频噪音的增益。速度结果再经过第二个积分器,得到最终的位置输出。然后该位置结果经过正余弦的查表,得到正余弦结果再跟下一个周期采集到的正余弦信息计算下一个周期的结果。

        在硬解码中,很重要的一点理解就是高频返回信号的解码,这里有一个模块叫做检波器,配合激励的波形,这个检波器最重要的功能就是将包络提取出来,具体的电路形式可以搜索获取,比如包络检波器、极值检波器等等,匹配好电路中低通滤波器及检波器的参数,就可以实现基本的功能。实现了外包络提取后,再进行积分运算。

        

2.2、软解码

        与硬解码的原理相同,完成位置信号获取最重要的是激励信号的产生、外包络的提取及角度的计算。激励的产生原理与硬解码相同,下面主要介绍一下外包络的提取方式及角度的解码方式。

        外包络的提取方式主要可以分为两种:峰值提取和积分提取。

        峰值提取法顾名思义就是要提取每个高频正余弦波的峰值,如下图所示

在前一篇文章中我们提到过,返回的正余弦高频信号的方程分别为:

        用Vb/Va=tan(θ),可以用这个结果直接利用查表(acrtan表格)就可以得到转角θ。

        积分方式提取,我们比较常用的是直接借助英飞凌的DSADC模块完成软解码的功能。与硬解码原理相似,主要的差异体现在正余弦外包络提取的方法上,采用的是DSADC中的积分器完成。

        首先介绍一下整个的解调原理:

主要过程分为以下几个步骤:

·滤波;

·展开:将一个载波周期内的波形展开,并提取其中的滤波结果(图中为14个点)

·符号:在载波信号生成的同时会生成一个符号,当在载波信号生成的正半周期时,符号为+1;当在载波周期的负半周期时,符号为-1;

·整形:结合前一步的符号信息,将一个载波周期内的波形进行翻转,正半周期的波形向正半轴翻转;负半周期向负半轴翻转;

·聚拢:同样的方法对每一个载波周期的波形进行处理,可以得到上图中第五步的波形,正半周期的波形全部为正;负半周期的波形全部为负;

·积分:分别对两个波形进行积分:

        由上式可以看出,经过积分后的波形只与激励的幅值和当前的角度θ相关,与激励是无关的。所以,通过积分提取外包络得到实现。

        在这个过程中,其实最重要的就是整形这一步,因为其他部分的原理与硬解码基本类似,而且整形这个过程牵扯到如何准确的实现波形的翻转,是得到正确积分结果的基础。

        在前面的载波生成中我们提到过,在生成载波的同时也会同步生成一个符号,用来区分载波的正半周期和负半周期。

        首先需要介绍几个概念,第一个是捕捉的延时CAP值,这个是指实际的正余弦翻转与载波生成的翻转信号之间的延时;第二个是抽取率M,这个指标确定了在一个周期内,我们的数据个数,或者说在一个完整的载波周期内的PWM个数。其实不难理解,这个PWM的个数与总线频率和正弦频率有关,假设一个周期内的PWM周期有32个,那么很容易得到半个周期就是16个,再加上延时的CAP值,那么我们就得到了正负翻转的计数点为16+CAP。这个模块中的CAP每捕捉一次就会触发一个中断,在中断里会刷新这个延时。当载波符号改变后,表示生成的载波已经改变了方向,此时开始计数;直到滤波后第一个符合符号的结果出现,这个计数的结果就是CAP的延时。

        关于时序的问题,以TC277为例,它的总线频率为200MHz,按照配置的方式,我们可以产生的PWM频率为312.5kHz;而一个包络的周期包含32个PWM周期,所以正余弦的周期为9.76kHz。而我们通常的控制频率(电流环)都不是9.76kHz,意味着如果在电流环中处理角度的话,电流环与软解码之间是不同步的,存在时间差,在实际应用过程当中,一定要注意两个不同频率之间的角度差。再一个需要补偿采样、计算等方面的延时,否则角度也会存在偏差。

        关于角度计算,我们提出了两种计算方式,分别是反正切查表和观测器的方式实现,两种方式的优缺点为:

·反正切:

抗噪性较差,

静态波动较大,

无额外延迟

计算时间长

·观测器:

抗噪性好

静态数据稳定

加减速时有静态误差

同时产生速度值

        最后补充一句,在软解码的实现过程中,旋变的反馈波形并不一定很完美,这里可能需要对幅值、相位、中性点等进行校正。校正的算法目前比较成熟且统一,不做介绍了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nginx+Keepalived高可用集群

NginxKeepalived高可用集群 服务器准备 服务器名IP软件包主从n1RIP 192.168.99.111 VIP 192.168.99.200nginx keepaliveMASTERn2RIP192.168.99.122 VIP 192.168.99.200nginx keepalivedh1RIP 192.168.99.133 VIP 192.168.99.200httpdh2RIP 192.168.32.144 VIP 192.168.99.200h…

三.Ubuntu安装MySql数据库

三.Ubuntu安装MySql数据库 1.首先进入Console,登录Ubuntu系统后,更新源,命令:apt update,如图所示。 安装MySQL命令:apt install mysql-server 执行期间按回车,进行下一步,执行过程如图所示: 选择yes或no,此步选择yes 安装完成。 2.提高MySQL安全性,该命令…

2024-简单点-MediaCrawler解构

MediaCrawler var.pyrecv_sms.pyasync_db.pydb.pymain.pybase/base_crawler.pyconfig/baseconfig.pyconfig/db_config.py有待更新 var.py from asyncio.tasks import Task from contextvars import ContextVar from typing import Listimport aiomysqlfrom async_db import As…

【脚本】使用脚本备份docker中部署的mysql数据库

v1版本明文密码方式: #!/bin/bash# 定义 MySQL 容器名称和数据库信息 container_name"mysql_container" db_user"root" db_password"your_password"# 定义要备份的数据库列表 databases("database1" "database2"…

交换机组网最常见的8大故障及解决方式

有朋友多次提到网络故障,其中在交换机组网时常见的故障比较多,为了便于大家排除这些故障,在此介绍一些常见的典型故障案例及处理思路。 故障1:交换机刚加电时网络无法通信 【故障现象】 交换机刚刚开启的时候无法连接至其他网络…

摸鱼大数据——Linux搭建大数据环境(安装zooKeeper和zookeeper shell命令)五

安装zookeeper软件 1.上传软件 使用CRT等客户端远程上传 zookeeper-3.4.6.tar.gz 文件到/export/software目录下 2.解压软件 [rootnode1 ~]# cd /export/software/ [rootnode1 software]# tar -xzvf zookeeper-3.4.6.tar.gz -C /export/server/ [rootnode1 software]# cd /ex…

用友GRP-U8 userInfoWeb SQL注入致RCE漏洞复现 (XVE-2024-10539)

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友GRP-U8R10行政事业内控管理软件 userInfoWeb接口处存在SQL注入漏洞,未授权的…

自由职业是种怎样的体验?普通人如何成为一名自由职业者?

自由职业在哪都能办公自由职业在哪都要办公。 放弃幻想,没有不辛苦的工作,5年经验后端开发程序员,已经从事自由职业1年半,今天就来客观分享一下自由职业的利与弊。 时间自由,减少中间商赚差价 自由职业最让人羡慕的就…

电机完美控制的感觉如何【应用案例】

当电机控制技术成为人体的一部分时,对控制系统的组件尺寸和可靠性要求将极大提高。得益于集成式FOC控制系统组件,第一款具有两个活动关节的义肢得以在短时间内完成—— 赶上在苏黎世举办的全球半机械人奥运会(Cybathlon)。 失去肢体显然会对一个人的生活…

GPT4o速测:约0.5秒延迟的多模态能力

文章目录 1. 测评2. IntroReference 没有剪辑,约0.5秒延迟的多模态能力。 1. 测评 推理速度异常快,比之前快了大概两三倍,对产品端来说是个很好的事情,想用gpt4级别性能终于可以少讨论几句时延影响用户体验了模型指令遵从能力变强…

GPT3.5、GPT4、GPT4o的性能对比

理论总结 随着版本的升级,模型在参数数量、语言理解能力、生成文本质量、多模态能力、推理能力等方面均有显著提升。GPT-4.0作为最新改进版,提供了最先进的功能和性能。 实际对比 1.1.GPT3.5 1.2.GPT4 1.3.GPT4o 在语义理解上,无差别。 下面测试下代码能力。 测试问题 我…

电脑的录屏功能在哪?一篇文章教你快速定位

“电脑录屏功能在哪里呀?因为需要录制一些教学视频,急需用到电脑的录屏功能。我已经在电脑上翻箱倒柜地找了好几个小时,可还是没有找到。时间紧迫,这个任务对我来说非常重要,我现在感到非常焦虑,希望大家帮…

YOLOv8独家改进:逐元素乘法(star operation)二次创新 | 微软新作StarNet:超强轻量级Backbone CVPR 2024

💡💡💡创新点:star operation(元素乘法)在无需加宽网络下,将输入映射到高维非线性特征空间的能力,逐元素乘法(star operation)在性能上始终优于求和,基于star operation块做二次创新 💡💡💡如何跟YOLOv8结合:替代YOLOv8的C2f,结构图如下 收录 YOLOv8…

压力给到 Google,OpenAI 发布 GPT-4o 来了

北京时间5月14日凌晨1点,OpenAI 开启了今年的第一次直播,根据官方消息,这次旨在演示 ChatGPT 和 GPT-4 的升级内容。在早些时候 Sam Altman 在 X 上已经明确,「我们一直在努力开发一些我们认为人们会喜欢的新东西,对我…

炫富神器,简单无脑粘贴复制,闷声发财,当天见收益,无上限封顶

项目主打简单、暴力、易操作、可复制,单人可做、不靠关系走门路、不重投资、可复制放大! 今天给大家带来的这个项目,有点暴力,请先做好心理准备!谨慎观看!! 这个项目原理是利用软件生成炫富视频…

数据结构——队列(链表实现)

一、队列的特点 先进先出 二、队列的代码 typedef int QDataType;// 链式结构:表示队列 typedef struct QListNode {struct QListNode* next;QDataType data; }QNode;// 队列的结构 typedef struct Queue {QNode* front; //指向队列的第一个结点QNode* rear;//指…

基于uniapp+vue3+ts开发微信小程序项目实战

🚀 作者 :“二当家-小D” 🚀 博主简介:⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8年开发架构经验,精通java,擅长分布式高并发架构,自动化压力测试,微服务容器化k…

香港电讯高效网络,助力新消费品牌抓住拓展香港市场新风口

自今年初香港与内地全面恢复通关,两地同胞跨境消费热潮持续升温。港人“北上”消费掀起风潮的同时,香港市场也成为内地新消费品牌拓展的热门目标。从糕点、茶饮、连锁餐饮到服饰,越来越多内地品牌进驻香港。新消费品牌要想在香港开设门店&…

气膜建筑会漏气吗—轻空间

气膜建筑作为一种创新的建筑形式,其主要结构依靠充气系统提供源源不断的风力,以维持内部气压,从而支撑起整个膜体,抵御外部的风雪荷载。然而,气膜建筑能否保持完全的密封性,是否会漏气,是许多用…

python批量生成验证码,python生成验证码

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.总结 一.前言 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Human