在motorware 所有例程里面主循环中都会执行这样一个更新全局变量的函数,以lab5b为例,如下:
其中Rr_Ohm ,Rs_Ohm ,Lsd_H ,Lsq_H ,Flux_VpHz,分别为转子电阻,定子电阻,d轴电感, q轴电感,额定磁通量,根据上图的程序可知,这些变量都是由观测器函数得到的。但是在user.h中,这些电机参数都是作为常量存储的。
我的疑问如下:
1.如果电机的这些参数如上图函数一样作为变量并通过观测器函数实时更新的话,就不需要在user.h中存储这些电机参数了。反过来,如果user.h中有这些电机参数,又何必要在这里通过观测器函数实时更新电机参数?
2.我在运行lab5b时,发现Rs_Ohm 定子电阻 ,Lsd_H 直轴电感 ,Lsq_H 交轴电感,这几个全局变量值竟然和user.h中设定的定子电阻、直轴电感、交轴电感的值是一样的,那我的问题是 Rr_Ohm ,Rs_Ohm ,Lsd_H ,Lsq_H ,Flux_VpHz 这几个全局变量的值到底是等于观测器实时检测到的值还是头文件中的值?
3.我又做了实验,当我改变user.h的值时,并且把这些值改的明显不正确时,Rs_Ohm,Lsd_H,Lsq_H这些全局变量也会跟随user.h中的值一起改变,而且电机依然能够正常启动和运行,非常不可思议,求解!