新手上路
- 积分
- 29
- 金钱
- 29
- 注册时间
- 2019-9-21
- 在线时间
- 4 小时
|

楼主 |
发表于 2019-11-24 19:02:07
|
显示全部楼层
今天用示波器观测DAC输出,看到13-14的波形,觉得像是观测出的角度信号,然后看看程序查数据来源,发现我一个错误:u8 OutputVar[21]={0,1,2,3,4,5,6,7,8,9,10,11,12,15,16,17,18,19,20,21,22};这里没有13,14,所以我测试的13-14图片中的波形就是15和16的波形,角度和速度,以此类推,反电势也能观察到。好开心,总算观测器可以用了,但新问题来了,电机偶尔才能进入RUN运行状态,且直接停止了。继续研究中。。。。。对了,上面的启动波形调整参数后还是很好的,下次拍了上传。目前我在启动程序中加入一个变量来显示观测器测量到的转速,但是很怪,这个转速数据不能实时刷新,按下设置按钮时会偶尔显示转速,对了,不接电机它也会偶尔显示转速,晕了
Stat_Volt_alfa_beta = Rev_Park(Stat_Volt_q_d);
/*Valpha and Vbeta finally drive the power stage*/
CALC_SVPWM(Stat_Volt_alfa_beta);
STO_Calc_Rotor_Angle(Stat_Volt_alfa_beta,Stat_Curr_alfa_beta,MCL_Get_BusVolt());
//+++++++++++++++++++++++++++++++++++++++++++
AD_value5=(STO_Get_Speed_Hz())*6; //W 这个我加的,不能实时刷新,怪了,
// AD_value4=AD_value4+1; //W如果加上这个,这数据到是持续增加的
if (IsObserverConverged()==TRUE)
{
PID_Speed_InitStructure.wIntegral = (s32)(hTorque_Reference*256);
STO_StartUp_Init();
State = RUN;
if ((wGlobal_Flags & SPEED_CONTROL) != SPEED_CONTROL)
{
hTorque_Reference = PID_TORQUE_REFERENCE;
hFlux_Reference = PID_FLUX_REFERENCE;
}
}
break;
default:
break;
}
} |
|