关于无刷无感延时30电角度
本帖最后由 害人虫 于 2012-8-2 22:58 编辑今天总算切换到无感模式了2对极电机切换过程是这样的 按照MK的代码启动成功后退出启动函数 此时的退出的速度大约10ms换一次相延时30度就是5ms,退出后按照MK的代码给个小占空比 开始捕获零点信号,然后主循环里 给了个占空比大约能转到1600转约3ms换一次相的样子 。第一次捕获清空计数器的值 让phase++ 不换相 第二次捕获到零点 计算速度 计算延时30度可是此时延时30度计算值很大 导致第一次延时换向 产生了极大的滞后 , 此次换向之后 电机转的很不顺畅。 请问大家 延时30度这怎么处理的呢
退出时10ms 换一相 他的30电角度5ms 比我要达到的速度3ms换一相还大,肯定是不能用的 没人指点下吗。。。。。 你的延时30度的计算值是怎么算的?是在程序的什么地方算的? 本帖最后由 害人虫 于 2012-8-3 11:19 编辑
976717326 发表于 2012-8-3 10:05 static/image/common/back.gif
你的延时30度的计算值是怎么算的?是在程序的什么地方算的?
我也想知道在什么地方计算比较合适 现在启动成功后开始计算 但是计算值 导致的相位延时太大了 没有太看懂,按照你所谓的进入小占空比计算转速的时刻,那个时候计算出来的延迟就是你所需要的延迟,你可以在切换之间从完全开环,编程超前30度换相,在变成完全的闭环。因为超前30度换相是安全的,不会造成阻转,因此没有问题。 tiancaigao7 发表于 2012-8-3 12:54 static/image/common/back.gif
没有太看懂,按照你所谓的进入小占空比计算转速的时刻,那个时候计算出来的延迟就是你所需要的延迟,你可以 ...
我的小占空比 那时刻 是开环状态 此时不是超前就是滞后 这个可以从我以前总是想开环加速到2000看端电压是梯形波实验得到证实根本就是看不到 ,因此我感觉你在开环计算的换向时间 拿到闭环用是不合适的。 害人虫 发表于 2012-8-3 13:07 static/image/common/back.gif
我的小占空比 那时刻 是开环状态 此时不是超前就是滞后 这个可以从我以前总是想开环加速到2000看端电压是 ...
30度延迟的时间是两次过零间隔的一半,这个不管是开环还是什么闭环都是不会边的。而且假定两次换相之间速度几乎不变(这个几乎适用于所有的电机) tiancaigao7 发表于 2012-8-3 14:09 static/image/common/back.gif
30度延迟的时间是两次过零间隔的一半,这个不管是开环还是什么闭环都是不会边的。而且假定两次换相之间速 ...
是啊 之前就那么算的可是,计算出来的延时i时间很大,在主循环 然后占空比又发生了变化 会不会像fm007兄台说的那样我的小功率的电机 惯性小 等捕获到了2零点 占空比突然加大 此时的延时30度 已不再适合 当前的需求 又跑了一会老样子 害人虫 发表于 2012-8-3 14:23 static/image/common/back.gif
是啊 之前就那么算的可是,计算出来的延时i时间很大,在主循环 然后占空比又发生了变化 会不会像fm007兄 ...
就算占空比突然加大了,转速也是慢慢加上去的吧,所以相邻两次换相的换相间隔是不会突变的,所以你记下上一次的换相间隔,然后检测到过零点之后再延时所记下间隔的一半时间再换相。
还有你计算这个间隔是用两次过零点之间的时间?万一检测到假零点怎么办? 本帖最后由 害人虫 于 2012-8-3 15:43 编辑
976717326 发表于 2012-8-3 14:50 static/image/common/back.gif
就算占空比突然加大了,转速也是慢慢加上去的吧,所以相邻两次换相的换相间隔是不会突变的,所以你记下上 ...
假零点 我也犯愁,之前看MK的代码 利用软件的延时能去掉假零点他认为在空载下假零点 为ns级但是我在带着霍尔的情况下lm339的输出 如下图 持续时间很长100us 估计去不掉不知道兄台 有什么好的法子没,对了你启动成功后占空比清零了没 还是保持 原来的值不变的
害人虫 发表于 2012-8-3 14:23 static/image/common/back.gif
是啊 之前就那么算的可是,计算出来的延时i时间很大,在主循环 然后占空比又发生了变化 会不会像fm007兄 ...
想要回答是否是占空比的问题很简单,不要改变占空比呀,就低占空比切换,然后看看是否稳定。我之前调试的最小的电机是24V,20W的,你那个肯定不会比我这个小。因此不是这个原因。 976717326 发表于 2012-8-3 14:50 static/image/common/back.gif
就算占空比突然加大了,转速也是慢慢加上去的吧,所以相邻两次换相的换相间隔是不会突变的,所以你记下上 ...
检测到过零之后要根据当前的状态判断这个过零是否是正确的,而不是单纯机械的遇到过零点就像后换相。那样肯定抗干扰能力相当差。 本帖最后由 害人虫 于 2012-8-3 18:41 编辑
tiancaigao7 发表于 2012-8-3 18:27 static/image/common/back.gif
检测到过零之后要根据当前的状态判断这个过零是否是正确的,而不是单纯机械的遇到过零点就像后换相。那样 ...
虽然接着3个捕获 我是根据当前相位开启某一个 捕获 而且上升 下跳沿也做了区分
启动成功后跳出的操作
进入捕获中断 第一次零点清空计数器,第二次零点 读取计数器的值 计数器周期为25.6us。速度计算函数 带着霍尔试验过没有问题延时也对,但是在无感模式下延时计算先崩溃 导致速度崩溃 延时能到几万 ,如果延时在零点后 给一个定值 电机转的 稍微好点
下面按照MK的 换向函数写的 directionfilter();先是把捕获引脚设成GPIO 读 电平
延时30度后,换相开启跳变沿捕获
tiancaigao7 发表于 2012-8-3 18:27 static/image/common/back.gif
检测到过零之后要根据当前的状态判断这个过零是否是正确的,而不是单纯机械的遇到过零点就像后换相。那样 ...
我的程序写的比较奇葩,而且还是用ADC做的。
我在开环进入闭环之后判断电机处于哪一相之后,等待这一相的过零点,检测到过零点之后确认它就是过零点,然后才延时换相。
如果在一段时间之内没有检测到过零点,强制换相。
用ADC的话基本就是等着它过零点。。而不是上升沿下降沿这种东西了。。 害人虫 发表于 2012-8-3 15:27 static/image/common/back.gif
假零点 我也犯愁,之前看MK的代码 利用软件的延时能去掉假零点他认为在空载下假零点 为ns级但是我在带 ...
我用ADC做得,没有上升沿下降沿的问题。。所以很多问题都没有考虑,本人也是菜鸟一个。。
至于占空比进入闭环之后不是要根据飞控的信号什么之类的来变化的吗? 976717326 发表于 2012-8-3 19:44 static/image/common/back.gif
我的程序写的比较奇葩,而且还是用ADC做的。
我在开环进入闭环之后判断电机处于哪一相之后,等待这一相的 ...
检测到过零点之后确认它就是过零点,然后才延时换相。
如果在一段时间之内没有检测到过零点,强制换相。
你好,你确认这个环节怎么弄的,
还有没有检测到 强制换向 这点你怎么实现的?? 害人虫 发表于 2012-8-3 20:37 static/image/common/back.gif
检测到过零点之后确认它就是过零点,然后才延时换相。
如果在一段时间之内没有检测到过零点,强制换相。
...
每次换相之后开一个定时器不就OK了? 976717326 发表于 2012-8-3 19:44 static/image/common/back.gif
我的程序写的比较奇葩,而且还是用ADC做的。
我在开环进入闭环之后判断电机处于哪一相之后,等待这一相的 ...
用ADC直接检测反电动势这个是一个常规的思路,不算是什么新奇的。不过问题是这样资源占用比较大,而且平白无故占用了三个AD通道。性价比低,另外就是速度问题,用ADC做的话,反应速度没有硬件比较的快,速度快或者转子极对数比较多的话,反电动势的频率会相应提高,这样ADC采样容易产生较大的滞后。 tiancaigao7 发表于 2012-8-3 21:38 static/image/common/back.gif
用ADC直接检测反电动势这个是一个常规的思路,不算是什么新奇的。不过问题是这样资源占用比较大,而且平 ...
哈哈,目前只会用stm32,所以就用它了。。加上它没有自带的模拟比较器。。只好ADC了。。
其实最终是想做一个四合一电调,用STM32用人已经实现了,所以正在努力往这个方面发展。。
还有很多不懂的东西,以后还请大神多指教了。。 976717326 发表于 2012-8-3 21:06 static/image/common/back.gif
每次换相之后开一个定时器不就OK了?
你好 ST 的 延时系数估算函数 理解吗BLDCDelayCoefComputation 害人虫 发表于 2012-8-16 21:11 static/image/common/back.gif
你好 ST 的 延时系数估算函数 理解吗BLDCDelayCoefComputation
你好 请问你的30度延时做成功了吗? 顶了 tiancaigao7 发表于 2012-8-3 21:38 static/image/common/back.gif
用ADC直接检测反电动势这个是一个常规的思路,不算是什么新奇的。不过问题是这样资源占用比较大,而且平 ...
大神小弟想做个无刷无感三相无刷电机驱动能否指教下小弟现在只看了 硬件检测过零点 对于ST单片机的程序编写 毫无概念 指教下
可以强烈要求指教吗? 学习{:smile:} pdd083051 发表于 2013-4-17 09:04 static/image/common/back.gif
你好 请问你的30度延时做成功了吗?
还好相位还基本说的过去 害人虫 发表于 2013-4-27 23:07 static/image/common/back.gif
还好相位还基本说的过去
我用的跟你一样的方法,也是检测两次换相时间再除2进行延时,但示波器看见的波形基本没有差别,延时30度后怎么知道电机运行效率是否更高呢? pdd083051 发表于 2013-4-29 15:47 static/image/common/back.gif
我用的跟你一样的方法,也是检测两次换相时间再除2进行延时,但示波器看见的波形基本没有差别,延时30度 ...
呵呵 这点没研究过不好意思 我只是使他运行在 所谓的 最佳换向逻辑 害人虫 发表于 2013-5-6 19:36 static/image/common/back.gif
呵呵 这点没研究过不好意思 我只是使他运行在 所谓的 最佳换向逻辑
那请问你怎么知道延时30电角度成功了呢?是根据什么来判断的呢? pdd083051 发表于 2013-5-7 16:26 static/image/common/back.gif
那请问你怎么知道延时30电角度成功了呢?是根据什么来判断的呢?
延时 后 波形对称跟带 霍尔的 波形 差不多。 害人虫 发表于 2013-5-7 21:25 static/image/common/back.gif
延时 后 波形对称跟带 霍尔的 波形 差不多。
这样啊。。。现在手头上没有霍尔= =!不知道怎么判断。。 pdd083051 发表于 2013-5-8 19:46 static/image/common/back.gif
这样啊。。。现在手头上没有霍尔= =!不知道怎么判断。。
我延时30后的波形图感觉这样我就能接受了
害人虫 发表于 2013-5-8 21:52 static/image/common/back.gif
我延时30后的波形图感觉这样我就能接受了
波形这样的话就比较完美了额。。谢谢了~~ mark,我试了延迟30度换相,但是一直会失步,不知道为什么
页:
[1]