Wednesday 7 February 2018

Labview moving average vi


이 VI는 미리 선택된 숫자를 사용하여 이동 평균을 계산하고 표시합니다. 먼저 VI는 2 개의 시프트 레지스터를 초기화합니다. 상단 시프트 레지스터는 하나의 요소로 초기화 된 다음 이전 값을 새 값으로 계속 추가합니다. 이 시프트 레지스터는 마지막 x 측정의 합산 합산 기능의 결과를 미리 선택된 값으로 나눈 후, VI는 이동 평균값을 계산합니다. 하단 시프트 레지스터는 치수가 평균 인 배열을 포함합니다. 이 시프트 레지스터는 측정의 모든 값을 유지합니다. while 루프 내에서 replace 요소 함수를 사용하고 루프에 들어가기 전에 배열을 초기화하기 때문에이 VI는 매우 효율적이며 빠릅니다. 이 VI는 LabVIEW 6 1.Bookmark Share에서 작성되었습니다. 평균은 한 번에 데이터 창을 평균화하지 않습니다. 문제는 지속적으로 들어오는 신호에서 한 번에 100 점의 하위 집합을 평균화하려고합니다. 문제는 Mean이 처음 100 점을 평균 할 것이고, 그 다음 100 점은 100을 가리키고 100은 동일한 값을 재사용한다는 것입니다. 움직이는 창 평균이 아니라 데이터의 블록 평균을 구현하고 싶습니다. 데이터를 청크로 분해하고 각 데이터 청크의 평균을 기록하는 것과 같습니다. 평균의 기본 기능은 주어진 창 크기에 대해 문제 설명에 설명 된 것처럼 각 데이터 청크의 평균을 제공하지 않습니다. n , 평균 평균 점 0에서 n-1, 점 1에서 점 n, 점 2에서 n 1까지 등등 블록 평균을 수행하려면 몇 가지 해결 방법 코드를 작성해야합니다. 반복에서 계수 계산을 수행해야합니다 평균을 계산하지 않고 데이터를 전달할시기를 결정하는 루프 수 반복 계수 i mod n을 계산하여 i 0 일 때 창의 끝이 도달하고 평균 평균이 올바른 경우이 값을 다음에 저장합니다. 배열 또는 표시기 다음에 ration mod 값은 평균을 재설정하고 n 포인트의 다음 하위 세트를 준비하는 1과 같습니다. 블록 평균에 의해 얻은 평균이 평균에 의해 수행 된 이동 창 평균의 서브 세트라는 것을 깨닫는 것이 트릭입니다. 위의 문제 설명에서 설명한대로 평균을 로깅하면서 전면 패널에서 모든 데이터를 업데이트해야 할 수도 있습니다. 비슷한 방식으로이 함수를 수행 할 수 있습니다. 즉 반복 계수에서 모듈러스 연산을 수행하고 대 / 소문자를 선택하여 여기에 기초한 사례 구조이 작업을 수행하는 방법과 동적 데이터를 구문 분석하고 변환하여 앞에서 설명한 함수를 수행하는 예제 코드에 대한 자세한 내용은 관련 링크의 커뮤니티 예제를 참조하십시오. 코드는 여전히 의미가 없습니다. subVI 한 번에 스칼라 만 있으면, 시프트 레지스터는 마지막 N 개의 스칼라 만 기억하기 때문에 원하는 것을 얻지 못합니다. 코드의 채널이 무엇이든 관계없이 코드는 여전히 비효율적입니다. 복잡하고 복잡합니다. 왜 여전히 배열에 삽입을 사용하여 하위에있는 두 가지를 모두 추가 할 수 있습니까? 당신은 reenetrant subVI와 병렬 가장 안쪽의 FOR 루프를 사용할 수 있습니다. 하지만 너무 복잡해 보입니다. 각 채널에서 SubVI는 subVI에 2D 배열을 유지해야합니다. 이 모든 것은 이전에 이루어졌습니다. 좌절감을 이해할 수 있습니다. LV 코딩의 컨텍스트가 우리 삶에서 모두 다를 때 더 많이 기계 엔지니어로서 나를 위해 애드온과 시간이 지나기 시작한 코드가 있습니다. 따라서 코드가 CPU에서 주스의 마지막 드롭을 추출하는 데 가장 효율적이거나 그렇지 않을 수 있습니다. 실제로 머신 컨트롤 어플리케이션에서 CPU 전체가 실행되는 것보다 더 많은 시간을 아무것도하지 않습니다 제어 코드 그리고 i5 나 i7과 같은 프로세서를 사용하면 더 쉽게 코드를 작성할 수 있습니다. 효율적인 코드는 시간 낭비라고 말하지 않습니다. 단지 컨텍스트가 다르다는 것을 말하고 있습니다. 여기에 바람을 피기 전에 또 하나의 빠르고 지저분한 코드가 있습니다. 어떤 일을합니까? 처음 몇 개의 값은 무시됩니다. 데이터 로깅 어플리케이션에서 많은 시간을 소비하지 않습니다. 유압 테스트 장비를 자동화하는 Raghunathan LV2012. 우아함과 정확성에 대해서는별로 관심이 없습니다. 충분할만큼 충분할 것입니다. 미래에 LabVIEW를 알고 이해하는 사람과 상담하고, 원하는 것을 말하고 대신 해줄 수 있습니다. 그러나 목표가 N에서 데이터를 수집하는 것이라면 채널에서 주파수 F에서 Hz에서하지만 M 포인트의 평균을 표시하므로 M 포인트 당 평균 1 포인트, M 포인트를 생성합니다. 여기서는 좋은 방법입니다. 데이터를 생성하는 프로듀서 루프를 만듭니다. N 채널의 M 포인트를 얻기 위해 샘플링 디바이스를 설정하여 주파수 F에서 샘플링합니다. 이것은 2 차원 배열이어야합니다. N 열의 M 행이 있어야합니다. 이것을 대기열에 넣고 중지 버튼을 누를 때까지 계속 반복하십시오. 종료 후 Producer Loop에서 비어있는 2D 배열을 하나 더 보내면 왜 순간적으로 병렬 컨슈머 루프를 생성하고 프로듀서 루프에서 사용하는 큐에 공급합니다. 데이터 배열을 큐에서 꺼냅니다. 비어있는 경우 큐를 풀고 소비자 루프를 중지합니다. 그렇지 않으면 평균 소비가 필요합니다. 그리고 데이터를 플롯합니다. M 포인트 by N 채널 배열을 M 채널로 N 채널에 조인 할 필요가 있습니다. 이 배열을 For Loop에 넘겨 주어 채널을 반복하고, M 포인트의 평균을 계산하고, 평균을 출력합니다. We N 개의 모든 채널에서이 단일 포인트를 플로팅하고 싶다면, Build Array를 통과시켜 1 by N Array를 만들고이를 플로팅하십시오. LabVIEW 2012의 스 니펫을 사용하면이 모든 것을 시뮬레이트하여 당신이 지정하는 주파수, 최대 1KHz 또한 시간이 초 단위가되도록 Plot을 스케일링합니다. 이것은 스 니펫을 위해 잘 번역되지 않았습니다 - 실제로 평균 데이터 프로퍼티 노드를 사용했습니다. 이것은 당신이 정말로 원했던 것을 이해합니다. 즉, t보다 느린 플롯 속도로 평균을 보여주는 디스플레이가 있어야합니다. 데이터 각 채널마다 다른 오프셋이 있음을 알 수 있습니다. 따라서 플롯을 볼 때 샘플 크기를 늘릴수록 점점 더 매끄럽게 보이게됩니다. 코드를 실행하기 전에 매개 변수를 지정해야합니다. LabVIEW가 기반한 데이터 흐름의 원리는 프로그램이 실행 중일 때 컨트롤에 대한 변경 사항을 무시할 것이기 때문입니다. 먼저 자세한 응답과 도움을받을 수있는 코드 스 니펫에 대해 감사드립니다. 조금 심했지만 나는 반쯤 구운 것 또는 불안정한 것을 손질하는 마지막 사람이 될 것입니다. 설명해 드리겠습니다. 내 유압 오일 유압 장치와 저는 1995 년에 설립 된 회사를 운영하고 있으며, 부가 가치 제안으로 통합 시스템을 공급합니다. 인스 트루먼트 및 소프트웨어 우리는 두 가지 주요한 관점, 즉 터빈 및 테스트 시스템을 운영하고 있습니다. 현재까지 인도에서는 물론 자동차 산업에서 널리 사용되는 많은 시스템을 공급했습니다. urope. But 우리 회사는 거대한 조직이 아니며 중간 크기입니다. 여기에는 잡다한 것이 있습니다 - 전문가적인 LabVIEW 프로그래머를 찾기가 불가능합니다. 인도는 소프트웨어 엔지니어가 많지만 데스크톱 컴퓨팅과 Physical Computing의 엔지니어는 거의 없거나 무시할 수 있습니다. 고객이 새로운 요구 사항을 충족 시키면 나를 신뢰합니다. 모든 것이 다릅니다. 개인적으로 도전을 받아들이 겠지만 전적으로 온라인 커뮤니티의 지원에 의존합니다. 저는 LV를 성공적으로 개발했습니다. CanOpen, Modbus RTU, Profinet 및 EtherCAT를 통해 데이터를 가져 오는 코드 다양하고 짧은 시장 요구에 부응하기 위해 거대한 팀을 배치하는 데 필요한 리소스가 부족합니다. 따라서 기본 또는 명백한 코드를 개발하는 데 익숙합니다. 클라이언트가 괜찮 으면 - 그곳에 두십시오. 기능 코드와 스마트 코드 사이의 차이점은 이전 코드를 시사하고 샘플 코드에 대한 진절머리 않은 코드 작성을하지 않았 음을 나타냅니다. 그의 생산자 소비자 모델은 내가 메인을 프로듀서로, 서브 VI를 소비자로 사용하는 모든 프로젝트에서 사용하는 정규적인 모델입니다. 큐를 통한 데이터 흐름으로 자세히 연구 할 것입니다. 유압 테스트 장비를 자동화하는 Raghunathan LV2012.

No comments:

Post a Comment