亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? roadsimulate.c

?? 汽車測功機源肛碼.單片機用的是LPC2104. 實現測速,對渦流機的控制,馬達的控制.
?? C
字號:
/****************************************Copyright (c)**************************************************
**                                 溫州江興汽車檢測設備廠
**                                     研  發  中  心
**                                        
**
**                                 http://www.JiangXingAuto.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: 
**創   建   人: 周川福
**最后修改日期: 
**描        述: 
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 
** 版  本: v1.0
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
** 修改人: 
** 版  本: v1.1
** 日 期: 
** 描 述: 
**
**--------------當前版本修訂-----------------------------------------------------------------------------
** 修改人: 
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "CGJ.H"                // 包含項目頭文件
#include <math.h>               // 包含算術運算頭文件
#include "control.h"            // 包含控制任務所共有的頭文件
#include "DataBuffer.h"

#define     SIMUL_TABLE_SIZE    22

typedef struct {
    INT16U      Weight;         // 車輛基準質量
    INT16U      Inertia;        // 當量慣量
    FP32        Power;          // 加載功率
    INT16U      N;              // 加載扭距
    FP32        a;              // 系數a
    FP32        b;              // 系數b
}SIMULATE_LOAD_RECORD;

static const   SIMULATE_LOAD_RECORD    SimulateLoadTbl[SIMUL_TABLE_SIZE] = {
                                        {480, 455, 3.8, 171, 3.8, 0.0261},
                                        {540, 510, 4.1, 185, 4.2, 0.0282},
                                        {595, 570, 4.3, 194, 4.4, 0.0296},
                                        {650, 625, 4.5, 203, 4.6, 0.0309},
                                        {710, 680, 4.7, 212, 4.8, 0.0323},
                                        {765, 740, 4.9, 221, 5.0, 0.0337},
                                        {850, 800, 5.1, 230, 5.2, 0.0351},
                                        {965, 910, 5.6, 252, 5.7, 0.0385},
                                        {1080, 1020, 6.0, 270, 6.1, 0.0412},
                                        {1190, 1130, 6.3, 284, 6.4, 0.0433},
                                        {1305, 1250, 6.7, 302, 6.8, 0.0460},
                                        {1420, 1360, 7.0, 315, 7.1, 0.0481},
                                        {1530, 1470, 7.3, 329, 7.4, 0.0502},
                                        {1640, 1590, 7.5, 338, 7.6, 0.0515},
                                        {1760, 1700, 7.8, 351, 7.9, 0.0536},
                                        {1870, 1810, 8.1, 365, 8.2, 0.0557},
                                        {1980, 1930, 8.4, 378, 8.5, 0.0577},
                                        {2100, 2040, 8.6, 387, 8.7, 0.0591},
                                        {2210, 2150, 8.8, 396, 8.9, 0.0605},
                                        {2380, 2290, 9.0, 405, 9.1, 0.0619},
                                        {2610, 2490, 9.4, 423, 9.5, 0.0646},
                                        {2611, 2490, 9.8, 441, 9.9, 0.0674}
                                                                    };

/*********************************************************************************************************
** 函數名稱: RoadSimulTask()
** 功能描述: 道路模擬阻力控制任務,道路模擬阻力根據VMAS控制的要求,在測功機上根據速度的變化實時加載!
**           
** 輸 入  : 無
** 輸 出  : 無
** 全局變量: 無
** 調用模塊: 無
** 
** 作 者: 周川福
** 日 期: 2006-04-20
**-------------------------------------------------------------------------------------------------------
** 修 改: 
** 日 期: 
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void    RoadSimulTask(void *pdata)
{
    INT8U       err, i, j, l;                                               //
    INT8U       time;
    OS_FLAGS    flag;                                                       // 事件標志組變量
    BOOLEAN     begin, over;                                                // 
    INT32U      weight, force_real_value;                                   //
    FP32        ForceOut, a, b, speed_real_value, Aver_Speed;               //
    FP32        ControlForce;                                               //

    FP32        FirstSpeed, CurrSpeed;
    INT32U      AccelTick;
    
    
    while(TRUE) {

        begin = FALSE;
        over   = FALSE;

        while(TRUE) {
            flag = OSFlagPend(task_status,
                              SIMULATE_FLAG,
                              OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME,
                              0,
                              &err);
            switch (flag) {
                case START_SIMULATE:
                    IGBT_SetPeriodCount(0);

                    OS_ENTER_CRITICAL();

                    OSTaskSuspend(WAIT_TASK_PRIO);                          // 刪除空閑等待任務
                    OSTaskSuspend(POWER_TASK_PRIO);                         // 刪除恒功率任務
                    OSTaskSuspend(SPEED_TASK_PRIO);                         // 刪除恒速度任務
                    OSTaskSuspend(DEMA_TASK_PRIO);                          // 刪除標定任務
                    OSTaskSuspend(FORCE_TASK_PRIO);                         // 刪除恒扭距任務

                    OS_EXIT_CRITICAL();

                    begin = TRUE;
                    SendProgramRunStatus(ENTER_ROAD_SIMULATE);
                    break;
                case SET_SIMULATE:

                    weight = set_control_value;
                    SendProgramRunStatus(SIMULATE_SET_SUCCESS);
                    break;
                default:
                    break;
            }
                                
            if(begin == TRUE) break;
        }

        l        = 0;
        ForceOut = 0;
        time     = 0;

        weight = 0;
        speed_real_value = 0;
        force_real_value = 0;

        FirstSpeed = 0;
        CurrSpeed  = 0;

        AccelTick  = 0;
        

        while(TRUE) {
            flag = OSFlagAccept(task_status,                                // 調用無等待獲得事件標志組中的事件標志函數 
                                SIMULATE_FLAG,
                                OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME,
                                &err);

            switch(flag) {
                case SET_SIMULATE: {
                    weight = set_control_value;
                    SendProgramRunStatus(SIMULATE_SET_SUCCESS);
                    break;
                }
                case STOP_SIMULATE: {
                    over = TRUE;                                            // 結束
                    IGBT_SetPeriodCount(0);
                    IGBT_Disable();
                    
                    OSTaskResume(FORCE_TASK_PRIO);                          // 喚醒恒力任務
                    OSTaskResume(SPEED_TASK_PRIO);                          // 喚醒恒數任務
                    OSTaskResume(DEMA_TASK_PRIO);                           // 喚醒標定任務
                    OSTaskResume(POWER_TASK_PRIO);                          // 喚醒恒功率任務
                    OSTaskResume(WAIT_TASK_PRIO);                           // 喚醒等待任務

                    SendProgramRunStatus(EXIT_ROAD_SIMULATE);

                    OS_ENTER_CRITICAL();
                        task_status->OSFlagFlags = 0;                       // 在退出速度控制前,清除事件標志組
                    OS_EXIT_CRITICAL();

                    break;
                }
                default:
                    break;
            }

            if(over == TRUE) {
             break;
            }


            j = 0;
            for(i = 0; i < SIMUL_TABLE_SIZE; i++) {
                j = i;
                if(weight <= SimulateLoadTbl[i].Weight) {
                    break;
                }
                
            }

            if(speed_real_value > 10){
                CountSpeed();
                time = 0;
            }else if(++time >= COUNT_SPEED_TIME){
                time = 0;
                CountSpeed();                                               // 計算速度
            }

            CountForce();
            

            force_real_value = parameter[FORCE];
            speed_real_value = parameter[SPEED];

            a = SimulateLoadTbl[j].a;
            b = SimulateLoadTbl[j].b;

            //公式:a + b*v*v
            ControlForce = a + b * Aver_Speed * Aver_Speed;
          //  ControlForce = a + b * speed_real_value * speed_real_value;
          

            if(Aver_Speed > 10) {
                
                ForceOut = PidCalc(force_real_value, ControlForce);

                IGBT_Enable();
                IGBT_SetPeriodCount((INT32U)ForceOut);
                    
            }else {
                ForceOut = 0;
                IGBT_SetPeriodCount(0);
                IGBT_Disable();

                PidValueReset();
            }

            // 將當前速度值與力值插入緩沖區
            InsertSpeedPoint(parameter[SPEED]);
            InsertForcePoint(parameter[FORCE]);
            
            // 判斷是否到了向上位機送數時間
            if(++l == SEND_DELAY_TIME){                                     // 向上位機送出檢測到的數據
                l = 0;                                                      // 向上位機送數據計時器清0
                
                OS_ENTER_CRITICAL();
                parameter[SPEED] = GetAdverOfSpeed();                       // 得到速度的平均值
                parameter[FORCE] = GetAdverOfForce();                       // 得到力的平均值
                                
                parameter[POWER] = parameter[SPEED] * parameter[FORCE] / 360 / 10;

                Aver_Speed = parameter[SPEED];

                // 計算加速度
                CurrSpeed = parameter[SPEED];

                OS_EXIT_CRITICAL();
                
                SendRealParaToComputer();
            }

            if(++AccelTick == 100) {
                AccelTick = 0;

                OS_ENTER_CRITICAL();

                if(CurrSpeed > 5) {
                    parameter[JSD] = (CurrSpeed - FirstSpeed) * 1000 / 3600;
                }else {
                    parameter[JSD] = 0;
                }

                OS_EXIT_CRITICAL();

                FirstSpeed = CurrSpeed;

            }

            OSTimeDly(TASK_DELAY_TIME);                                     // 將任務掛起2個節拍

        }

    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美影视一区二区三区| 亚洲国产毛片aaaaa无费看 | 国产精品77777竹菊影视小说| 99综合电影在线视频| 欧美精品 国产精品| 国产精品美女www爽爽爽| 奇米精品一区二区三区在线观看 | 国产不卡视频在线播放| 91精品国产综合久久精品图片 | 久久久夜色精品亚洲| 亚洲gay无套男同| 色94色欧美sute亚洲线路一久| 欧美成人女星排行榜| 午夜精品一区二区三区免费视频| 97精品超碰一区二区三区| 久久久另类综合| 国内精品在线播放| 日韩欧美在线网站| 亚洲成人综合在线| 色婷婷av一区二区三区gif| 中文字幕不卡的av| 丰满少妇在线播放bd日韩电影| 日韩欧美黄色影院| 青青草视频一区| 51精品国自产在线| 秋霞av亚洲一区二区三| 欧美一级xxx| 蜜臀av国产精品久久久久| 69堂亚洲精品首页| 石原莉奈在线亚洲三区| 这里是久久伊人| 日本不卡一区二区三区| 777奇米成人网| 免费成人你懂的| 精品久久久久久久久久久久久久久久久| 视频一区在线视频| 精品久久一二三区| 国产真实精品久久二三区| 久久欧美一区二区| 国产成+人+日韩+欧美+亚洲 | 日韩午夜电影在线观看| 另类小说欧美激情| 久久夜色精品国产欧美乱极品| 麻豆国产精品官网| 久久嫩草精品久久久久| 国产suv一区二区三区88区| 国产欧美一区视频| 91日韩精品一区| 亚洲高清不卡在线| 日韩精品一区二区三区四区视频 | 91丨九色丨黑人外教| 亚洲美女视频一区| 欧美色中文字幕| 狠狠色狠狠色合久久伊人| ww亚洲ww在线观看国产| 91在线免费视频观看| 亚洲一二三四区| 精品理论电影在线观看| 成人福利视频网站| 午夜视频一区二区三区| 日韩免费性生活视频播放| 国产91在线|亚洲| 亚洲一区二区三区四区五区黄 | 欧美亚洲国产一区二区三区| 天堂va蜜桃一区二区三区漫画版| 久久这里只精品最新地址| 波多野结衣一区二区三区| 亚洲国产精品影院| 久久久国产综合精品女国产盗摄| 99视频在线精品| 美国十次综合导航| 日韩美女视频19| 精品蜜桃在线看| 色88888久久久久久影院按摩| 日韩电影在线免费| 亚洲理论在线观看| 久久嫩草精品久久久精品| 欧美日韩一区久久| 成人av手机在线观看| 久久疯狂做爰流白浆xx| 亚洲综合一区二区精品导航| 久久久三级国产网站| 欧美日韩视频在线一区二区| 成人av电影观看| 精品一区二区三区日韩| 亚洲成人精品一区二区| 中文成人综合网| 久久综合av免费| 日韩色在线观看| 欧美三级日韩三级国产三级| 91啪在线观看| 成人性色生活片免费看爆迷你毛片| 男女视频一区二区| 亚洲动漫第一页| 一区二区三区高清| 国产精品国产三级国产| 久久久不卡影院| 久久伊人蜜桃av一区二区| 欧美一级一区二区| 538prom精品视频线放| 欧美日韩精品欧美日韩精品一| 99久久精品国产一区二区三区| 国产成人精品免费网站| 国产制服丝袜一区| 激情综合网av| 国内成人免费视频| 激情av综合网| 国产主播一区二区| 国产在线播放一区三区四| 久久国产人妖系列| 美女任你摸久久| 男女激情视频一区| 黄色日韩网站视频| 国产剧情av麻豆香蕉精品| 经典三级一区二区| 国产精品18久久久久久久久久久久| 精品综合免费视频观看| 国产一区视频网站| 国产盗摄视频一区二区三区| 国产老女人精品毛片久久| 国产99久久久国产精品免费看 | 亚洲日本欧美天堂| 亚洲精品一二三| 亚洲综合激情小说| 天堂一区二区在线| 麻豆精品视频在线观看| 韩国v欧美v亚洲v日本v| 粉嫩高潮美女一区二区三区| 成人a区在线观看| 91福利在线观看| 欧美一区二区三区四区久久 | 91精品国产高清一区二区三区蜜臀| 在线播放视频一区| 精品国产乱码久久久久久图片| 久久久亚洲欧洲日产国码αv| 国产欧美久久久精品影院| **网站欧美大片在线观看| 玉足女爽爽91| 久久99热国产| bt7086福利一区国产| 欧美三区免费完整视频在线观看| 欧美xxxxx裸体时装秀| 欧美高清在线视频| 亚洲二区在线观看| 国产一区二区三区免费在线观看| 不卡av免费在线观看| 欧美日韩国产首页| 国产婷婷色一区二区三区| 亚洲精品成人天堂一二三| 久久国产精品露脸对白| 91免费版在线| 欧美成人三级在线| 亚洲激情欧美激情| 精品亚洲成av人在线观看| 日本韩国欧美一区| 2021中文字幕一区亚洲| 亚洲一区二区高清| 国产不卡在线播放| 日韩一区二区三区免费看| 亚洲欧洲av色图| 激情五月激情综合网| 色呦呦一区二区三区| 精品久久99ma| 亚洲午夜一区二区| 成人激情视频网站| 日韩精品专区在线影院重磅| 一区二区三区四区视频精品免费 | 国产午夜精品福利| 婷婷成人综合网| www.欧美色图| 国产亚洲精品7777| 免费三级欧美电影| 欧美少妇xxx| 一色桃子久久精品亚洲| 韩国av一区二区| 538在线一区二区精品国产| 亚洲激情欧美激情| 99视频精品在线| 久久久久国产精品免费免费搜索 | 亚洲激情图片qvod| 成人精品gif动图一区| 26uuu欧美| 韩国女主播一区二区三区| 欧美电影免费观看高清完整版| 亚洲一区二区三区四区不卡| 91香蕉视频在线| 最新成人av在线| av在线一区二区三区| 国产亚洲人成网站| 国精产品一区一区三区mba视频 | 青娱乐精品在线视频| 欧美年轻男男videosbes| 亚洲综合偷拍欧美一区色| 91农村精品一区二区在线| 中文字幕在线一区二区三区| 国产精品12区| 国产精品免费免费| www.av亚洲| 一区二区在线看| 欧美日韩一区不卡|