生成器模式
- 格式:pptx
- 大小:352.05 KB
- 文档页数:13
实验五工厂方法模式、抽象工厂模式和生成器模式的应用一、实验目的通过该实验,理解工厂方法模式、抽象工厂模式和生成器模式的意图、结构,在软件开发中使用这些模式并进行功能验证。
二、实验内容1.手机工厂:现实中不同品牌的手机应由不同的工厂制造,使用工厂方法模式模拟实现。
图1 手机工厂的类图2.微型计算机配件的生产:该系统所需要的产品族有两个:PC系列和MAC系列,产品等级结构也有两个:RAM和CPU,使用抽象工厂模式模拟实现。
图2 微型计算机配件生产系统的设计类图3.用程序画一个小人:要求小人要有头、身体、手和脚。
使用生成器模式模拟实现。
图3 利用程序画小人的类图三、实验步骤与要求1.对于以上题目要认真分析和理解题意,程序中要求使用相应的模式。
2.上机录入,使用JDK编译器调试、运行、验证程序。
3.请指导教师审查程序和运行结果并评定成绩;4.撰写并上交实验报告。
四、实验原理:1、工厂方法模式当系统准备为用户提供某个类的子类的实例,又不想让用户代码和该子类形成耦合时,可以使用工厂方法模式来设计系统。
工厂方法模式的关键是在一个接口或抽象类中定义一个抽象方法,该方法返回某个类的子类的实例,该抽象类或接口让其子类或实现该接口的类通过重写这个抽象方法返回某个子类的实例。
适合使用工厂方法模式的情景有:●用户需要一个类的子类的实例,但不希望与该类的子类形成耦合●用户需要一个类的子类的实例,但用户不知道该类有哪些子类可用。
工厂方法模式的UML类图:图4 工厂方法模式的类图2、抽象工厂模式当系统准备为用户提供一系列相关的对象,又不想让用户代码和创建这些对象的类形成耦合时,就可以使用抽象工厂模式来设计系统。
抽象工厂模式的关键是在一个抽象类或接口中定义若干个抽象方法,这些抽象方法分别返回某个类的实例,该抽象类或接口让其子类或实现该接口的类重写这些抽象方法为用户提供一系列相关的对象。
适合使用抽象工厂模式的情景有:●系统需要为用户提供多个对象,但不希望用户直接使用new运算符实例化这些对象,即希望用户和创建对象的类解耦。
自动化测试中的数据生成技巧在自动化测试中,数据生成是一个关键的技巧,用于生成测试数据和模拟真实环境。
好的数据生成技巧可以帮助测试工程师提高测试覆盖率并发现更多的潜在问题。
下面是一些常用的数据生成技巧:1.随机化生成数据使用随机数生成器可以生成各种类型的随机数据,如数字、字符串、日期等。
这样可以模拟各种不同的情况,例如非法输入、边界条件等。
同时,可以通过设置生成数据的范围和概率来控制生成数据的分布。
2.使用生成器模式生成器模式是一种创建复杂对象的设计模式,可以用来生成复杂的测试数据。
通过定义一个生成器接口和多个具体生成器,可以组合生成各种类型的对象。
生成器模式可以帮助测试工程师生成符合特定测试需求的数据。
3.使用正则表达式生成数据正则表达式是一种强大的模式匹配工具,可以用来生成符合特定格式的数据。
例如,可以使用正则表达式生成合法的电子邮件地址、手机号码等。
通过使用合适的正则表达式,可以保证生成的数据符合特定的要求。
4.使用模板生成数据模板是一种用来生成数据的模式,可以通过填充模板变量来生成具有一定规律的数据。
模板可以包含固定的文本、变量和控制结构,如条件语句和循环语句。
通过使用模板,可以生成符合特定要求的数据。
5.数据变异性为了增加测试的多样性和覆盖率,可以对生成的数据进行变异。
变异可以通过修改数据的一部分或者对数据进行操作来实现。
例如,可以对生成的字符串进行大小写转换、添加删除字符等。
变异可以帮助发现一些隐藏的问题和边界条件。
6.数据驱动测试数据驱动测试是一种测试方法,通过使用外部数据源来驱动测试脚本的执行。
外部数据源可以是不同的文件格式,如电子表格、数据库、XML 等。
数据驱动测试可以帮助测试工程师生成大量的测试数据并增加测试覆盖率。
7.使用第三方数据生成工具有很多开源的数据生成工具可以帮助测试工程师生成测试数据。
这些工具通常提供丰富的功能和灵活的配置选项,可以根据需求生成各种类型的数据。
一些常用的数据生成工具包括Faker、Random Data Generator 等。
⼆⼗三种设计模式[3]-⽣成器模式(BuilderPattern)前⾔⽣成器,⼜名建造者模式,属于创建型模式。
在《设计模式 - 可复⽤的⾯向对象软件》⼀书中对它的描述为“ 将⼀个复杂对象的构建与他的表⽰分离,使得同样的构建过程可以创建不同的表⽰ ”。
与和不同的是,⼯⼚⽅法侧重于将类的实例化延迟到⼦类,由⼦类决定⼯⼚的创建,从⽽得到⼀个产品,抽象⼯⼚则是⼀个包含了多个⼯⼚⽅法的⼤型⼯⼚,更侧重于⼀系列产品的创建,⽽⽣成器在创建产品同时,更加关注于产品的创建逻辑。
由于它们的侧重点不同,⼯⼚⽅法适合创建复杂的产品,⽣成器适合创建更加复杂的产品。
⼀个简单的例⼦。
抽象⼯⼚代表了⼀个⽣产多种产品的代⼯⼚,⼯⼚⽅法代表了某个产品的⽣产车间,⽣成器则代表了某个产品的⽣产线。
结构在⽣成器中,需要如下⼏种⾓⾊的⽀持:IBuilder(⽣成器接⼝):⽤来定义创建⼀个产品实例所需要的各个函数;ConcreteBuilder(⽣成器接⼝实现):实现创建产品实例所需要的各个函数;Director(导向器):使⽤⽣成器来创建产品,封装了产品的实例化逻辑;Product(产品):被导向器创建的产品对象;实现所谓“ 将⼀个复杂对象的构建与它的表⽰分离 ”是指由导向器去处理产品的实例化逻辑⽽不是⽣成器来处理。
再由各个不同的⽣成器分别实现创建产品实例所需要的各个函数,从⽽实现“ 同样的构建过程创建不同的表⽰ ”。
⽐如,在⼀个键⿏套装中包含了⼀个键盘和⼀个⿏标,不同的键⿏套装内⼜有不同品牌、型号的键盘和⿏标。
可以通过不同的组合⽅式得到⼀个完整的键⿏套装。
public interface IMouse{string GetBrand();}public class LogitechMouse : IMouse{public string GetBrand(){return "罗技-Logitech G903";}}public class RazeMouse : IMouse{public string GetBrand(){return "雷蛇-Raze 蝰蛇";}}public interface IKeyBoard{string GetBrand();}public class LogitechKeyboard : IKeyBoard{public string GetBrand(){return "罗技-Logitech G910 RGB";}}public class RazeKeyboard : IKeyBoard{public string GetBrand(){return "雷蛇-Raze 萨诺狼蛛";}}public class Kit{public IMouse Mouse { set; get; } = null;public IKeyBoard Keyboard { set; get; } = null; }public interface IKitBuilder{void BuildMouse();void BuildKeyboard();Kit GetKit();}public class LogitechKitBuilder : IKitBuilder{private Kit _kit = null;public LogitechKitBuilder(){this._kit = new Kit();}public void BuildMouse(){this._kit.Mouse = new LogitechMouse();}public void BuildKeyboard(){this._kit.Keyboard = new LogitechKeyboard(); }public Kit GetKit(){return this._kit;}}public class RazeKitBuilder : IKitBuilder{private Kit _kit = null;public RazeKitBuilder(){this._kit = new Kit();}public void BuildMouse(){this._kit.Mouse = new RazeMouse();}public void BuildKeyboard(){this._kit.Keyboard = new RazeKeyboard();}public Kit GetKit(){return this._kit;}}public class KitDirector{public Kit ConstructKit(IKitBuilder builder){if(builder == null){return null;}builder.BuildMouse();builder.BuildKeyboard();return builder.GetKit();}}class Program{static void Main(string[] args){//创建⽣成器IKitBuilder builder = new LogitechKitBuilder();//IKitBuilder builder = new RazeKitBuilder();//创建导向器KitDirector director = new KitDirector();//导向器通过注⼊的⽣成器创建产品实体Kit kit = director.ConstructKit(builder);Console.WriteLine($"当前套装内的⿏标是:{kit.Mouse.GetBrand()}");Console.WriteLine($"当前套装内的键盘是:{kit.Keyboard.GetBrand()}");Console.ReadKey();}}上述代码中,我们通过将不同的⽣成器(IKitBuilder)实体注⼊到同⼀导向器(KitDirector)来获得不同的Kit实体,从⽽达到“ 同样的构建过程创建不同的表⽰ ”的⽬的。
第39卷第10期自动化学报Vol.39,No.10 2013年10月ACTA AUTOMATICA SINICA October,2013面向蛇形机器人的三维步态控制的层次化联结中枢模式生成器模型杨贵志1,2马书根1,3李斌1王明辉1摘要提高蛇形机器人的三维运动控制能力是提高蛇形机器人环境适应能力的关键之一.虽然联结中枢模式生成器(Connectionist central pattern generator,CCPG)模型具有复杂度小、适合硬件实现等优点,但是目前的CCPG模型难以生成相位协调的多自由度运动的控制信号,从而限制了它的三维步态控制能力.本文根据生物CPG机制的分层结构和运动神经元的功能,提出一个有层次化结构的CCPG(Hierarchical CCPG,HCCPG)模型.HCCPG模型由基本节律信号生成层、模式形成层、运动信号调整层这三个部分组成.运动信号调整层的运动神经元能够独立地对模式形成层的输出信号的幅值、相位等进行调整,从而较好地解决了CCPG模型难以生成相位协调的多自由度运动控制信号的问题.HCCPG模型具有步态控制能力强、复杂度小、有良好的扩展性等优点,从而适合用于控制三维步态.在HCCPG模型的基础上提出一个三维步态控制方法.仿真验证了这个控制方法的有效性.关键词蛇形机器人,联结中枢模式生成器模型,运动神经元,循环抑制CPG模型,三维步态引用格式杨贵志,马书根,李斌,王明辉.面向蛇形机器人的三维步态控制的层次化联结中枢模式生成器模型.自动化学报, 2013,39(10):1611−1622DOI10.3724/SP.J.1004.2013.01611A Hierarchical Connectionist Central Pattern Generator Model forControlling Three-dimensional Gaits of Snake-like RobotsYANG Gui-Zhi1,2MA Shu-Gen1,3LI Bin1WANG Ming-Hui1Abstract A key to promoting the snake-like robot s adaptability is improving its3-D locomotion ability.Although the connectionist central pattern generator models(CCPG)have merits such as low complexity,appropriate for the hardware implementation,the current CCPG models have difficulties in generating the phase-coordinated control signals for the multi-degrees-of-freedom motions.Consequently,the CCPG s ability to generate the3-D gaits of snake-like robots are seriously restricted.According to the layered structure of the biological CPG mechanism and the functions of the motoneuron,a hierarchical CCPG(HCCPG)model is proposed.The HCCPG is composed of three layers,namely the basic rhythm generation(RG)layer,the pattern formation(PF)layer,and the motion modulation(MM)layer.The motoneurons of the MM layer can independently modulate the amplitude and phase of the PF layer s output so it overcomes the difficulty faced by the current CCPG models.The HCCPG model has merits such as strong gaits adjustment ability, small complexity,and good expendability,which make it appropriate for generating the3-D gaits.Based on the HCCPG model,a3-D gait control method is proposed.Simulations have validated this gait control method.Key words Snake-like robot,connectionist central pattern generator model,motoneuron,cyclic inhibition CPG,three-dimensional gaitsCitation Yang Gui-Zhi,Ma Shu-Gen,Li Bin,Wang Ming-Hui.A hierarchical connectionist central pattern generator model for controlling three-dimensional gaits of snake-like robots.Acta Automatica Sinica,2013,39(10):1611−1622收稿日期2012-05-29录用日期2012-11-30Manuscript received May29,2012;accepted November30,2012国家自然科学基金(61075103)资助Supported by National Natural Science Foundation of China (61075103)本文责任编委谭民Recommended by Associate Editor TAN Min1.中国科学院沈阳自动化研究所机器人学国家重点实验室沈阳1100 16,中国2.中国科学院大学北京100049,中国3.立命馆大学草津525-8577,日本1.State Key Laboratory of Robotics,Shenyang Institute of Automation,Chinese Academy of Sciences,Shenyang110016, China2.University of Chinese Academy of Sciences,Beijing 100049,China3.Ritsumeikan University,Kusatsu-Shi525-8577,Japan经过长期进化,蛇具有很强的环境适应能力.为此,人们根据蛇的结构特点设计了各种蛇形机器人,期望使其具有与蛇同样强的运动能力.蛇具有强大的环境适应能力,主要是由于它具有灵活的三维运动能力.它能够根据环境状态的变化调整或者选择不同的三维运动步态,比如在沙漠中用侧向蜿蜒步态(Sidewinding)[1]、在光滑地面上用手风琴式步态(Concertina)[2]等.因此有必要在蛇形机器人上实现各种三维步态.蛇形机器人的三维步态是由符合特定规律的不同自由度的运动组合而成的,比如偏航(Yaw)、俯仰(Pitch)自由度运动的组合.比如侧1612自动化学报39卷向翻滚步态(Lateral rolling)要求偏航、俯仰运动各自的相邻关节之间的相位差为0◦,以使身体成弧形[3].蛇形机器人的步态基本上都是节律运动,而研究表明脊椎动物中存在一种称为中枢模式生成器(Central pattern generator,CPG)的神经机制控制着它们的一些节律运动[4],所以可以构造CPG模型来控制蛇形机器人的三维步态.与基于Hirose 等[5]提出的蛇形曲线(Serpenoid curve)的控制方法相比,基于CPG模型的步态控制方法具有抗扰动、模型调整时输出依然连续、适合融合传感器信息、适合实现分布式控制等优点[6].根据CPG模型的基本组成单元的类型,可以将它分为三种[6]:1)振荡器模型(Oscillator models)[7].这种模型由非线性振荡器模型组成,比如Hopf振荡器[8]、Van der Pol振荡器[9]等.这种模型的形式简单,模型参数有直接的物理意义,如模型参数直接对应输出的幅值、相位等.这种模型便于分析和控制[10].2)详细的生物物理模型(Detailed biophysical models).这种模型由能准确地体现神经元特性的神经元模型组成,比如Hodgkin-Huxley模型[11].这种模型复杂度大,不便于分析、控制,所以应用较少.3)联结模型(Connectionist models)[12].这种模型由较为简单但又能体现神经元主要特性的神经元模型组成,比如Leaky integrator神经元模型[13]、时变型神经元模型[14].联结中枢模式生成器(Connectionist CPG, CCPG)模型有助于了解CPG神经机制,同时复杂度比详细的生物物理模型低,便于对机器人进行控制.此外,相比于前面两种模型,联结模型更适合用模拟电路硬件来实现,而不是在处理器上通过软件程序来实现.Yang等[15]利用模拟电路实现了一个由时变型神经元模型组成的CCPG模型,以生成竹节虫的腿上各个关节的控制信号;Okazaki等[16]用CMOS电路来实现一个由时变型神经元模型组成的CCPG模型,用于控制一个六足机器人.与用软件实现相比较,用硬件实现CCPG具有便于实现分布式控制、功耗小、控制器体积小等优点[17−19],所以本文提出一个CCPG模型来控制蛇形机器人的三维步态.目前,CCPG模型主要用来生成二维运动步态[20−22].虽然卢振利等[23]用循环抑制CPG (Cyclic inhibition CPG,CICPG)模型来生成三维步态,但是CICPG的三维步态控制能力差,存在无法调整偏航与俯仰自由度运动之间的相位关系、调整步态时CPG的输出不连续等问题.实际上,由于CCPG模型不能像有些基于振荡器的CPG模型[24]那样直接定义、调整相位,所以难以用CCPG 模型来生成实现三维步态所需的相位协调的多自由度运动控制信号.虽然Huang等[25]提出一个反馈机制来实现CCPG之间的相位协调,但是该方法存在复杂度大(需要用两个CCPG来分别生成两自由度信号和额外的反馈机制来调整二者之间的相位)、不可靠(调整相位的同时会不可预料的改变幅值)等问题.因此需要寻找更有效的方法来解决CCPG生成相位协调的多自由度运动控制信号问题.实际上,神经生理学的研究表明生物CPG由三部分组成:1)由感知神经元组成的感知输入部分;2)由中间神经元(Interneuron,IN)组成的节律信号生成部分;3)由运动神经元(Motoneuron, MN)组成的运动信号调整部分(Motion modula-tion,MM)[26].节律信号生成部分还可以进一步分为基本节律生成器(Rhythm generator,RG)、模式生成器(Pattern formation,PF).RG生成基本的节律信号,而PF根据RG的输出激发运动神经元.这种功能结构使动物具有较高的运动能力,而CICPG模型只相当于实现了RG部分的功能.因此可以构造合适的多层的CCPG模型来提高步态控制能力.Wang等[27]用Hopfield连续神经元模型[28]等构造了一个2层结构的CCPG模型来控制双足跳跃机器人的腿部运动,Noble等[29]用Hodgkin-Huxley神经元模型构造了一个有2层结构的CCPG模型来控制单自由度关节的运动.但是目前的多层CCPG模型都只能生成单自由度运动控制信号,依然没有解决生成相位协调的多自由度运动控制信号的问题,所以难以生成蛇形机器人的三维步态.实际上,生物研究表明运动神经元能够对它的输入信号的波形、相位等进行调整[30],而现有的多层CCPG模型都没有实现、利用这种特性,所以步态控制性能受到较大限制.本文根据生物CPG的研究成果,提出一个有3层结构的层次化的CCPG(Hierarchical CCPG, HCCPG)模型:1)基本节律信号生成层(RG).它由基于持续型神经元模型[14]的CICPG模型[31]组成,用于生成基本节律信号,并实现HCCPG之间的相位协调.2)模式生成层(PF).它由简化后的持续型神经元模型组成.它对RG的输出进行滤波,生成运动神经元所需的外部激励信号.3)运动信号调整层(MM).它也是由简化后的持续型神经元模型组成,用于生成三维步态所需的两自由度运动的参考控制信号,比如参考角位置控制信号.关节伺服电机的控制器根据这个参考信号和实际的角位置信号等来确定电机的最终控制信号.因为HCCPG模型以较小复杂度解决了生成相位协调的多自由度运动控制信号的问题,所以适合用于控制三维步态.因此本文以HCCPG模型为基础提出一个三维步态控制方法.仿真验证了该方法的有效性.10期杨贵志等:面向蛇形机器人的三维步态控制的层次化联结中枢模式生成器模型16131层次化联结CPG 模型基于CPG 模型的控制器来源于对脊椎动物的CPG 神经机制的研究.因此更深入地了解、更好地实现这个机制,有助于设计更好的CPG 控制器,提高机器人的运动控制能力.根据这种思想,本文提出一个HCCPG 模型以控制蛇形机器人的三维步态.1.1CPG 神经机制研究表明,CPG 作为脊椎动物控制节律运动的一种重要的神经机制,具有复杂的结构,但是根据功能的不同大体可以将CPG 分为几个主要部分.McCrea 等[26]提出了如图1所示的由Hodgkin-Huxley 神经元模型[11]组成的2层结构的CPG 模型.图中,下标E 、F 分别表示与伸肌(Extensor)、屈肌(Flexor)的控制相关;以黑色实心圆为端点的线代表抑制连接,而以黑色空心圆为端点的线代表激励连接.信号流向为从无头端到有头端.每个神经元只有1个输出,但是该输出可以同时作为多个别的神经元的外部激励或者抑制输入.RG 是由中间神经元群组成的基本的节律信号生成器,主要负责生成基本的节律信号;PF 是由中间神经元群组成的模式生成器,主要负责根据RG 的输出激发运动神经元;MM 是运动神经元群,主要负责激活肌肉效应器,从而控制肌肉的运动;IN S 是带有感知输入的中间神经元群(Interneuron with sensory input),起到辅助激活运动神经元的作用.在该模型中,RG 、PF 部分各算为1层;各个神经元群内部包含的神经元数在20∼50之间.这种分层结构能够较好的解释一些生物现象,比如感知输入对运动的作用.已经有一些列基于这个模型的CCPG 模型被提出来以控制不同的机器人[18,27,29,32].图12层CPG 模型的结构Fig.1Structure of the two-level CPG model1.2HCCPG 模型McCrea 等的模型可以提高CCPG 模型的控制能力,但是却只能输出一个自由度运动的控制信号,而蛇形机器人的三维步态的实现需要有相位协调的两自由度运动控制信号.如果用2个CCPG 来分别生成这两个信号,则因为CCPG 模型不能像基于振荡器模型的CPG 模型那样直接定义、调整输出信号的相位,所以难以实现两个信号的相位协调.虽然Huang 等[25]提出了一个复杂机制来实现相位协调,但是调整相位的同时可能会不可预料地改变幅值,所以应用受到限制.实际上,由于大部分情况下这两个信号的周期一致,只是幅值、相位不同,而生物研究[30]表明运动神经元能够对它的外部激励输入信号的波形、相位等进行调整,所以本文据此提出一个HCCPG 模型来控制蛇形机器人的三维步态,如图2所示.HCCPG 的两个运动神经元分别生成所需的2个信号.图2HCCPG 模型的结构Fig.2Structure of the HCCPG modelHCCPG 主要分为3层:1)RG 层,即图中的中间神经元I 1、I 2、I 3组成的部分.由于RG 只需生成有期望周期的信号,而对其幅值等没有要求,所以为了减小HCCPG 模型的整体复杂度,本文将由3个持续型神经元模型组成的CICPG 模型[23]作为RG.Lu 等[31]证明CICPG 模型在由持续型或者时变型神经元模型通过抑制连接构成的可产生节律输出的CCPG 模型中是复杂度最小的(微分方程数最少).式(1)是单个持续型神经元模型.其中,τ是膜电势的时间常量;u 、y 分别是神经元的膜电势、输出;s 、w 是神经元的外部1614自动化学报39卷输入及其连接系数.τ·˙u=−u+w·sy=max(0,u)(1)2)PF层,即图中的中间神经元I4组成的部分.本文的PF主要是对RG的输出进行过滤(低通滤波),为MM层的运动神经元提供共同的外部激励输入.由于持续型神经元模型的输出有阈值限制,即输出只取非负值,所以为了实现过滤功能、同时也降低模型复杂度,本文对持续型神经元模型进行了简化,即不再对输出进行阈值限制.简化后的模型如式(2)所示.其中,u、y分别是神经元的膜电势、输出;k 是相位调整系数;s、g是神经元的外部输入及其幅值调整系数.将简化后的模型作为I4的模型.˙u=−k·u+g·sy=u(2)3)MM层,即图中的运动神经元M1、M2组成的部分.M1、M2能够独立地对I4的输出进行调整.M1、M2的输出分别作为生成三维步态所需的两个自由度运动的控制信号.为了降低模型复杂度, M1、M2也都采用式(2)所示的模型.假设蛇形机器人有n个关节,并且每个关节有两个运动自由度,即偏航、俯仰自由度.每个关节都由一个HCCPG来控制.HCCPG之间只通过它们的RG部分的连接来实现各个关节运动的协调.Wu 等[33]的研究表明通过引入如图3所示的局部闭环连接结构,即将第q个RG(RG q(q=1,···,n))的各个神经元的输出回馈给第一个RG(RG1)的对应神经元,可以改善RG的输出,比如使得各个RG的输出的幅值更一致等.为此,本文也采用这种闭环结构,从而得到如图4所示的各个HCCPG的RG之间的连接拓扑结构.为了更好地说明这种闭环结构,图中在RG1前面多画了一个RG q,以表示RG1有来自RG q的回馈连接,但是实际上这个RG q与图中的另一个RG q指的是同一个RG,而非两个不同的RG.综上所述,得到第i个HCCPG的模型,如式(3)所示.图3连接RG的局部闭环拓扑结构Fig.3The local closed-loop structureused to connect RGss图4采用局部闭环结构时,RG的各个神经元间的连接形式Fig.4The connections among the RGs neurons when the local closed-loop structure is adoptedτ·˙u i,j=−u i,j−w·y i,k+w o·y s,j+S i˙u P Fi=−k P Fi·u P Fi+g P Fi·y i˙u MNi,r=−k MNi,r·u MNi,r+g MNi,r·y P Fi y i,j=max(0,u i,j)y i=y i,m−y i,1y P Fi=u P Fiy MNi,r=u MNi,ri=1,···,n;j=1,···,m;r=1,2s=q,若i=1i−1,否则k=m,若j=1j−1,否则(3)其中,n是HCCPG的总节数、机器人的总关节数; m是1个RG内部包含的中间神经元总数.在本文中m=3;s,q是RG的序号,q表示RG q的输出回馈给RG1,s,q=1,···,n;j,k是神经元在RG内部的序号;u i,j,y i,j分别是第j个神经元的膜电势、输出;y i是R i的输出;τ是膜电势的时间常量;w是RG内部各个神经元之间的连接系数;w o是不同的RG的神经元之间的连接系数;S i是神经元的外部激励输入.令S i=S(i=1,···,n);r(r=1,2)是运动神经元的序号;u P Fi,u MNi,1,u MNi,2分别是I4, M1,M2的膜电势;y P Fi,y MNi,1,y MNi,2分别是I4, M1,M2的输出;k P Fi,k MNi,1,k MNi,2分别是I4,M1, M2的相位调节系数.令k P Fi=k P F,k MNi,1=k y, k MNi,2=k p(i=1,···,n);g P Fi,g MNi,1,g MNi,2分别是I4,M1,M2的幅值调节系数.令g P Fi=g P F, g MNi,1=g y,g MNi,2=g p(i=1,···,n).综上所述,蛇形机器人的基于HCCPG模型的完整控制系统如图5所示.图5将图4中的RG1前面的虚拟RG q省略.图中底部的粗线圆圈(Y i)、方块(P i)分别表示第i个关节的偏航、俯仰自由度.运动神经元的输出作为对应自由度运动的参考角位置控制信号.10期杨贵志等:面向蛇形机器人的三维步态控制的层次化联结中枢模式生成器模型1615图5蛇形机器人的控制系统Fig.5Snake-like robot s control system2HCCPG 模型的参数特性为了更好地用HCCPG 模型进行控制,需要对它的参数的特性进行分析.由于HCCPG 模型由RG 、PF 、MM 三部分组成,而PF 、MM 都是基于简化后的持续型神经元模型,所以以下分别介绍RG 及简化后的持续型神经元模型的参数特性.2.1RG 的参数特性由于RG 的作用主要是生成有期望周期的基本节律信号、实现HCCPG 之间的相位协调,而对幅值等没有要求,所以通过仿真确定了RG 的一组基本参数,即τ=0.8218,w =2.4,w o =0.05,S =1,q =6.此时,RG 输出信号的周期为3s 、幅值为0.7322.以后如无特别说明,保持RG 的参数不变.φ=2·πq(4)图6给出了开环结构时各个RG 的输出,即没有RG 的输出回馈给RG 1,RG 之间从头到尾呈单向串联结构时的输出.图7给出了有闭环结构,并且图6用开环结构时RG 的输出Fig.6The RG s outputs with open-loopstructure图7用闭环结构并且q =6时,RG 的输出Fig.7The RG s outputs with closed-loopstructure and q =6q =6时的结果.比较这两个结果可以发现有闭环结构时,各个RG 的输出的幅值更加一致、而且相邻RG 的输出之间的相位差(φ)一致.由图6可知此时的φ=π/3.由不同q 的结果可以发现当q =1,4,5,6,7时,φ与q 存在如式(4)所示的关系.当q =1,3时,φ=0.此外,改变q 不会对RG 的输出的幅值、周期有显著影响.因此可以通过改变闭环内的RG 的数量来改变φ,但是这种改变只限于有限几种情形,从而限制了它的应用范围.图8给出了RG 的参数(τ、S )与其输出的周期(T )、幅值(α)之间的关系.可见,T 、α可以分别由τ、S 来线性调整.此时,τ与T 的关系如式(5)所示.T =3.650694·τ−0.00012(5)2.2简化后的持续型神经元模型的参数特性由于RG 的输出近似正弦函数形式,所以假设在初始条件(t 0,y 0)下,给式(2)所示的简化后的持续型神经元模型施加如式(6)所示的正弦函数形式输入f (t ).f (t )=α0·sin(ω·t +β)(6)其中,α0、ω、β分别是幅值、角频率、初始相位.可以求得式(2)的解为式(7):y (t )=∆y (t )+h (t )(7)∆y (t )=∆y 0·e −k ·∆t =(y 0−h (t 0))·e −k ·∆t (8)h (t )=α·sin(ω·t +β+∆p )=α ·f (t +∆pω)(9)α=g ·α0√k 2+ω2(10)α =αα0=g √k 2+ω2(11)1616自动化学报39卷(a)τ对T、α的影响(a)τseffectonT andα(b)S对T、α的影响(b)S s effect on T andα图8τ、S对RG输出的周期(T)、幅值(α)的影响Fig.8τand S s effect on RGs s outputsperiod(T)and amplitude(α)∆p=arctankω−π2(12)其中,∆t是时间长度,∆t=t−t0;∆y0、∆y、h(t)分别是初始跟踪误差、瞬态跟踪误差、稳态解;α、α分别是h(t)的幅值、h(t)相对于f(t)的幅值调整量;∆p是h(t)相对于f(t)的相位调整量.由式(9)可知,简化后的持续型神经元模型可以对其外部输入信号的幅值、相位进行调整.因此,HCCPG模型的MM层中的M1、M2可以对PF层的I4的输出的幅值、相位进行独立调整,从而生成实现蛇形机器人的三维步态所需的两自由度运动的控制信号.此时不需要引入额外的复杂机制[25]就能够对这两个控制信号之间的相位关系进行调整.需要指出的是,虽然这里假设RG的输出为正弦信号,以此得到神经元模型的特性,但是实际模型中,PF层的外部激励输入信号仍然是RG的输出,而不是正弦函数.由式(8)可知,如果k很小,则指数衰减会很慢.当k=0时,最终解可能有恒定误差∆y0.而当k很大时,衰减会很快,导致参数切换时发生跳变现象,从而损坏电机.假设k的范围为k∈[k L,k U],则由式(12)可以得到此时的如式(13)所示的相位调整范围∆p∈[∆p L,∆p U].本文取[k L,k U]=[0.2,20]以避免衰减过快或者过慢.∆p L=arctank Lω−π2∆p U=arctank Uω−π2(13)综上所述,根据生物CPG机制提出的HCCPG模型具有如下优点:1)因为RG层的输出具有近似正弦函数的特点,从而可以得到运动神经元的模型参数与其外部激励输入信号的调整量之间的近似解析关系.这为提出一个复杂度小的步态控制方法提供了可能.2)因为不需要用两个CPG协同来生成三维步态所需的两个自由度运动控制信号,所以系统模型的维数小.另外又由于两个控制信号之间的相位关系的协调不需要借助额外的复杂机制,所以也使得模型复杂度较小.3)由于是通过模型参数来调整输出,而不是像卢振利等[23]那样直接对输出进行调整,所以可以保证模型调整时的输出连续性.4)由于一个运动神经元就对应一个自由度运动的控制信号,所以当关节的自由度数增多时,可以通过增加相应数量的运动神经元的方法来实现控制.比如有的机器人的关节有3个运动自由度[34],此时只需用3个运动神经元即能同时控制这3个自由度,而不是用3个CPG来分别控制.因此,HCCPG模型有良好的扩展性.因此HCCPG模型适合用于控制蛇形机器人的三维步态.3三维步态控制方法根据前面的分析可知,HCCPG模型能够生成多自由度运动的参考角位置控制信号,但是三维步态需要的是符合特定规律的控制信号,即对各个自由度控制信号的幅值、及其之间的相位关系等有特定的要求.因此本文以HCCPG模型为基础提出一个蛇形机器人的三维步态控制方法,即由期望的三维步态求对应的HCCPG模型参数的方法.因为三维步态是由偏航、俯仰自由度运动组合而成的,所以本文的步态控制方法主要是将期望的三维步态分解为偏航、俯仰自由度各自的期望运动,进而求出模型的各个参数.根据求得的参数,偏航、俯仰运动神经元生成各自自由度的运动.这两个运动就组合形成了期望的三维步态.因此,下面首先提出单自由度运动的控制方法,然后再以此提出三维步态的整体控制方法.3.1单自由度运动的控制方法由式(9)、(10)、(12)可知:可以通过调整运动神经元的参数(k、g)来调整f(t)的相位、幅值.单10期杨贵志等:面向蛇形机器人的三维步态控制的层次化联结中枢模式生成器模型1617自由度运动的控制方法就是由期望的相位调整量(∆p ∗)、幅值(α∗)求k 、g 的方法.给定f (t )的参数ω、α0,则单自由度运动控制方法为:首先根据式(12),由ω、∆p ∗求得k ;然后根据式(10),由k 、α∗求得g .式(14)和式(15)分别给出了k 、g 的解.k =−ω·cot(∆p ∗)(14)g =α∗α0·√k 2+ω2(15)3.2三维步态的整体控制方法三维步态的整体控制方法就是由期望的三维步态求HCCPG 模型的参数的方法.期望的三维步态的参数包括:相邻关节的控制信号之间的相位差(φ∗),运动周期(T ∗),一个关节内的偏航与俯仰自由度运动之间的相位差(∆p ∗yp ),以及偏航、俯仰运动的幅值(α∗y 、α∗p ).需要根据这些参数求HCCPG 模型的各个参数.根据RG 、PF 、MM 层各自的功能与特性,模型参数的求解方法如下.3.2.1∗∗φ、T RG 的作用是生成指定周期的基本节律信号,并实现相邻关节的运动之间的相位协调,而对其幅值等无要求.因此根据式(4),由φ∗确定RG 的参数q .根据式(5),由T ∗确定RG 的参数τ.RG 的其他参数(w 、w 0、S )则设置为固定值.因为PF 的作用只是对RG 的输出进行滤波,而不需要对其幅值等进行调整,所以本文将它的参数设置为k PF =c k ·ω∗、g PF =c g ·ω∗.其中,c k 、c g为任意正常数;ω∗(=2·π/T ∗)是期望步态的运动角频率.根据式(10)可知此时PF 的输出的幅值与RG 的输出的幅值成固定比例.因为本文只调整RG 的输出周期,而不调整其幅值,即它的幅值固定,所以PF 输出的幅值也固定.测量到的RG 、PF 输出的实际幅值分别为αRG 、αPF .但是PF 的参数随着期望步态的周期的变化而变化,而不是固定值.3.2.2∆p ∗yp 、α∗y 、α∗p 偏航、俯仰运动神经元能够对PF 的输出的幅值、相位进行独立调整.它们的输出分别作为偏航、俯仰自由度运动的控制信号.它们的相位调整范围为∆p y 、∆p p ∈[∆p L ,∆p U ],则两信号之间的相位差(∆p yp =∆p p −∆p y )的调整范围为∆p yp ∈[∆p L −∆p U ,∆p U −∆p L ].因为最终控制的是两自由度运动之间的期望相位差∆p ∗yp ,所以需要由∆p ∗yp 求得两信号各自的期望相位调整量∆p ∗y 、∆p ∗p .它们应该满足式(16)所示关系:∆p ∗y ∈(∆p L −∆p ∗yp ,∆p U −∆p ∗yp )∩(∆p L ,∆p U )∆p ∗p ∈(∆p L +∆p ∗yp ,∆p U +∆p ∗yp)∩(∆p L ,∆p U )(16)当∆p ∗yp >0时,式(16)变为式(17):∆p ∗y ∈(∆p L ,∆p U −∆p ∗yp )∆p ∗p ∈(∆p L +∆p ∗yp,∆p U )(17)此时,∆p ∗y 和∆p ∗p 各自的可行域的中值为∆p ∗ym =∆p L +∆p U −∆p ∗yp 2∆p ∗pm=∆p L +∆p U +∆p ∗yp 2(18)当∆p ∗yp ≤0时,则式(16)变为式(19):∆p ∗y ∈(∆p L −∆p ∗yp ,∆p U )∆p ∗p ∈(∆p L ,∆p U +∆p ∗yp)(19)此时,∆p ∗y 和∆p ∗p 的可行域的中值同为式(18).综上所述,如果∆p ∗y 、∆p ∗p 分别取各自的中值,即∆p ∗ym 、∆p ∗pm ,则结果对∆p ∗yp >0和∆p ∗yp ≤0的情形都成立,并且可以尽量避免取边界值(取边界值则过渡过程会过快或过慢).根据式(14)和式(15),即可由ω∗、αPF 、(∆p ∗y ,α∗y )、(∆p ∗p ,α∗p )分别求得偏航、俯仰运动神经元的参数(k y ,g y )、(k p ,g p ).综合前面的分析,三维步态控制方法的流程图,如图9所示.图9三维步态控制方法的流程图Fig.9Flow chart of the 3-D gait control method4仿真为了验证提出的三维步态控制方法的有效性,本文利用开源的动力学仿真引擎(Open dynamic。
⽣成器模式(Builder)解析例⼦原创作品,允许转载,转载时请务必以超链接形式标明⽂章、作者信息和本声明。
否则将追究法律责任。
⽣成器模式属于对象结构型模式,其意图是将⼀个复杂对象的构建与他的表⽰分离,使得同样的构建创建过程可以创建不同的表⽰。
适⽤性:1.当创建复杂对象的算法应该独⽴于该对象的组成部分以及他们的装配⽅式时2.当构造过程必须允许被构造的对象有不同的表⽰时。
参与者:⽣成器Builder:为创建⼀个Product对象的各个部件指定抽象接⼝(AnimalBuilder)。
具体⽣成器ConcreteBuilder:实现Builder接⼝⼀构造和装配该产品的各个部件。
定义并明确他所创建的表⽰,提供⼀个检索产品的接⼝(getAnimal)。
导向器:构建⼀个适⽤Builder对象的接⼝。
Product(Checken,pig):表⽰被构造的复杂对象。
ConcreteBuilder创建该产品的内部表⽰并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终的产品。
650) this.width=650;">图1当客户需要⼀个产品时,把需要的参数传递个导向器,导向器根据传递的参数调⽤具体的⽣成器,具体的⽣成器通过⼀系列的操作(getAnimal()通过调⽤其它的接⼝⽅法实现)最会返回⼀个产品。
Bridge模式的优点:1.它使你可以改变⼀个产品的内部表⽰,Builder对象提供给导向器⼀个构造产品的抽象接⼝,该接⼝使得⽣成器可以隐藏这个产品的表⽰和内部结构,他同时也隐藏了该产品是如何装配的,因为产品时通过抽象接⼝构造的(注:本例⼦把接⼝的实现放在具体类中了),你在改变该产品的内部表⽰时所要做的只是定义⼀个新的⽣成器。
2.他将构造代码和表⽰代码分开,这有点类似于模板模式。
所不同的是模版模式最终是完成复杂的⼯作,⽽⽣成器的⽬的是要⽣成⼀个复杂的对象。
3.他使得你对构造过程进⾏更加精细的控制。
生成式对抗网络(GAN)是一种深度学习模型,由生成器和判别器两个部分组成。
生成器试图生成与真实数据相似的样本,而判别器则试图区分真实数据和生成器生成的数据。
通过不断的对抗训练,生成器和判别器不断提升自己的性能,最终达到动态平衡。
虽然GAN在图像生成、语音合成等领域取得了一些成功,但是在训练过程中会出现一些问题,其中最常见的就是模式崩溃问题。
一、模式崩溃问题的产生原因模式崩溃问题是指生成器在训练过程中只学到了数据的部分模式,导致生成的样本过于单一和缺乏多样性。
这个问题通常是由于生成器和判别器之间的不平衡造成的。
在训练初期,生成器的能力较弱,判别器很容易区分生成的假样本,因此生成器很难从判别器的反馈中学到有效的信息。
而在训练后期,生成器的能力不断提升,判别器反而无法有效地对抗生成器,导致生成器只学到了部分数据分布的模式,造成模式崩溃问题的产生。
二、解决模式崩溃问题的方法1. 充分训练数据集解决模式崩溃问题的一种方法是充分训练数据集。
在训练GAN时,数据集的质量和多样性对模型的性能至关重要。
如果训练数据集缺乏多样性,生成器很难学到数据的完整分布,从而导致模式崩溃问题的产生。
因此,可以通过增加训练数据集的多样性,包括不同角度、光照、背景等,来提高生成器的泛化能力,从而减轻模式崩溃问题的发生。
2. 优化损失函数损失函数在训练GAN时起着至关重要的作用。
针对模式崩溃问题,可以对损失函数进行优化,以平衡生成器和判别器之间的训练过程。
一种常见的方法是引入正则化项,如L1正则化、L2正则化等,来约束生成器的输出,使其更加平衡和多样化。
3. 添加噪声为了缓解模式崩溃问题,可以在训练过程中向输入数据添加噪声。
噪声可以帮助生成器更好地学习数据的分布,从而提高生成样本的多样性。
同时,添加噪声还可以增加数据的随机性,减少模型对特定模式的依赖,有助于缓解模式崩溃问题的发生。
4. 使用自监督学习自监督学习是一种无监督学习的方法,可以有效地避免模式崩溃问题的产生。
介绍使用代码自动化生成和生成器模式的好处代码自动化生成(Code Generation)是指使用程序自动生成代码的技术。
而生成器模式(Builder Pattern)是一种创建型设计模式,用于将复杂对象的构建与表示分离。
本文将分别介绍代码自动化生成和生成器模式,并探讨它们的好处。
一、代码自动化生成的好处1.提高工作效率:代码自动生成可以大大提高开发工作的效率,尤其对于重复的、类似的代码。
开发人员只需要定义好相应的模板和规则,然后使用生成工具即可生成大量代码。
这样一来,可以更快地完成开发任务,节省时间和精力。
2.减少错误和bug:手工编写代码时往往容易出现错误,尤其是在重复编写相似的代码片段时。
而代码自动生成可以根据规则自动生成代码,减少了人为的错误。
生成的代码经过测试和验证,质量更高,对于减少错误和bug非常有帮助。
3.统一和规范:代码自动生成可以根据预定义的规范和模板生成代码,使得代码风格、代码结构等方面保持一致和规范化。
这样可以提高代码的可读性和可维护性,方便团队的协作开发。
4.更好的重构支持:代码自动生成使得重构更加容易和安全。
当需要对代码进行重构时,只需修改生成模板或规则,再重新生成代码即可,而不必手动修改大量重复的代码。
这样不仅减少了重构的工作量,还能避免遗漏和错误。
5.提高系统可扩展性:代码自动生成可以根据需求生成不同的代码片段,使得系统更具可扩展性。
例如,可以根据配置或模板生成适应不同数据库的代码,或者生成不同平台的相关代码。
这样使得系统更易于扩展和移植。
6.可以自定义和扩展:代码自动生成通常支持自定义模板和规则,可以根据具体需求进行适度扩展和定制。
开发人员可以根据自己的编码习惯和团队的需求,定义自己的代码生成模板和规则,让生成器更符合实际开发要求。
二、生成器模式的好处1.封装复杂对象的构建过程:生成器模式将复杂对象的构建过程封装在一个实现了Builder接口的类中,客户端只需调用该类的一些简单接口,而无需关心具体的构建细节。
The DG2000 Series of digital pattern generators provide digital designers with the high performance toolsneeded to evaluate advanced digital semiconductors and logic circuits. Whatever you call your design process –characterization, debug,validation, or verification –as a digital designer you must have state-of-the-art digital pattern generation as you push the edge of thetechnology envelope and race to market.Choose the Best FitThe DG2000 Series is remark-able for the balancedapproach to providing the appropriate class of instru-ment for a wide variety of digital design applications.Performance ranges from 1.1Gbits per second to 200 Mbits per second and from 2 to 36channels. The table illus-trates the principal specifica-tions for members of the DG2000 Series.Critical TimingThe DG2000 Series is the ideal solution for applica-tions where you must charac-terize device or circuit timing and amplitude margins. The DG2000 Series is perfect for simulating setup and hold violations or conditions of metastability. The DG2000graphical user interfaceallows you to quickly create complex data patterns with a few keystrokes on the front panel. Use the advanced sequence editing capability of the DG2000 Series to insert infrequent faults or glitches in your data patterns to verify device or circuit recovery.The DG2000 Series is aninvaluable tool, allowing you to simulate missing system functionality while meeting critical market windows.With the introduction of the DG2040, new capabilities are available to control clock and data jitter or modulate pulse edges on a selective basis.Copyright © 1999 Tektronix, Inc. All rights reserved.DG2000 SeriesData Pattern GeneratorData Rate to 1.1 Gbps Tests High-speed Logic Devices and Circuits Data Pattern Depth to 256 K/channel Speeds CharacterizationMultiple Output Channels Increases Flexibility DG2040: 2DG2030: 4 or 8DG2020A: 12, 24, or 36Control of Edge Timing (DG2040)Permits Jitter Simulation in Serial Data StreamsPrecise Control of Output Parameters Include:Variable Output Delay Variable Output LevelVariable Rise and Fall Time Con-trol (DG2030)Tri-state output control (DG2020A, DG2030)Large Display for Easy-to-Use Data EditingCreate Complex Data Patterns with Sophisticated Sequence, Looping,Jump on Event, & Tri-state Output ControlCharacterize & Verify ASIC, FPGA, &DACsEvaluate Media Storage Devices and Components (HDD, FDD, ODD, DVD)Test Printer Engines or LCD Display DriversConstruct Logic Verification Systems Utilizing Tektronix Oscilloscopes or Logic Scopes Use in-conjunction with TLA Logic Analyzer to Provide Digital StimulusOUTPUT DATA Data Rate –DG2040: 0.1 bps to 1100 Mbits/s.DG2030: 0.1 bps to 409.6 Mbits/s.DG2020A: 0.1 bps to 200 Mbits/s.Clock Period Jitter –DG2040: <30ps p-p at 1100MHz. Typical.DG2030: <50ps p-p at 200MHz. Typical.DG2020A: <50ps p-p at 200MHz. Typical.Data Depth –DG2040: 360 to 256 Kbits (1 increment).DG2030: 90 to 256 Kbits (1 increment).DG2020A: 64 to 64 Kbits (1 increment).Data Width –DG2040: 2 bits (complementary outputs)via front-panel SMA connectors.DG2030:Standard: 4 bits via front-panel BNC connectors.Optional: 8 bits via 4 front-panel, 4 rear-panel BNC connectors.DG2020A:Standard: 12 bits.Optional: 24 or 36 bits.SEQUENCERMaximum Number of Blocks –256.Maximum Number of Sequence Steps –DG2040: 4000.DG2030: 4000.DG2020A: 2048.Block Repeats Per Line –1 to 65536 or infinite.DATA AND CLOCK OUTPUT (DG2040)Data –Output:Standard: Ch 0 & Ch 1 at front-panel SMA and Clock at rear panel SMA connectors.V OH :–0.875V to +3.5V into 50Ω.V OL :–1.125V to +3.25V into 50Ω.Rise/Fall Time (20 to 80%): <150ps at 1V p-p and 10MHz.Delay Function:Delay channel: Ch 0 or Ch 1.Delay time:–1ns to +2ns.Delay resolution: 10ps.DATA AND CLOCK OUTPUT (DG2030)Data –Output:Standard: Ch 0 to Ch 3 and Clock at front-panel BNC connectors.Optional: Ch 4 to Ch 7 at rear-panel BNC connectors.V OH :–1.25V to +3.5V into 50Ω.V OL :–1.50V to +3.25V into 50Ω.Rise/Fall Time (20 to 80%):Variable at amplitude range from 2V p-p to 5V p-p .Variable Range: 2.1ns to 4.7ns at 3.00V p-p –depends on amplitude setting.Value in Fast: 0.25V p-p to 1V p-p ; 500ps.1.7ns at 3.00V p-p .Delay Function:Delay channel: Ch 0 to Ch 7.Delay time:–5ns to 18ns.Delay resolution: 20ps.Clock –Amplitude: ±5% of setting ±50mV at 1MHz clock.Rise/Fall Time (20 to 80%):Variable at amplitude range is 2V p-p to 5V p-p .Value in Fast: 0.25V p-p to 1V p-p ; 500ps.1.7ns at 3.00V p-p .Accuracy: ±10% of setting ±500ps.AUXILIARY INPUTSClock –Frequency:DG2040: 10MHz ±0.1MHz DG2030: DC to 409.6MHz.DG2020A: DC to 200MHz.Trigger –Front-panel BNC connector.Level:–5.0V to +5.0V.Resolution: 0.1V.Polarity: Positive or negative.Hold Off:DG2040: 100ns minimum.DG2030: 100ns minimum.DG2020A: 500ns minimum.Event (DG2040 & DG2030 only)–Rear-panel BNC connector.Threshold Level:–5.0V to +5.0V.Resolution: 0.1V.Polarity: Positive edge.Minimum Pulse Width: 100ns.Inhibit (DG2030 only)–Rear-panel BNC connector.Mode:Off: Always enabled.Internal: Controlled by Ch 0 signal.External: Controlled by inhibit input signal.Both: Controlled by Ch 0 or inhibit input signal.Threshold Level:–5.0V to +5.0V into 1 k Ω.Resolution: 0.1V.AUXILIARY OUTPUTSSYNC –DG2040: Rear-panel BNC connector.DG2030: Rear-panel BNC connector.DG2020A: Front-panel BNC connector.Level:V OH , 2.5V into 50Ω;V OL , 0V into 50Ω.EVENT –DG2040: Rear-panel BNC connector.DG2030: Rear-panel BNC connector.DG2020A: Front-panel BNC connector.Level:DG2040:V hi , 2.5V into 50Ω;V lo , 0V into 50Ω.DG2030:V oh , 2.5V into 50Ω;V ol , 0V into 50Ω.DG2020A: Positive TTL pulse, 50Ω.CLOCK –(DG2020A only)Rear-panel SMB connector.Level: 1V (typical) into 50Ω.PROGRAMMABLE INTERFACEGPIB: ANSI/IEEE488.2-1987.RS-232C: 19.2 kbps, D-sub 9-Pin connector.page 2DG2000 Series CharacteristicsP3410 TTLData Output PodCharacteristicspage 3DATA OUTPUT Channels –12.Connector –26-Pin header.V OH –>4.4V into 1 M Ω.V OL –>0.1V into 1 M Ω.Rise/Fall Time –<5ns into 1 M Ω, 10 pF (20% to 80%).DELAYED CHANNELSDelay Channel –CH 8, CH 9, CH 10, CH 11.Delay Time –0 to 20ns.Delay Resolution –0.1ns.EVENT INPUTThreshold Level –TTL.Delay to Data Output –≤50ns + 50clocks.Set-up Time to Next Block –47 to 54clocks.INHIBIT INPUTLevel –TTL, 1 k Ω.Delay to Data Output –18ns.Internal Inhibit Delay –5ns.PHYSICAL CHARACTERISTICSDimensions mm in.Height*1512Width 150 5.9Depth 1014Weight kg 0.51.1*1Including feet.P3420Variable Data Output PodCharacteristicsDATA OUTPUT Channels –12Connector –SMB.V OH –-2.0V to +7.0V into 1 M Ω.V OL –-3.0V to +6.0V into 1 M Ω.Resolution –0.1V.Maximum Swing –9.0V p-p .Minimum Swing –0.5V p-p .Output Current –Total Output Current: <500mA.Sink: <-30mA/ch.Source: >+30mA/ch.Rise/Fall Time –<5ns into 1 M Ω, 10 pF,5V p-p swing.DELAYED CHANNELSDelay Channel –CH 8, CH 9, CH 10, CH 11.Delay Time –0 to 20ns.Delay Resolution –0.1ns.EVENT INPUTThreshold Level –-5.0V to +5.0V.Resolution –0.1V.Delay to Data Output –≤45ns + 50 clock.Set-up Time to Next Block –47 to 54clocks.INHIBIT INPUTThreshold Level –-5.0V to +5.0V, 1 k Ω.Resolution –0.1V.Delay to Data Output –16ns.Internal Inhibit Delay –-2ns.PHYSICAL CHARACTERISTICSDimensions mm in.Height*1512Width 25510Depth 161 6.3Weight kg 12.2*1Including feet.DG2000 Series GeneralCharacteristics CERTIFICATION AND COMPLIANCEEC Declaration of Conformity –Meets intent of Directive 89/336/EEC for electro-magnetic compatibility.Safety –Designed to meet UL 1244 andCSA 22.2 No. 231 (M-89).PHYSICAL CHARACTERISTICSDG2000 Series Main Frame Dimensionsmmin.Height*1164 6.4Width*236214.3Depth*34918.25*1Including feet.*2Including handle.*3Including front cover. 576 mm (22.2 inches) with handle extended.Weight kg 9.721.4WARRANTYOne year parts and labor.Characteristics shown are typical. Please refer to individual product user manuals for complete specifications.DG2000 Series OrderingInformation DG2020A Data GeneratorIncludes: User Manual (071-0053-00), Pro-grammer Manual (071-0054-00), 3.5-in.Performance Check Disk (063-2198-00),GPIB Sample Program (063-2919-00), DG-Link Application Software (063-2920-01),Pod Connection Cable (174-3548-00),Power Cord 125V/6 A (161-0230-01), ISO-qualified Inspection Passed Certificate.Order P3410 or P3420 Pod separately.DG2020A OptionsOption 01– Adds a 12-bit digital port for a total of 24 output channels. Includes pod connection cables (174-3458-00). Order P3410 or P3420 pod separately.Option 02– Adds two 12-bit digital ports for a total of 36 output channels. Includes two pod connection cables (174-3458-00).Order P3410 or P3420 pod separately.Option 1R – Rack mount. Floppy drive moved to front panel.Option A1– 220V, EURO plug power cord,product set to 50Hz.Option A2– 240V, UK plug power cord,product set to 50Hz.Option A3– 240V, AUST plug power cord,product set to 50Hz.Option A4– 240V, N. America plug power cord, product set to 60Hz.Option A5– 220V, SWISS plug power cord, product set to 50Hz.Option C3– Three year calibration service.Option D1– Calibration Data Report.Option D3– Calibration Data Report.Requires option C3.Option R3– Repair Warranty; Extended to three years.P3410 TTL-level Pod with 12 Output ChannelsIncludes: Pin Header-to-Pin Header Output Cable Set (012-1502-00) for 12 Output Channels, ISO Qualified Inspection Passed Certificate.P3420Variable-level Pod with 12 Output ChannelsIncludes: SMB-to-Pin Header Output Cable Set (012-1504-00) for 12 output channels,ISO Qualified Inspection Passed Certificate.P3410 and P3420 OptionsOption D1- Calibration Data Report.Option R3- Repair Warranty; Extended to three years.Option R5- Repair Warranty; Extended to five years.DG2030 Data GeneratorIncludes: User Manual (071-0059-01), Pro-grammer Manual (071-0057-01), 3.5-in.Performance Check Disk (063-2922-00),GPIB Sample Program Disk (063-2921-01),DG-Link Application Software (063-2920-01), Power Cord 125V/6 A (161-0230-01),ISO Qualified Inspection Passed Certificate.DG2030 OptionsOption 01– Eight-channel output. Adds four-channel output from rear panel.Option 1R – Rack mount. Floppy Drive access moved to front panel.Option A1– 220V, EURO plug power cord,product set to 50Hz.Option A2– 240V, UK plug power cord,product set to 50Hz.Option A3– 240V, AUST plug power cord,product set to 50Hz.Option A4– 240V, N. America plug power cord, product set to 60Hz.Option A5– 220V, SWISS plug power cord, product set to 50Hz.Option C3– Three year calibration service.Option D1– Calibration Data Report.Option D3– Calibration Data Report.Requires option C3.Option R3– Repair Warranty; Extended to three years.DG2040 Data GeneratorIncludes: User Manual (071-0257-00), Pro-grammer Manual (071-0258-00), 3.5-in.Performance Check Disk (063-3121-00),GPIB Sample Program Disk (063-3122-00),DG-Link Application Software (063-2920-01), Power Cord 125V/6 A (161-0230-01),ISO Qualified Inspection Passed Certificate.DG2040 OptionsOption 1R – Rack mount. Floppy Drive access moved to front panel.Option A1– 220V, EURO plug power cord,product set to 50Hz.Option A2– 240V, UK plug power cord,product set to 50Hz.Option A3– 240V, AUST plug power cord,product set to 50Hz.Option A4– 240V, N. America plug power cord, product set to 60Hz.Option A5– 220V, SWISS plug power cord, product set to 50Hz.Option C3– Three year calibration service.Option D1– Calibration Data Report.Option D3– Calibration Data Report.Requires option C3.Option R3– Repair Warranty; Extended to three years.DG2020A/DG2030/DG2040 Optional AccessoriesDG2020A Service Manual – 071-0055-00.DG2030 Service Manual – 071-0058-01.DG2040 Service Manual – 071-0259-00.1/99 HB/XBS76W-10799-2Copyright © 1998, Tektronix, Inc. All rights reserved. Tektronix products are covered by U.S. and foreign patents, issued and pending. Information in this publication supersedes that in all previously published material. Specification and price change privileges reserved. TEKTRONIX and TEK are registeredtrademarks of Tektronix, Inc. All other trade names referenced are the service marks, trademarks or registered trademarks of their respective companies.。