黄 松,谭爱国,杨一波,夏斯权
(上海理工大学 公共实验中心,上海 200093)
传统的数电、模电、电路、电工电子实验重在辅助学生对理论知识进行验证,深入一点的综合实验虽然在试验的复杂程度上有显著加强,但是实用性较低,学生的工程实践能力在传统实验课上几乎得不到锻炼。为了改变这种现状,各高校纷纷开始推行课程改革。1993年,原国家教委提出了在高校组织电子设计、机械设计、数学建模和结构设计等四大赛事的计划,来助力高校的教改工作[1]。2007年,为了进一步提高我国高等工程教育的质量,摆脱高等工程教育“大而不强,多而不精”的状态,国家启动了“卓越工程师教育培养计划”[2]。
到现阶段,各类实践创新的竞赛比比皆是,社会对工科类学生工程实践能力、创新能力的要求节节攀升。此类种种,都对工科类学校的老师提出了更高的要求,一方面要传道授业解惑,另一方面又要能指导学生的工程实践,培养学生的创造能力[3]。双师型教师、老教师、从企业来的工程师,知识结构完备、实践经验丰富,一般被认为可以满足学生在这两方面的需求。然而,青年教师,尤其是从学院到学院、缺乏工程实践能力的青年教师,该如何应对学生的需求?
本文根据笔者指导学生参加全国大学生电子设计竞赛的实践经验,探讨了工科类青年教师开展工程实践类创新活动的方法。
青年教师在教育岗位的头几年往往处于职业生涯的“生存期”[4]。“生存期”这个词不免会让人觉得,处在这个时期要更多地去关注自身的发展,保求自己的生存,难免会让青年教师的注意力更多地放在自己身上,加上学校一般也普遍觉得青年教师这个时候欠缺指导学生学习的能力,一般让青年教师更多地参加助教活动。
诚如客观情况所反应的那样,青年教师刚走上教育岗位,教育教学方法尚不能很好地应用。在理论教学方面,对将来所要教授科目的知识要点还不能细致的表述,需要对相关知识进行进一步的再学习再加工,书写教案,准备教学PPT等;在实践教学方面,由于缺乏工程实践经验,导致自信心不足,进而对指导强实践性活动感到胆怯。这些是摆在青年教师面前的客观事实,客观短板,但却也是青年教师所独有的,换个角度看就是特点,是可以被利用起来,发展成为长板的。
青年教师对知识的再学习与学生不同,青年教师的知识结构已较为系统,加上其再学习的目标是为了把知识理解通透以教授出来,在自身主观能动性及责任心的驱使下,此时青年教师贯通知识的能力比学生要强很多。鉴于青年教师再学习的目的是为了“将来”更好地让知识传递到学生中去,笔者认为,与其等到再学习的知识结构建立完备后再去教授学生,不如把再学习的环境搬到学生中,到学生中去,带着学生一起学习。学生学习中遇到的问题,正是青年教师将来需要解答的问题,学生提出后,青年教师可以带着学生一起寻找问题的答案,通过查阅资料、文献、书籍以及网络搜索等方法,总结出令大家信服的答案。笔者认为,这种以学带学的方式为青年教师的再学习活动找到了植根之处,能让青年教师更好地了解学生的学习需求,总结把知识传递给学生的合理方式,也有助于培养与学生沟通的能力。
与理论教学活动相并列的工程实践教学活动是青年教师所要面临的又一大挑战。青年教师,一般被认为工程实践能力欠缺,这导致其自身也对工程实践能力这方面不够自信,对指导工程实践教学活动无从下手。指导学生进行工程实践活动,教师富有经验固然很好,没有经验又是否能进行呢?笔者对这个问题的回答是:没有经验,也能进行。正如恋爱中有具备了足够的物质条件结婚的,也有不具备足够的物质条件先结婚再一起努力创造的,这后一种情况便是青年教师可以效法的。缺乏工程实践经验,这个事实必须承认,但是未尝不可带着学生一起进行工程实践活动,一起从零开始创造,成长。具体来说,就是选定一个工程实践研究目标,然后,与学生一同探索,从实践活动本身中收获实践的本领。
举个例子:比如某个电子设计中要用某型单片机上的AD采集主电路上42 V的电压信号。由于该型单片机上AD的电压采集范围是0~3.3 V,为了匹配此电压范围,选定了最容易想到的电阻分压作为解决方案。电阻分压网络缩小了待采集电压,让单片机AD口能正常工作,但使用中发现单片机采到的电压值换算回实际值跟42V有较大的系统误差。通过查阅资料,锁定问题原因是,单片机AD口的输入阻抗与分压电阻的电压等级较为接近,并联之后,影响了原分压电路的分压比,导致AD采集到的电压值不准确。据此,提出改进方案,在分压电路后面加电压跟随器。电压跟随器的输入阻抗很大,不会影响电阻分压网络,输出阻抗几乎为零,带载能力极强,不会受AD影响,很好地解决了AD对电阻分压网络产生影响的问题。后续使用中发现,主电路中电流瞬变时,AD采集的电压值也会跟着瞬变。经过思考、研究,发现主电路地跟AD采样电路的地连在一起,主电路流过大电流时,电路中地线上的电平并不是处处为零,导致AD口的参考地不为零,因此想把主电路地跟AD的地隔离开来,以此隔断主电路地线噪声对AD采集的干扰。进一步改进方案,在电压跟随器后面加上线性光耦,通过光来把需要采集的电压信号传递到AD采集侧,再接一路跟随器以防AD口的输入阻抗干扰光耦输出电路。在后续的应用中,发现这个电压采集电路性能良好。至此,一个电压采集电路,完成了从原始简陋且不能满足需求到相对复杂且性能良好的成长进化。
这个例子展现了在工程实践活动中,如何从零开始展开活动,如何慢慢进化研究对象,不断接近设定目标的过程。这个过程是个成长的过程,不单单是研究对象本身在成长,进行研究的老师带着同学都获得了工程实践能力的成长。
青年教师指导工程创新实践活动除了要把握好自身的特点,也要把握好实践活动本身的特点,总结提炼出与活动相契合的实施方案来指导活动的开展。以笔者所指导的全国大学生电子设计竞赛为例。该竞赛从1993年开始,每隔两年举办一次,到现在已经发展成了全国电子类竞赛中的第一大赛事。此项赛事有A~F几种类型的题目,大致可分为电源、控制、通信三个方向。结合自身研究方向,笔者选择了电源类的题来指导学生。笔者搜集了历年的赛题,把其中电源类的题挑拣出来。在对赛题的横向对比中,笔者发现每届的赛题都与当时工程研究、应用的热点密切相关。此外,笔者对每一道题都进行了硬件及软件上的分析与抽象,再经横向类比、总结,最终确立了以模块化设计的思想贯穿硬件与软件设计两方面的指导方案。
通过横向对比历年电源类题的硬件结构组成,可将电源类题的硬件部分分为主电路、信号调理电路、主控电路、辅助电源电路、保护电路(可选)以及状态显示电路(可选)等电路。一般主电路部分会因为题目要求的不同有很大的变化,其他的电路均可通过适当的设计变得几近通用。例如,可以将信号调理电路拆分成电压采集电路和电流采集电路等模块电路,再将电压、电流采集电路设计得可以采集交流量或直流量,这样电压、电流采集电路即做到了模块化,可以让学生画成PCB板,投板,量产,备用。另外像主控电路、辅助电源、保护电路(可选)、状态显示电路(可选)等变化不大的电路,均可模块化。甚至,像主电路这样变化较大的电路,也可进行局部模块化。例如,可以将在电能变换电路中经常会用到的半桥或者全桥电路进行模块化,量产成半桥或全桥模块。平时训练或比赛中,可根据题目要求,以半桥或全桥模块电路为基础组装出主电路。硬件电路设计模块化的好处是,模块电路的功能单一,学生可以集中精力研究,各个击破;同时,学生可以掌握用模块电路搭建复杂硬件电路的方法,又能培养从模块电路的视角去拆解、分析复杂系统的能力。在比赛中,模块电路的应用能节省大量的时间,好让学生能有更多的精力投入到实现系统功能的环节中;同时,模块电路的使用,便于学生在硬件调试中快速定位故障点,即便破坏性的故障对电路造成了一定的损毁,也能快速对电路进行更替、恢复。
与硬件设计模块化相比,软件设计模块化更为常见,也更能让人理解接受。通过分析赛题,不难发现,I/O信号、AD采集、PWM输出、SPWM输出、状态显示、软件滤波、软件锁相等基础软件功能几乎是必不可少的。因而将它们以库函数的形式进行封装,模块化。赛中,学生只需要将主要精力放在系统控制算法部分,结合预先封装好的各基础软件功能就能实现系统的软件控制算法。
教师指导工程实践创新活动的主体是学生,只有对学生固有性格、学习偏好良好把握,才能因材施教激发出学生的潜力。全国大学生电子设计竞赛的赛队以小组为单位,每组3位同学,这样的赛队组织形式,无疑需要老师在挑选参赛学生的时候因材而选,也决定了老师在指导的时候,必须因材施教,对教师的综合能力有一定的要求。在选择小组队员的时候,笔者更关注的是,三个学生能不能较为融洽地相处,做事能不能坐得住,组成队伍后再根据他们的意愿作安排,让一个学生负责硬件方面的工作,一个学生负责软件方面的工作,另一个学生负责搜集资料文档、报告撰写等工作。在工作的安排上按从基础到进阶,从局部到整体的方式展开。对学生要掌握和使用的软件工具以及涉及的知识进行把控,尽量让学生学到的知识、用到的工具,具有较好的延拓性,能为其将来的学习研究或是工作就业带来竞争优势。
负责硬件工作的学生,先培养他们用 Altium Designer绘制电路原理图。然后再让他们在洞洞板上将自己所绘制的电路焊接出来,以验证功能。各个模块电路,要求学生通过查阅资料,找出不同方案的典型应用电路,一个个绘制原理图,一个个焊在洞洞板上调试,比较性能,最终选出一两种方案备用。每种选出的方案,元器件的参数都不可能是既定的,需要对参数进行一此次的修正,改进原理图,再焊接调试,直到最终定型。等各模块电路定型后,再培养学生绘制PCB板的技能,将模块电路投板,制板。需要告诉学生的是,电源类题系统的工作频率不是很高,开关管的开关频率一般只有几十K,可以归为低速系统,画PCB板的时候可以不考虑互连的传输线效应[5],让学生敢于画板又有所顾忌。
对于负责软件工作的学生,笔者推荐他们使用基于Eclipse的IDE,因为Eclipse中集成的智能代码感知功能能有效提高编程的效率,而且市场上诸如TI、ST、Infineon、NXP等各大单片机或DSP厂商都有自家的或者第三方为其开发的基于 Eclipse的集成软件开发环境,学生掌握了这种软件开发环境的使用,对其将来使用各厂商的单片机芯片是大有裨益的。
再者,笔者对学生的编程习惯提出了一定的要求。例如,变量的定义不允许使用无意义的字符,如:a,b,c等。全局变量必须以合适的方式定义在头文件中,不允许在源文件中出现。头文件必须以防重复定义的方式书写。功能函数必须从源文件级模块化定义,不允许将各功能函数都塞在main源文件中等。
由于软件算法的测试严重依赖于硬件系统,而硬件系统的装配、调试周期又较长,如果等待硬件完成后再进行软件功能的验证,必然会造成软件设计人员时间上的浪费。为了解决这个问题,笔者推荐学生使用主控与Matlab模型联合仿真技术,即软件在环测试技术[6]。该技术在Matlab上建立硬件电路模型,利用Matlab的S函数实现电路模型与CCS软件间的通信,再由 CCS软件通过仿真器与目标DSP板进行通信,也即实现了DSP板与电路模型间的通信,既是实现了由DSP板对硬件电路模型的控制。该工作模式与实际工况类似,可用来预先(在系统硬件未实现前)验证代码的可行性。
笔者在 2017年首次指导一组学生参加全国大学生电子设计竞赛,获得了省一等奖一项、国家二等奖一项、优秀指导教师奖一项,初步验证了笔者所采用的方法的可行性。虽然笔者以“立足长远”为目标开展对学生知识、技能的指导、培养工作,但由于刚起步不久,这方面做得还不够系统。下一步,笔者认为硬件设计上应该将硬件电路的EMC设计考虑在内;软件设计上应该引入“后台监控调试”技术及基于模型的“控制代码自动生成”技术。“后台监控调试”技术,在企业中的应用较为普遍,应当让学生所学的技术与实际应用接轨。基于模型的“控制代码自动生成”技术,对于软件编程入门者来讲能大大减少代码编辑量,降低代码的出错率,降低实现系统控制的门槛;对于进阶者来讲,能让人把精力集中钻研控制算法的层面,免去了无谓的码代码工作[7-10]。此外,笔者认为青年教师应该张扬求取知识的活力,张扬探索世界的好奇心,不断吸收新的知识、技术,应用到对学生的指导中。
[1] 欧伟明. 论电子设计竞赛推进大学生创新能力的培养[J].株洲工学院学报. 2006, 20(04): 138-140.
[2] 朱泓, 李志义, 刘志军. 高等工程教育改革与卓越工程师培养的探索与实践[J]. 高等工程教育研究. 2013(06):68-71.
[3] 苏杨茜. 以竞赛为驱动的应用型本科高校计算机人才培养模式探究[J]. 软件, 2016, 37(8): 125-128.
[4] 孙时进, 编著. 心理学概论[M]. 华东师范大学出版社,2010.
[5] 尹华杰, 译. 应用电磁学基础(第四版)[M]. 人民邮电出版社, 2007.
[6] 汪洋, 郭丽丽, 樊丽萍. 一种基于Matlab的DSP开发思路的研究[J]. 控制工程, 2006, 13(增刊): 123-126.
[7] 章晓春, 金平, 孙全艳. SCADE平台下的图形化设计和代码自动生成[J]. 软件, 2011, 32(5): 74-77.
[8] 徐捷, 丁学明. 基于Matlab与STM32的电机控制代码自动生成[J]. 电子科技, 2017, 30(4): 148-151.
[9] 王巧明, 李中健, 姜达郁. Matlab平台DSP自动代码生成技术研究[J]. 现代电子技术, 2012, 35(14): 11-14.
[10] 李强, 王民钢, 杨尧. 快速原型中Simulink模型的代码自动生成[J]. 研究与设计, 2009, 32(2): 28-31.