打印
[AVR单片机]

2407汇编Q格式的精度处理,望高手指点。

[复制链接]
1782|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

粉丝