perror

/*昨天修改二叉树代码,修改得有点麻烦,最后还是改对了,因为很小的一个疏漏 然后人类给我推荐了perror,这个函数之前就接触过,但是时间太久忘记了*/

#include<stdio.h> //头文件
void perror ( const char * str );//函数原型


perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。
在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和现在的errno所对应的错误一起输出。

perror是用来输出库函数调用失败信息的。perror会通过error错误代码来输出相应的errormsg.
perror输出内容只依赖error变量。


errno宏定义为一个int型态的左值, 包含任何函式使用errno功能所产生的上一个错误码。

不想研究语法了,,,,太复杂了,我要继续写算法去。

perror如果它觉得没有错误 会打印:success,,,,,

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
飞思卡尔光电组原理图包括:CCD传感器、按键电路、LCD液晶屏显示电路、电源部分、电机驱动、速度检测、控制器等。 见截图: *********************************************************************************************/ ** 舵机PWM调速频率为300HZ。 ** 电机PWM调速频率为10KHZ。 ** 舵机角度控制精确到1.5度是合适的。 ** 舵机控制一般采用PD控制。(非线性设计) *************************************位置型PD控制 ******************************************** 位置型PD控制 perror[2]=(width[2]-width[4])/2; out_p=Kp*perror[2]/20 //计算比例项,20为控制周期 out_d[2]=Kd*(perror[2]-perror[1])/20 //计算微分项 out[2]=out_p+out_d[2]+center_conter; //由于舵机转角受限,所以注意输出量的限制 perror[1]=perror[2]; //保存上次的误差 out_d[1]=out_d[2]; //保存上次微分环节的值 其中Kp是比例系数;out[2]是舵机的调节量;Kd是微分系数;peeror[2]是本次信号采集计算出的误差;perror[1]是上次信号采集计算出的误差;center_conter是舵机的中心位置的计数值。 非线性PD算法 其中out_p为比例项输出;当-20<perror u65f6作为死区,不进行调节;当-100<perror[2]<-20或者20<perror[2]100时,比例系数Kp2=1.33。这样即实现了系统在小偏差时缓慢的调节,也可以保证当遇到弯道,产生较大的偏差时,舵机能够迅速动作。具体的软件实现如下: if(perror[2]>-20&&perror[2]20&&perror[2]-100&&perror[2]<-20) out_p = perror[2]/2+10; if(perror[2]>=100) out_p = perror[2]*4/3-100; if(perror[2]<=-100) out_p = perror[2]*4/3+100; } 微分部分的非线性由类似方法实现。 ***********************************************PID调节经验************************************ (1) 确定比例系数Kp 确定比例系数Kp 时,首先去掉PID 的积分项和微分项,可以令Ti=0、Td=0,使之成为 纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp 由0 开始逐渐增 大,直至系统出现振荡;再反过来,从此时的比例系数Kp 逐渐减小,直至系统振荡消失。 记录此时的比例系数Kp,设定PID 的比例系数Kp 为当前值的60%~70%。 (2) 确定积分时间常数Ti 比例系数Kp 确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现 振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID 的积分 时间常数Ti 为当前值的150%~180%。 (3) 确定微分时间常数Td 微分时间常数Td 一般不用设定,为0 即可,此时PID 调节转换为PI 调节。如果需要设定, 则与确定Kp 的方法相同,取不振荡时其值的30%。 (4) 系统空载、带载联调 对 PID 参数进行微调,直到满足性能要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值