




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 北 京 航 空 航 天 大 学现代控制理论实验报告倒立摆控制系统学院名称 自动化 专业方向学 号学生姓名指导教师日 期北京航空航天大学设计(目录) 第I页 目 录1 系统设计任务及技术指标11.1技术指标11.2设计任务12系统的组成和工作原理12.1 系统的组成12.2 系统工作原理23 建立数学模型43.1 单级倒立摆的动力学模型43.2 单级倒立摆模型参数确定64 系统设计与仿真74.1 控制系统设计74.3 单级倒立摆控制系统仿真94.4 分析与结论115计算机控制系统设计与实现125.1 模拟控制系统的设计125.2 数字控制系统的设计146系统的组装与调试176.1 系统安装17
2、6.2 系统调试176.3 系统性能分析及结论186.3.2 实验结果分析及结论207 收获与体会21参考文献21附录22北京航空航天大学设计(论文) 第 32 页 1 系统设计任务及技术指标1.1技术指标1. 摆角稳定时间小于3秒;2. 有一定的抗干扰能力且在5分钟内保持不倒;3. 小车控制在±45厘米内运动。1.2设计任务1. 了解倒立摆系统的组成和工作原理。2. 掌握模拟摆的调节方法。3. 任选一种或多种控制理论设计控制系统(静态设计、动态设计)4. 仿真验证动态系统性能5. 数字控制系统电路设计6. 数字控制器软件设计7. 闭环系统实验和调试8. 编写实验报告2系统的组成和工
3、作原理2.1 系统的组成本实验运用的实验设备有金棒2型倒立摆系统试验平台,PC机一台,HY-123AD/DA接口板和数字万用表一台。其中倒立摆系统的结构由机械和电气控制系统两部分组成。其中机械部分由小车、导轨、皮带轮、1摆和2摆组成,其结构示意图如图1.1所示。倒立摆的电气结构由检测电路、调零电路、计算机、 A/D、 D/A 变换器、功率放大器和伺服电机组成,倒立摆计算机控制系统结构框图如图1.2所示。图1.1 倒立摆机械系统结构原理图图1.2 倒立摆计算机控制系统结构框图2.2 系统工作原理模拟倒立摆控制系统的工作原理为: 如图2.1所示的模拟倒立摆控制系统中,通过调节电位计R1R6从而给不
4、同的控制量施加不同的增益,从而输出控制信号,并通过功率放大器放大后驱动伺服电机。电机旋转拖动小车,向着减少1、2的方向移动,从而使倒立摆达到平衡。数字倒立摆控制系统的工作原理为: 如图2.2所示的数字倒立摆控制系统中,由检测电位计测量出1摆和2摆的偏转角度1、2,其作为检测的反馈信号通过A/D采入计算机。而后经过控制器计算后计算机输出控制信号。控制信号经D/A转换为模拟量并通过功率放大器放大后驱动伺服电机。电机旋转拖动小车,向着减少1、2的方向移动,从而使倒立摆达到平衡。图2.1 倒立摆模拟控制系统电路原理图图2.2 倒立摆计算机控制系统电路原理图3 建立数学模型3.1 单级倒立摆的动力学模型
5、单级倒立摆系统的建模可采用受力分析或 Lagrange 方程建立得到。这里采用受力分析方法建模。单级倒立摆的系统受力示意图如图3.1所示。图3.1 单级倒立摆系统受力示意图根据牛顿第二定律可以得到, 以摆杆偏角、角速度、小车的位移和小车速度为状态变量,即令: 同时假设倒立摆摆杆的垂直倾斜角度与1(单位为rad)相比很小,即<<1则可以近似处理: cos1,sin,忽略高阶小量,则可得: 则可得摆杆系统的状态方程为: 写成向量形式为: 其中: 上述参数分别为: 选择摆杆的倾斜角度和小车的水平位移x作为系统的输出,则输出方程为: 3.2 单级倒立摆模型参数确定建模时候使用力u作为输入信
6、号,实际采用的是以电压作为输入信号,通过电机作用,转化为力矩信号。根据实验说明,系统相关参数: (1) 摆杆:质量m=0.2kg,摆杆长度0.36m质心到转轴距离L=0.158m,对质心的转动惯量I=0.001654 。(2) 角度传感器: 梯度为 k=0.94,转轴的摩擦系数f=0.007056Nm/s 质量0.052kg (3) 小车: 质量M=0.6kg (4) 小车位置传感器: 梯度1.30V/m (5) 永磁式直流力矩电机近似化的电机模型为其中V为输出电压,k110.71N/V。(6) 带轮:半径r=0.065m。(7) 水平导轨: 有效长度±45cm。代入实际参数计算可得
7、:a=58.534,b=-2.312,c=-7.317,d=1.539状态方程的系数为: 4 系统设计与仿真4.1 控制系统设计4.1.1 原系统分析由第3章的论述可以得到单级倒立摆系统的模型为 其中: 系统在完全可控可观条件下,可以通过状态反馈对系统状态进行控制,通过观测器观察到系统的状态。因此,设计系统之前,先对系统的可控可观性进行研究。系统状态完全可控条件是可控判别矩阵U的秩等于系数矩阵A的维数n,即 其中U=B AB An-1B.带入本系统的参数可以得到rank(U)=4=n。系统的状态完全可控,可以进行控制器的设计,使系统镇定。进行系统设计之前,先对原系统的稳定性进行分析。根据已知的
8、动态方程,首先求出该系统的极点分别为: p1,2=0,p3=7.6507,p4=-7.6057,其存在一个极点在复平面的右侧,两个极点在零点,故该系统不稳定。对其进行阶跃实验,阶跃响应如图4.1所示。从其阶跃响应的仿真曲线中也可以看出摆杆的摆角和小车位置均是发散的,即不稳定。从上述的讨论中可知,倒立摆系统是自然不稳定系统,但由本文建立的倒立摆状态空间模型可知,该系统可控,且能通过全状态反馈控制律进行镇定控制,由系统的极点特性也可得出系统不稳定的结论,由极点特性,本文可利用基于极点配置的全状态反馈控制律对倒立摆系统进行控制。图4.1 倒立摆系统开环阶跃响应图4.2.2 按极点配置的全状态反馈控制
9、器设计闭环系统极点的分布情况决定了系统的稳定性和动态品质,因此在系统设计中,通常根据对系统的品质要求,规定闭环系统极点应有的分布情况。所谓极点配置,就是如何使得已给系统的闭环极点出于自己所希望的位置。按极点配置设计的全状态反馈控制系统的闭环系统状态空间表达式为: 而控制律中的增益K即为通过零点配置方法求得,其具体步骤如下: (1) 求A的特征多项式(2) 求闭环系统的期望特征多项式(3) 计算(4) 计算 (5) 令P=Q-1,求4.2.3 系统静态设计与动态设计系统的静态设计即指系统的稳态特性设计,在单级倒立摆系统中,要求系统镇定,故倒立摆系统稳态时,要求系统状态空间中的各个状态为0且保持状
10、态为0。且有一定的抗干扰能力。在实际中要求小车控制在±45厘米内运动,且维持稳态五分钟不倒。系统的动态设计即指对系统暂态品质的设计,由系统的自然条件与设计要求可知,该系统的超调量不能太大,因为过大的超调量会导致系统不稳定,且要求较小的调节时间,摆角的调节时间小于3秒。4.3 单级倒立摆控制系统仿真由上述单级控制系统设计的论述中,本文采用按极点配置的状态反馈控制器对系统进行镇定控制。由对系统极点与动、静态设计的讨论中,本文选取适当的闭环极点,进行全状态反馈控制器设计。仿真工作运用Mathwork公司出品的MATLAB/Simulink进行。由前文的介绍可以搭建单级倒立摆控制系统仿真框图
11、如图4.2所示。设置预期的极点为p1*=-692,p2*=-0.9,p3,4*=-3.84±5.63i。预期极点选择的理由为: 原系统是自然不稳定系统,加入控制器后的闭环系统必须保证其稳定性,所以系统所有几点都应在复平面的左半部分。而且该系统需要一个主导极点以保证系统响应的收敛速度,而设置一对共轭极点是为了改善系统的暂态特性,减少调节时间且不引起巨大的超调从而避免了震荡。综上通过多方尝试,选定上述极点。由上述预期极点,按照按极点配置全状态反馈控制器设计方案可得控制器的反馈增益为K=909.9253 202.0133 395.3233 505.1923。在上述控制器下,控制系统响应图如
12、图4.3所示。图4.2 单级倒立摆控制系统仿真框图图4.3 按极点配置全状态反馈倒立摆系统加入扰动模块,检验该系统的抗扰性能。在10s时,在系统中加入扰动,在扰动下,该系统的响应曲线如图4.4所示。图4.4 控制系统的抗干扰特性4.4 分析与结论从4.3的仿真情况中可以看出,加入按极点配置全状态反馈控制器后,该系统变为稳定的系统。从其时域特性中可以看出: 在暂态中,摆角x1的调节时间小于3秒,而小车的最大位移小于45cm,故能够满足系统动态设计的要求。在稳态中,各个状态最后都为0不变,证明该系统在理想条件下可以持续稳定,自然可以满足稳定5分钟的条件。从抗扰特性分析中可以看出,在图4.4的响应曲
13、线中,尽管有干扰出现,但系统很快地重新打到了平衡,且平衡点不变,证明了系统具有较好的抗干扰性能。这就意味着在实际的运行中,该系统对于外界的干扰具有较好的鲁棒性。综上所述,从仿真方面来看,本章设计的按极点配置全状态反馈控制器能够符合设计的要求,具有较好的控制性能,而且较之于模糊、神经网络等智能算法具有更加简单的结构,与更容易实现的条件。5计算机控制系统设计与实现5.1 模拟控制系统的设计模拟控制系统的设计是计算机控制系统设计的基础。通过模拟控制系统设计,认识整个系统的结构和组成,为实现计算机控制做准备。模拟控制系统通过调节模拟控制器上的旋钮,改变相应的参数,通过变换电路,控制小车的移动,实现摆的
14、控制;而且,变换电路中通过差分计算,分别可以求出摆的角度和位置的微分,即角速度和速度,可在计算机中直接采样得到摆的位置、速度、转角和角速度。模拟控制电器操作面板简图如图6所示,模拟和数字控制模式可以通过开关选择,T1,T4为摆角和位x移运放调零拨动开关,K1、K2、X、V分别为系统摆角、角速度、位移x、速度v等相关参数的调节旋钮。通过模拟控制电路,控制倒立摆和小车,首先要调节小车移动位移和摆角的零点位置,具体操作如下: (1) 小车调零: 拨开小车位置调零开关T4,将小车置于导轨的中间位置,然后用万能表测量位移传感器电压值,适当地转动旋钮X,使万能表电压为零,拨回调零开关T4,调零结束。(2)
15、 摆杆调零: 拨开调零开关T1,将使摆杆处于垂直位置,然后用万能表测量角度传感器电压值,适当地转动旋钮K1,使万能表电压为零,拨回调零开关T1,调零结束。调零是操作的关键一步,决定倒立摆最后能否处于稳定状态。摆杆调零不到垂直位置,摆杆会来回摆动,最终倒下;小车调零不到位,会使在有限长的轨道上,摆杆调整未完成,小车已移动到轨道端头,调整失败。极性调整和调零完成后,可通过旋钮调节相关参数,使倒立摆处于稳定状态。经过旋转旋钮,数次调试后得到能使倒立摆稳定的参数,其中X=9.33,V=8.00,K1=9.48,K2=8.36。通过计算机采样的得到稳定后且加入角度扰动后倒立摆系统的实时响应曲线曲线如图5
16、.1所示。从图中可以看出通过反复的调节模拟系统中的电位计,倒立摆系统可以达到稳定的状态,且对角度的扰动具有抗扰性,但同时也存在着调节时间较长,超调较大,略微震荡的现象。这是由于模拟控制器精度有限所致。在倒立摆系统稳定后,施加位置干扰,得到此时的模拟控制系统的实时响应曲线如图5.2所示。在位置上施加0.1m的扰动,小车经过快速调整后,倒立摆系统仍旧能搞达到稳态位置,再次验证了控制器的抗干扰性能。图5.1 角度扰动时模拟控制系统倒立摆实时响应曲线图5.2 位移扰动时模拟控制系统倒立摆实时响应曲线5.2 数字控制系统的设计实验主要研究的是通过数字控制使倒立摆处于稳定状态,包括A/D转换、D/A转换、
17、中断、实时控制交互界面设计及相关软件设计。编译程序在Turbo C编译环境下运行,通过放大电路控制倒立摆稳定。A/D转换采用12位A/D转换芯片AD574。AD574是美国模拟器件公司产的较先进的高集成度、低价格的12位逐次逼近式转换器,其转换时间为25us,可设置成双极性或单极性,转换结果可8位输出,也可先输出高8位,再输出低8位,输出有三态逻辑控制,片内还有基准电压和时钟,其结构图如图5.3所示。图5.3 A/D574结构框图D/A转换采用的是12位D/A转换芯片DAC1210。DAC1210含有2个输入寄存器,一个12位DAC寄存器和D/A转换器,从而得到高精度的输出转换电压,其结构框图
18、如图5.4所示。中断的控制,采用8259可编程中断控制器。在多中断源系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到CPU的INTR端;当CPU响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理,其内部结构框图如图5.5所示。图5.4 DAC结构框图图5.5 8259内部结构系统的软件设计包括系统人机交互界面设计,中断软件设计等,程序流程图如图5.6所示。进入数字控制模式后初始化,运行程序进入主界面,设置控制参数K0、K1、K2、K3,打开电机,系统数字控制阶段,小车往复移动调整,使摆杆处于垂直状态,期间中断向量变化,采集到小车和摆杆
19、变化的数据,最终将采集的数据经转换显示在图形界面上。图5.6 控制系统主流程图图5.7 中断程序软件结构图6系统的组装与调试6.1 系统安装本装置在拆开包装箱后,应检查元件有无损坏现象.将实验装置安放在工作地点之后,把支承杆放在工作台板面中间位置,并固定好,然后将小车及摆移到导轨的中间并用支撑杆上的钩簧勾住上摆,使上,下摆吊直(处于铅垂位置) 。在通电检查之前,应检查所有电气部分有无损坏现象。电源线与传感器连接的插头 P5,与计算机连接的插头 L5 等外部接插头是否接好。通电应在设备完好情况下进行.在此之前电源开关应处于 OFF 位置,控制电机与功放连接线上的功放开关也应处于 OFF 位置。6
20、.2 系统调试6.2.1系统硬件调试(1) 小车,下摆 L1 和上摆 L2 初始位置的校验(电源开关置 ON)。小车初始位置的校验: 先将小车置于导轨的中间位置。然后用三用表测量其位移传感器(导轨左侧的 WXD7 的多圈线绕电位计,阻值为 10千欧)电压值,并将负极性的表笔置传感器端子2,另一表笔分别置1和3,适当地转动电位计的轴使其端子21 间,23间的电压值分别为 U21=+3V,U23=-3V时,然后将电位器的轴与皮带轮轴用螺钉固紧,这样就基本上保证了电位器的滑臂处在其几何中心处或电气中心处。下摆 L1 初始位置的校验: 下摆角位移传感器是一只转角为360°的WDD35D1 型
21、的塑料导电电位器。电阻值为2k欧,适当的转动电位器的轴使其端子 21 间,23 间的电压值分别为 U2-1=-3V, U2-3=+3V 时,然后将摆与电位器的轴用螺钉紧固。从而保证了滑臂处在其几何中心处或电气中心处。上摆 L2 初始位置的校验:校验方法与上相同。上摆的角位移传感器也是一只 WDD35D!型电位器。当转动其轴使端子21间23间的电压值分别为U21=-3V, U23=+3V 时,讲轴与上摆 L2 用螺钉紧固,以保证。滑臂处在其几何中心或电气中心处。(2)小车,下摆 L1 和上摆 L2 位移输出零位调整。在零位调整之前,一定要检查后盖板上的插头 P5 是否以接上。小车位移 x 零位的
22、调节:首先将“X 运放调零 电桥调零”拨动开关T4 拨向“电桥调零”处,然后旋动其左侧的“X 调零”电位器的旋钮,并观察“X 测量”孔处的输出电压(对地)是否为零,反复调节直至输出为零为止。下摆 L1 角位移1零位调节:先将拨动开关 T1 转向“电桥调零”处,然后旋动其左侧的“1调零”电位器的旋钮,并观察“1测量”孔处的输出电压(对地)是否为零,反复调节直至输出为零为止。上摆 L2 角位移2零位调节:先将拨动开关 T2 转向“电桥调零”处,然后旋动其左侧的“2调零”电位器的旋钮,并观察“2测量”孔处的输出电压(对地)是否为零,反复调节直至输出为零为止。都配置正确,硬件调试完成。注:T1、T2、
23、T3、及 T4、分别为, 1,2,3,及 X 的“运放调零 电桥调零”的拨动开关。6.2.2 软件调试对编译的C程序在实验室计算机上编译,检查语法,变量类型,语句等错误,运行使其能够显示各个界面,软件编译调试结束。6.3 系统性能分析及结论6.3.1 计算机控制单级倒立摆系统实验结果系统调试完成后,运行控制倒立摆采集的数据,当摆杆处于竖着状态,小车能够快速移动,使摆杆保持竖直;摆杆竖直后,小车基本保持短距离往复运动,系统进入稳定状态。当给摆杆施加扰动,系统稳定状态被打破,采集的数据,小车迅速移动,往复调整,最终使摆杆处于竖直状态,系统稳定下来。实验过程中待到系统稳定后施加摆角扰动,得到的倒立摆
24、系统实时响应曲线如图6.1所示。在稳定后的1秒钟对倒立摆摆角施加扰动,从实时响应曲线中可以看出,系统在扰动后仍能够快速地克服扰动,需要较少的调节时间就能重新达到稳态,稳态值不变,且在暂态各个状态的变化量均不是太大。而后再次在倒立摆稳态的基础上施加位移扰动,得到的倒立摆系统实时响应曲线如图6.2所示。这一干扰以重新规定小车稳态为0.1m的方式给出,所以到达新的稳态时,小车的位移应稳定在0.1m处。从图中可以看出,该控制系统在加入位移扰动后依旧能够快速地达到新的稳态,且暂态的超调量小调节时间短,具有较好的抗干扰特性。图6.1 角度扰动时数字控制系统倒立摆实时响应曲线图6.2 位移扰动时数字控制系统
25、倒立摆实时响应曲线6.3.2 实验结果分析及结论从上述的单级倒立摆计算机控制系统的实验结果来看,本文可以得出如下结论: 1. 从单级倒立摆计算机控制系统的实验结果中,本文所设计的闭环系统具有良好的暂态品质和稳态性能,从单级倒立摆闭环系统的实时控制响应曲线中可以看出,系统的超调量小,响应时间短,稳态误差小,无稳态震荡现象(纹波),且具有良好的抗干扰特性,满足题设中所述的要求指标。这证明了本文设计的按极点分配的全状态反馈控制器具有良好的控制性能,可以使单级倒立摆这一自然不稳定系统镇定。2. 对于同一单级倒立摆实验装置,同样运用全状态反馈控制器,选取适当的反馈增益K,计算机控制系统的控制效果要明显优
26、于模拟控制系统。这是由于数字控制器相较于模拟控制器具有更高的精度,且计算机的赋值要比人工调节电位计的赋值方式具有更高的准确度。3. 本文所利用的实验平台为面向墙最左侧的那一台实验装置,使该系统镇定的反馈增益K与其他实验平台控制器的反馈增益具有较大的差异,这是由于该实验平台的电机与其他平台电机不同,本实验平台电机输出力矩较大,这就意味着本实验平台与其他及说明书上的单级倒立摆的数学模型有些差异。这也意味着根据说明书所述模型做出的仿真实验并不能对实物实验有极大的指导意义。另外,本台实验装置执行器之一的滑轮有一个失去效用,始终不动,这也是了实验结果中小车位移总是偏向一侧的部分原因。4. 关于倒立摆闭环
27、系统的抗扰动性能,由于稳定裕量是有限的,闭环系统对于较小的干扰具有较好的抗干扰性能,但面对较大的干扰时,却不一定能够使得系统镇定,可能最终发散,这是由系统的稳定裕量及控制器的控制能力决定的。7 收获与体会倒立摆系统作为现代控制理论中最典型系统之一,历来是各个新兴控制算法的试金石。仅在我实验中所阅读的文献中,就已发现国内外恒河沙数的倒立摆系统控制算法,其中不乏传统经典的PID,LQR,极点配置控制器,更有流行或新型的鲁棒控制器、模糊控制器以及自适应、进化智能控制算法。这令我在完成实验的同时,更如综述般地令我对控制的历史与前沿有了更多的了解与新的认识。通过这一系列的实验,我也重温了关于控制理论、微
28、机原理和接口技术等多方面的知识。让我有机会将这些知识融会贯通,有了一次很好的结合,为以后更为复杂繁琐的控制系统设计奠定了良好的基础。在实验过程中,每当遇到难题时,袁老师都能给我们很多提示与启发,而且亲自为我们检查实验设备,对此非常感谢老师最后,本次实验也让我感受到团队协作在科研中的重要性。只有团队协作目标明确、团结紧密和工作高效才能顺利地完成科研工作。另外还有一点建议: 本套实验装置虽然可以令我们对控制理论和微机接口同时重温学习。然而,该套实验装置的编程对于较为简单的全状态反馈或PID控制算法可容易完成,但对于复杂的控制算法不免繁琐,是否可以考虑半实物仿真设备。参考文献1. 倒立摆控制系统实验
29、说明书,袁少强2. 计算机控制系统系列实验指导书,袁少强3. 计算机控制系统设计与实现,郭锁凤4. Borland C函数库手册或TC函数库手册附录#include <stdio.h>#include <conio.h>#include <graphics.h>#include <dos.h>#include <math.h>#define closegr closegraphfloat t=0,x3=0,x1=0,zx1=0,zx3=0,x2=0,x4=0,tt=50,c,e=0,float y0=417,y1=297,y2=177
30、,y3=57,d5=57,57,177,297,417,float u=0,ri=0,xd=0,cx=0,cx2=0,cy2=0;void initgr(void) /* BGI初始化 */ int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */ registerbgidriver(EGAVGA_driver);/*注册BGI驱动后可以不需要.BGI文件支持运行*/ initgraph(&gd, &gm, "");void draw(void) float i,j,xs; char s10; int
31、x0=50,l=56,zs; setbkcolor(7); /*画车架子以及两个边框*/ setcolor(6); setlinestyle(0,0,3); setcolor(6); setfillstyle(SOLID_FILL,0); bar(5,0,375,478); bar(380,100,630,250); setcolor(CYAN ); line(410,180,610,180); setlinestyle(0,0,2); setcolor(RED); setlinestyle(0,0,3); line(x0,y0+l,x0,y0-l); line(x0,y0-l,x0-5,y0
32、-l+5); line(x0,y0-l,x0+5,y0-l+5);/*画纵坐标与箭头*/ line(x0,y0,x0+303,y0); line(x0+303,y0,x0+301,y0-5); line(x0+303,y0,x0+301,y0+5);/*画横坐标与箭头*/ line(x0,y1+l,50,y1-l); line(x0,y1-l,x0-5,y1-l+5); line(x0,y1-l,x0+5,y1-l+5);/*画纵坐标与箭头*/ line(x0,y1,x0+303,y1); line(x0+303,y1,x0+301,y1-5); line(x0+303,y1,x0+301,y
33、1+5);/*画横坐标与箭头*/ line(x0,y2+l,50,y2-l); line(x0,y2-l,x0-5,y2-l+5); line(x0,y2-l,x0+5,y2-l+5);/*画纵坐标与箭头*/ line(x0,y2,x0+303,y2); line(x0+303,y2,x0+301,y2-5); line(x0+303,y2,x0+301,y2+5);/*画横坐标与箭头*/ line(x0,y3+l,50,y3-l); line(x0,y3-l,x0-5,y3-l+5); line(x0,y3-l,x0+5,y3-l+5);/*画纵坐标与箭头*/ line(x0,y3,x0+3
34、03,y3); line(x0+303,y3,x0+301,y3-5); line(x0+303,y3,x0+301,y3+5);/*画横坐标与箭头*/ setlinestyle(3,0,0); settextstyle(0,1,1); for(i=x0,j=0;i<=x0+300;i=i+15) setcolor(BLUE); line(i,y0-l+10,i,y0+l-10);/*画纵虚线*/ setcolor(DARKGRAY); sprintf(s,"%1.1f",j); if(j=(int)j) outtextxy(i-1,y0,s); j=j+0.5; f
35、or(i=x0,j=0;i<=x0+300;i=i+15) setcolor(BLUE); line(i,y1-l+10,i,y1+l-10);/*画纵虚线*/ setcolor(DARKGRAY); sprintf(s,"%1.1f",j); if(j=(int)j) outtextxy(i-1,y1,s); j=j+0.5; for(i=x0,j=0;i<=x0+300;i=i+15) setcolor(BLUE); line(i,y2-l+10,i,y2+l-10);/*画纵虚线*/ setcolor(DARKGRAY); sprintf(s,"
36、%1.1f",j); if(j=(int)j) outtextxy(i-1,y2,s); j=j+0.5; for(i=x0,j=0;i<=x0+300;i=i+15) setcolor(BLUE); line(i,y3-l+10,i,y3+l-10);/*画纵虚线*/ setcolor(DARKGRAY); sprintf(s,"%1.1f",j); if(j=(int)j) outtextxy(i-1,y3,s); j=j+0.5; settextstyle(0,0,1); for(j=y0-l+8,i=0.3;j<=y0+l-8;j=j+8) s
37、etcolor(BLUE); line(x0,j,x0+300,j);/*画横虚线*/ setcolor(DARKGRAY); sprintf(s,"%1.1f",i); xs=10*i; zs=xs; if(-0.2<(xs-zs)&&(xs-zs)<0.3)|(xs-zs)<-0.8) outtextxy(10,j,s); i=i-0.05; for(j=y1-l+8,i=0.3;j<=y1+l-8;j=j+8) setcolor(BLUE); line(x0,j,x0+300,j);/*画横虚线*/ setcolor(DARKG
38、RAY); sprintf(s,"%1.1f",i); xs=10*i; zs=xs; if(-0.2<(xs-zs)&&(xs-zs)<0.3)|(xs-zs)<-0.8) outtextxy(10,j,s); i=i-0.05; for(j=y2-l+8,i=0.3;j<=y2+l-8;j=j+8) setcolor(BLUE); line(x0,j,x0+300,j);/*画横虚线*/ setcolor(DARKGRAY); sprintf(s,"%1.1f",i); xs=10*i; zs=xs; if(-
39、0.2<(xs-zs)&&(xs-zs)<0.3)|(xs-zs)<-0.8) outtextxy(10,j,s); i=i-0.05; for(j=y3-l+8,i=0.3;j<=y3+l-8;j=j+8) setcolor(BLUE); line(x0,j,x0+300,j);/*画横虚线*/ setcolor(DARKGRAY); sprintf(s,"%1.1f",i); xs=10*i; zs=xs; if(-0.2<(xs-zs)&&(xs-zs)<0.3)|(xs-zs)<-0.8) o
40、uttextxy(10,j,s); i=i-0.05; setcolor(RED); settextstyle(4,0,1); outtextxy(x0+5,y0-55,"anglespeed"); outtextxy(x0+5,y1-55,"angle"); outtextxy(x0+5,y2-55,"carspeed"); outtextxy(x0+5,y3-55,"carposition"); outtextxy(x0+300,y0+2,"t/s"); outtextxy(x0+300,y
41、1+2,"t/s"); outtextxy(x0+300,y2+2,"t/s"); outtextxy(x0+300,y3+2,"t/s"); /*画右下角与上部*/ setcolor(6); setlinestyle(0,0,3); outtextxy(415,260,"Inverted Pendulum"); setcolor(6); setfillstyle(SOLID_FILL,0); bar(380,50,630,100); /*右上*/ setcolor(5); /*右下角扯淡部分 */ outtext
42、xy(383,280,"for tesing that we create"); outtextxy(383,300,"upside down be the right state"); outtextxy(383,320,"unstable as a erected plate"); outtextxy(383,340,"tame while it was rightly paid "); outtextxy(383,360,"plenty of contributions it made")
43、; outtextxy(383,380,"yet possessing an endless fate"); outtextxy(383,400,"serve as a passway or a gate"); outtextxy(383,420,"and leave no place for the hate"); setlinestyle(0,0,3);void dazh(float x)/*-5<=x<=5*/*注意这里如果x是-1到1之间那输出的控制信号就被放大了5倍*/ int lo=0,hi=0,newlo=0
44、,newhi=0; x=(x/5+1)/2*0xfff0; /*printf("偏移二进制码:%fn",(unsigned int)x);*/ lo=(unsigned int)(x)%256; hi=(unsigned int)x-lo)/256; /*printf("高八位:%xn",(unsigned int)hi); printf("低八位:%xn",(unsigned int)lo);*/ newhi=(int)(hi)%16*16+(unsigned int)hi/16; /*printf("换后高八位:%xn&
45、quot;,(unsigned int)newhi);*/ outportb(0x314,newhi); newlo=(unsigned int)(lo)%16*16+(unsigned int)(lo)/16; /*printf("换后低八位:%xn",(unsigned int)newlo);*/ outportb(0x315,newlo); inportb(0x315);/*/float adzh(int a) int i=0,p=0,q=0,r=0; float ad=0,r1=0,v=0; /*outportb(0x31b,0x18);*/ outportb(0x
46、310,a); for(i=0;i<10000;i+); outportb(0x311,0x0); for(i=0;i<10000;i+); p=inportb(0x312)%16; q=inportb(0x313); r1=p*256+q; /*ad=r1/0x800-1; */ v=r1*20.0/4096-10;/*控制器输入为电压,所以ad得到的需要是电压值*/ /*v=(int)(v*100)%1000; v=v/100; */ /*printf("浮点数:%fn",ad); printf("电压值:%fn",v);*/ retur
47、n v;void interrupt myint() setcolor(BLACK); setlinestyle(0,0,2); cx=510+x1*200/90/2; cx2=cx+60*sin(c); cy2=180-60*cos(c); rectangle(cx-4,174,cx+4,180); circle(cx2,cy2,5); setlinestyle(0,0,3); line(cx,177,cx2,cy2); zx1=zx1+1; /*输入信号*/ if(zx1>1000) ri=0.1; adzh(13);adzh(13);adzh(13);adzh(13);adzh(13); x1=(adzh(13)/4.8) ; /*位移*/ adzh(5);adzh(5);adzh(5); x2=(adzh(5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025旅游度假优惠协议:豪华民宿入住合同
- 2025年农业秸秆综合利用与环保种植技术实施合同
- 2025年专业亚马逊FBA仓储配送全程托管服务合同
- 2025知名主播与时尚品牌联合开展电商直播营销合同
- 2025年信用卡积分兑换与账单深度优化管理服务协议
- 2025年度个人农业机械购置专项贷款担保协议样本
- 2025年度债权与股权并行转让的地产开发合作框架合同
- 2025跨境金融服务外包合作合同参考范本
- 2025年文化艺术展馆环境清洁与展览设计制作服务协议
- 2025年度品牌形象店线上线下融合服务合作协议
- 人教版七年级上册英语UNIT 4 My Favourite Subject单元测试卷
- 光明乳销售合同范本
- 2022年学习贯彻党的二十次大会精神知识竞赛选择题含答案
- (正式版)JTT 1497-2024 公路桥梁塔柱施工平台及通道安全技术要求
- ISO15614-1 2017 金属材料焊接工艺规程及评定(中文版)
- 软件系统数据库设计说明书(模板)
- 高一1班班会-心存敬畏-行有所止
- 临床医疗输送人员管理规范
- RB/T 089-2022绿色供应链管理体系要求及使用指南
- 黑龙江省鸡西煤炭矿区总体规划环境影响报告书
- MT 189-1988矿用隔爆型检漏继电器
评论
0/150
提交评论