原创 软件控制原理

2009-3-5 11:21 1841 4 5 分类: MCU/ 嵌入式

软件控制流程:


由于在硬件设计中将电机驱动和逻辑控制部分分开设计,所以软件也分开设计:


电机驱动<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


要求:1.软件要解决驱动特性,可正、反转动,且转动平稳、有力;


2.根据反馈信号使用有效的控制策略。


流程:第一步:软件接收到命令并解析。


第二步:根据电机参数产生PWM控制信号,初步完成想运行的状态。


第三步:读取码盘信号,进行计算出速度信号,计数,实现行走距离控制。


第四步:用给出数据和反馈数据计算出电机控制参数,实现速度的控制。 


   


           控制命令——>PID调节器——>PWM驱动——>电机


                       ^                                                                   |


                        |                                                                


            —————————速度反馈 <——码盘


 


注:软件总体框架采用消息驱动方式,根据消息作相应的处理,消息多数由中断产生。


逻辑控制


小车寻迹的所有功能分为4个模块:


主控模块――只负责初始化系统的硬件和软件(初始化自用的变量)。


电机驱动模块――完成:1) 对应I/O 口定义的修改,以适应新的MCU 资源分配;


2) 将两个电机的控制逻辑整合到一个MCU 中。


轨迹采样模块――完成:1)采样器的输出AD 转换;


2)将AD 结果转换为是否在轨迹上的逻辑值;


3)进行预处理,输出轨迹偏移位置信息。


轨迹控制模块――读取轨迹采样所获取的信息,根据需求和策略输出相应的电机控制命令;将调试的相关功能也纳入此模块。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户382789 2009-3-6 11:24

此篇存在两个不足:1、题目描述不清,不能让人看懂想要表述什么,不知道自己是否清楚? 2、文中缺少背景交待,但一件事开始时,应该交待清楚背景,来龙去脉,然后表述自己文章想要表达的内容,之后才是逐一将所要表达的内容阐述。 可以每次一个主题,之后作为续篇。 开篇做好了,后面就容易展开了。 俗话说万事开头难,这有两个含义:其一开头不好做,其二开头很重要!头开不好,事情就无法顺利展开。
相关推荐阅读
用户189519 2009-04-24 12:22
串口编程
帧头 帧长 发送方地址 自己的地址 命令 低地址 高地址 读字节数  N字节数据 校验和帧头 帧长 发送方地址 自己的地址 命令 低地址 高地址 写成功字节数        校验和发送需要以下几个变量...
用户189519 2009-04-22 16:32
学习建议
你现在定时器编程应该基本掌握了,下一步可以参照小车的Step之二尝试串口编程。最好能自己先根据示例程序的功能编写,如果实在觉得困难,可以将示例程序逐步抄写到你的程序中,一点点理解,对于不理解的地方,可...
用户189519 2009-04-10 12:08
二维数组实现指示灯闪烁
/*----------------------------------------------------- 程序功能:LED 闪烁,用 Timer0 实现: 闪烁速度从 0.5次/秒 到 4次/秒...
用户189519 2009-04-09 12:13
for循环机制
for 循环的增量条件是自身运算结束,而我需要的是基于外部触发的条件,所以不可以使用 For循环。...
用户189519 2009-04-08 14:12
关于for循环
        你仔细琢磨一下 for 循环的机制,看看它的循环变量是如何增加的?可否用于这种由外部事件驱动的状态变化?        本周你继续完成上周布置得任务。        1、将数组应用的再...
用户189519 2009-04-08 14:04
一维数组实现LED闪烁
/*----------------------------------------------------- 程序功能:LED 闪烁,用 Timer0 实现 闪烁速度从 0.5次/秒 到4次/秒 工...
我要评论
1
4
关闭 站长推荐上一条 /3 下一条