打印
[STM32F1]

STM32控制假肢

[复制链接]
楼主: goodluck09876
手机看帖
扫描二维码
随时随地手机跟帖
61
goodluck09876|  楼主 | 2019-7-2 14:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览

使用特权

评论回复
62
goodluck09876|  楼主 | 2019-7-2 14:22 | 只看该作者

使用特权

评论回复
63
goodluck09876|  楼主 | 2019-7-2 14:22 | 只看该作者

使用特权

评论回复
64
goodluck09876|  楼主 | 2019-7-2 14:23 | 只看该作者

使用特权

评论回复
65
goodluck09876|  楼主 | 2019-7-2 14:30 | 只看该作者

使用特权

评论回复
66
goodluck09876|  楼主 | 2019-7-2 14:30 | 只看该作者

使用特权

评论回复
67
goodluck09876|  楼主 | 2019-7-2 14:31 | 只看该作者

使用特权

评论回复
68
goodluck09876|  楼主 | 2019-7-2 14:31 | 只看该作者

使用特权

评论回复
69
goodluck09876|  楼主 | 2019-7-2 14:32 | 只看该作者

使用特权

评论回复
70
goodluck09876|  楼主 | 2019-7-2 14:32 | 只看该作者
    在绝对式PID计算模块程序中,包括了PID的结构体,PID结构体内变量的初始化,
PID计算公式的实现,在实际的操作中,采用了积分分离的PID控制,当误差较大时,
取消积分作用,误差较小时引入积分,消除静态误差。PID中的参数包括,期望值、实
际值、偏差值、上一个偏差值、片成功变化率、PID初始化参数,模糊PID输出的整定
量和控制器计算结果,使用的结构体如下:
    struct -pid
        float SetSpeed;//期望值
        float ActualSpeed;//实际值
        float err;//偏差值
      float err last;           //上一个偏差值
      float err rate;/偏差变化率
        float Kp,Ki,Kd;//比例,微分,积分参数
        float KpAdd,KiAdd,KdAdd;//模糊PID计算出的整定量
        float voltage;//计算结果
    }    pid;
    PID计算PWM占空比的编程算法}si]如下:
    pid.voltage=(pid.Kp+ pid.KpAdd)*pid.err +pid.index*( pid.Ki+ pid.KiAdd)*pid.integral
+(pid.Kd+ pid.KdAdd)*(pid.err-pid.err last);

使用特权

评论回复
71
goodluck09876|  楼主 | 2019-7-2 14:32 | 只看该作者
    在模糊PID计算模块程序中,包括了模糊化处理函数,模糊规则表,三角形隶属度
求解函数,模糊推理函数,重心法清晰化处理,模糊化处理函数将偏差与偏差的变化率
分别带入三角形隶属度函数中求该元素的隶属度,模糊推理函数用去确定对应的模糊规
则表中的模糊语言与该语言对应的隶属度,由于偏差和偏差变化率都会有一个模糊隶属
度,为了计算简便,取其中的较小值作为模糊规则表中的隶属度。模糊推理算法f821实现
的程序如下所示
    float fuzzy-Kp(float arr,float psc)
    王for(i=O;i<5&&n<4;i++)
        {h=es(i,e);//偏差的隶属度
            for(j=O}j<5&&n<4;j++)
            {i=ecs乐ec);//偏差变化率的隶属度
              w=fand(h,r);//取较小值隶属度值
                if(w!=0)
                {Fuz_V [n]=vv;
                Rule V[n]=kp[j];   //保存对应的规则表中的模糊值
                    n=n+1;
                }
            }
        }
     }

使用特权

评论回复
72
goodluck09876|  楼主 | 2019-7-2 14:34 | 只看该作者

使用特权

评论回复
73
goodluck09876|  楼主 | 2019-7-2 14:34 | 只看该作者

使用特权

评论回复
74
goodluck09876|  楼主 | 2019-7-2 14:34 | 只看该作者

使用特权

评论回复
75
goodluck09876|  楼主 | 2019-7-2 14:35 | 只看该作者

使用特权

评论回复
76
goodluck09876|  楼主 | 2019-7-2 14:35 | 只看该作者

使用特权

评论回复
77
goodluck09876|  楼主 | 2019-7-2 14:39 | 只看该作者
    在控制器发送给上位机的信息中既有踩关节角度信息,也有运动阶段的信息,不同
的数据信息以不同的帧头与帧尾结束。上位机软件在接受数据时,首先要进行数据帧头
帧尾的判断,判定数据是角度信号值还是阶段信号值,之后进行数据的处理。角度数据
信号的数据段就是踩关节的实时角度,根据下位机串口发送数据的顺序,数据区接受的
第一位数据为最高位,之后的数据位数依次降低直到最后一位数据和帧尾。当接受后得
到数据角度,然后将该数据实时显示到图形中,如果判定数据是用于运动阶段判断的数
据,直接显示到对应的运动阶段。

使用特权

评论回复
78
goodluck09876|  楼主 | 2019-7-2 14:39 | 只看该作者

使用特权

评论回复
79
goodluck09876|  楼主 | 2019-7-2 14:40 | 只看该作者

使用特权

评论回复
80
goodluck09876|  楼主 | 2019-7-2 14:40 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则