自控原理实验指导书
固高倒立摆实时控制工具箱
固高倒立摆系统工具箱软件包括板卡相关功能函数、简单的例子、直线型单级倒立 摆以及二级倒立摆的实时控制示例程序几个部分。用户可以根据说明自己设计更新的算法, 或者将之移植到环型倒立摆系统上。实时控制示例程序包括一级倒立摆LQR算法、极点配置算法、PID控制、根轨迹法、频域设计法五种以及二级倒立摆LQR算法。 注意:因为Windows 2000是多任务的操作系统,为了保证倒立摆系统控制输出的实时性,请在运行实控程序前关闭其余的应用程序,并且在运行过程中禁止启动其它的应用程序。
实验步骤如下:
1. 检查电源线、数据线正确安装关闭电控箱电源。将小车放在导轨中间。
2.保证倒立摆杆垂直向下稳定。 3. 打开电控箱开关,接通电源。 4. 打开示例程序,设置正确地控
制参数,开始实控。 5. 用手将倒立摆杆柔和地扶起,
当电机启动后,手轻轻放开。 6. 对于经典控制理论设计的控
制算法,只能保证倒立摆杆
平衡,不能控制小车的位置。实验时需手动保证小车不要“撞墙”。 7. 实验结束,关闭程序,关闭电控箱。
下面以直线型一级倒立摆LQR 算法实时控制示例程序为例子,介绍倒立摆系统实时控制工具箱的应用及使用方法。
首先在Windows 2000操作系统环境下启动MATLAB应用程序,在Command Windows窗口中键入SIMULINK命令,启动成功安装倒立摆系统控制软Toolbox”模块库,单击模块库,在右边窗口中模块库展开包括示例程序五个(红色)两个简单的例子两个(绿色)。,封装的S-Function模块十个(蓝色)(图4-6所示)。封装的S-Function主要是运动控制板卡的功能函数的封装,如果不是对于C语言和MATLAB的CMEX功能不是很熟悉,建议用户不要修改,
29
自控原理实验指导书
并且不要修改相应的头文件和c语言源代码。
双击“Single Pendulum LQR Control Demos”模块,仿真程序如下:
仿真模块包括“Pendulum Initializaion”,”Enable Real Control at Each Step”以及”Start Real Pendulum Control “三个主要的部分。其中“Enable Real Control at Each Step “主要是设定控制时钟,使板卡控制输出使能。”Pendulum Initialization“部分是运动控制板卡的初始化,其模块结构如下:
双击蓝色 S—Function 模块,可以获得该模块的功能说明。 通过“Profile Mode
Constant”模块可选择板卡的控制模式,默认为速度控制模式。关 于板卡的工作模式的意义及初始化设定过程,请参见相关板卡的说明书。
实时控制示例程序最主要的部分是”Start Real Pendulum Control“,其结构如图4-9所示。
30
自控原理实验指导书
在数据采集和电机控制输出中使用了通过S—Function封装好的板卡相关功能函数。算法控制部分包括控制逻辑判断,控制算法等。其中的速度量通过延时环节差分得到:
实时控制输出模块为“Real Control”,其内部结构如下图所示。
该模块通过逻辑判断触发“Action Port”,将控制算法的结果包括理论运算的的速度和 加速度输出到板卡。关于运动控制板卡的速度工作模式下功能调用请参见相关说明书。
控制算法模块将得到的系统输入运用控制理论的相关算法得出理论的系统输出,对于LQR控制器,其算法为:
OutPut= Pos* Kx+PosDot*Kx’+Angle*Ka+AngDot*Ka’
双击“LQR Controller”,设置控制器参数如下:
其值为[kx Kx’ Ka Ka’]=[-10 -5 50 5]
点击“确定”按钮,使所设控制器参数生效。然后点击菜单条上“SIMULINK”菜单中的“Start”菜单。或者直接按“Ctrl-T”,系统开始进行实时控制。
其它的示例程序全部类似。
31