[AVR单片机] 2407汇编Q格式的精度处理,望高手指点。

[复制链接]
2329|0
 楼主| mymimi 发表于 2009-4-22 23:48 | 显示全部楼层 |阅读模式
一般用汇编的Q格式都是截尾舍人,为了提高精度可以向上舍人,但我觉得下面的精度处理有些不对,程序中屏蔽了高位,但减的比留下的最大值都大,这不就不管用了么(肯定会跳)。不知我的看法对么,大侠们怎么看,小弟盼高手指点。下面是三相异步电机中的电流模型的 一部分,已经处理到_cur_error=_cur_error+_kr*(_isd-_imr), _cur_error的初值是0.

 _kr                 电流模型积分常数
_k                  速度与角度的变换常数
_cur_error      电流模型量化误差累计寄存器一
 
程序为
current_model:         
        lacc           _isd
        sub            _imr        
        sacl           _foc_temp
        lt             _foc_temp
        mpy            _kr     
        pac    
        clrc           SXM
        and            #07fffh
        add     _cur_error  
        sacl           _cur_error
        sub            #32768    
       blz            no_limit1
       sacl           _cur_error
        setc           SXM
        pac
        sach           _foc_temp,1
        lacc           _foc_temp  
        add            #1
        sacl           _foc_temp
        add            _imr
        sacl           _imr
        bcnd           i_mrnotzero,neq
        lacc           #0
        sacl           _foc_temp
        b              i_mrzero
no_limit1:
        setc           SXM
        pac
        sach           _foc_temp,1
        lacc           _foc_temp 
        add            _imr
        sacl           _imr
        bcnd           i_mrnotzero,neq
        lacc           #0
        sacl           _foc_temp
        b              i_mrzero
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部