-
感谢您的鼓励,电子是俺一生的最爱,以后还会做更多更好玩的东西与大家分享,也请各位大神不吝赐教呀。
-
呵呵,行啊
到时您那边送聘礼的时候可省事了
电视冰箱不要
只要矢网、频谱仪、各种基准等等
:loveliness:
-
主要是基于DDS频率步进值的线性变加速处理,因为用的DDS的相位累加器是32bit的,所以可以做到很小的步进量。
然后配合电机状态和当前输入加速度,构建一个状态机,自动调整电机转速(DDS输出脉频)和转向
核心代码如下:A_INPUT是输入的加速度值,就是PID的结果;Fout为步进电机驱动频率;
while(1)
{
CA_INPUT=A_INPUT;
dF=A_to_dF(CA_INPUT);
if(CA_INPUT>0 && Fout> Fmin && DIR==1)statue=1;
if(CA_INPUT>0 && Fout> Fmin && DIR==0)statue=2;
if(CA_INPUT>0 && Fout0 && Fout
-
女娃哟 亲
-
本帖最后由 paulhyde 于 2014-9-15 03:13 编辑 好东西 感谢分享
-
估计您的模糊控制中没加入自学习项,只加了基础知识库。所以不会动态整定到最佳控制值。
-
您好,我是这样处理的,将PID环放在一个定时器中断中,每2mS执行一次,以下是核心代码。加速度环的采集量是摆杆角度编码器,位置环的采集量是步进电机的正反脉冲计数,以此实现闭环控制。
void TIM2_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
{
TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
}
ADC_DOWN=268;
ADC_FULL=4075;
filter();//获取AD采样值并进行均值滤波
ADC_temp=(float)After_filter[0];
//ADC_temp=12;
if(ADC_temp
-
嘿嘿,这个还没细算呢
大约就是电机+驱动+传感器+控制单元
约摸500来rmb吧
-
您好,朋友。ARM和CPLD结合是指的硬件上的结合,并不是说两者的语言相结合。ARM是时序处理器件,专门用来处理流水的算法。CPLD是逻辑器件,专门完成硬件逻辑的构建,因为是独立于ARM的CPU运行的,所以不占用ARM的CPU机时,执行效率高许多。
举个简单的例子,您应该做过LED点阵驱动吧,如果单纯用ARM来做,什么行列扫描都必须占用CPU的计算时间。但是如果配合CPLD或FPGA的话,可以单独构建一个LED驱动逻辑,简单地重复LED点阵的行列扫描、余辉消除等工作;这样,ARM的任务就是简单地向CPLD构建的驱动器送入字符数据即可,省下时间来处理其他任务。当然此例可能不是很准确。
再举个例,您应该知道ARM都包含许多片内外设吧,例如GPIO,Timer,UART,I2C总线设备,SPI总线设备等等,我们要操作他们的时候,只需要读写几个寄存器即可,具体的工作由外设自动完成;CPLD外设也是一样的,只不过是做在片外而已,ARm只需要告诉他需要处理的数据,具体怎么处理由CPLD独立完成。
不知这样解释您是否满意,因为逛论坛的时间有限,如果有更多的疑问欢迎加我q一起交流27530390①。谢谢。
-
其实对于电赛的评委,心黑的很多啊,07年我做的是示波器的题,到北理工复评时,几个评委连差分等效采样都不懂,采样保持也不懂就pia地给我们结束了测试,给了个国二,可惜了那完美的指标啊。
-
继续
角度传感器:我选用的是电位器式绝对值编码器,当然不是单纯的电位器,其内部是光栅结构的,只是输出的数据为电压量而已。在0-360度的范围内,此编码器具有良好的线性及定位精度(12位)。这个传感器重量尺寸越小越好,启动扭矩越小越好。
这里值得一提的是,貌似很多同学都为这个编码器的引线头疼,殊不知有个东西叫导电滑环,自制或购买成品都能解决您引线缠绕之苦。
控制器:这里用了STM32的芯片配合CPLD完成,前者主要完成ADC转换和大量的浮点控制算法,后者主要完成一些高速并行的逻辑处理。