> 백엔드 개발 > 파이썬 튜토리얼 > 시간 최적 제어 예 GEKKO

시간 최적 제어 예 GEKKO

WBOY
풀어 주다: 2024-02-10 20:54:03
앞으로
1215명이 탐색했습니다.

时间最优控制示例 GEKKO

질문 내용

Gekko에서 시간 최적 제어 문제를 구현하려고 합니다. 특히 이 짧은 코드 조각을 복사했습니다. 실용성을 위해 여기에도 보고되었습니다:

으아악

그대로라면 잘 작동하지만, 속도의 최종 값에 대한 제약 조건을 제거하고 싶을 때입니다.

주석을 달면 m.fix_final(velocity, 0) 行,结果不会改变。无论如何,它似乎假设最终速度应该为零。此外,如果我将最终速度从零更改为任何其他数字,我会从 gekko 收到错误: exception: @error: solution not found.

해결책은 쉽게 찾을 수 있어야 합니다. 특히 최종 속도에 아무런 제약이 가해지지 않은 경우 최적의 제어는 시간 내내 계속 가속()하는 것입니다.

어떤 도움이라도 대단히 감사하겠습니다! :)


정답


최종 제약 조건을 m.fix_final(velocity, 0)m.fix_final(position, 300)에서

로 변경하세요. 으아악

이것은 마지막 노드에 부등식 제약 조건을 적용하여 position>=300,但它也可以是等式约束。如果不可行的解决方案阻止求解器实现最终条件,我们有时也会使用软约束,例如 m.minimize(last*(position-300)**2) 。相反,它会尝试使解决方案尽可能接近最终约束。当使用 m.fix_final() 최종 값이 고정되면 해당 변수가 더 이상 계산되지 않으므로 도함수도 0으로 고정됩니다. 이는 여기에 설명된 대로 gekko의 알려진 제한 사항입니다.

위 내용은 시간 최적 제어 예 GEKKO의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿