找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1803|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

這個(gè)程序在keil中一直有錯(cuò),哪位大神可以幫我改好啊,小弟不勝感激

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:217035 發(fā)表于 2017-7-5 16:57 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
// ControlFunc1.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
using namespace std;

void ControlFunc(double d, double& U, double &dt)
{
        //d為輸入的位移
        //U為輸出的電壓
        //dt為輸出的時(shí)間間隔
        dt = 0.02;//輸出結(jié)果:時(shí)間間隔
        double dy = 0.03;//控制參數(shù):屈服變形
        double du = 0.06;//控制參數(shù):極限變形
        double d0 = 0.0; //前一步位移,初始時(shí)為零
        double Umax = 5.0;//最大電壓
        double Umin = 0.0;//最小電壓

        double vel;     // 中間變量,速度
        vel = (d - d0) / dt;

        if (d <= -du)                  //狀態(tài)1:禁止區(qū)域(-)
        {
                U = Umin;
                if (vel < 0)
                        U = Umax;
        }
        else if (d > -du && d <= -dy)  //狀態(tài)2:控制區(qū)域(-)
        {
                U = Umin;
                if (vel < 0)
                        U = (-d - dy) / (du - dy)*Umax + (du + d) / (du - dy)*Umin;
        }
        else if (d > -dy && d < dy)   //狀態(tài)3:自由區(qū)域(-)狀態(tài)4:自由區(qū)域(+)
        {
                U = Umin;
        }
        else if (d >= dy && d < du)    //狀態(tài)5:控制區(qū)域(+)
        {
                U = Umin;
                if (vel >= 0)
                        U = (d - dy) / (du - dy)*Umax + (du - d) / (du - dy)*Umin;
        }
        else if (d >= du)               //狀態(tài)6:禁止區(qū)域(+)
        {
                U = Umin;
                if (vel >= 0)
                        U = Umax;
        }
        d0 = d;
}


int _tmain(int argc, _TCHAR* argv[])
{
        double d=0.0,U=0.0,dt=0.0;
        for (int i = 0; i < 10; i++)
        {
                d = 0.01*i;
                ControlFunc(d, U, dt);
                cout << "第" << i << "步計(jì)算結(jié)果: 控制電壓U= " << U << "    時(shí)間間隔dt=" << dt << endl;
               
        }
        cin >> d;
        return 0;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:97438 發(fā)表于 2017-7-6 10:19 | 只看該作者
兄弟,你這c++的程序放到keil里編譯肯定有錯(cuò)啊。。。誰都改不了。。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:217035 發(fā)表于 2017-7-6 15:19 | 只看該作者
幫忙改成C語言啊
回復(fù)

使用道具 舉報(bào)

地板
ID:217351 發(fā)表于 2017-7-6 20:19 | 只看該作者
改不了,沒辦法輸出,說到底編譯的軟件都不一樣
回復(fù)

使用道具 舉報(bào)

5#
ID:137736 發(fā)表于 2017-7-6 23:16 | 只看該作者
要安裝C語言IDE
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表