Platinum Maestro运动控制器学习记录


本文是对Platinum Maestro运动控制器使用的学习记录。

1. 控制模式

OPM402_PROFILE_POSITION_MODE:控制效果好。
OPM402_INTERPOLATED_POSITION_MODE:效果反而不好。

//	a1.SetOpMode(OPM402_INTERPOLATED_POSITION_MODE);
//	a1.SetOpMode(OPM402_CYCLIC_SYNC_POSITION_MODE);

	// 效果好!!!!!!!
	a1.SetOpMode(OPM402_PROFILE_POSITION_MODE);
	//
	// Waiting for Set Operation Mode
	//
	giXOpMode =  a1.GetOpMode();
	while ( giXOpMode != OPM402_PROFILE_POSITION_MODE )
	{
		giXOpMode =  a1.GetOpMode();
	}

2. 位置控制实现

工程师说:
位置环是不允许改速度命令的,可以改目标位置,速度环是可以改速度的

所以使用函数时,只给位置,速度给一个较大值并保持不变。

void MachineSequencesTimer()
{

	giTimeFlag = FALSE;
//
	ReadAllInputData();

	// update target position.
	// The sin() function in C ++ returns the sine value of the angle (parameter) expressed in radians.
	gdbTarpos = (double)AMPLITUDE * sin( (double)(2 * PI * FREQUENCY * gitime / 1000) ) + OFFSET;
	gdbTarvel = (double)AMPLITUDE * 2 * PI * FREQUENCY * cos((double)(2 * PI * FREQUENCY * gitime / 1000) );

	/*
	if ( gdbTarvel > 0.0 )
	{
		a1.m_fVelocity = gdbTarvel;
	}else {
		a1.m_eDirection = MC_NEGATIVE_DIRECTION;
		a1.m_fVelocity = gdbTarvel * (-1.0);
	}
	*/

	a1.MoveAbsolute(gdbTarpos, MC_ABORTING_MODE);
//
	WriteAllOutputData();

	return;		// End of the sequences timer function. The function will be triggered again upon the next timer event.
}

控制效果:
在这里插入图片描述
采集数据,可以看出跟踪误差较小。

真的是太不容易了。感谢工程师!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值