基于MATLAB的simulink 基于dsp28335的直流电机的驱动模型(配套直流电机) 模型+讲解视频 该模型搭建可直接烧到开发板上,MATLAB版本是2020b,不需要敲写c代码,需要有一定的simulink基础(会搭建好基本的环境即可)
指尖刚触碰到开发板还有点烫手,Simulink里那个跳动的PWM波形已经让电机开始嗡嗡作响。这个基于DSP28335的驱动模型简直就像搭积木——前提是你得知道哪块积木藏着雷。
打开模型第一眼就能看见那个显眼的28335芯片模块,这可不是摆设。右键点开配置界面,注意看GPIO37到GPIO40那排引脚,手滑选成普通IO口的话,电机能给你表演原地抽搐。重点在PWM模块配置页,载波频率设2000Hz时记得把周期寄存器值改成(150MHz/2000Hz)-1,这个减1操作能让菜鸟在实验室通宵查三天手册。
电机控制环里那个淡蓝色的S-Function模块藏着玄机:
function sys=mdlOutputs(t,x,u) persistent duty; if isempty(duty) duty = 0; end if u(1)>0 duty = min(duty+0.01,1); else duty = max(duty-0.01,0); end sys = duty;这个看似简单的占空比缓变逻辑,实测能避免开发板突然冒烟。注意else分支里的max函数,要是手贱写成duty-0.01直接负数,电机会像嗑了药似的疯狂反转。
基于MATLAB的simulink 基于dsp28335的直流电机的驱动模型(配套直流电机) 模型+讲解视频 该模型搭建可直接烧到开发板上,MATLAB版本是2020b,不需要敲写c代码,需要有一定的simulink基础(会搭建好基本的环境即可)
模型里最唬人的是ADC采样模块,那个数据转换公式别被吓到:(RawData*3.0)/4095 - 1.5其实就是在做电压标定。重点在于采样时间必须设成PWM周期的整数倍,否则采集到的电流波形能变成毕加索抽象画。实测在0.0002秒采样间隔下,波形抖动率能控制在3%以内。
烧录前记得在C2000硬件配置里勾选"Enable real-time logging",这个选项能让你的printf数据在电机转起来时还能正常输出——虽然大部分时候你根本顾不上看。当开发板上的LED开始跑马灯闪烁,别急着欢呼,先拿万用表量下PWM输出端电压,曾经有人烧了五块板子才发现模型里的GPIO映射反了。
调试时遇到电机抖震别慌,把模型里那个写着"Dead Time"的参数从100ns慢慢往上调,调到500ns左右通常能解决大部分鬼畜问题。视频里演示的转速闭环控制,核心在于PID模块的输出限幅设置,建议先设±0.8再慢慢放宽,毕竟谁也不想看电机表演太空漫游。