计算机控制技术论文-直流转机转速控制系统_第1页
计算机控制技术论文-直流转机转速控制系统_第2页
计算机控制技术论文-直流转机转速控制系统_第3页
计算机控制技术论文-直流转机转速控制系统_第4页
计算机控制技术论文-直流转机转速控制系统_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

直流转机转速控制系统目 录第一章 系统建模21.1 物理设置21.2 系统方程31.3 设计要求41.4 MATLAB表示4第二章 系统分析62.1 开环响应62.2 LTI模型特性72.3 其他形式的输入响应9第三章 PID控制器设计113.1 比例控制113.2 PID 控制123.3调整增益13第四章 控制器的根轨迹设计法154.1绘制开环根轨迹154.2 找到环路增益164.3 添加一个滞后控制器184.4 找一个滞后控制器的环路增益19第五章 控制器的频域控制器225.1 画原始的Bode图225.2 添加比例增益235.3 绘制闭环相应255.4 添加一个延时补偿25第六章 控制器的状态空间设计法276.1 设计全状态反馈控制器276.2 添加一个预补偿器29第七章 数字器控制器设计317.1 创建系统的一个采样数据模型317.2 PID控制34第八章 Simulink建模408.1 物理设置408.2 Simulink建模428.3 Simscape建模47第九章 Simulink控制器设计509.1 提取线性的模型导入MATLAB519.2 开环响应539.3 滞后补偿的闭环响应549.4 超前补偿的闭环响应55总 结58第一章 系统建模1.1 物理设置直流电机是一种常见的驱动器。它直接提供旋转运动,再加上轮或绳索,可以提供平移运动。电驱的等效电路和转子的受力图如下所示。对于这个例子,我们假设系统的输入是作用在点击电驱的电压V,输出是杆的转动速度d(theta)/dt。转子和轴被假定为刚性。我们进一步假设粘性摩擦模型,即,摩擦力矩是轴的角速度成比例的。我们例子的物理参数为:1.2 系统方程在一般情况下,由一个直流电机产生的转矩与电枢电流和磁场的强度成比例的。在这个例子中我们假设磁场是恒定的,因此,电机的转矩与电枢电流I的比例由,比例系数为Kt,如下方程所示。这是被称为一个电驱控制的电机。 (1)反电动势e是正比于轴的角速度的一个常数因子ke。 (2)在国际单位制中,电机的转矩系数和反电动势常数是相同的,即,Kt=Ke;因此,我们将使用K代表两个电机转矩系数和反电动势常数。从上面的图,我们可以得到以下方程基于牛顿第二定律和基尔霍夫电压定律。 (3) (4)应用拉普拉斯变换,上述的模型方程可以在拉普拉斯变量s表示。传递函数 (5) (6)我们得出以下的开环传递函数,通过消除I(s)述两个方程之间,在转速为输出和电枢电压是输入。 (7)状态方程在状态空间形式的控制方程,可以表示通过选择转速和电流作为状态变量。再次电枢电压作为输入转速为输出。 (8) (9)1.3 设计要求首先考虑的,我们的无偿的电动机在1伏特的输入电压下能达到旋转速度为0.1弧度/秒的稳定状态(这在直流电机调速:系统分析页面里演示)。因为电动机的最基本的要求是,它应该在转动所需的速度,我们将要求该马达速度的稳态误差小于1。我们的电机性能的另一个要求是,它必须尽快加速到稳定状态的速度。在这种情况下,我们希望它有少于2秒的稳定时间。此外,由于速度比基准速度更快,可能会损坏设备,我们希望阶跃响应的超调量少于5。总之,在单位阶跃命令的输入下,控制系统的输出应满足下列要求。调节时间小于两秒超调量小于5%稳态误差小于1%1.4 MATLAB表示传递函数我们可以表示电机的开环传递函数,在Matlab上定义的参数和传递函数如下。在命令窗口中运行此代码,产生如下结果:状态方程 我们也可以用状态方程表示系统。在MTALAB命令窗口输入如下命令,并运行,产生如下结果。 上述的状态空间模型,也可以将您现有的传递函数模型转化为状态空间形式产生的。这也是用SS命令完成,如下所示。第二章 系统分析2.1 开环响应首先创建一个新的m文件和输入如下命令。现在让我们看看原始开环系统的性能。添加ltiview命令在m文件的最后,并在MATLAB命令窗口中运行它。函数中的step使P_motor系统产生一个单位阶跃响应。0:0.1:5表示阶跃响应图包括0到5秒的数据点,间隔为0.1秒。结果图如下,你可以观测一些系统的特性,通过右击下图并选择Charateristics菜单的Setting Time和Steady State。从图中我们可以看出1V的电压应用到系统,这发动机只能实现最大速度为0.1 rad/sec,比期待速度小十倍。用了2.07秒达到稳定状态,不满足我们两秒的调节时间的标准。2.2 LTI模型特性由于我们的开环传递函数是一个二阶系统,我们应该能精确的预测已观测到的阶跃响应的特性,基于传递函数极点的位置。你可以从LTI Viewer中看到P_motor系统的极点的位置,通过右击图上区域并从菜单中选择Plot TypesPole/Zero。完成这个操作将会改变LTi Viewer,蓝色的x表示极点的位置。从上图可以看出开环传递函数有两个实极点,一个在S=-2,一个在S=-5。由于两个极点是实极点,正如看到的阶跃响应没有震动(或者超调量)。更进一步,由于一个极点比另一个极点的负5倍还要小,两个极点中较大的将主导系统的动态。即,在-2处的极点主要决定系统的速度相应并且系统与一阶系统近似。 让我们看看一阶系统模型多么近似于原始电机模型。输入如下命令在MATLAB中来建立一个极点为2的一阶系统的传递函数并且稳态值与原始传递函数相匹配。 我们可以在LTI Viewer中输入这个新模型。选择LTI Viewer窗口顶部的File菜单然后选择Import。然后从后续窗口中选择Systems in workspace中的rP_motor并点击OK按钮。然后LTI Viewer将会显示原始传递函数和缩减后的传递函数的相应图。然后右击菜单中选择Plot Types中的step reponse。你可以移除特性显示从Characteristics的子菜单中。现在LTI Viewer应该显示如下。从上面可以看出,我们一阶近似的电机系统相对准确。可以看出主要的确别是在t=0时刻二阶系统有一个零导数,但是一阶系统没有。 一阶系统的调节时间为: (1) tau是时间常数,此例中卫0.5。因此,一阶系统模型由一个2秒的调节时间,接近于我们实际系统的2.07秒。这个例子剩下的部分,不同的控制器将会被设置,来减少稳态误差和调节时间,并能达到超调量的要求。2.3 其他形式的输入响应就系统的阶跃响应而言这个例子的要求被给出,但在实际中还有其他形式的输入。即使一个系统的阶跃响应能大概洞察其他形式的信号的响应。为了能得到其他形式信号的具体响应。你可以应用Simulink或者MATLAB中的lsim命令。更进一步,你可以直接从LTI Viewer模拟其他输入形式的系统响应。在图上点击右键然后选择Plot Types Linear Simulation。如下窗口将出现。在这个窗口中把End time设置为“5”,把Interval设置为0.1。在窗口System inputs部分的下面,你可以倒入一个输入信号,或者通过一些选择设计一个。在这个例子中,点击Design Signal从出现的窗口中并选择Signal type为sine wave。把Frequency设置为“0.2”,把Amplitude和Duration设置为默认值。点击Signal designer 窗口底部的Insert并点击Linear Simulation底部的Sumulate按钮。系统正弦输入的两个响应将会在LTI Viewer窗口中显示。如果你双击图的y轴,你可以改变这极限。如下图所示。第三章 PID控制器设计3.1 比例控制首先让我们应用一个增益为100的比例控制,即,C(s)=100 。为了确定闭环传递函数,我们用feedback命令。添加如下命令到你m文件的末尾。现在让我们检查闭环系统响应。添加如下命令到你的m文件末尾,并在命令窗口运行它。将产生下图。你可以通过右击观看系统的特性,从后续菜单中选择Chaacteristics。在下图中,已经显示了Setting Time,Peak Response,Steady State从上图我们可以看出超调量和稳态误差太大。回想简介:PID控制器设置,增加比例增益可以减少稳态误差。然后,增加Kp也会导致增加超调量,因此,一个比例控制不能满足所有的设计要求。这个可以通过选择不能的Kp来得到证实。特别的,你可以输入sisotool(p_motor)命令应用SISO Design Tool,并从Control and Estimation Tools Manager窗口的Analysis Plots中打开一个闭环阶跃响应。当Real-Time Update被选择,你可以在Compensator Editor中变换增益,并在LTI Viever中观看对阶跃响应的影响。一个简单是实演验证了我们的猜想,一个比例控制是不够满足设计要求的,积分或者微分控制必须被添加。 3.2 PID 控制PID控制器设置中,添加一个积分将会阶跃参考的消除稳态误差,添加一个微分将减少超调量。让我们试一下小的Ki和Kd。修改你的面文件如下。运行这个新的m文件,如下所示。可以看出对于一个阶跃输入稳态误差确实消失了。然而,达到稳定状态的时间比两秒的调节时间长很多。3.3调整增益在这个例子中,阶跃响应的长长的尾巴是由于积分增益太小。因此需要很长时间消除稳态误差。这个过程可以通过增加KI的值来加速。回到你的m文件,把Ki改为200。重新运行文件你会得到下图。再次通过右击选择Characeristicd添加注释。正如预期的,稳态误差很快的被消除了。然而,较大的Ki增加了超调量。让我们增加Kd来尝试减少超调量。回到m文件把Kd变为10。重新运行m文件,如图所示。正如我们希望的,加大Kd减少了超调量。现在我我们知道,如果我们用Kp=100,Ki=200,Kd=10;所有的设计要求都被满足。第四章 控制器的根轨迹设计法4.1绘制开环根轨迹根轨迹设计的主要思路是通过根轨迹图预测闭环响应,根轨迹图由开环传递函数绘制并预测所有闭环极点的位置。然后通过控制器添加零点和极点,根轨迹将被修改,然后得到期待的闭环响应。 我们用SISO Design Tool GUI设计控制器。这个工具允许你通过根轨迹调节控制器。首先让我们画出系统的根轨迹。在m文件的末尾添加sisotool(rlocus,P_motor)并运行文件。两个窗口将会打开,一个是SISO Design Task,他将显示系统的根轨迹,另一个是Control and Estimation Tool Manager,它允许你设计补偿,分析Plots,等等。你可以在图上右击根轨迹并且点击Grid。你的绘制图将如下所示。4.2 找到环路增益回想设计要求,调节时间小于2秒,超调量小于5%。系统闭环极点的位置提供关于系统瞬态响应的信息。SISO Designt Tool 允许我们在复杂的负平面上定义符合设计要求的区域。提供的区域相符一个典型的二阶系统,但是一般来说对于高阶系统或者有零点的系统也是可行的。 这预期的区域可以添加到根轨迹图上,具体方法是,在图上点击的右键,在菜单中选择Design RequirementsNew。你可以添加许多设计要求,包括调节时间,超调量,阻尼比,自然频率,通用的区域约束等 添加调节时间和超调量要求,根轨迹图将产生如下图。 闭环极点预期的区域如上图白色的区域。更特别的,从原点出发的两条射线代表超调量的要求。比两条射线角度小,且在负实轴上的区域,表示超调量允许的区域。S=-2的垂线代表调节时间的要求,位于垂线左侧的闭环极点满足调节时间的要求。观察上图,有很多开环增益的值满足闭环极点在期待区域。这可以从两条根轨迹支路是对称的并且穿过白色区域看出。 更进一步,由于闭环系统有两个极点没有零点,把闭环极点放置在白色区域将会满足我们的瞬态响应要求。 你可以从白色区域选一对闭环极点,来确定开环增益。对于我们的系统来说,我们选择闭环极点。根轨迹上的粉色的方块表明当前开环增益下的闭环极点的位置。点击粉色方块并在可行域内随着根轨迹拖动,来调节控制器。让我们把闭环极点放置在接近-6+2i的位置。这几点的位置将在窗口的底部显示相关的阻尼比和自然频率。放开鼠标,在窗口的底部将会显示开环增益,这个例子近似于10。 系统在这个新的增益下,也能产生闭环响应。从Contorol and Estimation Tool Manager,点击Analysis Plots 健并选择Plot1的step,一个名为LTI Viewer SISO Design Task的空白窗口将会出现。然后右击窗口,在System中选择Closed Loop r to y(blue)。阶跃响应将会出现在途中。你可以确定一些阶跃相约的特性。特别的在图上又击,选择Characteristics下的setting time。重复Steady State。如下图所示。从上图可以看出,没有超调量并且调节时间小于1秒。因此超调量和调节时间达到设计要求。然而,我们也可以看出稳态误差将近50%。如果我们增加开环增益减少稳态误差,那么超调量将会太大。你可以在途中沿着根轨迹移向上动闭环极点,响应的开环增益将会增加。 阶跃响应将会自动的改变随着开环增益的修改。我们尝试添加一个滞后控制器减少稳态误差,也满足瞬态要求4.3 添加一个滞后控制器在上面我们可以看到,有比例控制的超调量和调节时间都满足标准,但是稳态误差不满足。延时补偿是一种可以减少稳态误差的控制器。我们比小心的设计,不能增加太多的调节时间。首先让我们添加一个延时补偿,如下形式。 (1)我们可以用SISO Design Tool来设计我们的延时补偿。为了使SISO Design Toll有一个补偿参数化与上面相对应,点击Contorol and Estimation Tool Manager窗口顶部的Edit,并选择SISO Tool Preferences。然后选择Options 健,选择Zero/pole/gain 参数化,如下所示。你可以在Control and Estimation Tools Manager窗口的Compensator Editor添加一个滞后补偿。特别的,在Dynamics的部分右击鼠标,选择Add Pole/Zero Lag。然后在Real Zero和Real Pole输入位置如下图所示 。请注意相位的滞后补偿和频率实时更新与极点和零点位置的选择。 4.4 找一个滞后控制器的环路增益 注意根轨迹改变了反映滞后补偿的零点和极点的添加如下图所示。我们可以再次选择闭环极点来尝试满足瞬态响应的要求。我们尝试放置两个闭环极点在接近超调量要求的边界区域内。例如,环路增益大约为20时,将放置极点如下图位置。响应的闭环阶跃响应将会自动更新,如下所示,你可以看到,这响应并不让人满意即使两个闭环极点都在期待的区域内。原因是闭环系统不在是一个典型的二姐系统了。特别的,根轨迹上有第三个极点在可行域外。第三个极点在共轭的两个极点右边,意味着它会减慢调节时间,这就是为什么调节时间不在满足要求。另外。超调量很容易满足要求即使两个共轭极点在可行区域的边缘。这也是由于第三个极点,它主导响应,因为它更“慢”比其他极点。这意味着我们可进一步增加环路增益,即使共轭极点移出边界线,仍满足超调量的要求。你可以回到根轨迹把共轭极点移动到离实轴更远的地方,响应的增加开环增益。然而,在你做这之前,你必须改变虚轴的极值以便你能移动到一个满意的位置。为了改变这些极值,双击根轨迹图,打开Property Editor,然后点击Limits键并改变虚轴的极值为-15,15如下所示。实验不同的增益直到得到满意的结果。如下增益为44的根轨迹和响应的闭环阶跃响应。现在这调节时间小于两秒并且稳态误差和超调量满足要求。正如我们设计的进程根轨迹设计需要反复的实验。SISO Design是很有用的在进程中。用SISO Design Tool,很容易调剂控制并且立即看到对根轨迹和变量分析图的响应,例如闭环阶跃响应。如果你通过调剂环路增益没能得到一个满意的响应,我们就得移动延迟补偿的极点和零点,或者我们可以尝试一种不同的动态补偿的方式(额外的零点或者极点)。第五章 控制器的频域控制器5.1 画原始的Bode图基于频率设计的主要思路是用开环传递函数的Bode图评估闭环响应。添加一个控制改变系统的开环Bode图,因此改变闭环响应。我们的目标是调整开环bode图,使闭环响应满足我们设计要求。首先让我们绘制原始传递函数的bode图。添加如下命令在你m文件的末尾,并在MATlAB窗口中运行它。你将产生如下Bode图。5.2 添加比例增益从上面bode图,它显示系统的增益裕度和相位裕度是无穷大的,这表明系统的是稳定的并且有很小的超调量。系统的问题是相位裕度是无穷大的,因为在所有的频率上幅值在零下面。这表明系统准确的追踪变量参考信号是有困难的。因此,保持足够的相位裕度情况下,我们应该增加系统的增益。相位裕度为60度通常满足临界稳定。从上面的bode图,60度相位裕度的增益交叉频率大约为10rad/sec。这幅值大约为40dB,需要增加增益以便增益交叉频率为10 rad/sec。获得Bode图的准确的在某一频率的增益和相位,可以通过点击图中相关频率。bode命令,也能用来提供在10rad/sec处准确的相位和幅值,如下所示。因此,交叉频率为10rad/sec的准确的相位裕度为180-123.7=56.3度。因此准确的幅值为20log0.0139=-37.1dB,37.1dB的增益必须添加到系统。比例增益为1/0.0139=72将实现在10rad/sec的开环增益为1。添加吐下命令到你的m文件,观察系统比例控制的影响。在这种情况下,我们要用margin命令代替bode命令,为了详尽的观察新的比例和相位裕度,还有交叉频率。5.3 绘制闭环相应从上图我们可以看出相位裕度和增益交叉频率都是我们期待的。让我们看一下闭环响应。在点文件添加如下命令。再次运行m文件,将会产生如下所示的阶跃响应,在图上右击可以添加注释并从菜单中选择Characteristics。注意到调节时间足够快,但是超调量和稳态误差太高。超调量可以通过减少增益来实现一个更大的相位裕度,但是这将引起稳态误差增加。一个延迟补偿是有用的,因为它可以减少增益交叉频率,增加相位裕度且不减少系统增益。5.4 添加一个延时补偿考虑如下的延迟补偿 (1)延迟补偿有一个1/0.01=100的增益,意味着它将增加系统的静态位置误差常数,并减少闭环阶跃响应的稳态误差。事实上,它允许我们减少先前用的72的比例增益,仍然能满足要求稳态误差的要求。我们应用45的增益。应用如下命令,延迟补偿的bode图将产生。修改你的m文件如下,观察你的阶跃响应。第六章 控制器的状态空间设计法6.1 设计全状态反馈控制器因为系统的两个状态变量很容易测量(添加一个电流表的电流,添加一个速度计测速度),我们可以设计一个全状态反馈控制器,不用担心添加一个观测器。全状态反馈控制系统的控制准则有如下形式u=r-Kc x 并且相关的表格如下所示。回想一下,这个闭环系统特征多项式的行列式SI-(A-B * KC),s是拉普拉斯变量。由于矩阵A和B * KC都2X2矩阵,系统应该有2个极点。这个事实可以用MATLAB命令验证。如果给定的系统是可控的,然后通过设计一个完整的状态反馈控制器,我们可以把这两极点移动到任何我们喜欢的地方。给定的系统是可控或不可控,通过检查的可控性矩阵B AB 2B的秩决定。MATLAB命令ctrb构建可控性矩阵,通过给定矩阵A和B。此外,命令rank确定给定矩阵的秩。执行下面命令验证系统的阶数和系统是否是可控的。从上面可知,系统是可控的由于可控矩阵是满秩的。我们首先放置极点在-5+i和-5-i(注意 zata=0.98超调量接近于零,sigma=5提供0.8秒的调节时间)。一旦我们去确定了极点的位置,我们可以用MATLAB命令place或者acker来确定控制器的增益矩阵Kc。我们将用place命令,因为他比acker数值上更有利。然后,如果我们想放置一个位置更多变,我们用acker命令。在m文件的末尾添加如下命令。在命令窗口运行它,将产生反馈增益矩阵。参考在顶部的状态方程,我们可以看到用u=r-Kc x 取代u可以得到如下表达式。 (1) (2)在你的m文件中添加如下几行命令,我们将看到闭环响应。运行你的m文件在命令窗口将得到如下图。6.2 添加一个预补偿器从上图我们可以看出稳态误差很大。消除稳态误差的一个办法就是调整输入以至于输出也达到期待的标准。这又一定难度在我们的例子中,因为我有两个状态两需要考虑。因此,我们需要计算两个状态量的稳定值,用增益Kc乘以他们,并用这结果作为参考计算我们的输入u。这个可以在参考后面添加一个常数增益预补偿器Nbar来实现。如下图所示。我们可以得到Nbar因数,通过已经定义的rscale.m函数,如下所示。注意rscale.m不是一个标准的MATLAB函数,你必须下载它并且把它放置在你当前的目录下。你可以在m文件中添加如下命令,并在命令窗口运行它,你可以得到阶跃响应。这次,稳态误差小于1%,其他的设计标准也已经达到了。注意预补偿器Nbar的应用,基于原系统模型和预补偿器在在反馈环节的外面。因此,如果模型中存在错误,预补偿器也会不正确,将会有稳态误差。你可以回想一下,积分控制也可以消除稳态误差,甚至在模型不存在或者存在扰动的情况下。对于如何在状态空间中用积分控制,请看直流电机位置:状态空间的方法设计控制器的例子。用积分控制的不足之处是错误首先被使用在他被改正之前,所以响应会比较慢。预补偿器则能用已知的系统模型提前消除稳态误差。一个有用的技术是结合预补偿器和积分控制的优点。第七章 数字器控制器设计在这个教程中,我们将考虑直流电速度控制的数字形式。正如我们将描述的,一个采样数据直流电机模型可以从模拟模型转变获得。在这个例子中我们将设计一个PID控制器。7.1 创建系统的一个采样数据模型设计一个数字控制系统的第一部是建立一个采样数据模型。因此,当连续系统被采样时,需要选择一个采样频率。在选择采样周期时,采样频率必须比系统的动态更快,比便采样输出能捕获系统的全部行为。让我们创建一个连续的时间模型。创建一个m文件并添加如下的MATLAB 命令。在MATLAB窗口中运行m文件产生如下输出。用zpk命令可以把传递函数转变为零点极点的形式。检查原系统的极点(或者它的频率响应),原系统的主导极点(sigma近似于2)对应调节时间大约为两秒(4/sigma)。因此,选择采样周期为0.05秒比系统的动态快的多。采样周期也比闭环系统得到的速度快的多。这种情况下,我们将转变给定的传递函数从连续的拉式变换到离散的z域。MTALAB可以实现这些I转变通过c2d命令。c2d命令部分:一个系统模型,采样时间(Ts),保持电路的形式。在这个例子中,我们假设一个零阶保持电路。参考 简介:数字控制器设计,来获得更多的资料。输入如下命令在你的m文件中,在MATLAB窗口运行它,产生如下的采样数据模型。我们将在没有任何修正的情况下分析系统的闭环传递响应。首先,我们用feedback命令获得闭环传递函数。然后让我们检查带有零阶保持器闭环阶跃响应。这个可以用step和stairs名利完成。由于阶跃命令用于离散模型,他将输出离散采样向量。模拟0.5秒的阶跃响应。stairs命令把这些离散的数据画成一个阶梯,正如零阶保持器产生的一样。添加如下MATLAB代码在你的m文件末尾并运行它。将产生下图。检查上图发现稳态误差大太多并且调节时间有点慢。7.2 PID控制回想连续时间传递函数的PID控制器是: (1)从s平面绘制到z平面有很多方法。上面我们对于原系统模型用一个零阶保持转化。对于控制器,我们需要一种精确的,能被连续系统实现的一种转化。从s平面到z平面精确的转换如下所示。 (2)这种转换使数字控制器实现控制算法产生困难。因此,我们将用一种近似的转化。特别的,我们将用如下转换。 (3)我们将用MATLAB中的c2d命令,转换连续时间PID转化为离散时间的PID,制定转化方式为tustin。根据 直流电机速度:PID控制设计,当Kp=100,Ki=200,Kd=10的时候我们满足了设计需求。我们再次用这些增益。现在在先前的m文件中,添加如下命令,再次运行它在MATLAB窗口中。让我们看一下加上PID的闭环阶跃响应的性能能否满足我们的要求。添加如下命令到你的m文件并运行它。你会得到如下响应。正如你在上图,系统的闭环响应是不稳定的。因此,补偿系统一定存在错误。因此,我们需要看一下补偿系统的根轨迹。添加如下MTALAB命令到你的m文件的末尾并运行它。从这个根轨迹图,我们可以看出PID控制器有一个-1的极点在s平面上。我们知道如果系统的一个极点在单位元的外面,这个系统将是不稳定的。不管正增益为多少系统是不稳定的,因为有极点和零点在-1极点右侧。因此,一个闭环极点向左移动并会在单位圆的外面,当增益增加的时候。这个例子中我们选择取消在-0.82的零点,这样至少在某些增益的时候系统是稳定的。添加如下命令到你的m文件,并运行它,产生如下根轨迹图。新的闭环系统酱油一个接近-0.82的极点,这几乎抵消掉了未修正系统的零点。在根轨迹上点几个位置把闭环极点放置在哪个位置,看看增益,超调量,阻尼比等等,如下图所示。当然,实际响应的阻尼比和超调量的值,只有选择的极点主导。你可以通过用rlocfind命令指定一个闭环极点的位置然后确定增益。输入K,poles = rlocfind(dC*dP_motor),然后你可以在根轨迹图上选择你感兴趣的电。MTALAB将会得到近似的增益和所有的闭环极点。这是很有用的,因为它列出了所有的闭环极点,而不只是你选择的。我们可以选择一个0.8的增益并检查闭环响应结果,通过输入如下命令。上图显示调节时间小于2秒并且超调量接近2%。另外,稳态误差是零。因此,这响应满足我们的设计要求。第八章 Simulink建模8.1 物理设置直流电机是一种常见的驱动器。它直接提供旋转运动,再加上轮或绳索,可以提供平移运动。电驱的等效电路和转子的受力图如下所示对于这个例子,我们假设系统的输入是作用在点击电驱的电压V,输出是杆的转动速度d(theta)/dt。转子和轴被假定为刚性。我们进一步假设粘性摩擦模型,即,摩擦力矩是轴的角速度成比例的。我们例子的物理参数为:在一般情况下,由一个直流电机产生的转矩与电枢电流和磁场的强度成比例的。在这个例子中我们假设磁场是恒定的,因此,电机的转矩与电枢电流I的比例由,比例系数为Kt,如下方程所示。这是被称为一个电驱控制的电机。 (1)反电动势e是正比于轴的角速度的一个常数因子ke。 (2)在国际单位制中,电机的转矩系数和反电动势常数是相同的,即,Kt=Ke;因此,我们将使用K代表两个电机转矩系数和反电动势常数。8.2 Simulink建模这系统通过作用在转子上的扭矩作和,和积分加速度得到速度建模。同样,基尔霍夫定律应用在电驱电路上。首先我们给旋转加速度和电驱电流的积分建模。 (3) (4)为了建立方针模型,打开Simulink并且新建一个模型窗口。然后遵循如下步骤。插入一个积分块从Continuous library 并且从它的输入输出画线。标示输入为d2/dt2(theta)输出为d/dt(theta) 如下所示。在空白处双击即可添加标示。 插入另一个积分块并画线从它的输入和输出。标示输入为d/dt(i) 输出为i。接下来应用牛顿第二定律和基尔霍夫定律产生如下等式。 (5) (6)继续在Simulink中为这些等式建模,遵循如下步骤。从Simulink/Math Operations library中插入两个Gain块,每一个与积分相连。通过双击编辑Gain块,把他的值改为“1/J”。点击Gain块下面的“gain”把标示改为“Inertia”。相似的,编辑另一个Gain的值为“1/L”并标示为“Inductance”。从Simulink/Math Operations library中插入两Add块,每一个与gain快相连。编辑Add块的符号为“+-”,一个为正一个为负。编辑另一个Add块的符号为“-+-”,代表电学方程的符号。现在,我们添加代表旋转方程的扭矩。首先我们添加阻尼扭矩。在“Inertia”块下面插入一个增益块。接下来右击这个块,选择FormatFlip Block把块从左翻转到右。你可以通过选中它按“CTRL_I”来翻转。设置Gain块的增益为“b”并重命名为“Damping”。把旋转积分的输出与“Damping”块的输入相连。把“Damping”块的输入与Add的负号相连。接下来,我将添加电驱的扭矩。插入一个增益块,与扭矩Add块正输入相连。编辑它的值为“K”,表示电动机转矩系数,标示为“Kt”。把积分块与与“Kt”块相连。现在我们添加代表电学方程的电压部分。首先,我们添加电压。在“Inductance“插入一个Gain块,并把他从左到右翻转。设置增益值为“R”,重命名为“Resistance”。把电流积分的输出与“Resistance”的输入相连。把“Resisitance”的输出与电流方程Add块的负输入相连。接下来,我们添加电动机的反电动势。插入一个Gain块与电流Add块的另一个负极相连。编辑它的值为“K”,代表电动机的反电动式常熟并标示为“Ke”。把旋转积分的输出与“Ke”块相连。从Simulink/Ports&Subsystems library添加一个Ln1和Out1块,分别标示为“Voltage”和“Speed”。最后的设计应该如下图。为了保存这些原件作为一个单独的子系统,首先选择所有的块,然后从Edit中选择 Create Subsystem。命名为“DC Motor”并保存这个模型。你的模型应该如下。我们将用到这个模型在 直流电机速度:Smuilink 控制器设计 部分。8.3 Simscape建模在这个部分,我们将展示如何用Simulink扩展的Sumscape的物理模块建模。在Simscape库中的块代表真实的物理原件,因此,复杂的多种领域的模型建立,不需要用物理准则如牛顿定律和基尔霍夫定律的建立的数学模型。打开一个新的Simulink模型并插入如下块,来代表直流电机的电力和机械原件。Resistor,Inductorand Rotational Electromechanical Converter 块在the Simscape/Foundation Library/Electrical/Electrical Elements library。Rotational Damper and Inertia 块在theSimscape/Foundation Library/Mechanical/Rotational Elements library。4个端口连接块在the Simscape/Utilities library。双击Connection Port blocks选择1和2的location of port为left,3和4的location of port选择为Right。连接和标示如下图。你可以旋转一个块,通过在块上又击,然后选择Format中的Rotate Block。完成直流电机Simcape模型的设计,把用假设的值配置每一个块的物理参数。为了配置这些需要的值,在Resistor, Inductor, Inertia, Rotational Damper, Rotational,Electromechanical Converter blocks 上双击,输入如下参数和单位:Resistance = R OhmInductance = L HInertia = J kg*m2Constant of Proportionality = K V/(rad/s)Damping coefficient = b N*m/(rad/s)Rotational Damper块作用于电动机粘性摩擦的建模。选择这种类型的摩擦模型,因为他是线性的。在大多数情况下,真实的摩擦比这复杂的多。如果你希望用一个更复杂的摩擦模型,例如添加Coulomb friction到你的模型,然后你可以用the Simscape/Foundation Library/Mechanical/Rotational Elements library中的Rotational摩擦块。注意在上面通过电动机的机械和电力方面建立了一个直流电机模型。Simscape library中也包括一个直流电机块在the Simscape/SimElectronics/Actuators library中。这个块在 直流电机位置:simulink 建模 部分应用。物理参数现在被设置。输入如下命令在MATLAB中。这些值与物理设置的部分的一样。你可以保存这些原件在一个子系统中。选择所有的块,然后选择编辑菜单中的创建子系统。你可以改变你的子系统的颜色,通过又击框图,在出来的菜单中选择FormatBackgroud Color。为了仿真系统的响应,需要添加传感器快到模型中来仿真模各种物理参数的测量。更进一步,需要将Simscape模块与Simulink模块相联系,因为Simscape信号代表有单位的物理量,然而Simulink信号是无量纲数。添加如下模块到你的模型。Current Sensor 模块在the Simscape/Foundation Library/Electrical/Electrical Sensors library。Controlled Voltage Soure模块在the Simscape/Foundation Library/Electrical/Electrical Sources library。两个 PS-Simulink Converte模块和一个Solver Configuration 模块在 the Simscape/Utilities library。Electrical Reference 模块在the Simscape/Foundation Library/Electrical/Electrical Elements library。Ideal Rotational Motion Sensor 块the Simscape/Foundation Library/Mechanical/Mechanical Sensors library。Mechanical Rotational Reference 模块在the Simscape/Foundation Library/ Mechanical/Rotational Elements library。三个Out1模块and 一个In1 模块在 the Simulink/Ports & Subsystems library。你可以在系统里保存这些原件,一个输入三个输出。选择所有的块并在Edit菜单中选择Create Subsytem。同样你可以标示这个系统和信号,如下图所示。如果你想运行一下上面建立的模型,并用它模拟和开发控制算法,你可能继续需要学习直流电机速度:Simulink控制。第九章 Simulink控制器设计从直流电机:Simulink建模页面我们得到了不同的Simulink模型。我们现在将应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论