本人是个刚刚入门的小硕,目前在看一段基于TI例程修改而来的PMSM例程。有几个概念不懂想咨询各位大神。
1.在SPEED_FR.H中有这三个SpeedRpm、BaseRpm、Speed速度。对每个的物理意义以及他们之间的关系不是很懂,肯请前辈解答。
2.这是F2803XQEP.H 中的一段代码:
/* Compute the mechanical angle in Q24 */
v.MechTheta = __qmpy32by16(v.MechScaler,(int16)v.RawTheta,31); /* Q15 = Q30*Q0 */
v.MechTheta &= 0x7FFF; /* Wrap around 0x07FFF*/
上面的最后一行,这样与运算不会导致MechTheta中整数部分丢失吗?
下面附上我在看的程序,备注是我个人加的,可能会有错误。
jixing hao:
回复 HeiHei:
首先十分感谢您的解答。我的电机额定转速就是3000,您一语中的啊。对于最后一个问题我还是疑惑,v.MechTheta是一个int32,我的程序里面是这样定义的;
int32 MechTheta; // Output: Motor Mechanical Angle (Q24) 。结合下面这句话我的理解是:
v.MechTheta = __qmpy32by16(v.MechScaler,(int16)v.RawTheta,31); /* Q15 = Q30*Q0 */ MechTheta是一个32位int,经过上面的赋值,变成了Q15,这样它就有15位代表小数,16位代表整数(这个理解是我个人的理解,不一定对,因为在定义后面的注释里还有个Q24,我不知道怎么理解)。这样的话经过v.MechTheta &= 0x7FFF 这样一个与运算,如果整数部分有值的话,那就被丢掉了。很疑惑,希望前辈可以不吝赐教啊。
再次感谢您之前的解答。
本人是个刚刚入门的小硕,目前在看一段基于TI例程修改而来的PMSM例程。有几个概念不懂想咨询各位大神。
1.在SPEED_FR.H中有这三个SpeedRpm、BaseRpm、Speed速度。对每个的物理意义以及他们之间的关系不是很懂,肯请前辈解答。
2.这是F2803XQEP.H 中的一段代码:
/* Compute the mechanical angle in Q24 */
v.MechTheta = __qmpy32by16(v.MechScaler,(int16)v.RawTheta,31); /* Q15 = Q30*Q0 */
v.MechTheta &= 0x7FFF; /* Wrap around 0x07FFF*/
上面的最后一行,这样与运算不会导致MechTheta中整数部分丢失吗?
下面附上我在看的程序,备注是我个人加的,可能会有错误。
jixing hao:
回复 HeiHei:
您好,我又来提问题啦。我现在用28035的控制板加DRV8301的驱动板,控制一个带有增量式光栅的PMSM,但是我没有相对完善的程序。我手里还有一个28335的开发版。我找了好久,不知道是我找的方式不对还是什么原因,始终没有找到TI关于28335,或者28035有感的PMSM的例程。笨小白真的很痛苦啊。不知道您能否帮忙找一下呢?谢谢啦。
本人是个刚刚入门的小硕,目前在看一段基于TI例程修改而来的PMSM例程。有几个概念不懂想咨询各位大神。
1.在SPEED_FR.H中有这三个SpeedRpm、BaseRpm、Speed速度。对每个的物理意义以及他们之间的关系不是很懂,肯请前辈解答。
2.这是F2803XQEP.H 中的一段代码:
/* Compute the mechanical angle in Q24 */
v.MechTheta = __qmpy32by16(v.MechScaler,(int16)v.RawTheta,31); /* Q15 = Q30*Q0 */
v.MechTheta &= 0x7FFF; /* Wrap around 0x07FFF*/
上面的最后一行,这样与运算不会导致MechTheta中整数部分丢失吗?
下面附上我在看的程序,备注是我个人加的,可能会有错误。
HeiHei:
回复 jixing hao:
建议你装一个controlsuit软件 然后在下面图中的路径找一下 肯定有的。
当然,这里面的程序是不可能和你的板子完全对的上,主要是对你起一个借鉴的作用,毕竟这么多种电机类型这么多种电机控制方式,ti不可能在每个板子上都写出一套例程来。你在看的过程中有什么问题直接发帖问就行了。另外,一定要多思考哈。
本人是个刚刚入门的小硕,目前在看一段基于TI例程修改而来的PMSM例程。有几个概念不懂想咨询各位大神。
1.在SPEED_FR.H中有这三个SpeedRpm、BaseRpm、Speed速度。对每个的物理意义以及他们之间的关系不是很懂,肯请前辈解答。
2.这是F2803XQEP.H 中的一段代码:
/* Compute the mechanical angle in Q24 */
v.MechTheta = __qmpy32by16(v.MechScaler,(int16)v.RawTheta,31); /* Q15 = Q30*Q0 */
v.MechTheta &= 0x7FFF; /* Wrap around 0x07FFF*/
上面的最后一行,这样与运算不会导致MechTheta中整数部分丢失吗?
下面附上我在看的程序,备注是我个人加的,可能会有错误。
jixing hao:
回复 HeiHei:
感谢您的回答,我下载过controlsuite,之前都是在软件里找的,没找到。刚刚去到它的安装目录里找了,发现真的好多啊。谢谢了。提个问题,我对比过28335和28035,主要区别在于FPU。我在想是不是28035的例程基本都能在28335上跑呢?
本人是个刚刚入门的小硕,目前在看一段基于TI例程修改而来的PMSM例程。有几个概念不懂想咨询各位大神。
1.在SPEED_FR.H中有这三个SpeedRpm、BaseRpm、Speed速度。对每个的物理意义以及他们之间的关系不是很懂,肯请前辈解答。
2.这是F2803XQEP.H 中的一段代码:
/* Compute the mechanical angle in Q24 */
v.MechTheta = __qmpy32by16(v.MechScaler,(int16)v.RawTheta,31); /* Q15 = Q30*Q0 */
v.MechTheta &= 0x7FFF; /* Wrap around 0x07FFF*/
上面的最后一行,这样与运算不会导致MechTheta中整数部分丢失吗?
下面附上我在看的程序,备注是我个人加的,可能会有错误。
HeiHei:
回复 jixing hao:
你可以认为28035是28335的一个精简版。28335运行速度和空间比28035快一点。其实,28系列的dsp,内核都是一样的,所以各个外设用起来基本没有什么差别,(除去比较老的2407,2808,2812).而且你看ti的一些电机控制例程,也基本一个套路。
两个芯片之间的差别主要就是外设,对于程序来说基本上就是换换cmd文件,头文件的区别。一些外设的配置都是相通的
本人是个刚刚入门的小硕,目前在看一段基于TI例程修改而来的PMSM例程。有几个概念不懂想咨询各位大神。
1.在SPEED_FR.H中有这三个SpeedRpm、BaseRpm、Speed速度。对每个的物理意义以及他们之间的关系不是很懂,肯请前辈解答。
2.这是F2803XQEP.H 中的一段代码:
/* Compute the mechanical angle in Q24 */
v.MechTheta = __qmpy32by16(v.MechScaler,(int16)v.RawTheta,31); /* Q15 = Q30*Q0 */
v.MechTheta &= 0x7FFF; /* Wrap around 0x07FFF*/
上面的最后一行,这样与运算不会导致MechTheta中整数部分丢失吗?
下面附上我在看的程序,备注是我个人加的,可能会有错误。
Jiangfeng zhao:
回复 HeiHei:
老哥,看到你们两个的对话我激动的都要流泪了,谢谢。