精华内容
下载资源
问答
  • 在微控制器的CPU和存储器(ROM,EEPROM和[IAM)之间的总线被引出之前,芯片必须用光刻方法去掉在总 线上表面的钝化层。而钝化层是保护芯片免于氧化和遭受攻击的。根据Anderson和Kuhn[Anderson 96b], 它可以用氟...
  • 2、建立控制系统数学模型的原因:以便定量的给出系统中一些变量之间的相互关系,从而对控制系统进行各种分析和设计,包括稳定性和动态响应的性能分析 3、数学模型的形式 代数方程:反映系统静态关系 微分方程/偏分...

    1、数学模型:描述系统(或环节)的输出变量与输入变量(或内部变量)之间关系的数学表达式

    2、建立控制系统数学模型的原因:以便定量的给出系统中一些变量之间的相互关系,从而对控制系统进行各种分析和设计,包括稳定性和动态响应的性能分析

    3、数学模型的形式

    • 代数方程:反映系统静态关系
    • 微分方程/偏分方程:连续系统,系统输入输出之间的动态关系
    • 差分方程:离散系统

    4、建立数学模型的方法

    • 机理建模:根据系统的运动学或动力学规律,比如机械系统中的牛顿定律、电路系统中的克希霍夫定律等,建立系统的数学表达式。因此,机理建模要求要了解所有原部件的结构,以及对应的物理机理
    • 实验建模:人为的给系统施加某种典型的输入信号,记录下对应的输出响应数据,通过辨识的方法,采用适当的数学模型、去模拟逼近这个响应过程,所获得的数学模型称为辨识模型

    建立数学模型的要求:准确,简单

    5、系统分类

    • 线性系统:满足叠加原理
    • 非线性系统:不满足叠加原理(对两个输入量的响应不能单独计算,系统分析困难)
    • 集中参数系统:变量仅仅是时间的函数(微分方程)
    • 分布参数系统:变量不仅是时间的函数,而且是空间的函数(偏微分方程)
    • 定常系统:微分方程的各项系数为常数
    • 时变系统:系统的微分方程的系数为时间的函数。也就是除了系统变量会随时间发生变化外,系统参数也随时间变化
    • 单输入单输出系统:系统只有一个输入变量和一个输出变量
    • 多输入多输出系统:系统有多个输入变量或多个输出变量

    6、求解微分方程

    • 拉氏变换与反变换
      • 对线性微分方程的每一项都进行拉氏变换
      • 输出变量的象函数表达式
      • 部分分式展开
      • 进行拉氏反变换
      • 得到微分方程的解

    7、非线性微分方程的线性化

    进行线性化的原因

    • 严格的说,几乎所有原件或系统的运动方程都是非线性方程,即输入、输出和扰动等之间的关系都是非线性的。非线性微分方程的求解和控制系统性能研究非常复杂,在实际应用中不够简便。如果能够与合适的方法,在可允许的误差范围内,把非线性系统进行线性化处理,而线性化后的模型可借助叠加原理的性质,简化系统分析。因此,研究非线性微分方程的线性化具有较强的工程实用价值

    非线性数学模型的线性化

    • 在一定条件下或一定范围内把非线性的数学模型化为线性模型的处理方法

    线性化所需条件

    • 小偏差理论或小信号理论。在工程实践中,控制系统都有一个额定的工作状态和工作点,变量在工作点附近作小范围变化
    • 工作点附近存在各阶导数或偏导数

    线性化的方法

    • 小偏差法:在给定工作点的邻域将非线性函数展开为泰勒级数,忽略级数中的高阶无穷小项,得到只包含偏差的一次项的线性方程

    需要注意的问题

    • 必须首先确定工作点
    • 如果实际系统中输入量变化范围较大时,采用小偏差法建立线性模型必然会带来较大误差
    • 线性化后的微分方程通常是增量方程
    • 只能用于满足两个前提条件的非线性控制系统。如果描述非线性特性的函数,具有间断点、折断点或非单值关系,此时线性化的第二个条件不满足,这种非线性特性叫做本质非线性,无法作线性化处理
    展开全文
  • Java 小技巧和在java应用避免NullPonintException的最佳方法。在java应用程序中,一个NullPonintException(空指针异常)是最好解决(问题)的方法。同时,空指针也是写健壮的顺畅运行的代码的关键。...

    Java 小技巧和在java应用避免NullPonintException的最佳方法

    在java应用程序中,一个NullPonintException(空指针异常)是最好解决(问题)的方法。同时,空指针也是写健壮的顺畅运行的代码的关键。“预防好过治疗”这句话也同样适用于令人不爽的NullPonintException。通过应用防御性的编码技术和在遵守多个部分之间的约定,你可以再很大程度上避免NullPointException。下面的这些java小技巧可以最小化像!=null这种检查的代码。作为经验丰富的java程序猿,你可能意识到这些技术的某部分项目当中使用它。但是对于大学一年级学生和中级开发者,这是一个很好的学习机会。

    这是一些很容易学会的简单技术,但是对于代码质量和健壮性来说确实很重要。以我的经验,仅是第一个小技巧就已经对改进代码质量具有很大的作用了。

    1)在已经的String(字符串)调用 equal()和 equalsingnoreCase()而不是未知的对象

    通常在已经的非空字符串在调用equals()。因为equal()方法是对称的,调用a.equal()是同等于调用b.equal(),和这就是为什么很多部注意对象a和b,如果空的一边被调用会到导致空指针。

    Object unknownObject = null;

    //wrong way - may cause NullPointerException
    if(unknownObject.equals(“knownObject”)){
    System.err.println(“This may result in NullPointerException if unknownObject is null”);
    }

    //right way - avoid NullPointerException even if unknownObject is null
    if(“knownObject”.equals(unknownObject)){
    System.err.println(“better coding avoided NullPointerException”);
    }

    这是最重要的避免NullPointException的java技巧,但是结果会是极大的改进,因为equal()是一个很普遍的方法。

    2)在两者返回相同结果的时候偏向使用valueOf()而非toString()

    因为空对象调用toString()时会抛出NullPointException。如果我们可以通过调用value()得到相同的值的话,就应该使用valueOf()。这样会传递会一个空值。特别是在像Integer,Float,Double或者BigDecimla之类的包装类的情况下。

    BigDecimal bd = getPrice();
    System.out.println(String.valueOf(bd)); //doesn’t throw NPE
    System.out.println(bd.toString()); //throws “Exception in thread “main” java.lang.NullPointerException”

    如果你不确定你所使用的对象是否是空的时候,请使用这个JAVA技巧

    3)使用空安全方法(null safe method)或者类库

    现在有很多已经为你做了null检查的开源组件出现。其中一个最为普遍的就是Apache的StringUtils。你可以使用StringUtils.isBlank(),isNumberic(),isWhiteSpace()和其他工具一些不用担心NullPointException方法。

    System.out.println(StringUtils.isEmpty(null));
    System.out.println(StringUtils.isBlank(null));
    System.out.println(StringUtils.isNumeric(null));
    System.out.println(StringUtils.isAllUpperCase(null));

    Output:
    true
    true
    false
    false

    但在作出任何结论之前,不要忘记阅读关于Null安全方法和类的文档。这是另一个java最佳操练,这不会要求你付出非常多的努力,但会让你获得很大的进步。

    4)避免用返回空的collection或者空的array来代替从方法中返回Null

    这个java技巧也是在Joshua Bloch的《Effective Java》所提及的。这本书也是一个提高JAVA编码能力的一个来源。通过返回一个空的collection或者一个空的array可以确定像size(),length()这种基础的调用不会抛出NullPointException。Collection类能够提供方便的空的List,Set和Map,(这些)有Collections.EMPTY_LIST, Collections.EMPTY_SET和 Collections.EMPTY_MAP这些能够被使用的(静态变量)。

    代码如下;

    public List getOrders(Customer customer){

    List result = Collections.EMPTY_LIST;

    return result;

    }

    注意:使用Collections.emptyList()生成的List不支持add方法

    调用Add会抛出unsupportedException,在以后要返回一个空的List,并还需要后续操作时,不能使用Collections.emptyList()方法,看文档发现,List的实现类都有自己的实现,而返回的EmptyList的实现没有实现add(int index, E element方法,使用了
    AbstractList.add(int index, E element){
        throw new UnsupportedOperationException();
    }

    类似地你可以使用Collections.EMPTY_LIST, Collections.EMPTY_SET和 Collections.EMPTY_MAP来代替返回Null。

    5)使用@NotNull和@Nullable注释

    当写你可以定义关于约定可空性(Nullability),要通过使用像@NotNull和@Nullable类似的注释提示这个方法是否为空安全(null safe)。现代的编译器,IDE和其他工具可以读出这个注释来帮你做一个空检查或者告诉你是否需要空检查。IntelliJIDE和findbugs 已经支持这种注释。这些注释也是JSR 305(译者注:可以理解为java的标准)的一部分。通过看到@NotNull和@Nullable,程序猿可以自己决定是否去进行空检查。顺便说下,对于JAVA程序猿来说,这是新的最好的实践,尽管需要一点时间去适应。

    6)遵循约定和定义合理的默认值

    在java领域,一个最佳的避免空指针的方法之一就是和定下约定和遵守约定。大部分的NullPointException发生原因就是使用了一个不完整的信息或者并没有被提供所有的依赖信息来创建对象。如果你不允许创建不完整的对象和否定任何这种要求,你可以预防很多一段时间之后发生的NullPointException。如果对象被允许创建,那么你应该设定合理的默认值。例如,一个Employee(雇员)对象不可以在没有Id和Name属性的情况下被创建,但可以有一个可供选择的pghone number(电话号码)。如果Employee没有phone number,那么就用返回一个0来代替返回一个空值。但是这种处理必须非常小心地处理对空值的检查而不是检查非法输入。同样要注意,定义可以使空值的或者不可以空值的时候,提醒调用者作出被告知的决定。失败之后的选择或者接受空值也是一个你需要重视的重要设计。

    7)数据库对空值的约束

    如果你使用数据库去存储你的域对象(demain object),例如:Customer、Orders等等,那么你应该定义一些在数据库对空值的约束。因为数据库可以要求获得从多个来源来的数据,在数据库中拥有对空值的检查将会确保数据的完整性。在数据库中保留对空值约束的约束也是会让你减少在JAVA中减少空检查的代码。当从数据库中取出一个对象是,你可以确保那些属性可以是空而那些属性不可以使空,这将会让那些空检查的代码最小化。

    8)使用空对象模式

    这是另外一个在JAVA里面避免NullPointException的方法。如果一个方法返回一个对象,哪个调用者要遍历这个对象,哪个调用者就要使用一些类似Collection.iterator()的方法去返回iterator。如果调用者没有任何的上述的这些方法,那么有可能返回的是空对象而不是空(null)。空对象是一个特别的对象,它在不同的上下文中有不同的含义。像这些返回Contrainter或者Conllection类型的方法的情况中,里面为空的对象(Empty object)应该被使用而不是返回空。

    展开全文
  • 电机控制要点解疑:SPWM,SVPWM和矢量控制

    万次阅读 多人点赞 2018-05-05 03:08:06
    虽然现在做自动驾驶去了,还是有必要把之前一年做电机控制的心得分享一下,也能方便自己日后的参考。 (以下针对反向电动势为正弦的永磁同步电机而言) 目录: 1. SPWM和SVPWM 2. 矢量控制(Space Vector) ...

    虽然现在做自动驾驶去了,还是有必要把之前一年做电机控制的心得分享一下,也能方便自己日后的参考。

    (以下针对反向电动势为正弦的永磁同步电机而言)

     

    目录:

    1. SPWM和SVPWM

    2. 矢量控制(Space Vector)

     

     

    1. SPWM和SVPWM

     

    抛开各种控制算法等细节,从最朴素的角度出发。我们只需要在A,B,C三相提供120相位差的正弦电压,电机就会稳定的转动起来,调节正弦电压的幅值和频率,就能调节电机的转速和扭矩。这是我们所需要的输出。而我们所提供的输入是稳压直流电源,电机控制中的控制二字指的就是通过6路PWM,控制6个MOS管的开断,来达到直流电源变正弦交流的目的。

     

    于是,这就引出了电机控制的核心手段:PWM。接下来介绍SPWM和SVPWM两种技术,这代表了电机控制建模的两种思路。

    A. SPWM

    先看图:

    SPWM的思路简单粗暴,既然输出你想要正弦波,那还不简单,把正弦电压采个样,当前你要多大的电压,我调调PWM的占空比给你就是了。比如这一秒你要1.2V,我给个10%占空比的PWM,12V的电源输出不就成了你要的1.2V了吗?电机参数,当前状态什么的,我才懒得管。

     

    B. SVPWM

    相比之下,SVPWM考虑问题的视角就完全不一样了。表面上看我们要的输出是三相正弦波,本质上讲是正弦波产生的旋转磁场在带着转子在转动啊。既然要旋转,那还是先看图吧:

     

    图中的(001),(101)什么的代表的是6个MOS管的开关状态,你只需要把6个MOS管调到对应的状态,就能得到该方向的电压,作用到电机的转子上带动其旋转,这里就不深究了,到时候自己查表对着做就行了。这里需要强调的是,SVPWM在控制时已经在考虑电机的状态了,比如电机的转子运动到了某个位置,这时需要一个落在扇区1方向的电压来拖动转子的运动,那我就在(100)和(110)之间切换,来合成我们想要的电压呗。相较于SPWM的简单粗暴,SVPWM就考虑的细致入微了。

    当然SVPWM的好处也是不言而喻的,在所需电压转动,扇区切换的途中(比如电压从扇区1旋转达到了扇区2),我们只需要把之前的(100)换成(010),而(110)完全不用动,这样就避免的SPWM为达目的,不择手段段,在那疯狂瞎变换MOS开断的疯狂行径,能大大减少MOS开断的损耗。

     

    这里提一句,为什么电机控制用的是中心对称PWM而不是边缘触发,因为按着SVPWM的思路走,每次状态变换只需要改变一个MOS管的开关状态,见下图:

     

     

    2. 矢量控制(Space Vector)

    不多bb:

     

    什么Park,Clark变换我就不多说了,之所以我们费尽心思在这搞什么矢量控制,坐标变换,把好好的三相变成旋转的两相X,Y坐标系里面去,是因为变过去了以后,你会发现 Ia, Ib 的幅值固定了,变量被分离到了旋转角θ里面去了。电流的期望值固定了,就可以用PID来控制啦!!! 对,折腾了这么久,我们就是想用PID,这就是电机控制的核心,现代控制虽然好,工业界只爱PID :)

     

     

    啰嗦一句,clark还是Park变换里面有个2/3还是2/3 的系数变换,是在做相电压与线电压的变化,首先你要知道PMSM在控制时三相是一直在导通的,而不像BLDC只有两相同时导通。2/3具体推导见下图:

     

     

     

    Reference:

    1. https://www.zhihu.com/question/26858454

    2. https://read01.com/KA66o6.html#.WuyBO6Qvypo

    3. https://www.ti.com/lit/an/spra588/spra588.pdf

    4. https://www.nxp.com/docs/en/supporting-information/DWF13_AMF_AUT_T0526.pdf

     

     

     

     

     

     

     

    展开全文
  • 单片机XTAL引脚引出的晶振分析

    万次阅读 多人点赞 2016-12-03 22:46:17
    电工学上这个网络有两个谐振,以频率的高低分,其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振...

    51单片机的18,19脚XTAL1,XTAL2用来提供外部振荡源给片内的时钟电路。

    XTAL1和XTAL2引脚,该单片机可以使用外部时钟也可以使用内部时钟。

    当使用内部时钟时,此二引线端用于外接石英晶体和微调电容;

    当使用外部时钟时,用于接外部时钟信号,NMOS接XTAL2,CMOS接XTAL1。



    原理:

    XTAL1和XTAL2分别是一个反相器的输入和输出。NMOS的反相器是所谓的E-D结构的电路(一个增强型MOS提供逻辑,一个耗尽型MOS提供上拉),在模拟应用的情形下,从XTAL1提供外部时钟是不好的(反馈网络产生不期望的副作用),而把XTAL1接地,直接从XTAL2驱动内部电路并不需要额外的驱动能力。

    CMOS反相器接成振荡电路,可以使用大得多的反馈电阻,直接驱动XTAL1不会有问题,且不允许另外的驱动源连接到XTAL2,故从XTAL1提供外部时钟。



            在电子学上,通常将含有晶体管元件的电路称作"有源电路"(如有源音箱,有源滤波器等),而仅由阻容元件组成的电路称作"无源电路"。晶体振荡器也分为无源晶振和有源晶振两种类型。无源晶振与有源晶振的英文名称不同,无缘晶振为crystal(晶体),而有源晶振则叫做oscillator(振荡器)。无缘晶振是有2个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振有4个引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件,因此体积较大。

    | 有源晶振

            有源晶振通常的用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。

            有源晶振不需要DSP的内部振荡器,信号质量好,比较稳定,而且连接方式相对简单(主要是做好电源滤波,通常使用一个电容和电感构成的PI型滤波网络,输出端用一个小阻值的电阻过滤信号即可),不需要复杂的配置电路。相对于无源晶体,有源晶振的缺陷是其信号电平是固定的,需要选择好合适输出电平,灵活性较差,而且价格高。

            有源晶振是用石英晶体组成的,石英晶片之所以能当为振荡器使用,是基于它的压电效应;在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上交变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。当外加交变电压的频率与晶片的固有频率(由晶片的尺寸和形状决定)相等时,机械振动的幅度将急剧增加,这种现象称为“压电谐振”。 


    单片机的内部时钟与外部时钟

    单片机有内部时钟方式和外部时钟方式两种:(1)单片机的XTAL1和XTAL2内部有一片内振荡器结构,但仍需要在XTAL1和XTAL2两端连接一个晶振和两个电容才能组成时钟电路,这种使用晶振配合产生信号的方法是内部时钟方式;(2)单片机还可以工作在外部时钟方式下,外部时钟方式较为简单,可直接向单片机XTAL1引脚输入时钟信号方波,而XTAL2管脚悬空。既然外部时钟方式相对内部较为方便,那为什么大多数单片机系统还是选择内部时钟方式呢?这是因为单片机的内部振荡器能与晶振、电容构成一个性能非常好的时钟信号源,而如果要产生这样的信号作为外部时钟信号输入到单片机中,则需要添加的器件远不止一个晶振和两个电容这么简单。时钟电路在单片机系统中很重要,它能控制着单片机工作的节奏,是必不可少的部分。

    晶振电路

    晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。电工学上这个网络有两个谐振点,以频率的高低分,其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。

    晶振有一个重要的参数 —— 负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的谐振振荡电路都是在一个反省放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就等于负载电容。请注意一般IC的引脚都有等效输入电容,这个不能忽略。一般的晶振的负载电容15pF或12.5pF,如果再考虑元件引脚的等效输入电容,则两个22pF的电容构成晶振的振荡电路就是比较好的选择。

    晶振与单片机的引脚XTAL1和XTAL2构成的振荡电路中会产生谐波(也就是不希望存在的其他频率的波)这个波对电路的影响不大,但会降低电路的时钟振荡器的稳定性,为了电路的稳定性起见,ATMEL公司只是建议在晶振的两引脚处接入两个10pF-50pF的瓷片电容接地来削减谐波对电路的稳定性的影响,所以晶振所配的电容在10pF-50pF之间都可以的,没什么计算公式。

    晶振电路中如何选择电容C1、C2?

    1)因为每一种晶振都有各自的特性,所以最好按控制厂商所提供的数值选择外部元器件。

    2)在许可范围内,C1、C2值越低越好。C值偏大虽有利于振荡器的稳定,但将会增加起振时间。

    3)应使C2值大于C1值,这样可使上电时,加快晶振起振。

    在石英晶体谐振器和陶瓷谐振器的应用中,需要注意负载电容的选择。不同厂家生产的石英晶体谐振器和陶瓷谐振器的特性和品质都存在较大差异,在选用,要了解该型号振荡器的关键指标,如等效电阻、厂家建议负载电容、频率偏差等。在实际电路中,也可以通过示波器观察振荡波形来判断振荡器是否工作在最佳状态。示波器在观察振荡波形时,观察OSCO管脚(Oscillator Output),应选择100MHz带宽以上的示波器探头,这种探头的输入阻抗高,容抗小,对振荡波形相对影响小。(由于探头上一般存在10~20pF的电容,所以观测时,适当减小在OSCO管脚的电容可以获得更接近实际的振荡波形)。工作良好的振荡器波形应该是一个漂亮的正弦波,峰峰值应该大于电源电压70%。若峰峰值小于70%,可适当减小OSCI及OSCO管脚上的外接负载电容。反之,若峰峰值接近电源电压且振荡波形发生畸变,则可适当增加负载电容。


    如何判断电路中晶振是否被过分驱动?

    电阻RS常用来防止晶振被过分驱动。过分驱动晶振会渐渐损耗晶振的接触电镀,这将引起频率的上升。可用一台示波器检测OSC输出脚,如果检测一非常清晰的正弦波,且正弦波的上限值和下限值都符合时钟输入需要,则晶振未被过分驱动;相反,如果正弦波形的波峰,波谷两端被削平,而使波形称为方形,则晶振被过分驱动。这时就需要用电阻RS来防止晶振被过分驱动。判断电阻RS值大小的最简单的方法就是串连一个5k或10k的微调电阻,从0开始慢慢调高,一直到正弦波不再被削平为止。通过此方法就可以找到最近接的电阻RS值。


    有人会经常问到,2脚晶振和4脚晶振在使用电路上有什么区别?以及2脚晶振和3脚晶振又有何区别?

    石英晶振中常见的基本为2脚晶振,很少有3脚晶振的存在。而在陶瓷晶振中3脚晶振则是随处可见。3脚的晶振是一种集晶振和电容为一体的复合元件。由于在集成电路振荡端子外围电路中总是以一个晶振(或其他谐振元件)和两个电容组成回路,为便于简化电路及工艺,人们便研制生产了这种复合件。其3个引脚中,中间的1个脚通常是2个电容连接一起的公共端,另外2个引脚即为晶振两端,也是两个电容各自与晶振连接的两端。

    展开全文
  • 远程线程注入引出的问题

    千次阅读 多人点赞 2013-05-26 10:31:16
    我们需要声明两关键的内容: 二、远程线程 DLL 注入 首先,我们需要知道 Win32 程序在运行时都会加载一个名为 kernel32.dll 的文件,而且 Windows 默认的是同一个系统中 dll 的文件加载位置是固定的。我们又...
  • (尊重劳动成果,转载请注明出处:https://yangwenqiang.blog.csdn.net/article/details/90544530冷血...MySQL原理与实践(一):一条select语句引出Server层和存储引擎层 MySQL原理与实践(二):一条update语句引...
  • UltraEdit引出的字符编码问题

    万次阅读 2011-09-26 13:16:14
    转帖:http://blog.sina.com.cn/s/blog_548c5909010008b1.html 最近用ultraedit编辑python文件,遇到web显示中文乱码的问题,后来搜索终于找到了解决办法,感谢wewe80提供的资料,转贴如下:
  • Python简单抓取原理引出分布式爬虫

    万次阅读 多人点赞 2014-03-16 20:40:56
    可以使用mozilla、webkit等可以解析浏览器的工具包解析js、ajax,虽然速度会稍微慢。 (5)图片是flash形式存在的。当图片中的内容是文字或者数字组成的字符,那这个就比较好办,我们只要利用ocr技术,就能实现...
  • 由游戏引出的镜子理论

    千次阅读 2004-10-07 04:41:00
    甚至一颗小草也会成为一个人一生的重大转折。我想问,假如你不小心从悬崖掉落,摔成了残疾,你这个时候会怪什么呢?你怪那儿不该有一个悬崖?还是?  现在,我确实因为玩游戏而失去很多,也有一些时期很悔恨。...
  • *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:numbers.cpp *作 者:单昕昕 *完成日期:2014年12月11日 *版 本 号:v1.0 * *问题描述:编写函数 int fun(int x, int *...
  • * Copyright (c) 2014, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:test.cpp * 作 者:郝俊宇 * 完成日期:2014年 12 月 11 日 * 版 本 号:v1.0 * * 问题描述:编写...
  • 这些都是bash的事情,内核函数copy_process中可以看出,只要不是创建线程,内核会将所有的进程都设置到一个进程组中,然而事实上系统的众多进程却不是属于同一个进程组,这就是bash在中间做了事情,bash在启动新...
  • 、notify、notifyAll只能在同步控制方法或同步控制块 中使用;sleep不会释放锁,但是wait会;结合以上两, WAITING 状态结束之后会转为BLOCKED状态,因为它是要重新取获取锁的。 Ps2:ReentrantLcok中未获取到锁...
  • 看到了,这里就记录了安装应用的详细信息,还有一个重要信息就是还能够知道应用的安装来源,有些app可以做到这,就是通过这个信息来获取到的,还有签名信息,权限等。 当然我们可以使用Android中的 dumpsys ...
  • 虽然现在做自动驾驶去了,还是有必要把之前一年做电机控制的心得分享一下,也能方便自己日后的参考。(以下针对反向电动势为正弦的永磁同步电机而言)目录:1. SPWM和SVPWM2. 矢量控制(Space Vector)1. SPWM和SVPWM...
  • synchronized原语和ReentrantLock在一般...1.某个线程在等待一个锁的控制权的这段时间需要中断 2.需要分开处理一些wait-notify,ReentrantLock里面的Condition应用,能够控制notify哪个线程 3.具有公平锁功能,每个
  • 那么如何从项目管理和控制上来预防这些问题呢?比如你提到的结对开发,我觉得就很有道理,只是具体该如何操作? 关键我们的项目有一个特点,就是单一化和长期化 青润 结对开发需要的人数较多,我认为不太适合7,8...
  • Auto CAD:图纸的符号的设置(详图索引/节点剖切索引/立面索引指向/修订云/材料索引/标高标注/剖断省略线/放线定位符号/绝对对称/轴线号符号、引出线/中心线、灯具/家具/艺术品陈设索引、图纸名称、指北针)简介 ...
  • 比如从简单的控制MK802上几个IO(就像arduino那样)到修改usb驱动、优化GPU驱动等等,都是hacker喜欢做的事情。那么,有个串口供调试就是非常必要的。 不扯开了,其实串口信号很好引出,具体见下图: ...
  • 至于等效变换那一块,只需要记住“引前综后”就可以啦(引出点前移和综合(相加)后移是一致的,都是经过的通道加上相对应传递函数),而引出点后移和综合(相加)前移添加的是其倒数。 梅逊增益公式如下: ...
  • 完整的显示屏由液晶显示面板、电容触摸面板以及PCB底板构成,触摸面板与液晶面板引出的排线连接到 PCB 底板上,根据实际需要, PCB 底板上可能会带有“液晶控制器芯片”。 因为控制液晶面板需要比较多的资源,所以...
  • 控制装置与仪表随堂练习答案及知识总结01

    千次阅读 多人点赞 2019-12-20 16:42:35
    文章目录第二章 计算机控制的理论基础§2.2.连续模型与离散模型间的转换向后差分变换法双线性变换法零阶保持器法☆零阶保持器法各种方法的特点§2.4.线性离散控制系统的稳定性分析稳定条件稳定性判据☆第三章 过程...
  • 根据野外施工条件采用GPS定位技术进行E级网平面控制测量,高程控制采用几何水准方法,在施测时加测一个临时以增加图形强度。测量施工采用4台S82-2008双频GPS接收机按静态观测方法进行同步观测,观测时间控制在45min~...
  • Git引出两个概念,一个是分布式,一个是版本控制。 为了了解Git,我们首先要知道它的作用就是版本控制。 版本控制的含义: 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容...
  • 文章目录一、系统结构图的组成概念二、绘制控制系统结构图绘制系统结构图的一般步骤例题例1三、结构图的等效变换和化简方框图化简的一般思路串联方框的等效简化并联方框的等效化简反馈连接方框的等效简化引出点移动...
  • 无刷电机的控制器要比有刷电机控制器复杂得多,在维修上有一定的难度,因此,本文从无刷控制器的原理入手介绍维修要点,以期对广大维修爱好者有所帮助。 基本原理 电动车无刷控制器主要由单片机主控电路、功率管...
  • 让人很容易误解的TCP拥塞控制算法

    万次阅读 多人点赞 2017-02-18 07:59:09
    正文很多人会认为一个好的TCP拥塞控制算法会让连接加速,这种观点是错误的,恰恰相反,所有的拥塞控制算法都是为了TCP可以在贪婪的时候悬崖勒马,大多数时候,拥塞控制是降低了数据发送的速度。 我在本文中会针对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,328
精华内容 14,531
关键字:

引出控制点