小弟刚好有几年这方面经验,希望可以对题主有帮助,
伺服驱动器韧体的工作大致可分为两块 : 驱动层和应用层
应用层 : 这一层比较杂,举凡应用功能、韧体架构、IO控制、通讯协定可能
都会是工作内容,算是串联上位机与驱动层之间的桥梁,将驱动层提供的API包装出一个
完整的伺服驱动器是主要工作。例如上位机发命令要求马达转到某一个位置,应用层收
到后必须去呼叫驱动层提供的API,让马达转到定位,同时也需要花时间处理IO、和处理
通讯封包,如何排程这些事件会是这一层需要考虑的部分。通讯若只有使用RS485就比较
单纯,但若使用到Ethernet、Ethercat有些公司会专门找一个人去处理。另外有时候可
能需要兼职写测试的UI。这一块对于写code的工作量较大,大公司对于人力配置会比较
好,小公司常会面临多头烧的窘境。
这一层需要知识 : C/C++语言、单芯片、一些硬件概念,如果懂作业系统、资料结构会
更好。
驱动层 : 这一层是专精在马达控制的部分,若使用三相马达可以去看FOC(向量控制),
有刷马达则不用,算法大宗是PID,搭配三环(电流、速度、位置)控制,这样大致上
就能实现基本的伺服控制,看似简单,但若想做得好,必须具备一些知识背景,
首先马达驱动其实就是在做DC-AC转换,韧体打多少duty时,会出现多少线电压、线电流
要有一些概念,然后这部分也牵涉到马达的R(稳态)与L(暂态),另外也要知道Kt,Ke参数
用途、T-N curve的意义。控制方面要能合理的调整PID参数而不是盲调,先决条件是系
统鉴别要做好,基本不外乎就是用step response、freq response,进阶一点会做
成自动增益调教,也有公司会研究fuzzy/neural/optimal/adaptive之类的办法去优化
参数,这一块我也不是非常懂,我只会基本的。另外现在都是使用数位芯片在控制,
在连续控制器设计完后还必须转到离散域要注意,也需要处里回授信号,会需要
使用数位滤波器抑制噪声/共振之类的,对频域要有一些概念,大致上是这样。
这一层需要的知识 : 控制系统必看,数位控制、信号与系统、电力电子、电机机械
也可以读一下。
小弟之前的工作经验较特殊,从UI到马达驱动都稍微有涉略过,但涉略的广就代表无法
太专精在某一项,因此若有写得不好或不对的部分也请其他高手再补充或指证,感谢!
※ 引述《IsiahThomas (微笑刺客)》之铭言:
: 各位高手好,目前准备要从电控工程师转职做伺服驱动器韧体工程师,除了C指标需加强外
: ,不知道还有什么东西需要事先懂的,因为到新公司报到还有一个月时间,想用空闲时间来
: 增加自己不足之处,谢谢!