Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 02.05.2010, 13:15   #1 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию Помогите с программой

Нужно написать программу для измерения двух величин X, Y.
X - управляемая величина, кутовое перемещение, 0...360 градусов
Y - контролируемая(измеряемая) величина, давление, 0...250 Па
N - объем выборки, 128
вид функции для вычисления Dy - несмещенные оценки дисперсии измеряемой Y величины
http://www.tehnari.ru/imagehosting/2...d33f08b5dc.jpg
частота опроса = 14000 Гц

Очень благодарен за внимание. Надеюсь на вашу помощь.
JCHacker вне форума   Ответить с цитированием

Старый 02.05.2010, 13:15
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Проблемы часто повторяются и ваша не исключение, вот схожие темы

Помогите с программой
Помогите с программой в Паскале
Помогите с программой на Си
Помогите, пожалуйста, с программой

Старый 02.05.2010, 17:34   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,858
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Пожалуйста, еще раз и, для разнообразия, с начала. Какой язык? Откуда берутся X и Y? Снимаются с каких-то датчиков? Тогда как организован ввод? В общем, опишите задачу так, чтобы стало понятно.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 02.05.2010, 22:22   #3 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию

Для получения информации об объекте, контролируемые, в схеме использован датчик давления и датчик углового перемещения.
В данном задании управляемой величиной является угловое перемещения и контролируемой - давление. Управляемая величина в виде аналогового сигнала после прохождения по линии связи поступает на АЦП одновременно фильтрует этот сигнал и преобразует в цифровой лишая ошибок при прохождении линии связи. АЦП выполняет аналого-цифровое преобразование, после чего сигнал в цифровой форме поступает на ЭВМ, где обрабатывается с определенной программой.
Контролируемая величина, натходить с датчика углового перемещения, аналогично проходя по линии связи через преобразователи и АЦП, поступает на ЭВМ. Одновременно контролируемая величина, проходя по линии связи перед АЦП поступает на компаратор. На компараторе сравниваются две напряжения: сигнал с датчика и сигнал с задавача. И чем больше различие между этими напряжениями, тем интенсивнее воздействие оказывает система по линии обратной связи на исполнительный элемент, в свою очередь нормализует работу объекта управления. То есть данная система отслеживает несоответствия между фактическим параметром работы и желанным.
Ссылка удалена
- ОУ (объект управления);
- Дт (датчик давления);
- Дп (датчик углового перемещения.
- ЛЗ (линия связи);
- ПСН (преобразователь «ток-напряжение»);
- НП (нормирующий преобразователь.
- АЦП (аналого-цифровой перетвоювач.
- ЕОМ (электронно-вычислительная машина);
- ЦАП (цифро-аналоговый перетвоювач.
- К (компаратор);
- ПН (усилитель напряжения);
- ПП (усилитель мощности);
- ВП (исполнительное устройство).

Последний раз редактировалось Fenix; 11.06.2013 в 13:13 Причина: Ссылка мертва
JCHacker вне форума   Ответить с цитированием
Старый 02.05.2010, 22:38   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,858
Сказал(а) спасибо: 317
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 101510
По умолчанию

Начало хорошее. Начинает проясняться, несмотря на украинско-русскую терминологически-аббревиатурную мешанину. Осталось только выяснить, что понимается под ЭВМ (ЕОМ) - обычный компьютер или технологический микропроцессор, на каком языке это дело программируется (ассемблер? спецкоды?), куда записывается поступающая с АЦП информация (ячейка, регистр?) и т.п. Впрочем, сразу оговорюсь - я вряд ли сумею Вам здесь помочь. Увы, не специалист. Хотя подобные задачи решать приходилось. Но 14 кГц выборка - ой-ой-ой! Тут Паскалем, увы, не обойтись - слишком медленный.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 03.05.2010, 13:24   #5 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию

Спасибо и за внимание. ) ЕОМ - обычный компьютер. Програмирование на любом языке програмирования. Абсолютно любом. Информация просто поступает после преобразования на ЕОМ.
JCHacker вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 03.05.2010, 13:27   #6 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию

Вот пример программы:
Код:
#include <iostream>
#include <math.h>
using std::cout;
using std::endl;
int main()
{
const int n=128;
int i, j;
float x[n];
       double M, D;
 M=D=0;
FILE *kv;
kv=fopen("masyv.txt","r");
for (i=0; i<n; i++)
{
fscanf(kv, "%f\n", &x[i]);	//зчитування значень і обчислення
M+=(x[i])/n;			          //математичного сподівання
}
fclose(kv);
for (j=0; j<n; j++)		          //обчислення
D+=pow((x[i]-M),2)/n;	          //дисперсії
cout<<"Duspersia:  "<<D<<endl;
return 0;
}
JCHacker вне форума   Ответить с цитированием
Старый 03.05.2010, 13:31   #7 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию

Програмна реалізація на мові AVRPascal
Код:
program V05;
{$NOSHADOW}
{ $W+ Warnings}            {Warnings off}
Device = mega103, VCC=5;
Import SysTick, Disp7sPort;
From System Import LongWord, LongInt, Float;
Define
        ProcClock   = 12000000;        {Hertz}
        SysTick     = 10;             {msec}
        StackSize   = $0064, iData;
        FrameSize   = $0064, iData;
        Disp7sPort  = PortB, Mux, 0;  {multiplexed, Portbit}
        DispMode    = Wrap;
        DispDigits  = 3, iData;

Implementation
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type
{--------------------------------------------------------------}
{ Const Declarations }
const n=128;
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var x:array[0..n] of byte; // масив змінних вибірки x
    i:integer;
   kx,mx,rx,dx:float;
{--------------------------------------------------------------}
{ functions }
{--------------------------------------------------------------}
{ Main Program }
{$IDATA}
begin
  EnableInts;
  loop
  write(dispout,#10+'read');  //виводимо повідомленн про зчитування масиву
   for i:=1 to n do
       x[i]:=PORTB; // зчитуємо масив з порта B
       udelay(2); // 1/32000=31мкс 31/10-1=2 - затримка
   endfor;
   kx:=0;
   for i:=1 to n do
       kx:=kx+float(x[i]); //обчислюємо суму елементів вибірки
   endfor;
   mx:=kx/n; //знаходимо математичне сподівання
   for i:=1 to n do
       rx:=rx+pow(float(x[i])-mx,2); // знаходимо суму квадрату різниця i-ого значення вибірки та математичного сподівання
   endfor;
   dx:=rx/(n-1); // знаходимо незміщену вибіркову дисперсію
   dispclear;
   write(dispout,#10+floattostr(dx)); // виводимо результат обробки масиву на семисегментні індикатори
   mdelay(5000); // організовуємо затримку 5с
  endloop;
end V05
JCHacker вне форума   Ответить с цитированием
Старый 05.05.2010, 04:29   #8 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

Мне нужно знать:
1) Какой контроллер.
2) Его тактовая частота.
3) Принципиальныя схема.
4) В каком виде поступают сигналы в устройство.
5) Типы датчиков.
6) Тип исполнительного устройства.
7) Имеется ли в устройстве гистерезис.
Long Cat вне форума   Ответить с цитированием
Старый 05.05.2010, 22:40   #9 (permalink)
JCHacker
Member
 
Аватар для JCHacker
 
Регистрация: 23.07.2008
Сообщений: 584
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 278
По умолчанию

1) Сдесь нет контроллера. Все обрабатывает ЕОМ, т.е. обычный компьютер.
2)-
3)Ссылка удалена
4)Сигналы поступают в цыфровом виде, пройдя через линию связи и АЦП.
5)Дп - датчик углового перемещения.
Дт - датчик давления
6)Шаговый двигатель
7)Трудно ответить.

Последний раз редактировалось Fenix; 11.06.2013 в 13:14 Причина: Ссылка мертва
JCHacker вне форума   Ответить с цитированием
Старый 06.05.2010, 05:51   #10 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

Каким образом (по какому интерфейсу) эта информация поступает в ПК?
Long Cat вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 00:18.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.