控制器设计

阅读 / 问答 / 标签

通用步进电机控制器设计(精通单片机汇编语言的朋友进)

虽然比较简单,但是本人比较懒,你找个在校大学生做吧,几百快钱的活.

线性时不变系统的状态反馈控制器设计

前面一篇博客介绍了基于状态空间模型的系统分析。本篇博客将针对线性时不变系统,基于状态空间模型并根据系统的性能要求来设计控制系统。 一个系统的控制方式有 开环控制和闭环控制 。开环控制指的是把一个确定的控制信号(关于时间的函数)加到系统的输入端,使得系统具有某种期望的性能,如稳定的跟踪某个参考输入或者使系统的状态达到某个特定值,等等。上一篇博客讲的系统的能控性就是利用了开环控制,即存在一个特定的控制作用(开环控制)使得系统在有限时间内,从初始状态转移到零状态。 然而,由于建模存在的不确定性或误差、系统运行过程中的扰动等因素,使得我们没办法获得实际物理系统的真实动态方程,我们能得到的仅仅是粗略的低阶的名义模型或有时又称标称模型。因此在对实际系统的控制过程中,若不能根据系统当前的运行状况及时修改系统的行为,而仍按照名义模型设计的开环控制作用会使得实际系统产生一些意想不到的情况,很难使实际物理系统按我们原先所期望的方式运行。因此, 我们必须根据系统的运行状况实时地来确定控制信号而不是采用预先设计好的控制信号,这就是反馈控制(feedback control)。 在经典控制理论中,我们依据描述对象输入输出行为的传递函数模型来设计控制器,因此只能用系统的可测量输出作为反馈信号。而现代控制理论则是用刻画系统内部特征的状态空间模型来描述对象,出了可测量的输出信号外,还可以用系统的内部状态来作为反馈信号。 根据可利用的信息是系统的输出还是状态,相应的反馈控制可分为输出反馈和状态反馈。 本篇博客以状态空间模型描述的线性时不变系统为研究对象,介绍状态反馈控制器的一些设计方法。首先介绍反馈控制的种类、结构及其对系统性能的影响。进而介绍改善系统动态性能的极点配置方法,提出极点配置状态反馈控制律的设计算法。针对极点配置方法可能影响系统稳态性能的问题,介绍了实现精确跟踪的控制系统设计方法。 控制系统由被控对象和控制器(controller)两部分组成。状态刻画了对象内部的全部动态信息,输出仅仅是状态的一部分,从而用系统的全部状态信息来构造反馈控制器,渴望使系统获得更优异的性能。然而,要获得系统的全部状态信息,意味着需要更多的传感器,从而增加了控制系统的成本。另一方面,一个系统的状态变量未必都是可测量的物理量,这使得状态反馈控制在实际中往往难以实现。因此,在实际控制系统应用中,究竟采用输出反馈还是状态反馈视具体情况而定。 我们考虑以下状态空间描述的线性系统: 其中, 是系统的 维状态空间, 是系统的 维控制输入, 是系统的 维测量输出, 和 分别是适当维数的已知常数矩阵。 一般的反馈控制系统具有以下所示结构: 其中, 是 维的外部参考输入。控制器可以是一个 动态补偿器 (例如在控制器中包含动态过程),也可以是一个 静态反馈控制器 。控制器的输入可以是系统的状态,也可以是系统输出。若系统的状态是可直接测量得到的,则结构最简单、包含对象信息量最多的反馈控制方式是 线性时不变的静态状态反馈控制 (简称状态反馈)。 其中, 为 维的静态常数矩阵,称为 状态反馈增益矩阵 。将上式代入状态空间模型,可得 闭环系统的状态空间模型 : 输出反馈控制在这里就不展开了,处理方式和状态反馈控制类似, ,只是反馈信息在这里采用系统输出 。 从闭环系统的状态空间模型可以看出:状态反馈和输出反馈均改变了闭环系统的状态矩阵,即系统由原来的 变为了现在的 或 。而闭环系统的动态行为主要由其状态矩阵的特征值(即闭环极点)决定,因此可以通过选择适当的反馈增益矩阵 和 ,使得闭环系统状态矩阵的特征值都在左半开复平面内,从而保证闭环系统的渐进稳定性。更进一步,还可以使得闭环状态矩阵特征值位于左半开复平面的特殊位置上,从而不仅保证系统是渐近稳定的,而且还具有一定的过渡过程特性。 除了能改变闭环系统的状态矩阵,从而改变闭环系统的稳定性和瞬态特性外,状态反馈控制对系统性能还有什么其他的影响呢?给出以下两个定理进行说明。 若原系统是能控的,则加入状态反馈控制后的闭环系统仍然是能控的。需要注意的是,原系统如果是能观的,但采用状态反馈控制后得到的闭环系统却不一定能观,因此状态反馈并不能保持原系统的能观性。这是因为状态反馈在改变系统极点的同时,可能使得闭环系统出现 零极点相消现象 。零极相消导致系统的能控性或能观性,或能控能观性的破坏,由于闭环系统仍然能控,故它不再可能是能观的。 其中, 是被控系统的传递函数矩阵, 是动态补偿器的传递函数矩阵。静态的输出反馈虽然结构简单,信息上的获取也没有任何困难,但可以证明:这种形式的输出反馈所能达到的系统性能是有限的,有时甚至都不能保证闭环系统稳定。 稳定是一个系统正常运行的首要条件。上一篇博客分析了一个系统的稳定性,并给出了系统稳定的李雅普诺夫判别方法。若一个系统不稳定,则必须运用外部控制手段来设法让其稳定,这就是系统的镇定问题(stabilization),使得系统稳定的控制器称为稳定化控制器(stabilizing controllers)。 控制手段往往采用反馈控制。上一节介绍了反馈控制系统的结构,其中最简单,包含对象信息最多的控制结构就是 静态线性状态反馈控制 。本节将介绍基于李雅普诺夫稳定性理论的稳定化状态反馈控制器设计方法。 考虑以下状态方程描述的系统: 我们的目标是要设计一个能使系统状态稳定的稳定化状态反馈控制器: 由该控制器导出的闭环系统: 本节的目的是要给出确定增益矩阵 的方法,使得闭环系统是渐近稳定的。由于闭环系统是一个线性时不变系统,根据李雅普诺夫稳定性定理,系统渐近稳定的充分必要条件是存在一个二次型的李雅普诺夫函数 ,其中的 是特定的对称正定矩阵。可以通过沿着闭环系统的任意轨迹,使得标量二次型李雅普诺夫函数 关于时间的导数是负定的来确定对称正定矩阵 和增益矩阵 ,从而得到所要的稳定化状态反馈控制器。沿这一思路,介绍两种处理方法来确定对称正定矩阵 和增益矩阵 。 考虑标量函数 ,其中 是待定的对称正定阵。沿闭环系统的任意轨迹, 关于时间的导数为: 由 ,可得 故 我们选取控制 具有以下结构形式: 则 进一步,若选取正定对称矩阵 使得 即 ,李雅普诺夫函数关于时间的导数小于零(表明随着时间的增加能量是不断衰减的)。根据李雅普诺夫稳定性定理,标量二次型函数 是闭环系统的一个李雅普诺夫能量函数。因此,该闭环系统是渐近稳定的。式 就是原系统的一个稳定化状态反馈控制器。 根据以上分析, 稳定化控制器的设计问题就转化为了矩阵方程: 是否存在一个对称正定解矩阵(李雅普诺夫矩阵) 的问题。若存在这样的 ,那么即可得到一个稳定化控制器增益矩阵 。而该矩阵方程被称为系统的 黎卡提(Riccati)矩阵方程 ,这类矩阵方程在自动控制中起着很重要的作用,在最优控制中还将遇到这类方程(李雅普诺夫函数就是最优控制中的值函数)。这种基于求解黎卡提矩阵方程的稳定化控制器设计方法称为 黎卡提方程处理方法。 若对给定的 ,黎卡提矩阵方程有一个对称正定解矩阵 ,则对任意的 , 因此,对任意的 , 都是系统的稳定化控制律。由此可知,稳定化控制律 具有 正无穷大的稳定增益裕度(margin) 。这在实际应用中将非常有用,当我们不知道精确的 时,我们尽量选择具有较高增益的控制律,使得实际控制系统在保持稳定的同时能够满足其他性能要求。 根据线性时不变系统李雅普诺夫稳定性定理,闭环系统渐近稳定的充分必要条件是存在一个对称正定矩阵 ,使得: 因此,稳定化控制器的设计问题归结为寻找一个矩阵 和一个对称正定矩阵 ,使得上述矩阵不等式成立,即以矩阵 和 为变量的矩阵不等式的求解问题。 在上述矩阵不等式中, 矩阵变量 和 以非线性的形式耦合在一起。 因此,要直接求解这样一个矩阵不等式是不容易的。以下通过引进一个适当的变量替换,将非线性矩阵不等式转换成一个等价的关于新变量的线性矩阵不等式,从而可以应用求解线性矩阵不等式的方法求解所导出的线性矩阵不等式。首先将矩阵不等式整理为: 由于矩阵 是对称的,故在上式两边分别左乘和右乘矩阵 ,可得: 记 , ,则从上式进一步可得: 显然,上述不等式是一个关于矩阵变量 和 的线性矩阵不等式。由于矩阵 的正定性等价于矩阵 是正定的。因此,若线性矩阵不等式系统 是可行的,则系统存在稳定化控制器。进一步,若矩阵变量 和 是线性矩阵不等式系统的一个可行解,则 是系统的一个稳定化状态反馈增益矩阵, 是相应闭环系统的一个李雅普诺夫矩阵。 以上用线性矩阵不等式系统的可行性给出了系统的稳定化状态反馈控制器存在条件,在线性矩阵不等式系统可行的情况下,用其可行解给出了稳定化控制器的构造方法。这种处理方法已在各类控制系统的设计中得到了广泛应用, 和黎卡提方程处理方法相比,线性矩阵不等式处理方法具有保守性低、处理方便、易于结合其他性能要求设计多目标控制器等优点。 上一节介绍了基于李雅普诺夫稳定性理论设计稳定化状态反馈控制器的两种方法。然而,在实际控制系统设计中,仅仅保证闭环系统的稳定性还是不够的,通常还需要使得闭环系统具有一定的过渡过程性能,如较快的响应速度,较短的调节时间,较小的超调,等等。如何设计一个状态反馈控制器,使得闭环系统同时具有期望的稳态和动态性能,本节给出了一种极点配置的方法( 需要注意的是不单单只有极点配置这一种方法,还有其他设计方法也能满足兼具稳态和动态性能要求,比如最优控制 )。 极点配置的主要思路就是通过寻找适当的状态反馈增益矩阵 ,使得闭环系统极点(即矩阵 的特征值)位于预先给定的位置。极点配置具体设计方法在这里不再赘述,这里只给出一个定理。 由于求解一个极点配置问题需要大量的计算,特别对于多变量系统更是如此,另一方面,描述对象的模型总是近似和不精确的,从而要实现精确极点配置的方法是难以实现的。 在实际控制系统应用中,我们往往还需采用其他更简便、有效的设计方法。 通过以上的分析,理论上我们可用状态反馈的方式实现了闭环系统的极点配置,从而使得闭环系统具有满意的稳态和动态性能。然而,实际应用中,状态反馈这种方法并非总是可行的。一方面,状态反馈实际上是一个 或 补偿器,这样的控制器 具有无限带宽 ,而实际的执行机构总是只有有限带宽(对超过带宽频率范围的信号是没办法响应的)。另一方面,在实际中,要检测到所有的状态往往是困难的,甚至是不可能的,因此有必要研究只利用系统测量输出的极点配置问题,以后的博客将给出一种基于状态观测器的输出反馈控制器设计方法。 如果系统有多个输入,则使得闭环系统具有给定极点的状态反馈增益矩阵 是不唯一的,从而有更多的自由度去选择满足闭环极点要求的 。如何利用这些自由度,使得闭环系统具有给定的极点外,还具有一些其他附加性能是需要进一步探讨的问题,这就是 多目标控制 。一种方法就是在使得闭环系统具有给定极点的同时, 闭环系统的稳定裕度最大化(Margin Maximization) ,基于这种思想进行的极点配置称为是鲁棒极点配置方法。 通过重新配置闭环系统极点,尽管改善了闭环系统的稳定性和动态特性,但有可能使得闭环系统产生稳态误差 (稳态误差在这指的是系统的稳态输出与参考输入之间的偏差) ,导致系统的稳态性能变差。或者说极点配置方法可能会使一个原来没有稳态误差的系统产生稳态误差。那么是否存在一种方法使得改善系统动态特性的同时保证系统的稳态性能不变坏呢(保证系统输出与参考输出无静差)? 另一方面,实际系统还不可避免地存在 外部扰动 。外部扰动信号可分为随机性的高频扰动和确定性扰动两大类。随机性扰动具有随机噪声特性,通常只知道它的一些统计特性,如均值和方差等。确定性扰动具有确定的函数形式,如阶跃函数、斜坡函数、正弦函数等。在实际中,许多系统都存在确定性的扰动,如阵风对雷达系统的扰动,海浪对正常航行的船体控制系统的扰动,飞行系统在大气中受到气浪的扰动等。 这些扰动都具有确定的函数表达式,可以通过动力学分析或辨识学习的手段来确定函数关系式中未知的参数。 在这里我们只讨论确定性扰动。 扰动的存在使得系统在稳态时不能很好地跟踪参考输入,从而产生稳态误差。因此,必须对扰动进行补偿,以克服扰动对系统稳态性能的影响 (扰动影响稳态精度)。 在诸如数控机床、导弹制导等许多实际控制系统中,常常要求闭环系统的输出以给定的精度跟踪参考输入信号,实现精确的跟踪控制。然而以上分析又说明了 极点配置状态反馈和外部扰动 都可能 影响系统输出跟踪参考输入的效果 。那么该如何设计使得闭环系统不仅具有期望的过渡过程特性,而且在扰动的作用下,还能实现精确(稳态精度)的跟踪控制? 接下来将针对 具有外部阶跃扰动的线性时不变系统 ,提出一种能实现无静差跟踪阶跃参考输入信号的 抗干扰渐近跟踪调节器设计方法 。考虑以下状态空间模型描述的系统: 其中, 是 维的扰动输入, 是 维系统量测输出。假定系统的参考输入是阶跃输入 , 是阶跃扰动 ,其中的 和 是阶跃信号的幅值向量。控制作用的目的是在存在扰动 的情况下,仍希望闭环系统的输出 能很好地跟踪参考输入 。 在经典控制理论中,用 偏差的积分 来抑制或消除单输入单输出系统的稳态误差,这样一种思想也可以推广到多输入多输出系统。为此,定义偏差向量: 引入偏差向量的积分 : 注意到 和输出向量 具有相同的维数,因此它由 个积分组成,每个积分器的输入是偏差向量的一个分量(或者说是一维坐标值): 由于在控制回路中增加了 个积分器,因此增加了整个系统的动态特性,而 是这些积分器的输出,故可以通过将 作为附加状态向量(经积分累加后输出的量是不可以突变的,是关于时间的动态量,因此 可以作为系统扩张状态) ,得到描述整个系统动态行为的状态空间模型: 新的状态向量空间是 维的,称上述状态空间模型为 增广系统的状态空间模型。 对上述增广系统,若能设计一个状态反馈控制器: 使得闭环系统: 是渐近稳定的,即闭环系统状态矩阵: 的所有特征值均在左半开复平面中,从而该矩阵也是非奇异的。由于参考输入和外部扰动都是阶跃信号。因此当时间趋向于无穷时, 和 都趋向于常值向量,这表明 和 都必将趋于零。又因为 ,故当 趋于无穷时 ,从而实现精确的跟踪控制。 以上分析说明了只要 对上述增广系统设计一个稳定化状态反馈控制器 ,就可以保证系统的输出跟踪阶跃参考输入且没有稳态误差。我们的做法是通过人为引入一个新的状态向量 (对误差信号的积分)来克服阶跃扰动 对系统输出带来的影响(从增广系统的状态空间模型中可以很清楚的看到 是如何克服扰动影响的)。进一步,我们还可以通过状态变量 的稳态值估计出系统的干扰。 如果还要使得闭环系统具有一定的动态特性(比如缩短调节时间),则可以通过适当配置增广系统的闭环极点来实现,但这要求增广系统是完全能控的。下面给出一个定理: 定理说明, 表明控制输入的个数不能小于输出的个数,而 则意味着所有的测量输出必须是线性无关或者说是独立的。 增广系统的状态反馈控制器可以写为: 上式中的第一项 是原系统的状态反馈,而第二项是为了改善稳态精度而加入的积分控制作用。因此, 这是一个由被控对象的状态反馈和偏差向量的积分所组成的复合控制,相当于一个比例积分控制器 。这样一个反馈控制系统的结构如下图所示: 由以上分析可知,对于一个多变量系统,尽管有一个未知(不能测量)的阶跃扰动输入,但仍可以设计一个控制器,使得闭环系统的输出能无静差地跟踪阶跃参考输入。一般情况下, 引入积分器会使闭环增广系统响应变慢(因为增广后的系统又增加了动态环节) 。类似于经典控制理论中通过加大反馈增益来加快系统响应速度的方法,对由状态空间模型描述的多变量系统,可根据闭环系统的过渡过程要求按极点配置方法来确定状态反馈增益矩阵。 若参考输入是一个包含 的多项式,则可以通过增加积分器的方法来处理。对能直接测量(或能够被估计)的外部扰动,可采用前馈控制的方式进行补偿。

通用步进电机控制器设计(精通单片机汇编语言的朋友进)

实验七:8255A+8253+8259A <实验目的> 了解步进电机的的基本控制原理,掌握控制步进电机的转速、转向的程序设计方法。 <实验内容> 用8255A的PA0~3分别控制步进电机的A、B、C、D四相,“1”则该相绕组通电,“0”则不通电。步进电机的驱动原理是使各相绕组依次通电来使其作步进式旋转,通过通电顺序和切换频率来调节其转速和转向。步进电机可以四相四拍或四相八拍方式工作,即通电顺序为:A→B→C→D→A;A→AB→B→BC→C→CD→D→DA→A。按相反的顺序即可改变电机的旋转方向。本实验系统采用的是:AB→BC→CD→DA→AB。 注:电机在起动和停止时,不应该突然起、停。而应采用逐渐加速、减速的方式。至于起、停所需时间则依产品型号而定。 <实验电路> 8255A: PA0~3与步进电机的BA~BD相连; 8253: GATE0接+5v;CLK0接393分频器的T2插孔(4.9125/4MHz),或T3~6插孔(分别是8、16、32、64分频);CS接译码器单元的Y2;数据线D0~7与系统数据总线单元任一插座相连; 译码单元: 译码器输入A、B、C与系统地址线A2、A3、A4相连;译码器控制端G与系统地址线A0下方的G相连。 8259单元: CS端与译码器单元的Y0相连; D0~7与系统数据总线单元任一插座相连; 最后,将8253的OUT0与8259的IR7相连。<实验程序> CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400H H8: JMP P8259 PORT0EQU 0FFE0H PORT1EQU 0FFE1H ;-------------------初始化------------------- P8259: CLI MOV AX,OFFSET INT8259 MOV BX,003CH MOV [BX],AX MOV BX,003EH MOV AX,0000H MOV [BX],AX CALL FOR8259 MOV SI,0000H I8255: MOV DX,0FFDBH MOV AL,8AH OUT DX,AL MOV BL,03 P8253: MOV DX,0FFD9H; IN AL,DX ;选择3种转速TEST AL,01HJNZ QQQ TEST AL,02H JNZ WWWMOV DX,0FFEBH ;转速0 MOV AL,34H OUT DX,AL MOV DX,0FFE8H MOV AL,00H OUT DX,AL MOV AL,096H OUT DX,AL JMP OVER1 QQQ: MOV DX,0FFEBH ;转速1 MOV AL,34H OUT DX,AL MOV DX,0FFE8H MOV AL,00H OUT DX,AL MOV AL,010H OUT DX,AL JMP OVER1 WWW: MOV DX,0FFEBH ;转速2 MOV AL,34H OUT DX,AL MOV DX,0FFE8H MOV AL,00H OUT DX,AL MOV AL,0F0H OUT DX,AL OVER1:STI;中断子程序------------------------------------ INT8259:CLI MOV DX,0FFD8H MOV SI,0FFD9H//通过PB7控制正反转 IN AL,SI AND AL,80H JZ X59 XX59:MOV AL,BL OUT DX,AL SHL BL,1 CMP BL,18H JZ A1 CMP BL,12H JNZ C1 MOV BL,03H JMP C1 A1: MOV BL,09H C1: MOV AL,20H MOV DX,PORT0 OUT DX,AL STI IRET X59: MOV AL,BL OUT DX,AL SHR BL,1 CMP BL,81H JZ A2 CMP BL,88H JNZ C2 MOV BL,0CH JMP C2 A2: MOV BL,09H C2: MOV AL,20H MOV DX,PORT0 OUT DX,AL STI IRET;8259A初始化============================== FOR8259:MOV AL,13H MOV DX,PORT0 OUT DX,AL MOV AL,08H MOV DX,PORT1 OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,7FH ;IRQ7 OUT DX,AL RET CODE ENDS END H8 <思考与练习> 1. 计算出步进电机走一步旋转的角度,能否精确的回到原点。 答:18度,能。 2.如何控制步进电机的起、停? 答:用8253的GATE0门控制,高电平时起,低电平时停。 3.如何控制步进电机的转速和转向? 答:进入中断,通过8355A的PB7输入来控制正反转向;

IIS总线控制器设计问题

有限状态机:module fsm (Clock, Reset, A, F, G);input Clock, Reset, A;output F,G;reg F,G;reg [1:0] state ;parameter Idle = 2"b00, Start = 2"b01,Stop = 2"b10, Clear = 2"b11;always @(posedge Clock)if (!Reset)beginstate <= Idle; F<=0; G<=0;endelsecase (state)idle: beginif (A) beginstate <= Start;G<=0;Endelse state <= idle;endstart: if (!A) state <= Stop;else state <= start;Stop: beginif (A) beginstate <= Clear;F <= 1;endelse state <= Stop;endClear: beginif (!A) beginstate <=Idle;F<=0; G<=1;Endelse state <= Clear;endendcaseendmodule我们还可以用另一个Verilog HDL模型来表示同一个有限状态,见下例:[例2]:module fsm (Clock, Reset, A, F, G);input Clock, Reset, A;第七章 有限状态机和可综合风格的Verilog HDL----------------------------------------------------------------------------------------------------------------------116output F,G;reg F,G;reg [3:0] state ;parameter Idle = 4"b1000,Start = 4"b0100,Stop = 4"b0010,Clear = 4"b0001;always @(posedge clock)if (!Reset)beginstate <= Idle; F<=0; G<=0;endelsecase (state)Idle: beginif (A) beginstate <= Start;G<=0;endelse state <= Idle;endStart: if (!A) state <= Stop;else state <= Start;Stop: beginif (A) beginstate <= Clear;F <= 1;EndElse state <= Stop;endClear: beginif (!A) beginstate <=Idle;F<=0; G<=1;Endelse state <= Clear;enddefault: state <=Idle;endcaseendmodule宇宙飞船控制器的状态机module statmch1( launch_shuttle, land_shuttle, start_countdown,start_trip_meter, clk, all_systems_go,just_launched, is_landed, cnt, abort_mission);output launch_shuttle, land_shuttle, start_countdown,start_trip_meter;input clk, just_launched, is_landed, abort_mission,all_systems_go;input [3:0] cnt;reg launch_shuttle, land_shuttle, start_countdown,start_trip_meter;//设置独热码状态的参数parameter HOLD=5"h1, SEQUENCE=5"h2, LAUNCH=5"h4;parameter ON_MISSION=5"h8, LAND=5"h10;reg [4:0] present_state, next_state;always @(negedge clk or posedge abort_mission)begin/****把输出设置成某个缺省值,在下面的case语句中就不必再设置输出的缺省值*******/{launch_shuttle, land_shuttle, start_trip_meter, start_countdown} =4"b0;/*检查异步reset的值即abort_mission的值*/if(abort_mission)next_state=LAND;elsebegin // if-else-begin/*如果reset为零,把next_state赋值为present_state*/next_state = present_state;/*根据 present_state 和输入信号,设置 next_state和输出output*/case ( present_state )HOLD: if(all_systems_go)第七章 有限状态机和可综合风格的Verilog HDL----------------------------------------------------------------------------------------------------------------------121beginnext_state = SEQUENCE;start_countdown = 1;endSEQUENCE: if(cnt==0)next_state = LAUNCH;LAUNCH:beginnext_state = ON_MISSION;launch_shuttle = 1;endON_MISSION://取消使命前,一直留在使命状态if(just_launched)start_trip_meter = 1;LAND: if(is_landed)next_state = HOLD;else land_shuttle = 1;/*把缺省状态设置为"bx(无关)或某种已知状态,使其在做仿真时,在复位前就与实际情况相一致*/default: next_state = "bx;endcaseend // end of if-else/*把当前状态变量设置为下一状态,待下一有效时钟沿来到时当前状态变量已设置了正确的状态值*/present_state = next_state;end //end of alwaysendmodule

倒立摆控制器设计是不是很难学

是。控制器有点难度,特别是数学建模过程,比较有难度,而且在完成课程设计的过程中,需要自己查阅一些课堂以外的东西。倒立摆控制器,使摆杆尽快达到平衡位置,且无大的振荡和过大的角度和速度的控制系统。

通用步进电机控制器设计(精通单片机汇编语言的朋友进)

这种资料到处都是不用浪费分数在这里求教的