⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctrl.h

📁 课题研究用的直线型一级倒立摆的源程序
💻 H
字号:
#if !defined (__CTRL_H)
#define __CTRL_H

#include <math.h>

const unsigned short INTR = 0X1C;                  //中断服务程序地址
const double MASS = 0.108;                         // 摆杆质量
const double LEN = 0.50;                           // 摆杆长度
const double GRAV = 9.82;                          // 重力加速度
const double JM =(MASS * LEN * LEN) / 12.0;        /* 摆杆转动惯量 */
const double E_REF = 2 * MASS * GRAV * LEN;        /* 能量参考值 */
const long   COUNT = 2400;                         /*摆杆角度编码器脉冲当量为600pluse/r,经运动控制卡四倍频为2400)*/                                                
const double ENCODE1 = 0.46 / 37500.0;             //电机转一圈,小车在导轨移动的距离(单位为m/pluse)
const double ENCODE2 = M_PI * 2.0 / COUNT;         //radian per count
const double LIMIT = 0.28;                         /* 软限位 */
const double INTPERIOD = 0.005;                    //中断时间为5ms
const double SAM = 0.0002;                         //运动控制卡的伺服控制周期
const double MAX_VEL = 0.2;         
const double MAX_VEL_1 = 10.0;                     //速度参考值  
const double ACC_COF = SAM * SAM / ENCODE1;         //小车加速度当量
const double VEL_COF = SAM / ENCODE1;               //小车速度当量,即小车在一个控制周期内电机运动的脉冲数(pulse/控制周期)
const double ENTRY_ANGLE = 0.18;	            /*倒立摆进入稳摆的临界角度 */
const double POS_SCREEN = 100 / LIMIT;

const double MAX_SPEED = 3.0;                       

#define ERR_1 100
#define ERR_2 200

#define TIME_ONE 1                                 //绘制曲线采样时间
#define TIME_TWO 20                                //数据显示采样时间

int  first_move();                                  
void anti_cran();
void linear_up();
void handle_pendulum();
void init_interrupt();
void restore_interrupt();
void handle_sign();

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -