两轮平衡车参考例子

两轮平衡车参考例子
两轮平衡车参考例子

//两轮自平衡小车

//IDG330 Mannual, 2mv= 1度/s 的角速率,ad读数1024,3.3v,那么每读数对应3.223mV,所以每读数对应3.223/2/180*PI= 0.028123弧度/秒

static const double SEMICIRCLE_ARC = 57.29578; /*半圆对应的弧度值*/

static const double GYRO_OPERATOR = 0.028123; /*AD读取的陀螺仪数值对应的弧度算子*/

/*kalman*/

static const double C_0 = 1;

static const double Q_angle=0.001, Q_gyro=0.003, R_angle=0.5, dt=0.005;//注意:dt的取值为kalman滤波器采样时间

double P[2][2] = {{ 1, 0 },

{ 0, 1 }};

double Pdot[4] ={ 0,0,0,0};

double q_bias, angle_err, PCt_0, PCt_1, E, K_0, K_1, t_0, t_1;

double angle, angle_dot;

/*sensor*/

double sensorPort[6] = { 0, 1, 2, 3, 4, 5};/*传感器地址,电路决定.accZ,gyroX, AD1, AD2, AD3, AD4*/

double sensorValue[6];/*传感器的返回值*/

/*传感器零点0:Z轴(平行轴) 1:陀螺仪中点*/

double sensorZero[2] = {499,505};

double sensorAdjusted[2];/*传感器的返回值重整*/

//double provAngle;

/*moto*/

int E1 = 6;

int E2 = 9;

int M1 = 7;

int M2 = 8;

double deadAreaCompensation1 = 45,deadAreaCompensation2 = 35;

/*balance*/

double RATE[4] = { 0,0,0,0};/*公式中的4个变量*/

double K[4] = { 60.45, 1.27, 125, 0.75};/*公式中的4个常量*/

double K_AD[4] = { 1, 1, 1, 1};/*公式中的4个常量*/

double wheel_ls[7];/*左轮:0:编码器1:位移(position) 2:position_dot 3:position_dot_filter 4:speedNeed 5:turnNeed 6:speedOutPut */

double wheel_rs[7];/*右轮:0:编码器1:位移(position) 2:position_dot 3:position_dot_filter 4:speedNeed 5:turnNeed 6:speedOutPut */

double Torque;/*扭矩*/

unsigned int count,count2;

boolean OK=false;//这个是误差达到一定程度后的系统关闭开关. int bf,X,Y;//从无线端发来的命令

/*kalman*/

/*angle_m:经过atan2(ax,ay)方法计算的偏角,弧度值

gyro_m:经过初步减去零点的陀螺仪角速度值,弧度值

*/

void Kalman_Filter(double angle_m,double gyro_m)

{

angle+=(gyro_m-q_bias) * dt;

angle_err = angle_m - angle;

Pdot[0]=Q_angle - P[0][1] - P[1][0];

Pdot[1]=- P[1][1];

Pdot[2]=- P[1][1];

Pdot[3]=Q_gyro;

P[0][0] += Pdot[0] * dt;

P[0][1] += Pdot[1] * dt;

P[1][0] += Pdot[2] * dt;

P[1][1] += Pdot[3] * dt;

PCt_0 = C_0 * P[0][0];

PCt_1 = C_0 * P[1][0];

E = R_angle + C_0 * PCt_0;

K_0 = PCt_0 / E;

K_1 = PCt_1 / E;

t_0 = PCt_0;

t_1 = C_0 * P[0][1];

P[0][0] -= K_0 * t_0;

P[0][1] -= K_0 * t_1;

P[1][0] -= K_1 * t_0;

P[1][1] -= K_1 * t_1;

angle += K_0 * angle_err;

q_bias += K_1 * angle_err;

angle_dot = gyro_m-q_bias;//也许应该用last_angle-angle

}

void do_balance() {

sensorValue[0] = analogRead(sensorPort[0]);//Z轴加速度sensorValue[1] = analogRead(sensorPort[1]);//X轴旋转(陀螺) sensorValue[2] = analogRead(sensorPort[2]);//旋钮1 sensorValue[3] = analogRead(sensorPort[3]);//旋钮2 sensorValue[4] = analogRead(sensorPort[4]);//旋钮3 sensorValue[5] = analogRead(sensorPort[5]);//旋钮4

//算出整理过的零点值

sensorAdjusted[0] = sensorValue[0] - sensorZero[0];

if(abs(sensorAdjusted[0]) > 70)//如果倾斜到一定程度,就停机

{

OK = false;

sensorAdjusted[0] =sensorAdjusted[0]>0, 70,-70;

}

sensorAdjusted[1] = sensorZero[1] - sensorValue[1];/*减去初始零点*/

/*根据可变电阻改变K的倍数*/

//deadAreaCompensation = (sensorValue[4]+1)/10.24;

//K_AD[0] = (sensorValue[2]+1)/256;//102.4;/*值在0.001~10之间变化.在AD=100的时候接近1 */

//K_AD[1] = (sensorValue[3]+1)/256;//102.4;

//K_AD[2] = (sensorValue[4]+1)/256;//102.4;

//K_AD[3] = (sensorValue[5]+1)/256;//102.4;

/*根据上一周期Torqu的值统计轮子转动积分*/

wheel_ls[2] = Torque > 0, wheel_ls[0],-wheel_ls[0];

wheel_rs[2] = Torque > 0, wheel_rs[0],-wheel_rs[0];

wheel_ls[0] = wheel_rs[0] = 0;

/*************** balance *********************************************/

/*小车初始状态*/

{

if(!OK)

{

if(abs(sensorAdjusted[0]) <= 3)//小车被推倒平衡位置后才启动电机

{

count=0;

OK = true;

}

for(int i = 0; i <7;i++)

{

wheel_ls[i] = 0;

wheel_rs[i] = 0;

}

}

}

/*balance*/

{

/*GYRO_OPERATOR = 0.028123 AD读取的陀螺仪数值对应的弧度算子*/

Kalman_Filter(atan2(sensorAdjusted[0], sqrt(10000-sensorAdjusted[0]*sensorAdjusted[0])), sensorAdjusted[1] * GYRO_OPERATOR);//10000:因为只有一轴加速度计,所以虚拟一个斜边

RATE[0] = angle * SEMICIRCLE_ARC;//SEMICIRCLE_ARC=57.29578; /*半圆对应的弧度值*/ RATE[1] = angle_dot * SEMICIRCLE_ARC;

}

/*计算速度double wheel_ls[8]; 0:编码器累加1:位移(position) 2:position_dot 3:速度(position_dot_filter) 4:speedNeed 5:turnNeed 6:speedOutPut

*/

{

wheel_ls[3] *= 0.95; /*车轮速度滤波,wheel_ls[3] : position_dot_filter*/

wheel_ls[3] += wheel_ls[2]*0.05; /*wheel_ls[2] : position_dot*/

wheel_ls[1] += wheel_ls[3]; /*wheel_ls[1] : position*/

wheel_ls[1] += wheel_ls[4]; /*wheel_ls[4] : speedNeed*/

wheel_ls[1] = max(-50, wheel_ls[1]);

wheel_ls[1] = min(50, wheel_ls[1]);

RATE[2] = wheel_ls[3];//速度--滤波过了

RATE[3] = wheel_ls[1];//位置

}

/*Torque 综合所有参数算出扭矩*/

{

Torque = RATE[0] * K[0] * K_AD[0] + RATE[1] * K[1] * K_AD[1] + RATE[2] * K[2] * K_AD[2] + RATE[3] * K[3]* K_AD[3];

//根据扭矩算轮子的命令值

wheel_ls[6] = abs(Torque)+ deadAreaCompensation1;//wheel_ls[6]:扭矩输出deadAreaCompensation1:左轮的死区补偿

wheel_ls[6] = min(255, wheel_ls[6]);//限制最大扭矩255

wheel_ls[6] = OK, wheel_ls[6],0;

wheel_rs[6] = abs(Torque)+ deadAreaCompensation2;

wheel_rs[6] = min(255, wheel_rs[6]);

wheel_rs[6] = OK, wheel_rs[6],0;

}

if(Torque > 0)

{

digitalWrite(M2, HIGH);

digitalWrite(M1, LOW);

}

else

{

digitalWrite(M2, LOW);

digitalWrite(M1, HIGH);

}

analogWrite(E1, wheel_ls[6]); //PWM调速a==0-255 analogWrite(E2, wheel_rs[6]);

}

void do_msg(){

if(count%100==0)

{

Serial.print("$CLEAR\r\n");

Serial.print("$GO 1 1\r\n");

Serial.print("$PRINT ");

Serial.print(wheel_ls[1]);

Serial.print(" ");

Serial.print(wheel_ls[3]);

//Serial.print(" ");

//Serial.print(RATE[2]);

//Serial.print(K[0]*K_AD[0]);

//Serial.print(" ");

//Serial.print(K[1]*K_AD[1]);

//Serial.print(" ");

Serial.print("\r\n");

Serial.print("$GO 2 1\r\n");

Serial.print("$PRINT ");

//Serial.print(K[0]*K_AD[0]);

//Serial.print(" ");

//Serial.print(K[1]*K_AD[1]);

//Serial.print(" ");

//Serial.print(K[2]*K_AD[2]);

//Serial.print(" ");

//Serial.print(K[3]*K_AD[3]);

//Serial.print(count);

Serial.print(wheel_ls[5]);

Serial.print(" ");

Serial.print(wheel_rs[5]);

//Serial.print(count);

//Serial.print(Torque);

Serial.print("\r\n");

}

}

/***************** setup-loop *************************************************/ void setup() {

count=0;

X=Y=8;

bf=-1;

//init motos

for (int i = 6; i <= 9; i++) {

pinMode(i, OUTPUT);

}

Serial.begin(9600);//115200);

analogReference(EXTERNAL); //设置模拟输入为外部参考3.3V

attachInterrupt(0, blinkone, CHANGE); //设置为0号中断,中断函数blink,触发方式为RISING attachInterrupt(1, blinktwo, CHANGE); //设置为0号中断,中断函数blink,触发方式为RISING }

void blinkone()//中断函数

{

wheel_ls[0] ++;

}

void blinktwo()//中断函数

{

wheel_rs[0] ++;

}

void loop() {

do_balance();//计算平衡

do_msg();

delay(3);

count++;

if(count>=60000)

count=0;

}

两轮自平衡车

两轮自平衡送餐车 【摘要】:本项目为“两轮自平衡车送餐机器人”系统的研究与实现,从加速度计和陀螺仪传感器得出的角度。运用卡尔曼滤波优化,补偿陀螺仪的漂移误差和加速度计的动态误差,得到更优的倾角近似值。根据PID控制调节参数,实现两轮直立行走。通过电磁传感器对电磁线的检测和GPS模块精确定位,实现了平衡车的自动送餐功能。 【关键字】:加速度计陀螺仪卡尔曼滤波PID控制调节电磁传感器GPS模块 【Abstract】:This is a project of "research and Realization of a two wheeled self balancing robot car room" system, from the accelerometer and gyro sensor of angle. Using the Calman filter optimization, the dynamic error of gyroscope drift error and acceleration compensation plan, to get better approximations angle. According to the PID control parameters, achieve two upright. Through the detection and accurate positioning of GPS module electromagnetic sensors on the magnet wire, the balance of the car automatic room function. 【Keyword】:saccelerometer gyroscope Calman filtering PID control electromagnetic sensor GPS module

两轮平衡车说明书

双轮自平衡车 学校:德州学院 学生:唐文涛焦方磊李尧 指导老师:孟俊焕 时间:二О一四年7 月10日~10 月 6 日共12 周

中文摘要 两轮自平衡车是动态平衡机器人的一种。2008年我国奥运会的时候安全保卫工作使用过它,到今年两轮平衡车已经发展的相对成熟。在国家节能、降耗、环保、低碳、经济的方针政策下,两轮平衡车进行了资源整合、技术升级,在原来的两轮单轴式自平衡的基础上采取两轴双轮可折叠设计,两轮自平衡车具有运动灵活、智能控制、操作简单、驾驶姿势多样、节省能源、绿色环保、转弯半径为0等优点。适用于在狭小空间内运行,能够在大型购物中心、国际性会议或展览场所、体育场馆、办公大楼、大型公园及广场、生态旅游风景区、大学校园、城市中的生活住宅小区等各种室内或室外场合中作为人们的中、短距离代步工具。也是集娱乐、代步、炫酷为一体的,主打形象是汽车伴侣解决停车后几公里内的代步问题。 两轮自平衡车主要由驱动电机、锂电池组、车轮、车身等组成。其工作原理:车体内置的精密固态陀螺仪来判断车身所处的姿势状态,透过精密且高速的中央微处理器计算出适当的指令后,驱动马达来做到平衡的效果。 关键词:陀螺仪,动态稳定,折叠,驱动系统,平衡。 English abstract Two rounds of self-balancing vehicle is one of the dynamic balance of the robot. In 2008 the Olympic Games security work used it in our country, in the year to balance two rounds of car has developed relatively mature. In the national energy saving, consumption reduction, environmental protection, low carbon, economic policies and regulations, the two rounds of balance of resource integration, technology upgrades, in the original two rounds of single shaft type taken on the basis of self balancing two shaft double folding design, two rounds of self-balancing vehicle movement, flexible, intelligent control, simple operation and driving posture diversity, save energy, green environmental protection, the advantages of turning radius of 0. Apply to run in narrow space, can in a large shopping center, the international conference and exhibition venues, sports venues, office buildings, large parks and square, ecological tourism scenic spot, the university campus, city life in residential quarters and other indoor or outdoor situations as the medium and short distance transport of people. Is entertainment, walking, cool as a whole, the main image is car partner solve the problem of parking within a few kilometers after walking. Two rounds of self-balancing vehicle is mainly composed of drive motor, lithium battery pack, wheel, body, etc. Its working principle: the body's built-in precision solid-state gyroscope to judge the body's position, through sophisticated and high-speed central microprocessor

两轮自平衡小车控制系统的设计

两轮自平衡小车控制系统的设计 摘要:介绍了两轮自平衡小车控制系统的设计与实现,系统以飞思卡尔公司的16位微控制器MC9S12XS128MAL作为核心控制单元,利用加速度传感器MMA7361测量重力加速度的分量,即小车的实时倾角,以及利用陀螺仪ENC-03MB测量小车的实时角速度,并利用光电编码器采集小车的前进速度,实现了小车的平衡和速度控制。在小车可以保持两轮自平衡前提下,采用摄像头CCD-TSL1401作为路径识别传感器,实时采集赛道信息,并通过左右轮差速控制转弯,使小车始终沿着赛道中线运行。实验表明,该控制系统能较好地控制小车平衡快速地跟随跑道运行,具有一定的实用性。 关键词:控制;自平衡;实时性 近年来,随着经济的不断发展和城市人口的日益增长,城市交通阻塞以及耗能、污染问题成为了一个困扰人们的心病。新型交通工具的诞生显得尤为重要,两轮自平衡小车应运而生,其以行走灵活、便利、节能等特点得到了很大的发展。但是,昂贵的成本还是令人望而止步,成为它暂时无法广泛推广的一个重要原因。因此,开展对两轮自平衡车的深入研究,不仅对改善平衡车的性价比有着重要意义,同时也对提高我国在该领域的科研水平、扩展机器人的应用背景等具有重要的理论及现实意义。全国大学生飞思卡尔智能车竞赛与时俱进,第七届电磁组小车首次采用了两轮小车,模拟两轮自平衡电动智能车的运行机理。在此基础上,第八届光电组小车再次采用两轮小车作为控制系统的载体。小车设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械及能源等多个学科的知识。 1 小车控制系统总体方案 小车以16位单片机MC9S12XS128MAL作为中央控制单元,用陀螺仪和加速度传感器分别检测小车的加速度和倾斜角度[1],以线性CCD采集小车行走时的赛道信息,最终通过三者的数据融合,作为直流电机的输入量,从而驱动直流电机的差速运转,实现小车的自动循轨功能。同时,为了更方便、及时地观察小车行走时数据的变化,并且对数据作出正确的处理,本系统调试时需要无线模块和上位机的配合。小车控制系统总体架构。 2 小车控制系统自平衡原理 两轮小车能够实现自平衡功能,并且在受到一定外力的干扰下,仍能保持直立状态,是小车可以沿着赛道自动循线行走的先决条件。为了更好地控制小车的行走方式,得到最优的行走路径,需要对小车分模块分析与控制。 本控制系统维持小车直立和运行的动力都来自小车的两个轮子,轮子转动由两个直流电机驱动。小车作为一个控制对象,它的控制输入量是两个电机的转动速度。小车运动控制可以分解成以下3个基本控制任务。 (1)小车平衡控制:通过控制两个电机正反方向运动保持小车直立平衡状态; (2)小车速度控制:通过调节小车的倾斜角度来实现小车速度控制,本质上是通过控制电机的转速来实现小车速度的控制。 (3)小车方向控制:通过控制两个电机之间的转动差速实现小车转向控制。 2.1 小车平衡控制 要想实现小车的平衡控制,需要采取负反馈控制方式[2]。当小车偏离平衡点时,通过控制电机驱动电机实现加、减速,从而抵消小车倾斜的趋势,便可以保持车体平衡。即当小车有向前倾的趋势时,可以使电机正向加速,给小车一个向前的加速度,在回复力和阻尼力的作用下,小车不至于向前倾倒;当小车有向后倾的趋势时,可以使小车反向加速,给小车一个向后的加速度,从而不会让小车向后倾倒,。

基于单片机的两轮自平衡车控制系统设计

基于单片机的两轮自平衡车控制系统设计 摘要 两轮自平衡车是一种高度不稳定的两轮机器人,就像传统的倒立摆一样,本质不稳定是两轮小车的特性,必须施加有效的控制手段才能使其稳定。本文提出了一种两轮自平衡小车的设计方案,采用重力加速度陀螺仪传感器MPU-6050检测小车姿态,使用互补滤波完成陀螺仪数据与加速度计数据的数据融合。系统选用STC 公司的8位单片机STC12C5A60S2为主控制器,根据从传感器中获取的数据,经过PID算法处理后,输出控制信号至电机驱动芯片TB6612FNG,以控制小车的两个电机,来使小车保持平衡状态。 整个系统制作完成后,小车可以在无人干预的条件下实现自主平衡,并且在引入适量干扰的情况下小车能够自主调整并迅速恢复至稳定状态。通过蓝牙,还可以控制小车前进,后退,左右转。 关键词:两轮自平衡小车加速度计陀螺仪数据融合滤波 PID算法 Design of Control System of Two-Wheel Self-Balance Vehicle based on Microcontroller Abstract Two-wheel self-balance vehicle is a kind of highly unstable two-wheel robot. The characteristic of two-wheel vehicle is the nature of the instability as traditional inverted pendulum, and effective control must be exerted if we need to make it stable. This paper presents a design scheme of two-wheel self-balance vehicle. We need using gravity accelerometer

基于PID控制器的两轮自平衡小车设计

本科毕业设计 基于PID控制器的两轮自平衡小车设计 摘要 两轮自平衡小车具有体积小、结构简单、运动灵活的特点,适用于狭小和危险的工作空间,在安防和军事上有广泛的应用前景。两轮自平衡小车是一种两轮左右平衡布置的,像传统倒立摆一样,本身是一种自然不稳定体,其动力学方程具有多变量、非线性、强耦合、时变、参数不确定性等特性,需要施加强有力的控制手段才能使其保持平衡。 本文在总结和归纳国内外对两轮自平衡小车的研究现状,提出了自己的两轮自平衡小车软硬件设计方案,小车硬件采用陀螺仪和加速度传感器检测车身的重力方向的倾斜角度和车身轮轴方向上的旋转加速度,数据通过控制器处理后,控制电机调整小车状态,使小车保持平衡。由于陀螺仪存在温漂和积分误差,加速度传感器动态响应较慢,不能有效可靠的反应车身的状态,所以软件使用互补滤波算法将陀螺仪和加速度传感器数据融合,结合陀螺仪的快速的动态响应特性和加速度传感器的长时间稳定特性,得到一个优化的角度近似值。 文中最后通过实验验证了自平衡小车软硬件控制方案的可行性。 关键词:自平衡互补滤波数据融合倒立摆 Two-wheeledSelf-balancingRobot MaXuedong (CollegeofEngineering,SouthChinaAgriculturalUniversity,Guangzhou510642,China) Abstract:Thetwo-wheeledself-balancingrobotissmallinmechanism,withsimplest ructureandcanmakeflexiblemotion,目录 华南农业大学本科生毕业设计成绩评定表

双轮自平衡小车机器人系统设计与制作

燕山大学 课程设计说明书题目:双轮自平衡小车机器人系统设计与制作 学院(系):机械工程学院 年级专业:12级机械电子工程 组号:3 学生: 指导教师:史艳国建涛艳文史小华庆玲 唐艳华富娟晓飞正操胡浩波 日期: 2015.11

燕山大学课程设计(论文)任务书院(系):机械工程学院基层教学单位:机械电子工程系

摘要 两轮自平衡小车是一种非线性、多变量、强耦合、参数不确定的复杂系统,他体积小、结构简单、运动灵活,适合在狭小空间工作,是检验各种控制方法的一个理想装置,受到广大研究人员的重视,成为具有挑战性的课题之一。 两轮自平衡小车系统是一种两轮左右并行布置的系统。像传统的倒立一样,其工作原理是依靠倾角传感器所检测的位姿和状态变化率结合控制算法来维持自身平衡。本设计通过对倒立摆进行动力学建模,类比得到小车平衡的条件。从加速度计和陀螺仪传感器得出的角度。运用卡尔曼滤波优化,补偿陀螺仪的漂移误差和加速度计的动态误差,得到更优的倾角近似值。通过光电编码器分别得到车子的线速度和转向角速度,对速度进行PI控制。根据PID控制调节参数,实现两轮直立行走。通过调节左右两轮的差速实现小车的转向。 制作完成后,小车实现了在无线蓝牙通讯下前进、后退、和左右转向的基本动作。此外小车能在正常条件下达到自主平衡状态。并且在适量干扰下,小车能够自主调整并迅速恢复稳定状态。 关键词:自平衡陀螺仪控制调试

前言 移动机器人是机器人学的一个重要分支,对于移动机器人的研究,包括轮式、腿式、履带式以及水下式机器人等,可以追溯到20世纪60年代。移动机器人得到快速发展有两方面原因:一是其应用围越来越广泛;二是相关领域如计算、传感、控制及执行等技术的快速发展。移动机器人尚有不少技术问题有待解决,因此近几年对移动机器人的研究相当活跃。 近年来,随着移动机器人研究不断深入、应用领域更加广泛,所面临的环境和任务也越来越复杂。机器人经常会遇到一些比较狭窄,而且有很多大转角的工作场合,如何在这样比较复杂的环境中灵活快捷的执行任务,成为人们颇为关心的一个问题。双轮自平衡机器人概念就是在这样的背景下提出来的。两轮自平衡小车是一个高度不稳定两轮机器人,是一种多变量、非线性、强耦合的系统,是检验各种控制方法的典型装置。同时由于它具有体积小、运动灵活、零转弯半径等特点,将会在军用和民用领域有着广泛的应用前景。因为它既有理论研究意义又有实用价值,所以两轮自平衡小车的研究在最近十年引起了大量机器人技术实验室的广泛关注。 本论文主要叙述了基于stm32控制的两轮自平衡小车的设计与实现的整个过程。主要容为两轮自平衡小车的平衡原理,直立控制,速度控制,转向控制及系统定位算法的设计。通过此设计使小车具备一定的自平衡能力、负载承载能力、速度调节能力和无线通讯功能。小车能够自动检测自身机械系统的倾角并完成姿态的调整,并在加载一定重量的重物时能够快速做出调整并保证自身系统的自我平衡。能够以不同运动速度实现双轮车系统的前进、后退、左转与右转等动作,同时也能够实现双轮自平衡车系统的无线远程控制操作

自平衡车模型分析

自平衡车模型分析

一、 求解车体除两轮外部分动能 车体沿X 轴方向速度: R L V R L x 2 )(cos θθθθ&&&++= 车体沿Y 轴方向速度: R D L V R L y )(sin θθθ&&-= 车体沿Z 轴方向速度 θθsin &L V z = 车体沿过质心的Z 轴的转动惯量为: m yz J J J y z z ???++=d sin cos 22θθθ 由于假设车体关于ZY 平面对称,因此 0d =???m yz 因此 θθθ22sin cos y z z J J J += 则可以得到车体的平动动能: ??? ? ??+-+++=2221)sin ())(sin ()2)(cos 21θθθθθθθθθ&&&&&&L R D L R L E R L R L kp ( 车体的转动动能为: ??? ? ??+-+=22222 ))()(sin cos (21θθθθθ&&&x R L y z kp J R D J J E 则车体的总动能为: 21kp kp kp E E E += 二、 求解车轮动能 左车轮平动速度为:

R V L x w L θ&= 右车轮平动速度为 R V R x w R θ&= 两轮有同样的绕垂直于半径的转动速度: R D R L w )(θθω&&-= 则左车轮的动能为: 2 22)(2121)(21??? ? ??-++=D R J J R m E R L R L L kw L θθθθφ&&&& 则右车轮的动能为: 222)(2121)(21??? ? ??-++=D R J J R m E R L R R R kw R θθθθφ&&&& 三、 求解车体势能 由于在平地上行进,车轮势能不变。车体整体势能可变部分表示为: θcos g m E p p = 四、 拉格朗日函数的求解 得到最终的拉格朗日函数为: p kw kw kp kp E E E E E L L R -+++=21 依据拉格朗日动力学法求解,进行如下运算: R L M M L dt L d --=??-??θ θ& L L L M L dt L d =??-??θθ& R R R M L dt L d =??-??θθ& 得到动力学方程: 方程一: () R L R L z y p p R L p x p M M R D J J L m gL m R L m J L m --=??? ? ??--+--+++222 )(cos sin sin 2)(cos )θθθθθθθθθ&&&&&&&&(

大学毕业设计---基于arm的两轮自平衡车模型系统设计课程

中北大学 课程设计说明书 学生姓名: *杰学号:* 学院: 仪器与电子学院 专业: * 题目: 基于ARM的两轮自平衡车模型系统设计 指导教师:李锦明职称: 副教授 2015 年1 月30 日

摘要 近年来,两轮自平衡车的研究与应用获得了迅猛发展。本文提出了一种两轮自平衡小车的设计方案,采用陀螺仪L3G4200以及MEMS加速度传感器MMA7260构成小车姿态检测装置,使用卡尔曼滤波完成陀螺仪数据与加速度计数据的数据融合。系统选用飞思卡尔32位单片机Kinetis K60为控制核心,通过滤波算法实现车身控制,人机交互等。 整个系统制作完成后,各个模块能够正常并协调工作,小车可以在无人干预条件下实现自主平衡。同时在引入适量干扰情况下小车能够自主调整并迅速恢复稳定状态。 关键词:两轮自平衡陀螺仪姿态检测卡尔曼滤波数据融合

目录 1 课程设计目的 (1) 2 设计内容和要求 (1) 2.1 设计要求 (1) 2.2 研究意义 (1) 2.3 研究内容 (2) 3 设计方案及实现情况 (2) 3.1 两轮平衡车的平衡原理 (2) 3.2 系统方案设计 (3) 3.3 系统最终方案 (6) 3.4 系统软件设计 (9) 3.5 电路调试 (16) 4 课程设计总结 (18) 参考文献 (19) 附录 (20) 致谢 (21)

1 课程设计目的 (1)掌握嵌入式系统的一般设计方法和设计流程; (2)学习嵌入式系统设计,掌握相关IDE开发环境的使用方法; (3)掌握ARM的应用; (4)学习掌握嵌入式系设计的全过程; 2 设计内容和要求 2.1 设计要求 (1)学习掌握基于ARM Cortex-M4内核的Kinetis K60系列单片机的工作原理及应用;(2)学习掌握加速度计、陀螺仪的工作原理及应用; (3)设计基于PID控制的两轮自平衡车模型系统的工作原理图及PCB版图; 2.2 研究意义 近年来,随着电子技术的发展与进步,移动机器人的研究不断深入,成为目前科 学研究最活跃的领域之一,移动机器人的应用范围越来越广泛,面临的环境和任务也 越来越复杂,这就要求移动机器人必须能够适应一些复杂的环境和任务。比如,户外 移动机器人需要在凹凸不平的地面上行走,有时环境中能够允许机器人运行的地方比 较狭窄等。如何解决机器人在这些环境中运行的问题,逐渐成为研究者关心的问题[1]。 两轮自平衡机器人的概念正是在这样一个背景下提出来的,这种机器人区别于其 他移动机器人的最显著的特点是:采用了两轮共轴、各自独立驱动的工作方式(这种驱 动方式又被称为差分式驱动方式),车身的重心位于车轮轴的上方,通过轮子的前后移 动来保持车身的平衡,并且还能够在直立平衡的情况下行驶。由于特殊的结构,其适 应地形变化能力强,运动灵活,可以胜任一些复杂环境里的工作。 两轮自平衡机器人自面世以来,一直受到世界各国机器人爱好者和研究者的关 注,这不仅是因为两轮自平衡机器人具有独特的外形和结构,更重要的是因为其自身 的本质不稳定性和非线性使它成为很好的验证控制理论和控制方法的平台,具有很高 的研究价值。

两轮自平衡小车的设计

2015年陇东学院第十六届“挑战杯” 课外学术科技作品竞赛 双轮自平衡小车的设计与制作 学院:电气工程学院 班级:12级自动化本科班 姓名:周永 2015年12月8日

双轮自平衡小车的设计与制作 摘要:双轮自平衡小车是一个集动态决策和规划、环境感知、行为控制和执行等多种功能于一体的综合复杂系统,其关键是在解决自平衡的同时,还能够适应在各种环境下的控制任务。通过运用外加速度传感器、角速度传感器等,可以实现小车的平衡自主前进。双轮自平衡小车,涉及到传感器的驱动,数据的处理,角度的计算,电机的控制等,内容比较丰富,可作为实践自动控制原理及单片机技术的一个不错选择,是自我锻炼的绝好选题,对于以后制作此方面的民用产品也有很大的启迪作用。 关键词:双轮;自平衡;控制;传感器 1.引言 目前市场上的各种电子产品及家电机器人等行业越来越多地用到了智能控制技术。可以说,当今社会是一个智能型社会。各方各面都在竭尽全力向着智能方向发展,不论是人工智能还是联网智能,都在突出一个智能。智能已经覆盖了我们生活的方方面面,我们正在被智能的概念所潜移默化。不论是智能手机、玩具还是机器人,都已经成了我们生活的一部分。正是在这种情况下,智能交通的发展也发生了翻天覆地的变化,从飞车到自动驾驶汽车,无不在向我们说明,现代人已经对智能型交通工具期待已久了。作为最新科技产品的一个代表,最近市场上新出现的独轮车越来越受到了消费者的青睐。可以想象,最近几年内此类产品将会在市场上争得一席之地。比起独轮车,两轮车具有同样的购买热度,但是设计难度却没那么高,所以我将选择了从双轮车开始玩起智能交通工具。 2设计方案 方案一:用51单片机作为主控制器,用MPU6050模块采集姿态数据,用光电编码器对5V直流电机进行编码,显示模块采用LCD12864液晶屏,电源采用三端稳压方案,用红外遥控控制小车行走。本设计简单廉价,然而由于主控的反应相对缓慢,很难满足设计要求。 方案二:采用STM32单片机作主控制器,仍然用MPU6050模块作姿态数据采集,而电机采用二手的型号为16G214E MR19的具有高精度霍尔编码器的原价2000+的瑞士进口12V直流电机,显示模块采用了更轻薄更清晰更小巧的

平衡车介绍

平衡车介绍 概述 编辑 随着人们环保意识的加强,电动车的数量与日俱增。与此同时,科学家经过潜心的研究,终于开发出新款两轮电动平衡车。两轮电动平衡车是一种新型的交通工具,它与电动自行车和摩托车车轮前后排列方式不同,而是采用两轮并排固定的方式。两轮电动平衡车采用两个轮子支撑,蓄电池供电,无刷电机驱动,加上单片机控制,姿态传感器采集角速度和角度信号,共同协调控制车体的平衡,仅仅依靠人体重心的改变便可以实现车辆的启动、加速、减速、停止等动作。[1] 技术原理 编辑 运作原理主要是建立在一种被称为“动态稳定”(DynamicStabilization)的基本原理上,也就是车辆本身的自动平衡能力。以内置的精密固态陀螺仪(Solid-StateGyroscopes)来判断车身所处的姿势状态,透过精密且高速的中央微处理器计算出适当的指令后,驱动马达来做到平衡的效果。 技术特点 编辑 1、左右两轮电动车,独特的平衡设计方案。 2、集“嵌入式+工业设计+艺术设计”的产品集成创新技术,以嵌入式技术提升产品的内在智能化,以适应当代产品数字化、智能化的趋势,实现由内而外的创新。 3、产品信息建模,建立一套既包含产品形状特征,也包含用户认知意象的心理特征体系,并在此基础上进一步开发以用户对产品的最终要求驱动的产品生成系统。 功能配置 编辑 代步出行 代步是电动平衡车以及同类型产品具有的物理特性,时速最高可达20km,单次充电可完成20-70km的续航里

程。 移动视频 电动平衡车可以与手机、DV、相机等设备结合,利用其自动行走功能,成为移动拍摄平台。 APP应用 电动平衡车可以与手机互联,通过手机APP,可以实时了解体感车的行驶、售后信息,同时,APP还可以实现交友、分享等功能,同时还具有蓝牙配置功能,通过手机蓝牙来控制车子。 蓝牙音箱 配备蓝牙音箱,通过手机蓝牙播放音乐,成为移动音乐平台。产品特色 电力驱动,噪音小:电动平衡车采用锂电池组作为动力来源,实现了碳的零排放,并采用了动力转换技术,能够在下坡行驶的过程中自动为锂电池组进行充电,使电能与动能可以循环利用,同时由于改良了电机性能,所以电动平衡车的噪音非常小。 体积小,重量轻:两双拖鞋大小的垂直投影面积,占地空间小,并且把手可以快速拆卸。电动平衡车整车重量在15kg左右,同时车体配有提拉杆,便于搬运携带。 站立式驾驶:电动平衡车采用站立式驾驶方式,通过身体重心和操控杆控制车体运行。同时可以使用配件中 的短把手,用小腿控制车体运动,解放双手。

两轮自平衡车

两轮自平衡车 算法:和大家的一样,一个倾角环,一个车速环。取得角度、角速度、车速、车位移四个量后经过运算送给PWM驱动电机。 硬件: 主控:atmega16; 角度传感器:角速度传感器(陀螺仪)ENC-03MB(直接接AD输入,未加硬件滤波)、加速度传感器MMA7260,二者kalman融合取得角度、角速度。PS:抄zlstone的,呵呵。 电机速度传感器:每个电机两个霍尔传感器(AB相)。 电机:型号不清楚,很常见的减速电机。额定电压6V,功率3W。 电机驱动:L298N 电源:变压器整流桥那种普通电源,几块钱一个。两个,电机、MCU分开供电。电机电源电压打到最高不接电机时15V多,接了电机5V多,汗。。 显示器:LCD1602B 遥控:电视红外遥控器

引用图片 (原文件名:20110110_0104.jpg) 引用图片 源代码WINAVR20100110+AVRStudio4.18ourdev_610434C8FD1C.rar(文件大小:104K)(原文件名:Balance.rar)原理图: atmega16最小系统版ourdev_610214M89OEI.pdf(文件大小:30K)(原文件名:M16迷你板电路图.pdf)

上位机,带波形、数据显示ourdev_610318TY8G24.rar(文件大小:48K)(原文件名:串口调试.rar) 车速未滤波之前波形(原文件名:车速未滤波之前波形.JPG)

车速10Hz低通滤波后波形(原文件名:车速10Hz低通滤波后波形.JPG) 视频在这里https://www.360docs.net/doc/738878550.html,/v_show/id_XMjM1OTQ3NzU2.html 现在还不是很稳,我想有两个原因,一个是参数没调到最佳,调了好久,先这样吧。再有就是电源太烂了,电机是额定6V的可实际电压空载的时候才打到5伏多一点,在平衡的时候没测,肯定更低了。 陀螺仪ENC-03是直接接AD输入端的,因为按照datasheet上边的参考电路有过冲问题,这个问题有个帖子已经讨论过,很多人都是 围绕怎么补救这个问题,我来算一下为什么这样子,呵呵~如下: 高通滤波脉冲响应(原文件名:QQ截图未命名.jpg) 因为有这个问题,会给倾角数据造成影响,所以我就去掉了滤波,直接接到AD。这样1deg/s有0.67mv,10位AD参考电压是3.36V,最小才能测到3.28mv,小于4.8deg时就测不到了。本来担心这个问题,但试了下KALMAN滤波,真是强啊!角度很精确,就这么用了。 车体研究了好久,没有用钢化玻璃的设备,就一直没动工。有天去打水突然看到旁边有个大的三合板,呵呵,于是乎。。

双轮自平衡车设计报告

双轮自平衡车设计报告 学院………….......... 班级…………………… 姓名………………..手机号…………………..姓名………………..手机号…………………..姓名………………..手机号…………………..

目录 一、双轮自平衡车原理 二、总体方案 三、电路和程序设计 四、算法分析及参数确定过程

一.双轮自平衡车原理 1.控制小车平衡的直观经验来自于人们日常生活经验。一般的人通过简单练习就可以让一个直木棒在手 指尖上保持直立。这需要两个条件:一个是托着木棒的手掌可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角速度)。通过手掌移动抵消木棒的倾斜角度和趋势,从而保持木棒的直立。这两个条 件缺一不可,让木棒保持平衡的过程实际上就是控制中的负反馈控制。 图1 木棒控制原理图 2.小车的平衡和上面保持木棒平衡相比,要简单一些。因为小车是在一维上面保持平衡的,理想状态下,小车只需沿着轮胎方向前后移动保持平衡即可。 图2 平衡小车的三种状态 3.根据图2所示的平衡小车的三种状态,我们把小车偏离平衡位置的角度作为偏差;我们的目标是通过 负反馈控制,让这个偏差接近于零。用比较通俗的话描述就是:小车往前倾时车轮要往前运动,小车往后倾时车轮要往后运动,让小车保持平衡。 4.下面我们分析一下单摆模型,如图4所示。在重力作用下,单摆受到和角度成正比,运动方向相反的回复力。而且在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。空气的阻尼力与单摆运动速度成正比,方向相反。 图4 单摆及其运动曲线

类比到我们的平衡小车,为了让小车能静止在平衡位置附近,我们不仅需要在电机上施加和倾角成正比的回复力,还需要增加和角速度成正比的阻尼力,阻尼力与运动方向相反。 5 平衡小车直立控制原理图 5.根据上面的分析,我们还可以总结得到一些调试的技巧:比例控制是引入了回复力;微分控制是引入了阻尼力,微分系数与转动惯量有关。 在小车质量一定的情况下,重心位置增高,因为需要的回复力减小,所以比例控制系数下降;转动惯量变大,所以微分控制系数增大。在小车重心位置一定的情况下,质量增大,因为需要的回复力增大,比例控制系数增大;转动惯量变大,所以微分控制系数增大。 二.总体方案 ■小车总框图

基于ARM的两轮自平衡车模型系统设计课程设计

课程设计说明书 学生姓名:学号: 学院: 专业: 题目: 基于ARM的两轮自平衡车模型系统设计

摘要 近年来,两轮自平衡车的研究与应用获得了迅猛发展。本文提出了一种两轮自平衡小车的设计方案,采用陀螺仪L3G4200以及MEMS加速度传感器MMA7260构成小车姿态检测装置,使用卡尔曼滤波完成陀螺仪数据与加速度计数据的数据融合。系统选用飞思卡尔32位单片机Kinetis K60为控制核心,通过滤波算法实现车身控制,人机交互等。 整个系统制作完成后,各个模块能够正常并协调工作,小车可以在无人干预条件下实现自主平衡。同时在引入适量干扰情况下小车能够自主调整并迅速恢复稳定状态。 关键词:两轮自平衡陀螺仪姿态检测卡尔曼滤波数据融合

目录 1 课程设计目的 (1) 2 设计内容和要求 (1) 2.1 设计要求 (1) 2.2 研究意义 (1) 2.3 研究内容 (2) 3 设计方案及实现情况 (2) 3.1 两轮平衡车的平衡原理 (2) 3.2 系统方案设计 (3) 3.3 系统最终方案 (6) 3.4 系统软件设计 (9) 3.5 电路调试 (16) 4 课程设计总结 (18) 参考文献 (19) 附录 (20) 致谢 (21)

1 课程设计目的 (1)掌握嵌入式系统的一般设计方法和设计流程; (2)学习嵌入式系统设计,掌握相关IDE开发环境的使用方法; (3)掌握ARM的应用; (4)学习掌握嵌入式系设计的全过程; 2 设计内容和要求 2.1 设计要求 (1)学习掌握基于ARM Cortex-M4内核的Kinetis K60系列单片机的工作原理及应用;(2)学习掌握加速度计、陀螺仪的工作原理及应用; (3)设计基于PID控制的两轮自平衡车模型系统的工作原理图及PCB版图; 2.2 研究意义 近年来,随着电子技术的发展与进步,移动机器人的研究不断深入,成为目前科 学研究最活跃的领域之一,移动机器人的应用范围越来越广泛,面临的环境和任务也 越来越复杂,这就要求移动机器人必须能够适应一些复杂的环境和任务。比如,户外 移动机器人需要在凹凸不平的地面上行走,有时环境中能够允许机器人运行的地方比 较狭窄等。如何解决机器人在这些环境中运行的问题,逐渐成为研究者关心的问题[1]。 两轮自平衡机器人的概念正是在这样一个背景下提出来的,这种机器人区别于其 他移动机器人的最显著的特点是:采用了两轮共轴、各自独立驱动的工作方式(这种驱 动方式又被称为差分式驱动方式),车身的重心位于车轮轴的上方,通过轮子的前后移 动来保持车身的平衡,并且还能够在直立平衡的情况下行驶。由于特殊的结构,其适 应地形变化能力强,运动灵活,可以胜任一些复杂环境里的工作。 两轮自平衡机器人自面世以来,一直受到世界各国机器人爱好者和研究者的关 注,这不仅是因为两轮自平衡机器人具有独特的外形和结构,更重要的是因为其自身 的本质不稳定性和非线性使它成为很好的验证控制理论和控制方法的平台,具有很高 的研究价值。

两轮自平衡小车设计

两轮自平衡小车设计 一、任务要求 图1两轮自平衡车 两轮自平衡车结构原理如图1所示,主控制器(DSP)通过采集陀螺仪和加速度传感器得到位置信号,通过控制电机的正反转实现保持小车站立。 1、通过控制两个电机正反运动,实现小车在原地站立。 2、实现小车的前进、后退、转弯、原地旋转、停止等运动; 二、方案实现 2.1电机选型 图2直流电机 两轮自平衡车由于需要时刻保持平衡,对于倾角信号做出快速响应,因此对电机转矩要求较大。在此设计中选用国领电机生产的直流电机,其产品型号为GB37Y3530,工作电压6v-12v。为增大转矩,电机配有1:30传动比的减速器。

2.2电机测速方案 图3霍尔测速传感器 在电机测速方案上主流的方案有两种,分别是光电编码器和霍尔传感器。光电编码器测量精度由码盘刻度决定,刻度越多精度越高;霍尔传感器精度由永磁体磁极数目决定,同样是磁极对数越高精度越高。由于两轮自平衡车工作于剧烈震动环境中,光电编码器不适应这种环境,因此选用霍尔传感器来测量速度。电机尾部加装双通道霍尔效应编码器,AB双路输出,单路每圈脉冲16CPR,双路上下沿共输出64CPR,配合1:30的减速器传动比,可以计算出车轮转动一圈输出的脉冲数目为64X30=1920CPR,完全符合测速要求。 2.3电机驱动控制系统概述 本平台电机驱动采用全桥驱动芯片L298N,内部包含4通道逻辑驱动电路,两个H-Bridge的高电压、大电流双全桥式驱动器。本驱动桥能驱动46V、2A 以下的电机。其输出可以同时控制两个电机的正反转,非常适合两轮自平衡车开发,其原理图如下图所示 图4L298N原理图 采用脉宽调制方式(即PWM,Pulse Width Modulation)来调整电机的转速和转向。脉宽调制是通过改变发出的脉冲宽度来调节输入到电机的平均电

自平衡车模型分析

自平衡车模型分析 设置各状态变量以及控制变量:

一、 求解车体除两轮外部分动能 车体沿X 轴方向速度: R L V R L x 2 )(cos θθθθ ++= 车体沿Y 轴方向速度: R D L V R L y )(sin θθθ -= 车体沿Z 轴方向速度 θθ sin L V z = 车体沿过质心的Z 轴的转动惯量为: m yz J J J y z z ???++=d sin cos 22θθθ 由于假设车体关于ZY 平面对称,因此 0d =???m yz 因此 θθθ22sin cos y z z J J J += 则可以得到车体的平动动能: ??? ? ??+-+++=2221)sin ())(sin ()2)(cos 21θθθθθθθθθ L R D L R L E R L R L kp ( 车体的转动动能为: ??? ? ??+-+=22222 ))()(sin cos (21θθθθθ x R L y z kp J R D J J E 则车体的总动能为: 21kp kp kp E E E += 二、 求解车轮动能 左车轮平动速度为: R V L x w L θ = 右车轮平动速度为

R V R x w R θ = 两轮有同样的绕垂直于半径的转动速度: R D R L w )(θθω -= 则左车轮的动能为: 2 22)(2121)(21??? ? ??-++=D R J J R m E R L R L L kw L θθθθφ 则右车轮的动能为: 222)(2121)(21??? ? ??-++=D R J J R m E R L R R R kw R θθθθφ 三、 求解车体势能 由于在平地上行进,车轮势能不变。车体整体势能可变部分表示为: θcos g m E p p = 四、 拉格朗日函数的求解 得到最终的拉格朗日函数为: p kw kw kp kp E E E E E L L R -+++=21 依据拉格朗日动力学法求解,进行如下运算: R L M M L dt L d --=??-??θθ L L L M L dt L d =??-??θθ R R R M L dt L d =??-??θθ 得到动力学方程: 方程一: () R L R L z y p p R L p x p M M R D J J L m gL m R L m J L m --=??? ? ??--+--+++2 22)(cos sin sin 2)(cos )θθθθθθθθθ ( 方程二:

基于单片机的两轮自平衡车控制系统设计

基于单片机的两轮自平衡车控制系统设计 文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

基于单片机的两轮自平衡车控制系统设计 摘要 两轮自平衡车是一种高度不稳定的两轮机器人,就像传统的倒立摆一样,本质不稳定是两轮小车的特性,必须施加有效的控制手段才能使其稳定。本文提出了一种两轮自平衡小车的设计方案,采用重力加速度陀螺仪传感器MPU-6050检测小车姿态,使用互补滤波完成陀螺仪数据与加速度计数据的数据融合。系统选用STC公司的8位单片机STC12C5A60S2为主控制器,根据从传感器中获取的数据,经过PID算法处理后,输出控制信号至电机驱动芯片TB6612FNG,以控制小车的两个电机,来使小车保持平衡状态。 整个系统制作完成后,小车可以在无人干预的条件下实现自主平衡,并且在引入适量干扰的情况下小车能够自主调整并迅速恢复至稳定状态。通过蓝牙,还可以控制小车前进,后退,左右转。 关键词:两轮自平衡小车加速度计陀螺仪数据融合滤波 PID算法Design of Control System of Two-Wheel Self-Balance Vehicle based on Microcontroller Abstract Two-wheel self-balance vehicle is a kind of highly unstable two-wheel robot. The characteristic of two-wheel vehicle is the nature of the instability as traditional inverted pendulum, and effective control must be exerted if we need to make it stable. This paper presents a design scheme of two-wheel self-balance vehicle. We need using gravity

线控两轮平衡车的建模与控制研究

线性系统理论 上机实验报告 题目:两轮平衡小车的建模与控制研究 完成时间:2016-11-29 1.研究背景及意义 现代社会人们活动范围已经大大延伸,交通对于每个人都十分重要。交通工具的选择则是重中之重,是全社会关注的焦点。 随着社会经济的发展,人民生活水平的提高,越来越多的小汽车走进了寻常百姓家。汽车快捷方便、省时省力,现代化程度高,种类繁多的个性化设计满足了不同人的需求。但它体积大、重量大、污染大、噪声大、耗油大、技术复杂、使用不便、价格贵、停放困难,效率不高,而且还会造成交通拥堵并带来安全隐患。相比之下,自行车是一种既经济又实用的交通工具。中国是自行车大国,短距离出行人们常选择骑自行车。自行车确实方便,但在使用之前需要先学会骑车,虽然看似简单,平衡能力差的人学起来却很困难,容易摔倒,造成人身伤害。另外,自行车毕竟不适宜长距离的行驶,遥远的路程会使人感到疲劳。 那么,究竟有没有这样一种交通工具,集两者的优点于一身呢既能像汽车一样方便快捷又如自行车般经济简洁,而且操作易于掌握,易学又易用。两轮自平衡车概念就是在这样的背景下提出来的。 借鉴目前国内外两轮自平衡车的成功经验,本文提出的研究目标是设计一款新型的、结构简单、成本低的两轮自平衡车,使其能够很好地实现自平衡功能,同时设计结果通过MATLAB进行仿真验证。

2.研究内容 自平衡式两轮电动车是一个非线性、强耦合、欠驱动的自不稳定系统,对其控制策略的研究具有重大的理论意义。我们通过分析两轮平衡车的物理结构以及在平衡瞬间的力学关系,得到两轮车的力学平衡方程,并建立其数学模型。运用MATLAB 和SIMULINK 仿真系统的角度θ、角加速度? θ、位移x 和速度的? x 变化过程,对其利用外部控制器来控制其平衡。 3.系统建模 两轮平衡车的瞬时力平衡分析如图1所示。下面将分析归纳此时的力平衡方程[1-3],并逐步建立其数学模型。 对两轮平衡车的右轮进行力学分析,如图2所示。 依据图2对右轮进行受力分析,并建立其平衡方程: =R R R R M X f H ? - (1) R R R R J C f R ??? =- (2) 同理,对左轮进行受力分析,并建立其平衡方程: =R L L L M X f H ? - (3) L L L L J C f R ??? =- (4) 两轮平衡车摆杆的受力分析如图3所示,由图3可以得到水平和垂直方向的平衡方程以及转矩方程。 水平方向的平衡方程: H H x R L p m +=? ? (5) 其中θsin L x x m p +=,则有: ? ?? ?? ?*+*-=θθθθcos sin 2 L L x x m p (6)

相关文档
最新文档