自动控制理论课程设计直线一级倒立摆控制器设计_第1页
自动控制理论课程设计直线一级倒立摆控制器设计_第2页
自动控制理论课程设计直线一级倒立摆控制器设计_第3页
自动控制理论课程设计直线一级倒立摆控制器设计_第4页
自动控制理论课程设计直线一级倒立摆控制器设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计说明书(论文)课程名称: 自动控制理论 设计题目: 直线一级倒立摆控制器 院 系: 电气工程系 课程设计任务书 课程设计题目:直线一级倒立摆控制器设计 已知技术参数和设计要求: 本课程设计的被控对象采用固高公司的直线一级倒立摆系统gip-100-l。系统内部各相关参数为:m小车质量 0.5 kg ;摆杆质量0.2 kg ;b小车摩擦系数0.1 n/m/sec ; 摆杆转动轴心到杆质心的长度0.3 m ;mli摆杆惯量0.006 kg*m*m ;t采样时间0.005秒。设计要求:1推导出系统的传递函数和状态空间方程。用matlab进行阶跃输入仿真,验证控制对象的稳定性。2采用传统的时域或

2、频域设计方法设计pid控制器,并给出设计步骤,使得当在小车上施加0.1n的脉冲信号时,闭环系统的响应指标为:(1)稳定时间小于5秒;(2)稳态时摆杆与垂直方向的夹角变化小于0.1 弧度。3设计状态空间极点配置控制器,使得当在小车上施加0.2m的阶跃信号时,闭环系统的响应指标为:(1)摆杆角度q和小车位移x的稳定时间小于3秒(2)x的上升时间小于1秒(3)q的超调量小于20度(0.35弧度)(4)稳态误差小于2%。工作量:1. 建立直线一级倒立摆的线性化数学模型;2. 倒立摆系统的pid控制器设计、matlab仿真及实物调试;3. 倒立摆系统的极点配置控制器设计、matlab仿真及实物调试。 工

3、作计划安排:第3周:(1)建立直线一级倒立摆的线性化数学模型;(2)倒立摆系统的pid控制器设计、matlab仿真;(3)倒立摆系统的极点配置控制器设计、matlab仿真。第4周:实物调试;撰写课程设计论文。同组设计者及分工:各项工作独立完成 指导教师签字_ 年 月 日 教研室主任意见: 教研室主任签字_ 年 月 日*注:此任务书由课程设计指导教师填写。目录1前言52倒立摆控制理论研究现状62.1经典控制理论的方法62.2现代控制理论的方法62.3智能控制理论的方法62.4用模糊控制理论控制倒立摆72.5用神经网络控制理论控制倒立摆72.6模糊控制与神经网络控制相结合控制倒立摆72.7神经网络

4、与遗传算法结合控制倒立摆72.8神经网络与预测控制算法相结合控制倒立摆72.9用拟人智能控制的方法控制倒立摆82.10用云模型控制倒立摆83直线一级倒立摆系统介绍94固高倒立摆系统试验平台介绍105直线一级倒立摆的建模分析135.1直线一级倒立摆的状态方程的建立135.2直线一级倒立摆系统的性能分析156直线一级倒立摆的控制166.1一阶直线倒立摆的pid控制166.2一阶直线倒立摆的极点配置法196.3一阶直线倒立摆的线性最优控制237总结288参考文献291 前言在控制理论发展的过程中,某一理论的正确性及实际应用中的可行性需要一个按其理论设计的控制器去控制一个典型对象来验证。倒立摆就是这样

5、一个被控制对象倒立摆系统是一个多变量、快速、非线性和自然不稳定系统。在控制过程中能有效地反映控制中的许多关键问题,如非线性问题系统的鲁棒性问题,随动问题镇定问题,及跟踪问题等。倒立摆系统作为一个实验装置形象直观结构简单,构件组成参数和形状易于改变,成本低廉,倒立摆系统的控制效果可以通过其稳定性直观地体现,也可以通过摆杆角度小车位移和稳定时间直接度量,其实验效果直观显著,当新的控制理论与方法出现后,可以用倒立摆对其正确性和实用性加以物理验证,并对各种方法进行快捷有效生动的比较。早在60 年代人们就开始了对倒立摆系统的研究1966 年schaefer 和cannon 应用bang bang控制理论

6、将一个曲轴稳定于倒置位置在60 年代后期作为一个典型的不稳定严重非线性证例提出了倒立摆的概念并用其检验控制方法对不稳定非线性和快速性系统的控制能力受到世界各国许多科学家的重视从而用不同的控制方法控制不同类型的倒立摆成为具有挑战性的课题之一倒立摆的种类很多有悬挂式倒立摆平行倒立摆环形倒立摆平面倒立摆倒立摆的级数可以是一级二级三级四级乃至多级倒立摆的运动轨道可以是水平的还可以是倾斜的(这对实际机器人的步行稳定控制研究更有意义) 控制电机可以是单电机也可以是多级电机。倒立摆的研究具有重要的工程背景:(1) 机器人的站立与行走类似双倒立摆系统尽管第一台机器人在美国问世至今已有三十年的历史机器人的关键技

7、术机器人的行走控制至今仍未能很好解决;(2) 在火箭等飞行器的飞行过程中为了保持其正确的姿态要不断进行实时控制;(3) 通信卫星在预先计算好的轨道和确定的位置上运行的同时要保持其稳定的姿态使卫星天线一直指向地球使它的太阳能电池板一直指向太阳;(4) 侦察卫星中摄像机的轻微抖动会对摄像的图像质量产生很大的影响为了提高摄像的质量必须能自动地保持伺服云台的稳定消除震动;(5) 为防止单级火箭在拐弯时断裂而诞生的柔性火箭(多级火箭) 其飞行姿态的控制也可以用多级倒立摆系统进行研究。由于倒立摆系统与双足机器人火箭飞行控制和各类伺服云台稳定有很大相似性因此对倒立摆控制机理的研究具有重要的理论和实践意义。2

8、 倒立摆控制理论研究现状对倒立摆这样的一个典型被控对象进行研究无论在理论上和方法上都具有重要意义不仅由于其级数增加而产生的控制难度是对人类控制能力的有力挑战更重要的是实现其控制稳定的过程中不断发现新的控制方法探索新的控制理论并进而将新的控制方法应用到更广泛的受控对象中各种控制理论和方法都可以在这里得以充分实践并且可以促成相互间的有机结合当前倒立摆的控制方法可分为以下几类:2.1 经典控制理论的方法一级倒立摆系统的控制对象是一个单输入两输出的非最小相位系统,它提供了用经典控制理论解决单输入多输出系统的控制方法。根据对系统的力学分析,应用牛顿第二定律,建立倒立摆非线性的运动方程,并进行线性化,拉氏

9、变换,得出传递函数,从而得到零、极点分布情况,根据使闭环系统能稳定工作的思想设计控制器。为此,需引入适当的反馈,使闭环系统特征方程的根都位于左平面上。用经典控制理论的频域法设计非最小相位系统的控制器并不需要十分精确的对象数学模型,因为只要控制器使系统具有充分大的相位裕量,就能获得系统参数很宽范围内的稳定性。但是,由于经典控制理论本身的局限性,它只能用来控制一级倒立摆,对于复杂的二级、三级倒立摆却无能为力。2.2 现代控制理论的方法用现代控制理论控制倒立摆的平衡,主要是用h 状态反馈来实现的。h 状态反馈控制是通过对倒立摆物理模型的分析,建立倒立摆的数学模型,再用状态空间理论推出状态方程,然后利

10、用h 状态反馈和kalman滤波相结合的方法,实现对倒立摆的控制。而文献4中采用三种状态反馈的方法来设计倒立摆的控制器,即极点配置调节器的方法、lqr最优调节器的方法和lqy最优调节器的方法,并对其实验结果进行了比较,结果表明,三种方法来控制一级倒立摆都是有效的。现代控制理论的方法控制倒立摆,不仅对一级倒立摆可以成功地控制,二级倒立摆的控制效果也不错。2.3 智能控制理论的方法由于倒立摆是一个多变量、非线性、不稳定、强藕合的复杂系统,尽管理论上的一级、二级倒立摆数学模型已经推导出来,但其数学模型很难精确地反应实际系统,所以用经典控制理论和现代控制理论的方法控制倒立摆都不是特别理想,国内外学者对

11、倒立摆的研究集中在智能控制领域。2.4 用模糊控制理论控制倒立摆用模糊控制理论控制倒立摆是智能控制算法中研究最多的一种。大量的实验表明,用模糊控制的方法控制一级、二级倒立摆是非常成功的。模糊控制是采用模糊化、模糊推理、解模糊等运算的模糊控制方法,其主要工作是模糊控制器的设计。2.5 用神经网络控制理论控制倒立摆业已证明,神经网络(neural network, nn)能够任意充分地逼近复杂的非线性关系,nn能够学习与适应严重不确定性系统的动态特性,所有定量与定性的信息都等势分布存贮于网络内的各种神经元,故有很强的鲁棒性和容错性。用神经网络方法来实现倒立摆的平衡控制,迄今已经取得了不少成果。2.

12、6 模糊控制与神经网络控制相结合控制倒立摆模糊神经网络控制器控制倒立摆,主要是利用网络的自学习功能,不断修正模糊神经网络控制器的隶属函数和权值,实现模糊控制规则的自动更新,从而解决了模糊控制的自学习、自调整问题,提高了控制精度。2.7 神经网络与遗传算法结合控制倒立摆基于遗传算法学习的神经网络方法在控制倒立摆,以神经网络为基础,用遗传算法来学习神经网络的权系数,既保留了遗传算法的强全局随机搜索能力,又具有神经网络的鲁棒性和自学习能力,能够取得较好的控制效果。2.8 神经网络与预测控制算法相结合控制倒立摆预测控制是工业过程控制领域发展起来的一种计算机控制算法。该算法不基于对象的精确的数学模型,而

13、是建立在对象非参数模型基础上,既具有优化功能又引入了系统的反馈信息。基于神经网络模型的预测控制算法用于倒立摆的平衡控制,首先用前向神经网络描述对象的输入输出关系,根据此关系可计算预测出系统在未来某时刻的输出值,从而得到未来某时刻系统的误差,根据此误差确定系统的目标函数,然后设计在线的优化算法实时解决下一时刻的控制量。2.9 用拟人智能控制的方法控制倒立摆拟人智能控制的核心是“广义归约”和“拟人”。“归约”是人工智能中的一种问题求解方法。这种方法是将待求解的复杂问题分解成复杂程度较低的若干问题集合,再将这些集合分解成更简单问题的集合,依此类推,最终得到一个本原问题集合,即可以直接求解的问题。另一

14、核心概念是“拟人”,其含义是直接利用人的控制经验直觉以及推理分析形成控制规律。2.10 用云模型控制倒立摆用云模型构成语言值,用语言值构成规则,形成一种定性的推理机制。这种方法不要求给出对象的精确的数学模型,而仅依据人的经验、感受和逻辑判断,将人用自然语言表达的控制经验,通过语言原子和云模型转换到语言控制规则器中,就能解决非线性问题和不确定性问题。3 直线一级倒立摆系统介绍倒立摆作为一种自动控制教学实验设备,能够全面地满足自动控制教学的要求。许多抽象的控制概念如系统稳定性、可控性、系统收敛速度和系统抗干扰能力等,都可以通过倒立摆直观的表现出来。倒立摆的控制技巧,极富趣味性,很适合学习自动控制课

15、程的学生使用它来验证所学的控制理论和算法,加深对所学课程的理解。基于dsp的旋转式倒立摆系统的最大特点是机械结构简单、可编程,成本低廉、体积小,是高等院校理想的自动控制教学的实验设备。直线倒立摆系统 如图1所示,它由四个部分组成:倒立摆、小车、轨道和电机。小车受电机的操纵,可以自由地在限定的轨道上左右移动,轨道有水平轨道和倾斜轨道两种。倒立摆一端通过铰链连在小车顶部,可以在一个平面内自由摆动。对电机的控制是通过控制电压使在水平方向产生控制力。在倒立摆的另一端再铰链摆杆2、摆杆3、摆杆4,即可构成二级、三级、四级倒立摆。控制目的是:小车和摆组成的系统在受到干扰后,小车处于轨道的中心位置,摆杆保持

16、垂直位置。图3- 14 固高倒立摆系统试验平台介绍固高科技有限公司开发的直线运动倒立摆系列产品采用开放的控制解决方案和模块化的实验平台,以直线运动模块为基础平台,可以轻松的构建10多种控制教学实验平台,全方位满足控制教学和研究的需要。在自动控制领域中,倒立摆仿真或实物控制实验,已成为检验一个新的控制理论是否有效的试金石,同时也是产生一个新的控制方法必须依据的基础实验平台。为全方位满足控制教学和研究的需要,固高科技采用开放的控制解决方案和工业化、模块化的机械结构研发出了一系列倒立摆实验设备。图4- 1非常好的用户开放功能,用户可以根据自己设计实现其他控制方法。图4- 2系统物理模型和参数图4-

17、3图4- 4表4-1:直线一级倒立摆的参数符号,数值和含义符号数值意义m1.096 kg小车质量m0.109 kg摆杆质量b0 .1n/m/sec小车摩擦系数l0.2 5m摆杆转动轴心到杆质心长度i0.0034 kgm2摆杆惯量f加在小车上的力x小车位置摆杆与垂直向上方向的夹角摆杆与垂直向下方向的夹角(摆杆初始位置为竖直向下)5 直线一级倒立摆的建模分析倒立摆建模的方法一般有两种,牛顿力学和拉格朗日法。牛顿力学主要采用受力分析的原理,二拉格朗日主要是通过对能量含输球偏导得到系统的空间状态方程。下面我们用牛顿法对一阶倒立摆进行建模分析,用拉格朗日法对二阶直线倒立摆进行建模分析。并且对其状态方程进

18、行稳定性,可观性,可控性进行分析判断,为后面采取不同的控制方法做好准备工作。5.1 直线一级倒立摆的状态方程的建立图5- 1图5- 2忽略掉一些次要因素后,倒立摆系统就是一个典型的运动刚体系统,可以在惯性坐标系内应用经典力学理论建立系统的动力学方程,对倒立摆系统进行机理建模。在忽略了空气阻力, 各种摩擦之后, 可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统f的作用下,小车及摆均产生加速运动,根据牛顿第二定律,在水平直线运动方向的惯性力与f平衡和绕摆轴旋转运动的惯性力矩应与重力力矩平衡,我们可以得到下面运动方程: (5-1)设,进行近似处理:,。用u来代表被控对象的输入力f,对式(5-1)进

19、行线性化后得到下面两个运动方程: (5-2)整理后得系统的状态方程如下: (5-3)其中:, 带入固高系统固件的相关参数,可化简为:5.2 直线一级倒立摆系统的性能分析1) 稳定性系统的稳定性由系统矩阵a的特征值是否均具有负实部来判断。令,系统的开环特征值(0,-0.7412, 0.32640.2352i),即系统不稳定。2) 能控性系统能控的充要条件是:ranka,ab,an-1b等于矩阵a的维数ranka,ab,an-1b=ranka =4 即,系统能控。3) 能观性系统能观的充要条件是:rankc,ca,can-1-t等于矩阵a的维数rankc,ca,can-1-t=ranka=4 即,

20、系统能观。经过如上分析可知,直线一级倒立摆是能控能观的不稳定系统。6 直线一级倒立摆的控制6.1 一阶直线倒立摆的pid控制pid控制的原理是通过反馈回路,对偏差e(t) 进行比例、积分、微分运算,运算的和决定控制器的输出,其数学表达式为:其中kp、ki、kd为比例、积分、微分运算的系数。系统控制的结构框图为:图6- 1系统的开环传递函数为pid控制器的传递函数为:系统的闭环传递函数为:采用试凑法调整kp、ki、kd的值,在时域内观察闭环系统的单位阶跃响应,直至效果满意为止。在matlab中进行命令行仿真:clear;clc;m=1.096;m=0.109;b=0.1;l=0.25;i=0.0

21、034;g=9.8;q=(m+m)*(i+m*l2)-(m*l)2;a=m*l;b1=i+m*l2;b2=-m*g*l;num1=a;den1=b1,0,b2;gs1=tf(num1,den1);kp=40;ki=35;kd=10;num2=kd,kp,ki;den2=1,0;gs2=tf(num2,den2);gs3=series(gs2,gs1);gs=feedback(gs3,1)step(gs,t);plot(t,y,r)图6- 2调整pid的三个参数,在调整pid参数的过程中,得到三个参数变化对系统的影响:具体过程如下所示:kpkp越大,系统的快速性越好,但kp过大会导致系统静态偏差

22、增大。ki可消除静态误差,ki越大其静态误差越小,但过大会产生振荡。kdkd可以消除振荡,提高快速性,过大会引起静态误差。(1)当kp=20,ki=60,kd=5时:图6- 3可以发现,超调量很大,并且有振荡。(2)增大kp为40 ,减少ki为35 ,增大kd为10:图6- 4可以发现,效果比之前要好很多,继续试验并调整pid的三个参数,可以发现当kp=60;ki=35;kd=11 时系统能兼顾快速性、稳定性。其单位阶跃响应为:图6- 5注:以上并不代表真实试验顺序,因为是在不断试验中,总结出三个参数各自对试验结果的影响,况且试验次数太多,难以一一列举,故以上面例子代表实验过程。6.2 一阶直

23、线倒立摆的极点配置法由系统分析可知,系统具有不稳定的极点,可以通过自己设计,添加极点来是系统稳定。对车载倒立摆的伺服系统进行设计,实现对其的控制作用,使小车位置作为输出的闭环系统具有极点:倒立摆系统可利用极点配置方法进行设计,实际是在前向通道引入一积分器,对输出y也即小车位置进行积累作用,如图6-6所示。图6-6此时系统具有指定的性能,如本例指定的极点可使系统具有设置时间45秒,最大超调量1516。%不含积分环节的伺服系统,对小车倒立摆的控制%系统模型a=0 1 0 0;20.601 0 0 0; 0 0 0 1;-0.4905 0 0 0;b=0;-1;0;0.5;c=0 0 1 0;d=0

24、;a1=a zeros(4,1);-c 0;b1=b;0;% 系统可控性检查disp(the rank of controllability matrix)rc=rank(ctrb(a1,b1)% 设计极点p=-1+sqrt(3)*i -1-sqrt(3)*i -5 -5 -5;k=acker(a1,b1,p)% 系统阶跃响应输出待添加的隐藏文字内容3k1=k(1:4)ki=-k(5)ac=a-b*k1 b*ki;-c 0;bc=0 0 0 0 1;cc=c 0;dc=0;figure(1)v=0 5 -0.4 1.4;step(ac,bc,cc,dc)axis(v)title()xlabel

25、()ylabel( y=x3 )text(1.5,0.6,)figure(2)y,x,t=step(ac,bc,cc,dc);plot(t,x) axis(v)title(x1,x2,x3,x4,x5 )xlabel()ylabel(x1,x2,x3,x4,x5)text(1.2,0.05,x1)text(1.2,-0.33,x2)text(4.5,0.9,x3)text (2.2,0.25,x4)text(4.5,1.15,x5)the rank of controllability matrixrc = 5k = -157.6336 -35.3733 -56.0652 -36.7466 5

26、0.9684k1 = -157.6336 -35.3733 -56.0652 -36.7466ki = -50.9684simulink仿真图6- 7添加极点图6- 8图6- 9 图6- 106.3 一阶直线倒立摆的线性最优控制6.1中所述的pid控制只能控制摆杆的角度,并不能控制小车的位置,为了在控制摆杆角度的同时,同时也控制小车的位置,这需要一个单输入(小车加速度),多输出(小车位置和摆杆角度)的控制器,因为我们已经得到系统的状态方程,可以采用线性二次最优控制的方法对其进行控制。线性二次最优控制lqr 基本原理为,由系统方程: 确定下列最佳控制向量的矩阵k:u(t)=- k* x(t),使

27、得性能指标达到最小值:lqr控制的原理图为:图6- 11方程右端第二项是考虑到控制能量的损耗而引进的,矩阵q和r确定了误差和能量损耗的相对重要性。并且假设控制向量u(t)是无约束的。对线性系统:根据期望性能指标选取q和r,利用matlab 命令lqr就可以得到反馈矩阵k的值。 k=lqr( a,b,q,r)改变矩阵q 的值,可以得到不同的响应效果.lqr 控制参数调节及仿真前面我们已经得到了直线一级倒立摆系统的系统状态方程。在matlab 中得到最优控制器对应的k 。lqr 函数允许你选择两个参数r和q,这两个参数用来平衡输入量和状态量的权重。最简单的情况是假设r = 1,q=c*c。当然,也

28、可以通过改变q 矩阵中的非零元素来调节控制器以得到期望的响应。 求矩阵k输入的权重r 是1。下面来求矩阵k,matlab 语句为k = lqr(b a q r) 。下面在matlab中编程计算:clear;m = 1.096;m = 0.109;b = 0.1;i = 0.0034;g = 9.8;l = 0.2 5;p = i*(m+m)+m*m*l2;a = 0 1 0 0;0 -(i+m*l2)*b/p (m2*g*l2)/p 0;0 0 0 1;0 -(m*l*b)/p m*g*l*(m+m)/p 0;b = 0; (i+m*l2)/p; 0;m*l/p ;c = 1 0 0 0;0

29、0 1 0;d = 0;0; p = eig(a);q = x 0 0 0;0 0 0 0;0 0 y 00 0 0 0;r = 1; k = lqr(a,b,q,r)ac = (a-b*k);bc = b;cc = c;dc = d;cn = 1 0 0 0;nbar = rscale(a,b,cn,0,k);bcn = nbar*b;t = 0:0.005:5;u = 0.2*ones(size(t);y,x = lsim(ac,bcn,cc,dc,u,t);plot(t,y(:,1),:,t,y(:,2),-)legend(,)grid1.首先令x=1,y=1运行后可以得到: k =-1

30、.0000 -2.0381 30.1662 5.7548图6- 12 图6- 13其中simulink仿真图为:图6- 14q矩阵中,增加q11使稳定时间和上升时间变短,并且使摆杆的角度变化减小。但是对于实际离散控制系统,过大的空置量会引起系统振荡。7 总结倒立摆系统作为典型的非线性多变量、强耦合和快速运动的高阶不稳定统,是研究控制理论的理想实验手段,尤其是二级倒立摆系统的稳定控制,难度大、挑战性更强。本文以直线一级倒立摆为研究对象,首先叙述了倒立摆控制技术的发展及国内外的研究现状,推导了直线一级倒立摆的数学模型并对其可控性和可观性进行了分析;随后设计了一级倒立摆的pid,极点配置、最优控制等

31、方案,并用matlab对控制方案进行了仿真;根据设计在仿真软件matlab中通过在simulink工具箱中的模块选取,最终完成了控制系统的安装与调试,并在固高倒立摆试验平台上进行实际试验。然后在一阶的基础上,设计了最优控制(lqr),极点配置控制方案、整个实验过程取得了一些成果和经验并得到了一些结论。(1) 通过pid,极点配置、最优控制算法等理论,研究倒立摆的稳定控制,巩固了经典控制理论,现代控制理论和智能控制理论这一在工程实践中有着广泛应用的相当成熟的理论。(2) 通过在对干扰条件下的仿真结果和无干扰条件下的仿真结果的对比,可以看出极点配置控制、最优控制控制的优缺点,同时也可以看出本次设计控制系统的控制器具有很好的稳定性和抗干扰性。(3) 整个系统的设计过程,是对专业知识融会贯通的过程,同时也提高了对相关学科的

温馨提示

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

评论

0/150

提交评论