云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > dsp30代码

dsp30代码

  • 62 次阅读
  • 3 次下载
  • 2025/6/19 2:17:51

// 根据编码器累计计数值来计算转速 CalcVel();

// 执行转速控制环

PIParmQref.qInMeas = EncoderParm.qVelMech; PIParmQref.qInRef = CtrlParm.qVelRef; CalcPI(&PIParmQref);

CtrlParm.qVqRef = PIParmQref.qOut; }

#endif

// Q的 PI控制

PIParmQ.qInMeas = ParkParm.qIq; PIParmQ.qInRef = CtrlParm.qVqRef; CalcPI(&PIParmQ);

ParkParm.qVq = PIParmQ.qOut;

// D的 PI控制

PIParmD.qInMeas = ParkParm.qId; PIParmD.qInRef = CtrlParm.qVdRef; CalcPI(&PIParmD);

ParkParm.qVd = PIParmD.qOut; } }

//--------------------------------------------------------------------// ADC中断服务程序执行速度计算以及电压矢量更新循环。 // ADC采样和转换由 PWM周期触发。

// 速度计算假定计算之间的间隔时间是固定的。 //--------------------------------------------------------------------

void __attribute__((__interrupt__)) _ADCInterrupt(void)

{

IFS0bits.ADIF = 0;

// 递增控制显示和按钮功能执行的计数变量。 //

iDispLoopCnt++;

// 累计自上一次中断后的编码器计数 CalcVelIrp();

if( uGF.bit.RunMotor ) {

// 置位用于诊断的 LED1 pinLED1 = 1;

// 使用 TMR1来测量用于诊断的中断时间 TMR1 = 0;

iLoopCnt = TMR1;

MeasCompCurr();

// 根据 qSin、 qCos、 qIa、 qIb计算 qId、 qIq ClarkePark();

// 计算控制值 DoControl();

// 根据 qAngle计算 qSin、 qCos SinCos();

// 根据 qSin、 qCos、 qVd、 qVq计算 qValpha、InvPark();

// 根据 qValpha、 qVbeta计算 Vr1、 Vr2、 Vr3。CalcRefVec();

qVbeta

// 根据 Vr1、 Vr2、 Vr3计算和设定 PWM占空比 CalcSVGen();

// 测量循环时间

iLoopCnt = TMR1 - iLoopCnt; if( iLoopCnt > iMaxLoopCnt )

iMaxLoopCnt = iLoopCnt;

// 清零用于诊断的 LED1 pinLED1 = 0; } }

//--------------------------------------------------------------------// SetupBoard //

// 初始化控制板

//--------------------------------------------------------------------

void SetupBoard( void ) {

BYTE b;

//禁止 ADC中断 IEC0bits.ADIE = 0;

// 复位电机控制功率模块上的所有故障。 pinFaultReset = 1; for(b=0;b<10;b++)

Nop();

pinFaultReset = 0;

// 确保 PFC开关是关闭的。 pinPFCFire = 0;

// 确保制动开关是关闭的。 pinBrakeFire = 0; }

//--------------------------------------------------------------------// Dis_RPM //

// 显示 RPM

//--------------------------------------------------------------------

void Dis_RPM( BYTE bChrPosC, BYTE bChrPosR ) {

if (EncoderParm.iDeltaCnt < 0)

Wrt_S_LCD(\ else

Wrt_S_LCD(\

iRPM = EncoderParm.iDeltaCnt*60/

(MotorParm.fLoopPeriod*MotorParm.iIrpPerCalc*EncoderParm.iCntsPerRev);

Wrt_Signed_Int_LCD( iRPM, bChrPosC+1, bChrPosR); }

//--------------------------------------------------------------------bool SetupParm(void) {

// 开启抗饱和功能以确保能够平滑处理溢出。 CORCONbits.SATA = 0;

搜索更多关于: dsp30代码 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

// 根据编码器累计计数值来计算转速 CalcVel(); // 执行转速控制环 PIParmQref.qInMeas = EncoderParm.qVelMech; PIParmQref.qInRef = CtrlParm.qVelRef; CalcPI(&PIParmQref); CtrlParm.qVqRef = PIParmQref.qOut; } #endif // Q的 PI控制 PIParmQ.qInMeas = ParkParm.qIq; PIParmQ.qInRef = CtrlParm.qVqRef; CalcPI(&PIParmQ); ParkParm.qVq = PIParmQ.qOut;

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com